weixin_72661020/convnextv2-atto-1k-224
模型介绍文件和版本Pull Requests讨论分析

ConvNextV2-atto-1k-224 on Ascend NPU

1. 简介

本文档记录 ConvNextV2-atto-1k-224(源自 facebook/convnextv2-atto-1k-224)在华为昇腾 NPU 上的适配与验证结果。

ConvNextV2 是 ConvNeXt 架构的改进版本,atto 为最小变体(hidden sizes: [40, 80, 160, 320]),用于 ImageNet 图像分类(1000 类)。

相关获取地址:

  • 权重下载地址(ModelScope):https://www.modelscope.cn/models/Xenova/convnextv2-atto-1k-224
  • 原始权重(HuggingFace):https://huggingface.co/facebook/convnextv2-atto-1k-224

2. 验证环境

组件版本
torch2.x
torch-npu最新
transformers4.x
NPUAscend 910

3. 推理方式

直接使用 PyTorch + transformers 加载模型进行推理(非 vLLM):

import torch
from transformers import AutoImageProcessor, ConvNextV2ForImageClassification
from PIL import Image

device = torch.device("npu:0" if torch.npu.is_available() else "cpu")
model = ConvNextV2ForImageClassification.from_pretrained("facebook/convnextv2-atto-1k-224")
model = model.to(device)
model.eval()

processor = AutoImageProcessor.from_pretrained("facebook/convnextv2-atto-1k-224")
inputs = processor(images=image, return_tensors="pt")
inputs = {k: v.to(device) for k, v in inputs.items()}

with torch.no_grad():
    outputs = model(**inputs)
predicted_class = outputs.logits.argmax(-1).item()

4. Smoke 验证

python3 inference.py

预期输出:

  • 设备识别为 npu:0
  • 输出 logits shape: [1, 1000]
  • 推理完成无报错

5. 性能参考

指标数值
设备Ascend NPU (npu:0)
输入尺寸[1, 3, 224, 224]
预热次数5
测试次数20
平均推理时间4.53 ms
模型参数量~5.8M (atto)

6. 精度评测

NPU vs CPU 精度对比(CPU 为基线,NPU 为验证目标):

指标数值
测试用例数1
最大 logits 差异0.007561
预测一致性1/1
精度要求NPU vs CPU 最大 logits 误差 < 1%
精度结论一致

精度评测源代码和日志详见 eval/ 目录。

7. 注意事项

  • ModelScope 上 Xenova 命名空间提供的是 ONNX 格式权重,需使用 facebook/ 命名空间获取 PyTorch 权重
  • 该模型为图像分类模型,不适用 vLLM 推理
  • 适配流程基于直接 PyTorch 推理 + transformers
下载使用量0