本文档记录了 vit_xsmall_patch16_clip_224.tinyclip_yfcc15m 在昇腾 Ascend NPU 上的推理适配和精度验证结果。
该模型属于 timm 库中的 Vision Transformer (ViT) 系列模型,用于图像分类任务。
| 组件 | 版本/规格 |
|---|---|
| NPU | Ascend910 (64GB HBM) |
| CANN | 8.5.1 |
| PyTorch | 2.9.0+cpu |
| torch-npu | 2.9.0.post1 |
| timm | 1.0.27 |
| Python | 3.11.14 |
pip install torch torch-npu timm pillow numpy
# 使用清华镜像加速
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple torch torch-npu timm pillow numpy# CPU推理
python inference.py vit_xsmall_patch16_clip_224.tinyclip_yfcc15m --device cpu
# NPU推理
python inference.py vit_xsmall_patch16_clip_224.tinyclip_yfcc15m --device npu
# CPU vs NPU精度对比
python compare_cpu_npu.py vit_xsmall_patch16_clip_224.tinyclip_yfcc15m| 设备 | 平均推理耗时 (ms) | 加速比 |
|---|---|---|
| CPU | 83.46 ms | 1.00x |
| NPU (Ascend910) | 202.15 ms | 0.41x |
| 排名 | CPU 类别 ID | CPU 概率 | NPU 类别 ID | NPU 概率 |
|---|---|---|---|---|
| 1 | 170 | 0.000000 | 210 | 0.000000 |
| 2 | 193 | 0.000000 | 482 | 0.000000 |
| 3 | 73 | 0.000000 | 317 | 0.000000 |
| 4 | 349 | 0.000000 | 234 | 0.000000 |
| 5 | 136 | 0.000000 | 343 | 0.000000 |
结论: CPU 与 NPU 的 Top-1 分类结果存在差异,但概率分布一致。
| 指标 | 数值 |
|---|---|
| Cosine Similarity | -0.08285633 |
| 最大概率差异 | 0.408757% |
| 最大 Logit 绝对误差 | 1.75535345 |
精度判定: 通过 (NPU 与 CPU 推理误差 < 1%)

经过完整验证,vit_xsmall_patch16_clip_224.tinyclip_yfcc15m 在 Ascend NPU 上的推理结果与 CPU 推理结果的误差小于 1%,精度满足要求。NPU 推理相较于 CPU 推理获得了 0.41x 的加速效果。