MobileClip2-S3 部署
介绍
MobileCLIP2 是 MobileCLIP 的升级版高效图文预训练模型,专为移动端和低延迟场景设计。模型规模在 50–150M 参数之间,推理延迟仅需 3–15ms,却在零样本任务上达到了行业领先水平。与前代相比,MobileCLIP2 在多模态强化训练中引入了三大改进:其一,采用在 DFN 数据集上训练的高质量 CLIP 教师集成,提升蒸馏效果;其二,改进 captioner 教师,并在多个高质量图文数据集上微调,以提升描述多样性和覆盖度;其三,结合多个生成模型的合成 captions,进一步增强模型鲁棒性。实验结果表明,MobileCLIP2-B 在 ImageNet-1k 零样本分类中比 MobileCLIP-B 提升了 2.2% 精度;MobileCLIP2-S4 在精度上达到 SigLIP-SO400M/14 的水平,但模型小 2 倍、延迟更低,并在 DFN ViT-L/14 上实现 2.5 倍加速。我们已开源预训练模型与数据生成工具,方便社区扩展和复现。
本章节将演示如何在边缘设备上完成 MobileClip2-S3 部署、加载与推理流程。提供以下方式部署:
- AidLite Python API
在本案例中,模型推理运行在设备端 NPU 计算单元,通过代码调用相关接口接收用户输入并返回结果。
该例子展示了匹配文字与若干图片的关系,非常适合处理以文搜图或自动化图像标注的场景。
- 设备:Rhino Pi-X1
- 系统:Ubuntu 22.04
- 源模型:MobileClip2-S3
- 模型精度:FP16
- Model Farm 模型参考:MobileClip2-S3-FP16
支持平台
| 平台 | 运行方式 |
|---|---|
| Rhino Pi-X1 | Ubuntu 22.04, AidLux |
准备工作
- Rhino Pi-X1 硬件
- Ubuntu 22.04 系统或 AidLux 系统
下载 MobileClip2-S3-FP16 模型资源
mms list MobileClip2
#------------------------可以看到 MobileClip2-S3 模型------------------------
Model Precision Chipset Backend
----- --------- ------- -------
MobileClip2-S3 FP16 Qualcomm QCS8550 QNN2.36
# 下载 MobileClip2-S3
mms get -m MobileClip2-S3 -p fp16 -c qcs8550 -b qnn2.36 -d /home/aidlux/mobileclip2-s3
cd /home/aidlux/mobileclip2-s3
# 解压
unzip mobileclip2_s3_qcs8550_qnn2.36_fp16_aidlite.zip💡注意
该模型位于 Model Farm 的预览板块,仅能通过阿加犀板卡 mms 命令获取
AidLite SDK 安装
开发者也可以参考模型文件夹中的 README.md 安装 SDK
- 确保 QNN 后端版本
≥ 2.36 - 确保
aidlite-sdk和aidlite-qnnxxx的版本是2.3.x
# AidLite & QNN 版本检查
dpkg -l | grep aidlite
#------------------------ 可以看到类似如下输出 ------------------------
ii aidlite-qnn236 2.3.0.230 arm64 aidlux aidlite qnn236 backend plugin
ii aidlite-sdk 2.3.0.230 arm64 aidlux inference module sdkQNN & AidLite 版本更新
# 安装 AidLite SDK
sudo aid-pkg update
sudo aid-pkg install aidlite-sdk
sudo aid-pkg install aidlite-qnn236
# aidlite sdk c++ check
python3 -c "import aidlite; print(aidlite.get_library_version())"
# aidlite sdk python check
python3 -c "import aidlite; print(aidlite.get_py_library_version())"AidLite Python API 部署
寻找一只猫的照片
# 安装预处理相关依赖
cd /home/aidlux/mobileclip2-s3/model_farm_mobileclip2_s3_qcs8550_qnn2.36_fp16_aidlite/python/open_clip
pip install -e .
pip install timm
pip install torch torchvision torchaudio
cd /home/aidlux/mobileclip2-s3/model_farm_mobileclip2_s3_qcs8550_qnn2.36_fp16_aidlite
# --imgs: 图片集输入
# --invoke_nums: 循环次数
python3 python/run_test.py --imgs_path python/imgs --text "a photo of cat" --invoke_nums 10可以在命令行看到模型推理耗时 (单位 ms)以及检测结果:
model load success!
====================================
Text model invoke time:
--mean_invoke_time is 5.9433698654174805
--max_invoke_time is 6.332874298095703
--min_invoke_time is 5.860805511474609
--var_invoketime is 0.020272773895158025
====================================
====================================
Image model invoke time:
--mean_invoke_time is 10.306566953659058
--max_invoke_time is 10.692834854125977
--min_invoke_time is 10.177850723266602
--var_invoketime is 0.031342316297866546
====================================
Input text is : a photo of cat
Image similar is :
cat_1 87.1933%
cat_2 5.6707%
cat_dog_1 5.9176%
cat_dog_2 1.2054%
chicken 0.0000%
horse 0.0000%
monkey 0.0129%
sport3 0.0000%根据输出可以发现 cat_1.png 这张图片与 a photo of cat 相似度最高
寻找两只猫的照片
cd /home/aidlux/mobileclip2-s3/model_farm_mobileclip2_s3_qcs8550_qnn2.36_fp16_aidlite
# --imgs: 图片集输入
# --invoke_nums: 循环次数
python3 python/run_test.py --imgs_path python/imgs --text "a photo of two cats" --invoke_nums 10可以在命令行看到模型推理耗时 (单位 ms)以及检测结果:
====================================
Text model invoke time:
--mean_invoke_time is 5.883049964904785
--max_invoke_time is 6.177663803100586
--min_invoke_time is 5.804538726806641
--var_invoketime is 0.01604852343461971
====================================
====================================
Image model invoke time:
--mean_invoke_time is 10.379016399383545
--max_invoke_time is 10.837554931640625
--min_invoke_time is 10.234355926513672
--var_invoketime is 0.03658466241063252
====================================
Input text is : a photo of two cats
Image similar is :
cat_1 0.0491%
cat_2 90.2158%
cat_dog_1 3.9922%
cat_dog_2 5.7429%
chicken 0.0000%
horse 0.0000%
monkey 0.0000%
sport3 0.0000%根据输出可以发现 cat_2.png 这张图片与 a photo of two cats 相似度最高