g
gyccc/facebook-levit-128S-NPU
模型介绍文件和版本Pull Requests讨论分析
下载使用量0

facebook/levit-128S on Ascend NPU

1. 简介

  • 模型名称: facebook/levit-128S
  • 任务类型: Image Classification(图片分类)
  • 原始模型链接: facebook/levit-128S - Hugging Face
  • 适配方式: Transformers + torch_npu,使用 AutoModelForImageClassification 和 AutoImageProcessor 加载模型,通过 .to("npu:0") 将模型迁移到 Ascend NPU 执行推理
  • 运行框架: Hugging Face Transformers + torch_npu
  • 硬件: 单卡 Ascend NPU(Ascend910B4)
  • 不使用: vLLM、TP、EP、DP、MoE 优化
  • 本模型为图片识别模型,不是大语言模型

LeViT-128S 是 Facebook 提出的一种高效图像分类模型,专为低延迟推理设计。参数量仅 7.7M,在 ImageNet-1K 上具有良好的精度-速度平衡。

2. 验证环境

项目值
NPU 型号Ascend910B4
CANN 版本8.5.1
torch 版本2.9.0+cpu
torch_npu 版本2.9.0.post1+gitee7ba04
transformers 版本4.57.6
Python 版本3.11.14
模型来源Hugging Face(通过 HF_ENDPOINT=https://hf-mirror.com)
测试图片assets/test.jpg(程序生成的占位图,224x224)
运行设备npu:0

环境检查详细日志: logs/env_check.log

3. 推理运行

依赖安装

pip install torch torchvision transformers pillow requests numpy huggingface_hub accelerate

运行推理

HF_ENDPOINT=https://hf-mirror.com python inference.py
  • 推理日志: logs/inference.log
  • 预测输出: logs/prediction.txt

预测结果(占位图)

排名标签ID置信度
Top-1pinwheel7230.1571
Top-2balloon4170.0844
Top-3spotlight, spot8180.0716
Top-4velvet8850.0417
Top-5parachute, chute7010.0247

注意:测试图片为程序生成的占位图,分类结果仅用于验证推理流程正确性,不代表真实场景识别能力。

4. Smoke 验证

  • torch.npu.is_available(): True
  • torch.npu.device_count(): 1
  • torch.npu.get_device_name(0): Ascend910B4
  • model.device: npu:0
  • Top-1 预测: pinwheel (id=723, prob=0.1571)
  • Top-5 预测: pinwheel, balloon, spotlight/spot, velvet, parachute/chute
  • 推理成功: Yes

5. 性能参考

  • benchmark 命令: HF_ENDPOINT=https://hf-mirror.com python benchmark.py
  • 预热次数: 5
  • 正式测试次数: 20
  • 平均延迟: 33.19 ms
  • 最小延迟: 14.94 ms
  • 最大延迟: 67.21 ms
  • p50: 30.92 ms
  • p90: 46.79 ms
  • p95: 50.87 ms
  • 吞吐量: 30.13 images/s

性能测试在单卡 Ascend910B4 上完成,使用 HF_ENDPOINT=https://hf-mirror.com 下载模型。无 exit code 137 问题。

6. 精度评测

  • eval_accuracy 命令: HF_ENDPOINT=https://hf-mirror.com python eval_accuracy.py
  • 评测方法: 使用同一张 assets/test.jpg,分别在 CPU 和 NPU 上运行 LeViT-128S 模型,对比 logits 差异和 Top-1/Top-5 一致性
  • max_abs_diff: 0.006024
  • mean_abs_diff: 0.001129
  • prob_max_diff: 0.000448
  • Top-1 match: True (CPU: 723, NPU: 723)
  • Top-5 match: True (CPU: [417, 701, 723, 818, 885], NPU: [417, 701, 723, 818, 885])
  • prob_max_diff < 1%: Yes (0.000448 < 0.01)
  • 结论: PASS - CPU/NPU 一致性验证通过

重要说明:这是 smoke accuracy / CPU-NPU 一致性验证,不是官方 ImageNet 数据集精度评测。测试使用的是程序生成的占位图。精度差异来自 CPU 和 NPU 浮点实现差异。

7. 自验证截图

  • screenshots/self_verification.png
  • screenshots/self_verification.txt

截图由真实 logs 生成,不是伪造。

8. 日志文件

文件说明
logs/env_check.logNPU 环境检查日志
logs/inference.log推理运行日志
logs/accuracy.logCPU vs NPU 精度验证日志
logs/benchmark.log性能测试日志
logs/prediction.txt预测输出结果

9. 注意事项

  • 测试图片: assets/test.jpg 为程序生成的占位图(224x224 JPEG),因为无法联网下载公开图片(Wikipedia 等超时)。分类结果仅用于验证推理流程正确性。
  • HF_ENDPOINT: 使用 HF_ENDPOINT=https://hf-mirror.com 从 hf-mirror 下载模型,因为无法直连 HuggingFace。
  • exit code 137: 未出现。
  • 模型权重不随仓库提交: pytorch_model.bin、model.safetensors、.bin、.safetensors 不提交。
  • torch_npu 自动产物: fusion_result.json、kernel_meta/ 为 torch_npu 自动生成产物,已删除并加入 .gitignore。
  • 精度验证: CPU vs NPU 一致性验证已完成,prob_max_diff < 1%,Top-1/Top-5 一致。这不是官方 ImageNet 精度。
  • 性能测试: benchmark 完成,平均延迟 33.19ms,吞吐量 30.13 images/s。
  • 模型下载来源: 通过 hf-mirror.com 下载,权重文件已缓存在本地 HuggingFace cache 中,不随仓库提交。

10. 标签

#NPU