新闻详情

新闻详情

首页 / 资讯中心 / 详情

Chinese-CLIP 图文检索推理加速:ONNX 与 TensorRT 部署完整指南

发布时间:2026/9/26 10:23:11来源:尧图网络
Chinese-CLIP 图文检索推理加速:ONNX 与 TensorRT 部署完整指南
Chinese-CLIP 图文检索推理加速ONNX 与 TensorRT 部署完整指南【免费下载链接】Chinese-CLIPChinese version of CLIP which achieves Chinese cross-modal retrieval and representation generation.项目地址: https://gitcode.com/GitHub_Trending/ch/Chinese-CLIPChinese-CLIP 是中文图文跨模态检索模型。这篇带你把 PyTorch 权重两步转成可直接上线的 ONNX 与 TensorRT 引擎并附上 T4 实测时延和 MUGE zero-shot 精度对齐结果跑完一遍你就有可用的部署模型。为什么要转换PyTorch 部署的三个瓶颈上手转换之前先搞清楚要解决的痛点。直接用 PyTorch 跑 Chinese-CLIP 推理通常会撞上三个问题时延偏高。单卡 T4 上图像特征每次 11.12ms、文本特征 12.47ms离线批量勉强能忍在线图文检索服务就偏高了。跨平台麻烦。PyTorch 推理绑死 CUDA 与 GPU 环境换机器、换团队依赖就得重配一遍。ONNX 是标准模型交换格式onnxruntime 自带 CPU 和多种加速器的 provider拿走就能跑。依赖与显存开销大。PyTorch 框架拖着一整条依赖链而 TensorRT 引擎是针对当前显卡编译优化的FP16 精度下权重与中间激活再减半。这三点在在线检索服务里会同时出现查询突发性强、候选集要实时重打分、部署机器未必是 NVIDIA 卡。ONNX vs TensorRT两条路线怎么选先给结论NVIDIA GPU 上追求极致速度选 TensorRT需要 CPU 或跨平台部署选 ONNX。两条路线不是二选一——TensorRT 引擎本身就是从 ONNX 构建的转换链路固定为 PyTorch → ONNX → TensorRT。维度ONNXTensorRT定位跨平台推理CPU/GPU/各类加速器NVIDIA GPU 专用极致加速运行时onnxruntimetrt Runtime对版本敏感ViT-B/16 图像时延T4, ms11.12 → 4.9211.12 → 3.58工程成本低中需对齐环境版本产物.onnx附 .extra_file.trt 引擎判断方法很简单先问服务最终跑在什么硬件上再问对时延要求多苛刻。如果团队已有 onnxruntime 服务框架选 ONNX 就是零迁移成本方案。部署环境清单与一条命令装好版本不匹配是转换报错的第一大来源先把版本钉死后面能省掉大量排错时间。组件版本说明GPUVolta 架构及以上如 T4需支持 FP16 Tensor CoreCUDA11.6实测环境为 11.6cuDNN8.6.0必须与 TensorRT 版本匹配TensorRT8.5.2.2转换与运行版本必须一致ONNX / onnxruntime-gpu1.13.0 / 1.13.1FP16 转换另需 onnxmltools 1.11.1PyTorch1.12.1cu116建议直接 pip 安装 CUDA 11.6 轮子安装命令pip install tensorrt8.5.2.2 onnx1.13.0 onnxruntime-gpu1.13.1 onnxmltools1.11.1 pip install torch1.12.1cu116 torchvision0.13.1cu116 pip install -r requirements.txtcuDNN 请装系统级 8.6.0不要再用 conda 装一份 cudatoolkit版本很容易被覆盖掉导致 TensorRT 构建时报错。后面所有实测数据都基于这套组合。转换实操从 PyTorch 到 ONNX 再到 TensorRT 整条转换是固定两步流水线在项目根目录按顺序跑命令均用相对路径。第一步PyTorch → ONNX脚本是cn_clip/deploy/pytorch_to_onnx.py。python cn_clip/deploy/pytorch_to_onnx.py \ --model-arch ViT-B-16 \ --pytorch-ckpt-path pretrained_weights/clip_cn_vit-b-16.pt \ --save-onnx-path deploy/vit-b-16 \ --convert-text --convert-vision--model-arch选模型规模RN50 / ViT-B-16 / ViT-L-14 / ViT-L-14-336 / ViT-H-14必须与权重一致--pytorch-ckpt-path原始 PyTorch 权重路径缺省则自动下载官方预训练权重--save-onnx-path输出文件名前缀跑完得到 文本/图像 × FP32/FP16 共四个文件--convert-text / --convert-vision分别指定是否转换文本、图像编码器注意 FP16 的 .onnx 会附带一个 .extra_file它是模型的一部分后续不要移动或改名。第二步ONNX → TensorRT脚本是cn_clip/deploy/onnx_to_tensorrt.py。python cn_clip/deploy/onnx_to_tensorrt.py \ --model-arch ViT-B-16 \ --convert-text --text-onnx-path deploy/vit-b-16.txt.fp16.onnx \ --convert-vision --vision-onnx-path deploy/vit-b-16.img.fp16.onnx \ --save-tensorrt-path deploy/vit-b-16 --fp16--text-onnx-path / --vision-onnx-path第一步产出的两个 FP16 ONNX 文件--save-tensorrt-path输出前缀生成 .txt.fp16.trt 与 .img.fp16.trt--fp16构建 FP16 引擎前提是显卡有 Tensor Core耗时视模型规模几分钟到十几分钟日志出现 Finished ONNX to TensorRT conversion... 即完成。跑通验证最小推理示例与输出对齐 ✅转换是否成功标准只有一个三方输出对齐。同一输入下PyTorch、ONNX、TensorRT 的特征归一化后必须基本一致才算通过。ONNX 图像特征提取最小示例import onnxruntime from PIL import Image from cn_clip.clip.utils import image_transform session onnxruntime.InferenceSession(deploy/vit-b-16.img.fp16.onnx, providers[CUDAExecutionProvider]) image image_transform(224)(Image.open(examples/pokemon.jpeg)).unsqueeze(0) feats session.run([unnorm_image_features], {image: image.cpu().numpy()})[0]TensorRT 更短from cn_clip.deploy.tensorrt_utils import TensorRTModel trt TensorRTModel(deploy/vit-b-16.img.fp16.trt) feats trt(inputs{image: image.cuda()})[unnorm_image_features]ONNX 与 TRT 模型都只接受 batch 大小为 1 的输入多张图请循环调用。算相似度时内积要先乘上模型的 logit_scale.exp()官方预训练约为 100再 softmax与 PyTorch 用法完全一致。核对方法一句话归一化后的图像特征与杰尼龟 / 妙蛙种子 / 小火龙 / 皮卡丘四条候选文本做内积皮卡丘概率在三个框架下分别为 9.4523e-01、9.4523e-01、9.4504e-01差异小于 0.1%即对齐。实测数据推理时延与精度对照 ⚡先看结论ViT-B/16 图像时延 11.12ms → 3.58ms约 3.1 倍文本 12.47ms → 1.54ms约 8 倍精度无可见损失。测试环境为单卡 T416GBFP16batch size 1各跑 100 次取平均。时延ms/样本模型图像PyTorch / ONNX / TRT文本PyTorch / ONNX / TRTRN5012.93 / 5.04 /1.363.64 / 0.95 /0.58ViT-B/1611.12 / 4.92 /3.5812.47 / 3.42 /1.54ViT-L/1421.19 / 17.10 /13.0812.45 / 3.48 /1.52ViT-L/14336px47.11 / 48.40 /31.5912.24 / 3.25 /1.54ViT-H/1435.10 / 34.00 /26.9823.98 / 6.01 /3.89模型越小TensorRT 收益越大RN50 图像 12.93 → 1.36ms放大 9.5 倍大模型 ViT-H/14 计算量主导ONNX 与 TRT 的差距收窄但方向一致。文本侧收益普遍大于图像侧文本编码器计算密度低对框架开销更敏感。精度MUGE 检索 zero-shotR1 / R5格式ViT-B/16 R1 / R5ViT-H/14 R1 / R5PyTorch FP1652.1 / 76.763.0 / 84.1ONNX FP1652.0 / 76.863.1 / 84.1TensorRT FP1652.0 / 76.863.1 / 84.2精度差异在 ±0.2 以内与换一台机器带来的浮动同量级可以认为 FP16 转换不掉点。想复现测速把对应模型路径传给 speed_benchmark.py 即可。常见坑与解法这几个报错出现频率最高按现象对号入座TensorRT 构建报错日志提示 cuDNN 版本不匹配→ 固定 cuDNN 8.6.0 搭配 TensorRT 8.5.x并且不要用 conda 再装 cudatoolkit。转换好的 .trt 到目标机器加载失败→ 运行环境的 TensorRT 版本必须与转换时一致对齐不了就直接用官方预转换的 TRT 模型。移动 ONNX 目录后报找不到 extra_file→ FP16 的 .onnx 把小张量拆到 .extra_file 里并按路径引用文件不要移动、不要改名或干脆重新转换。ONNX 输出与 PyTorch 对不上→ 先查输入序列长度是否与转换时的 context-length默认 52一致再查是否传了 batch 大于 1 的输入最后核对 FP16/FP32 精度选择是否对得上。选型速查一句话一个场景用的时候直接查CPU 或非 NVIDIA 硬件跨平台部署 → ONNXNVIDIA GPU 追求极致时延 → TensorRT FP16RN50 / ViT-B/16 这类小模型 → 优先 TensorRT收益最大自定义微调过的权重 → 依次走 PyTorch → ONNX → TensorRT不能跳步环境版本记不住 → 直接抄 CUDA 11.6 cuDNN 8.6.0 TensorRT 8.5.2.2 这套到这里转换、验证、实测都跑完了小模型上 3~8 倍的时延收益拿到手精度基本无损。完整的环境细节与下载说明看 deployment.md转换、推理与测速的全部脚本都在 cn_clip/deploy/ 目录里直接取用即可。【免费下载链接】Chinese-CLIPChinese version of CLIP which achieves Chinese cross-modal retrieval and representation generation.项目地址: https://gitcode.com/GitHub_Trending/ch/Chinese-CLIP创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

SWIG 4.0.2 Windows 安装与 Python/C++ 互操作实战指南 2026/9/26 11:22:46

SWIG 4.0.2 Windows 安装与 Python/C++ 互操作实战指南

简介:本资源为SWIG 4.0.2 Windows官方适配安装包,面向C/C开发者、跨语言集成工程师及Python/Java/Perl等脚本语言使用者,解决在Windows平台快速部署SWIG以实现C/C库与高级语言无缝绑定的核心需求。压缩包含2000个文件,主体为1672个…

阅读更多 →
SWIG 4.0.2 Windows安装与Python C++扩展实战指南 2026/9/26 11:22:46

SWIG 4.0.2 Windows安装与Python C++扩展实战指南

简介:本资源为SWIG 4.0.2 Windows原生安装包,面向C/C开发者、跨语言集成工程师及需要调用底层库的Python/Java/Perl等脚本语言实践者,解决Windows平台下C/C代码与高级语言快速桥接的工程化需求。压缩包含2000个文件,主体为1672个.…

阅读更多 →
SWIG 4.0.2 Windows 安装与 Python 跨语言调用实战指南 2026/9/26 11:22:46

SWIG 4.0.2 Windows 安装与 Python 跨语言调用实战指南

简介:本资源为SWIG 4.0.2 Windows原生安装包,面向C/C开发者、跨语言集成工程师及需要调用底层库的Python/Java/Perl等脚本语言实践者,解决Windows平台下C/C代码与高级语言快速桥接的工程化需求。压缩包含2000个文件,主体为1672个.…

阅读更多 →
Python+Rasa构建可上线的中文聊天机器人实战指南 2026/9/26 11:22:46

Python+Rasa构建可上线的中文聊天机器人实战指南

简介:这是一套面向高校学生与初学者的Rasa中文聊天机器人完整开发实践资源,适用于毕业设计、课程设计及AI项目入门开发,聚焦自然语言理解(NLU)与对话管理(Core)两大核心能力落地。资源包含24个文…

阅读更多 →
白酒瓶缺陷检测数据集使用指南:从解压验真到ROI感知训练 2026/9/26 11:22:46

白酒瓶缺陷检测数据集使用指南:从解压验真到ROI感知训练

简介:本资源为面向工业质检场景的瓶装白酒疵品检测专用数据集,适用于计算机视觉、深度学习方向的研究者与工程师,尤其适合开展缺陷识别模型训练与算法验证。压缩包共含2000个文件,主体为4516张JPG格式白酒瓶图像(含正/…

阅读更多 →
基于SSM+MySQL的决策树算法大学生就业预测系统设计与实现 2026/9/26 11:22:39

基于SSM+MySQL的决策树算法大学生就业预测系统设计与实现

简介:这套SSMMysql的决策树就业预测系统,面向计算机相关专业毕业设计或期末大作业场景,适合需要完成个人用户、企业用户、管理员等多角色功能开发的学习者。系统基于SSM框架与Mysql数据库,引入决策树算法对学生就业信息进行预测分…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉