d
dingdang666/MoonViT-SO-400M-NPU
模型介绍文件和版本Pull Requests讨论分析

MoonViT-SO-400M on Ascend NPU

1. 简介

本文档记录 MoonViT-SO-400M(Moonshot AI 原生分辨率视觉编码器)在昇腾 NPU(Ascend 910B3)环境的适配部署与精度验证结果。

MoonViT 原生分辨率视觉编码器,参数量约 416M,从 SigLIP-SO-400M 初始化并持续预训练。使用动态分辨率(patch-based native resolution)处理图像,输出 patch 级特征。本项目完成该模型在昇腾 NPU 上的推理适配,验证 NPU 与 CPU 结果的精度误差 < 1%。

相关地址:

  • 权重下载地址(HuggingFace):https://huggingface.co/moonshotai/MoonViT-SO-400M
  • 论文:https://huggingface.co/papers/2504.07491
  • 适配代码仓库:https://gitcode.com/dingdang666/MoonViT-SO-400M-NPU

2. 验证环境

组件版本
Python3.11.x
PyTorch2.10.0+cpu
torch_npu2.10.0
transformers5.8.1
CANN8.5.1
NPU 硬件Ascend 910B3

3. 模型信息

项目值
模型架构MoonViT (Native-resolution ViT)
参数量~416M
特征维度1152 × 4
Layers27
Attention Heads16
Patch Size14
权重格式safetensors (bfloat16)
框架PyTorch (transformers, trust_remote_code)
预训练初始化SigLIP-SO-400M
许可证MIT

4. Conda 环境安装

conda create -n moonvit python=3.11 -y
conda activate moonvit
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/

5. 推理执行

# NPU (默认)
python3 inference.py --model_path /path/to/MoonViT-SO-400M --image_path /path/to/img.jpg

# CPU
python3 inference.py --model_path /path/to/MoonViT-SO-400M --image_path /path/to/img.jpg --device cpu

# 评测
python3 benchmark.py --model_path /path/to/MoonViT-SO-400M

6. 参数说明

inference.py默认值
--devicenpu:0
--no_warmupFalse
benchmark.py默认值
--npu_devicenpu:0
--num_warmup3

7. 精度评测结果

输出张量向量级相对误差余弦相似度最大绝对误差平均绝对误差
features (mean pooled)0.001793%0.9999998808——
指标实测值阈值状态
向量级相对误差0.0018%< 1%PASS
余弦相似度0.9999999> 0.99PASS

8. 性能数据

操作耗时
CPU 推理时间(FP32)3.06s
NPU 推理时间(FP32,3轮预热后)0.10s
加速比29.69x

9. 注意事项

  1. 使用 trust_remote_code=True 加载本地自定义模型代码。
  2. 模型权重为 bfloat16,脚本自动转为 FP32 进行精度对比。
  3. 输出特征通过对 patch 特征进行 mean pooling 获得固定维度向量。
  4. image_grid_hws 也必须移动到 NPU 设备。
下载使用量0