将 HuggingFace 图片分类模型 google/vit-large-patch16-224(ViT-Large, 304M 参数)适配为单卡昇腾 NPU(Ascend910B4)可运行的提交工程。
模型架构:Vision Transformer (ViT) Large,Patch Size 16,输入分辨率 224x224,ImageNet-1K 1000 类分类。
| 项目 | 版本/信息 |
|---|---|
| NPU 型号 | Ascend910B4 (32GB HBM) |
| CANN | 8.5.1 |
| PyTorch | 2.9.0+cpu |
| torch_npu | 2.9.0.post1+gitee7ba04 |
| transformers | 4.57.6 |
| Python | 3.11.14 |
| OS | Linux aarch64 |
pip install -r requirements.txt
# torch_npu 通常由昇腾容器预装,无需单独安装# 单张图片推理
python inference.py
# CPU vs NPU 精度对比
python eval_accuracy.py
# 性能基准测试
python benchmark.pylogs/inference.loglogs/prediction.txtlogs/accuracy.loglogs/benchmark.loglogs/env_check.log| 检查项 | 结果 |
|---|---|
| torch.npu.is_available() | True |
| Top-1 预测 | valley, vale (prob=0.706) |
| Top-5 预测 | valley, alp, lakeside, promontory, cliff |
| 推理 exit code | 0 |
| 指标 | 值 |
|---|---|
| 预热次数 | 2 |
| 测试次数 | 5 |
| 平均延迟 | 24.48 ms |
| 最小延迟 | 24.26 ms |
| 最大延迟 | 24.77 ms |
| P50 | 24.45 ms |
| P90 | 24.77 ms |
| P95 | 24.77 ms |
| 吞吐量 | 40.84 images/sec |
注:首次推理含图编译开销约 18s,预热后稳定在 ~24ms。
CPU vs NPU 一致性验证(同一张测试图片,同一官方 AutoImageProcessor 预处理):
| 指标 | 值 |
|---|---|
| CPU Top-1 | valley, vale (0.7035) |
| NPU Top-1 | valley, vale (0.7064) |
| Top-1 Match | True |
| Top-5 Match | True |
| Max abs diff (logits) | 0.0548 |
| Mean abs diff (logits) | 0.0054 |
| Max abs diff (probs) | 0.0029 |
CPU-NPU 结果高度一致,Top-1/Top-5 完全匹配。差异来自浮点精度差异。
见 screenshots/self_verification.png。
logs/env_check.log — 环境检查logs/inference.log — 推理结果logs/prediction.txt — Top-5 预测logs/accuracy.log — 精度对比logs/benchmark.log — 性能基准AutoImageProcessor(ViTImageProcessor),未手写伪预处理https://picsum.photos/400/300,非 ImageNet 验证集#NPU