m0_74196153/vit_base_patch16_clip_224.openai-npu
模型介绍文件和版本Pull Requests讨论分析

ViT-Base-Patch16-CLIP-NPU

1. 模型介绍

ViT-Base-Patch16-CLIP 是 OpenAI CLIP 项目中使用的 Vision Transformer (ViT) 基础模型,输入图像大小为 224×224,patch 大小为 16×16。该模型在 OpenAI 的 WIT-400M 数据集上训练,可用于图像特征提取和零样本图像分类。

属性说明
原始模型timm/vit_base_patch16_clip_224.openai
任务类型Image Feature Extraction / 图像特征提取
模型框架PyTorch (timm)
输入格式224×224 RGB 图像
输出格式512 维特征向量
模型参数~86M
语言英语(en)
开源协议Apache-2.0

2. NPU 适配说明

本仓库在 华为昇腾 Ascend910 NPU 上完成了 ViT-Base-Patch16-CLIP 的适配和验证。

适配要点

  1. 模型加载:通过 timm.create_model() 加载预训练模型,使用 .to(device) 将模型移至 NPU
  2. 数据预处理:使用 timm 的 create_transform() 和 resolve_data_config() 自动匹配模型所需的预处理参数
  3. 推理执行:模型在 NPU 上执行前向推理,输出特征向量自动回传到 CPU 进行后续处理
  4. 设备无关代码:推理脚本通过 --device 参数支持 cpu/npu 切换

环境要求

组件版本
Python3.11.14
PyTorch2.9.0+cpu
torch_npu2.9.0.post1
timm1.0.27
CANN25.5.2
NPUAscend910 (64GB HBM)

Python 依赖

timm>=1.0.0
torch>=2.0.0
Pillow>=10.0.0
numpy>=1.24.0

3. 推理方法

3.1 NPU 推理

# 默认图片推理
python inference.py --device npu

# 自定义图片
python inference.py --device npu --image samples/test_image.png

# CPU 推理
python inference.py --device cpu

3.2 CPU/NPU 精度对比

python compare_cpu_npu.py

脚本自动执行 NPU 推理和 CPU 推理,计算特征向量的精度对比指标。

4. 推理结果

4.1 NPU 推理输出

测试条件:

  • 输入图片:224×224 合成测试图像
  • 推理设备:Ascend910 NPU
  • 模型:vit_base_patch16_clip_224.openai
指标数值
模型加载时间12.45s(缓存后)
推理时间0.1686s
输出特征维度512
输出特征范数11.877

4.2 CPU/NPU 精度对比

指标数值说明
均方误差 (MSE)2.61e-06极小
最大绝对误差 (MaxAbs)8.22e-03< 1%
平均绝对误差 (MAE)1.28e-03< 1%
相对误差0.3083%< 1% ✅
余弦相似度0.999996高度一致
Top-100 维度一致率100.00%完全一致

结论:NPU 与 CPU 推理结果误差为 0.3083%,远低于 1% 的精度要求。特征向量的余弦相似度达到 0.999996,表示 NPU 与 CPU 的输出在方向上几乎完全一致。

5. 文件说明

vit_base_patch16_clip_224.openai/
├── inference.py              # 推理脚本(支持 CPU/NPU)
├── compare_cpu_npu.py        # CPU vs NPU 精度对比脚本
├── requirements.txt          # Python 依赖清单
├── README.md                 # 本说明文档
├── samples/
│   └── test_image.png        # 测试图像样本
├── output_npu.npy            # NPU 推理输出特征
├── screenshot_inference.png  # NPU 推理终端截图
└── screenshot_compare.png    # CPU/NPU 对比终端截图

6. 模型标签

  • #+NPU
  • #+CV
  • #+图像特征提取
  • #+ViT
  • #+CLIP
  • #+昇腾
  • #+timm
下载使用量0