qq_34566203/rad-dino-ascend
模型介绍文件和版本Pull Requests讨论分析

RAD-DINO on Ascend NPU

1. 简介

本文档记录 microsoft/rad-dino 在昇腾 NPU(Ascend 910B3)环境的适配部署与精度验证结果。

RAD-DINO 是微软健康未来团队发布的胸部 X 线影像基础模型,基于 DINOv2 自监督方法在 88 万张胸部 X 线图像上训练。该模型可输出 CLS 和 patch 级别的视觉特征,适用于分类、分割、检索等医学影像下游任务。本项目完成该模型在昇腾 NPU 上的推理适配,并验证 NPU 与 CPU 推理结果的精度误差 < 1%。

相关地址:

  • 权重下载地址(HuggingFace):https://huggingface.co/microsoft/rad-dino
  • 适配代码仓库:https://gitcode.com/qq_34566203/rad-dino-ascend

2. 验证环境

组件版本
Python3.11.15
PyTorch2.10.0+cpu
torch_npu2.10.0
transformers5.8.1
CANN8.5.1
NPU 驱动25.5.2
NPU 硬件Ascend 910B3 (8卡)
操作系统Linux (aarch64)

3. 模型信息

项目值
模型架构Dinov2Model
参数量~86M
Hidden Size768
Layers12
Attention Heads12
Patch Size14
输入尺寸3×518×518
输出 last_hidden_state(1, 1370, 768)
输出 pooler_output(1, 768)
权重格式safetensors
权重大小330MB
原始框架PyTorch (transformers)
训练方法自监督 DINOv2
预训练数据88 万胸部 X 线图像 (MIMIC-CXR, CheXpert, NIH-CXR, PadChest, BRAX)
基础模型dinov2-base
许可证MSRLA

4. Conda 环境安装

conda create -n rad-dino python=3.11 -y
conda activate rad-dino
pip install torch==2.10.0 torchvision==0.25.0 --index-url https://repo.huaweicloud.com/repository/pypi/simple/
pip install torch_npu==2.10.0 --index-url https://repo.huaweicloud.com/repository/pypi/simple/
pip install transformers safetensors pillow --index-url https://repo.huaweicloud.com/repository/pypi/simple/
export HF_ENDPOINT=https://hf-mirror.com/

5. 推理执行

# NPU 推理
python3 inference.py --model_path /path/to/rad-dino --image_path /path/to/xray.jpg --device npu:0
# CPU 推理
python3 inference.py --model_path /path/to/rad-dino --image_path /path/to/xray.jpg --device cpu
# 精度评测
python3 eval.py --model_path /path/to/rad-dino --npu_device npu:0

6. 参数说明

参数说明默认值
--model_path模型权重路径必需
--image_path输入图像路径必需
--device运行设备npu:0
--npu_deviceNPU 设备 ID (eval)npu:0
--num_warmupNPU 预热轮数3

7. 精度评测结果

输出张量向量级相对误差余弦相似度最大绝对误差平均绝对误差
last_hidden_state0.285476%0.99999415871.38e-021.25e-03
pooler_output0.261152%0.99999666216.45e-031.18e-03

判定结论: ✅ PASS — 最大向量级相对误差 0.285% < 1%

8. 性能数据

操作耗时
CPU 推理时间0.4765s
NPU 推理时间(3轮预热后)0.3466s
加速比1.37x

9. 注意事项

  1. 518×518 高分辨率输入,产生 1369 个 patch token
  2. 医学影像预处理使用 MIMIC-CXR 统计数据做归一化
  3. 权重不含适配仓库,需单独下载
下载使用量0