Nomic-Embed-Vision-V1.5 昇腾 NPU 部署指南
环境信息
| 项目 | 版本/内容 |
|---|
| 设备 | 910B3 |
| Python | 3.11.14 |
| PyTorch | 2.8.0+cpu |
| torch_npu | 2.8.0.post2 |
| transformers | 4.57.6 |
| einops | 0.8.2 |
| safetensors | 0.7.0 |
文件结构
nomic-embed-vision-v1.5-ascend/
├── inference.py # 推理脚本
├── README.md # 本文档
└── test.log # 运行日志
原始模型目录 /opt/atomgit/mxy/nomic-embed-vision-v1.5/:
├── model.safetensors
├── config.json
├── preprocessor_config.json
├── README.md
└── nomic_ai/ # 适配代码
├── modeling_nomic_vision.py
└── __init__.py
安装依赖
容器已预装必要依赖,无需额外安装。
运行推理
基本用法
cd nomic-embed-vision-v1.5-ascend/
source /usr/local/Ascend/ascend-toolkit/set_env.sh
python3 inference.py --image_path test_image.jpg
参数说明
| 参数 | 说明 | 默认值 |
|---|
| --model_path | 模型权重路径 | /opt/atomgit/mxy/nomic-embed-vision-v1.5 |
| --image_path | 待推理图像路径 | 必需 |
| --device | 运行设备 | npu:0 |
| --precision_test | 运行精度测试 | False |
精度测试
cd nomic-embed-vision-v1.5-ascend/
source /usr/local/Ascend/ascend-toolkit/set_env.sh
python3 inference.py --model_path /opt/atomgit/mxy/nomic-embed-vision-v1.5 --image_path /opt/atomgit/mxy/nomic-embed-vision-v1.5-ascend/test_images.png --precision_test
精度测试结果
| 指标 | 实测值 | 阈值 | 状态 |
|---|
| Max Error (sum) | 1.22e-04 | < 1e-3 | PASS |
| Max Error (mean) | 1.19e-07 | < 1e-5 | PASS |
| Max Error (std) | 2.98e-08 | < 1e-5 | PASS |
性能数据
| 操作 | 耗时 |
|---|
| CPU 参考计算 (20 tensors) | 0.0486s |
| NPU 推理 (20 tensors) | 0.2445s |
运行日志
2026-05-19 08:47:05,949 - INFO - Nomic-Embed-Vision-V1.5 Ascend NPU Inference
2026-05-19 08:47:05,949 - INFO - Model path: /opt/atomgit/mxy/nomic-embed-vision-v1.5
2026-05-19 08:47:05,949 - INFO - Device: npu:0
2026-05-19 08:47:08,931 - INFO - Model loaded on device: npu:0
2026-05-19 08:47:09,349 - INFO - Running inference...
2026-05-19 08:47:09,600 - INFO - Inference time: 0.0094s
2026-05-19 08:47:09,600 - INFO - Pooler output shape: torch.Size([1, 768])
2026-05-19 08:47:09,602 - INFO - ============================================================
2026-05-19 08:47:09,602 - INFO - Inference completed successfully!
性能参考
| 适配方案 | 单图推理时间 |
|---|
| 预热后 NPU | ~9.4ms |
| 首次推理 NPU | ~250ms |
模型说明
Nomic-Embed-Vision-V1.5 是一种高性能视觉嵌入模型,与 nomic-embed-text-v1.5 共享相同的嵌入空间。
模型规格
- 架构: NomicVisionModel (基于 BERT 的 ViT)
- 隐藏层大小: 768
- 注意力头数: 12
- 层数: 12
- Patch 大小: 16x16
- 输入分辨率: 224x224
- 输出维度: 768
输出格式
pooler_output: L2 归一化的 CLS token 嵌入,形状 (1, 768)
last_hidden_state: 所有 token 的隐藏状态,形状 (1, 197, 768)
注意事项
- 模型使用 NPU 进行推理加速
- 输出已进行 L2 归一化,可直接用于相似度计算
- 首次推理较慢(包含模型加载和编译优化),后续推理约 9-10ms/图
- 精度测试: NPU 与 CPU 误差极小,最大 sum error 为 1.22e-04,远低于阈值 1e-3