wilyw/convnext-base-clip-laion2b-ascend
模型介绍文件和版本Pull Requests讨论分析
下载使用量0

timm/convnext_base.clip_laion2b

华为昇腾 NPU 适配验证报告 for timm/convnext_base.clip_laion2b.

模型介绍

timm/convnext_base.clip_laion2b 是基于 ConvNeXt Base 架构、使用 CLIP 目标在 LAION-2B 数据集上预训练的视觉基础模型。该模型输出 640 维图像特征向量,适用于图像分类、零样本评估及下游微调场景。

属性值
架构ConvNeXt Base
预训练数据LAION-2B (CLIP)
输入尺寸3 x 256 x 256
输出维度640-dim 特征向量
源仓库timm/convnext_base.clip_laion2b
许可证Apache-2.0

硬件与软件要求

硬件要求

组件要求
NPU 设备Atlas 800 A2 (910B) 或同等级昇腾设备
NPU 内存建议 16GB 以上 HBM
内存建议 32GB 以上

软件要求

软件版本
Python3.8+
torch2.9.0
torch_npu2.9.0.post1
timm1.0.27
torchvision-
Pillow-

环境准备

# 安装依赖
pip install torch==2.9.0 torch_npu==2.9.0.post1 timm==1.0.27 torchvision pillow

# 如果 HuggingFace 无法访问,设置镜像
export HF_ENDPOINT=https://hf-mirror.com

快速开始

单图推理

cd /opt/atomgit/models/timm-convnext-base-clip-laion2b
python ascend_adapter.py --image /path/to/image.jpg

批量推理

python ascend_adapter.py --batch /path/to/image_dir/ --batch-size 8

性能测试

python ascend_adapter.py --benchmark

精度评测

在 Atlas 800 A2 (910B4) 上,使用相同随机输入对比 CPU (FP32) 与 NPU 推理输出:

指标数值阈值结果
最大绝对误差1.18e-2< 5e-2PASS
平均绝对误差1.33e-3-PASS
最小余弦相似度0.999989> 0.999PASS
平均余弦相似度0.999989> 0.999PASS

结论:NPU 推理结果与 CPU 基准高度一致,特征向量方向偏差极小,满足图像分类及特征提取任务的精度要求。

性能评测

在单卡 Atlas 800 A2 (910B4) 上的测试结果:

延迟测试 (bs=1)

指标数值
平均延迟22.28 ms
最小延迟21.78 ms
最大延迟22.60 ms

吞吐量测试

Batch Size吞吐量 (samples/sec)延迟 (ms/batch)
142.4123.58
4167.1723.93
8280.6628.50
16374.8342.69

自动化验证

一键执行完整验证流程(环境检查、模型加载、精度对比、性能基准):

python verify_npu.py --report ./validation_report.json

验证报告将输出为 JSON 格式,包含环境信息、加载耗时、精度指标及性能数据。

项目文件说明

文件说明
ascend_adapter.py模型适配与推理脚本,支持单图/批量推理及 benchmark
verify_npu.py自动化验证脚本,覆盖环境、精度、性能全链路验证
validation_report.json验证报告(运行 verify_npu.py 后生成)
README.md本说明文档

已知限制

  • 当前验证基于 FP32 精度;FP16 未做专项测试,如需使用建议先进行精度验证。
  • NPU 与 CPU 基准的最大绝对误差约 1.2e-2,属于昇腾算子实现差异的正常范围;余弦相似度 > 0.99999,特征方向几乎无偏差。
  • 批量大小 > 16 时未在单卡 910B4 上验证,请根据实际 HBM 占用情况调整。
  • 模型权重首次运行时会自动从 HuggingFace 下载,建议在可访问 HuggingFace 或已配置镜像的环境中执行。

相关链接

  • HuggingFace 模型主页
  • timm 文档
  • 昇腾 NPU 文档