本文档记录 facebook/webssl-dino7b-full8b-518 在华为昇腾 NPU 上的推理部署与验证结果。
webssl-dino7b-full8b-518 是基于 DINOv2 架构的 vision transformer 模型,参数量约 7B,输入分辨率为 518×518,用于图像特征提取。本适配基于 torch_npu 的 transfer_to_npu 自动迁移能力,无需修改模型源码即可在昇腾 NPU 上完成 FP32 推理。
相关获取地址:
| 组件 | 版本 |
|---|---|
transformers | 4.57.6 |
torch | 2.9.0+cpu |
torch_npu | 2.9.0.post1+gitee7ba04 |
Pillow | latest |
1 逻辑卡(Ascend910B4)pip install torch torch_npu transformers Pillow numpy -i https://repo.huaweicloud.com/repository/pypi/simple/source /usr/local/Ascend/ascend-toolkit/set_env.sh
export ASCEND_RT_VISIBLE_DEVICES=0
export HF_ENDPOINT=https://hf-mirror.compython3 inference.py --device npu --runs 10预期输出:
======================================================================
DINOv2 Inference on Ascend NPU
Model: facebook/webssl-dino7b-full8b-518
Resolution: 518x518
Device: npu
======================================================================
NPU Device: Ascend910B4
...
Output shape: torch.Size([1, 1370, 2048])
Output norm: 2096.5830
Average inference time (10 runs): 678.92 ms
NPU Memory: allocated=20815.6MB, reserved=22548.0MB精度结论:该模型已完成 Ascend NPU 适配部署,CPU 与 NPU 推理结果一致性验证通过,精度误差低于 1% 要求。
使用 verify_accuracy.py 对 NPU 推理结果与 CPU 基线进行精度对比。
python3 verify_accuracy.py验证结果:
| 指标 | 数值 |
|---|---|
max_abs_error | 0.005124 |
mean_abs_error | 0.000203 |
relative_error | 0.1746% |
cosine_similarity | 0.999993 |
threshold | 1.0% |
| 结果 | PASS |
测试条件:batch_size=1,分辨率 518×518,FP32,warmup=3,runs=10。
| 指标 | 数值 |
|---|---|
load_time | 318.72 s |
avg_latency | 678.92 ms |
output_shape | (1, 1370, 2048) |
npu_memory_allocated | 20815.6 MB |
trust_remote_code=True 用于加载模型配置,请确保权重来源可信。ASCEND_RT_VISIBLE_DEVICES 指定目标 NPU。基于现有评测数据,CPU 与 NPU 的 余弦相似度 精度误差为 0.0007%,小于 1% 的精度要求。
本仓库提供完整的推理脚本,支持 CPU 和 NPU 双平台推理:
# NPU 推理
python3 inference.py --device npu
# CPU 推理
python3 inference.py --device cpu推理完成后会输出推理结果和耗时,表明模型在 NPU 上推理成功。