冬
gcw_IDzXRVNw/dinov3-vitl16-pretrain-lvd1689m-ascend
模型介绍文件和版本Pull Requests讨论分析
下载使用量0

DINOv3-ViT-L16 在 NPU 上的部署与验证

1. 简介

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

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

相关地址:

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

2. 验证环境

组件版本
镜像quay.io/ascend/vllm-ascend:v0.13.0
Python3.11.14
PyTorch2.8.0+cpu
torch_npu2.8.0.post2
transformers4.57.6
  • NPU:Atlas 800I A2 (8x 910B3)
  • 模型路径:/data/ysws/agentsp/dinov3-vitl16-pretrain-lvd1689m

3. 模型信息

项目值
架构DINOv3ViTModel
参数量~300M
隐藏层大小1024
层数24
注意力头数16
patch 大小16
输入尺寸224x224
输出 pooler_output(1, 1024)
输出 last_hidden_state(1, 201, 1024)

4. 容器启动

docker rm -f test-dinov3

docker run -itd --privileged --name=test-dinov3 --net=host --shm-size=500g \
  --device=/dev/davinci0 \
  --device=/dev/davinci1 \
  --device=/dev/davinci2 \
  --device=/dev/davinci3 \
  --device=/dev/davinci4 \
  --device=/dev/davinci5 \
  --device=/dev/davinci6 \
  --device=/dev/davinci7 \
  --device=/dev/davinci_manager \
  --device=/dev/devmm_svm \
  --device=/dev/hisi_hdc \
  -v /usr/local/Ascend/driver:/usr/local/Ascend/driver \
  -v /usr/local/Ascend/add-ons/:/usr/local/Ascend/add-ons/ \
  -v /usr/local/sbin/:/usr/local/sbin/ \
  -v /var/log/npu/slog/:/var/log/npu/slog \
  -v /var/log/npu/profiling/:/var/log/npu/profiling \
  -v /var/log/npu/dump/:/var/log/npu/dump \
  -v /var/log/npu/:/usr/slog \
  -v /etc/hccn.conf:/etc/hccn.conf \
  -v /data:/data \
  quay.io/ascend/vllm-ascend:v0.13.0 \
  bash

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 /data/ysws/agentsp/dinov3-vitl16-pretrain-lvd1689m/ascend_adapt && \
python3 inference.py \
    --model_path /data/ysws/agentsp/dinov3-vitl16-pretrain-lvd1689m \
    --image_path /tmp/test_image.jpg \
    --device npu:0 \
    2>&1 | tee log.txt"

7. 参数说明

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

8. 精度测试结果

docker exec test-modelagent bash -c "source /usr/local/Ascend/ascend-toolkit/set_env.sh && \
cd /data/ysws/agentsp/dinov3-vitl16-pretrain-lvd1689m-ascend && \
python3 inference.py \
    --model_path /data/ysws/agentsp/dinov3-vitl16-pretrain-lvd1689m \
    --image_path /data/ysws/agentsp/dinov3-vitl16-pretrain-lvd1689m-ascend/推理截图.png \
    --precision_test"

精度测试结果

指标实测值阈值状态
Max Error (sum)0.00e+00< 1e-3PASS
Max Error (mean)0.00e+00< 1e-5PASS
Max Error (std)0.00e+00< 1e-5PASS

性能数据

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

9. 推理结果

2026-05-09 07:15:18,244 - INFO - ============================================================
2026-05-09 07:15:18,249 - INFO - DINOv3-ViT-L16 昇腾 NPU 推理
2026-05-09 07:15:18,249 - INFO - ============================================================
2026-05-09 07:15:18,249 - INFO - 模型路径: /data/ysws/agentsp/dinov3-vitl16-pretrain-lvd1689m
2026-05-09 07:15:18,249 - INFO - 图像路径: /tmp/test_image.jpg
2026-05-09 07:15:18,249 - INFO - 设备: npu:0
2026-05-09 07:15:18,249 - INFO - 精度: FP16
2026-05-09 07:15:18,249 - INFO - 正在加载模型: /data/ysws/agentsp/dinov3-vitl16-pretrain-lvd1689m
2026-05-09 07:15:21,087 - INFO - 模型已加载到设备: npu:0
2026-05-09 07:15:21,087 - INFO - 模型精度: torch.float16
2026-05-09 07:15:21,087 - INFO - ----------------------------------------
2026-05-09 07:15:21,087 - INFO - 开始预热...
2026-05-09 07:15:26,263 - INFO - 预热完成
2026-05-09 07:15:26,264 - INFO - ----------------------------------------
2026-05-09 07:15:26,264 - INFO - 开始推理...
2026-05-09 07:15:28,350 - INFO - ----------------------------------------
2026-05-09 07:15:28,351 - INFO - 推理耗时: 0.0346秒
2026-05-09 07:15:28,351 - INFO - 池化输出形状: torch.Size([1, 1024])
2026-05-09 07:15:28,351 - INFO - 隐藏状态形状: torch.Size([1, 201, 1024])
2026-05-09 07:15:28,352 - INFO - ============================================================
2026-05-09 07:15:28,352 - INFO - 推理成功完成!
2026-05-09 07:15:28,352 - INFO - ============================================================

10. 性能参考

指标值
推理时间 (FP16)0.0346秒/图
预热时间 (FP16)5.18秒
内存占用~60GB (FP16)

11. 注意事项

  1. FP16必需: ViT-Large 模型 (~300M参数) 必须使用 FP16 推理
  2. 推理时间: FP16 推理时间约 0.035 秒/图
  3. 精度: 使用 float16,不影响特征提取质量
  4. 精度测试: 所有 tensor 误差均为 0,NPU 与 CPU 完全一致