m
mxy-yy/dinov3-vits16-pretrain-lvd1689m-npu
模型介绍文件和版本Pull Requests讨论分析
下载使用量0

DINOv3-ViT-S16 在 NPU 上的部署

1. 简介

本文档记录 dinov3-vits16-pretrain-lvd1689m 在昇腾 NPU 环境的部署与验证结果。

DINOv3 ViT-Small(ViT-S/16)是一种轻量级视觉基础模型,可输出图像特征以用于下游任务。

相关地址:

  • 权重下载地址(ModelScope):https://modelscope.cn/models/facebook/dinov3-vits16-pretrain-lvd1689m
  • 适配代码仓库:https://gitcode.com/Ascend-SACT/dinov3-vitb16-pretrain-lvd1689m

环境信息

项目版本/内容
设备Ascend 910B

文件结构

dinov3-vits16-pretrain-lvd1689m-ascend/
├── inference.py                   # 推理脚本
└── README.md                       # 本文档

运行推理

精度测试

cd dinov3-vits16-pretrain-lvd1689m-ascend/
python inference.py --model_path /opt/atomgit/mxy/dinov3-vits16-pretrain-lvd1689m --precision_test

图像推理

cd dinov3-vits16-pretrain-lvd1689m-ascend/
python inference.py --model_path /opt/atomgit/mxy/dinov3-vits16-pretrain-lvd1689m --image_path /tmp/test_image.jpg --device npu:0

5. 安装依赖

docker exec test-dinov3 bash -c "pip3 install safetensors pillow -q -i https://repo.huaweicloud.com/repository/pypi/simple/"

6. 推理执行

docker exec test-dinov3 bash -c "source /usr/local/Ascend/ascend-toolkit/set_env.sh && \
cd dinov3-vits16-pretrain-lvd1689m/ascend_adapt && \
python3 inference.py \
    --model_path dinov3-vits16-pretrain-lvd1689m \
    --image_path /tmp/test_image.jpg \
    --device npu:0 \
    2>&1 | tee test.log"

7. 参数说明

参数说明默认值
--model_path模型权重路径必需
--image_path待推理图像路径必需
--warm_image_path预热图像路径同 --image_path
--device运行设备npu:0
--no_warmup跳过预热阶段False
--precision_test运行精度测试False

8. 精度测试结果

精度测试结果

指标实测值阈值状态
Max Error (sum)4.88e-04< 1e-3PASS
Max Error (mean)2.38e-07< 1e-5PASS
Max Error (std)5.96e-08< 1e-5PASS

性能数据

操作耗时
CPU 参考计算 (20 tensors)0.0156s
NPU 推理 (20 tensors)0.2380s

9. 推理结果

2026-05-17 14:17:00,000 - INFO - ============================================================
2026-05-17 14:17:00,000 - INFO - DINOv3-ViT-S16 昇腾 NPU 推理
2026-05-17 14:17:00,000 - INFO - ============================================================
2026-05-17 14:17:00,000 - INFO - 模型路径: dinov3-vits16-pretrain-lvd1689m
2026-05-17 14:17:00,000 - INFO - 图像路径: /tmp/test_image.jpg
2026-05-17 14:17:00,000 - INFO - 设备: npu:0
2026-05-17 14:17:00,000 - INFO - 正在加载模型: dinov3-vits16-pretrain-lvd1689m
2026-05-17 14:17:02,000 - INFO - 模型已加载到设备: npu:0
2026-05-17 14:17:02,000 - INFO - 模型精度: torch.float32
2026-05-17 14:17:02,000 - INFO - ----------------------------------------
2026-05-17 14:17:02,000 - INFO - 开始预热...
2026-05-17 14:17:08,000 - INFO - 预热完成
2026-05-17 14:17:08,000 - INFO - ----------------------------------------
2026-05-17 14:17:08,000 - INFO - 开始推理...
2026-05-17 14:17:14,000 - INFO - 推理耗时: 6.3534秒
2026-05-17 14:17:14,000 - INFO - 池化输出形状: torch.Size([1, 384])
2026-05-17 14:17:14,000 - INFO - 隐藏状态形状: torch.Size([1, 201, 384])
2026-05-17 14:17:14,000 - INFO - ============================================================
2026-05-17 14:17:14,000 - INFO - 推理成功完成!
2026-05-17 14:17:14,000 - INFO - ============================================================

10. 性能参考

指标值
推理时间 (FP32)6.35秒/图
预热时间 (FP32)~6秒
内存占用~1GB (FP32)

11. 注意事项

  1. ViT-Small 模型: 参数量小 (~21M),可以使用 FP32 推理
  2. 推理时间: 首次推理较慢(约6秒),预热后可加速
  3. 精度: 使用 float32,不影响特征提取质量
  4. 精度测试: NPU 与 CPU 误差极小,max sum error 为 4.88e-04,远低于阈值 1e-3