推理提速 3 倍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 是中文图文跨模态检索模型。这篇记录我们在 T4 上做的部署实战把 PyTorch 模型转成 ONNX 与 TensorRT 两种格式ViT-B/16 图像侧推理时延从 11.12ms 压到 3.58ms文本侧从 12.47ms 压到 1.54msMUGE zero-shot R1 只动 ±0.1。提速是真的精度几乎无损全程只用了仓库里两个现成脚本不用改一行模型代码。先定位瓶颈Chinese-CLIP 部署慢在哪线上每次检索 图像编码器一次前向 文本编码器一次前向 一次内积内积开销可以忽略瓶颈全在两个前向。PyTorch 前向带着框架层开销算子调度、图构建、张量搬运都摊在里面QPS 一上来GPU 时间大部分花在了这些零碎上。所以加速对象就是图像和文本这两个特征提取器把它们的计算图固化下来开销立刻降一个台阶。两条路线定位不同先想清楚要哪条格式定位ONNX跨平台通用中间格式CPU、NVIDIA、Apple Silicon、边缘设备都能跑TensorRTNVIDIA 专属推理引擎吃满 Tensor Core同卡延迟最低一张表核对硬件与软件版本环境装错最费时间先对着清单过一遍项目版本 / 要求说明GPUVolta 架构及以上必须支持 FP16 Tensor Core如 T4、A10显存16GB 及以上ViT-B/16 到 ViT-H/14 的转换与推理都够用CUDA11.6与 PyTorch cu116 版本对齐cuDNN8.6.0必须与 TensorRT 版本严格匹配TensorRT8.5.2.28.5.x 全系对应 cuDNN 8.6.0ONNX 工具链onnx 1.13.0 onnxruntime-gpu 1.13.1 onnxmltools 1.11.1onnxmltools 负责 FP16 转换PyTorch1.12.1cu116建议 pip 直装 wheel别混 conda cudatoolkitpip 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.txt注意 ONNX 工具链是两条路线的前置转 TensorRT 也要先过一遍 ONNX所以哪怕最终只用 TRT这一组包也得装齐。一条命令导出 Chinese-CLIP ONNX 模型pytorch_to_onnx.py 读入一个 .pt 预训练权重产出 4 个 ONNX 文件文本/图像 × FP32/FP16后续主要用 FP16 这一组。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-vision3 个核心参数参数作用--model-arch模型规模可选 RN50 / ViT-B-16 / ViT-L-14 / ViT-L-14-336 / ViT-H-14--pytorch-ckpt-pathPyTorch ckpt 路径必须与 model-arch 对应也可指向自训 ckpt--save-onnx-path输出路径前缀生成.txt/.img.fp16/.fp32.onnx文件--convert-text/--convert-vision是两个开关--context-length默认 52。顺带一提FP16 ONNX 附带一个.extra_file文件内部存了它的路径引用转换完别挪动目录否则加载时报找不到文件。图像侧特征提取ONNX 推理五行代码下面这段做的事会话载入图像侧引擎预处理后跑一次前向拿到未归一化的图像特征。img_session onnxruntime.InferenceSession(deploy/vit-b-16.img.fp16.onnx, providers[CUDAExecutionProvider]) image preprocess(Image.open(examples/pokemon.jpeg)).unsqueeze(0) features img_session.run([unnorm_image_features], {image: image.numpy()})[0]注意输入只吃 batch1一次处理一张图批量要自己循环。文本侧特征提取ONNX 推理五行代码文本侧同理给两条中文候选词分词填充长度 52和转换时一致算出文本特征。txt_session onnxruntime.InferenceSession(deploy/vit-b-16.txt.fp16.onnx, providers[CUDAExecutionProvider]) text clip.tokenize([杰尼龟, 妙蛙种子], context_length52) features txt_session.run([unnorm_text_features], {text: text.numpy()})[0]拿到归一化特征后和图像特征内积再 softmax 就是相似度操作和 PyTorch 版完全一样。ONNX 转 TensorRT 引擎--fp16 参数速查onnx_to_tensorrt.py 吃上一步的两个 ONNX 文件构建出两个.trt引擎python cn_clip/deploy/onnx_to_tensorrt.py \ --model-arch ViT-B-16 \ --text-onnx-path deploy/vit-b-16.txt.fp16.onnx \ --vision-onnx-path deploy/vit-b-16.img.fp16.onnx \ --save-tensorrt-path deploy/vit-b-16 \ --convert-text --convert-vision \ --fp16--fp16表示构建 FP16 精度引擎前提是卡上有 FP16 Tensor Core不开 FP16 就用--fp32构建 FP32 引擎个别对 FP16 溢出敏感的算子可以经--fp16-banned-ops指定保持 FP32。转换耗时按规模不同几分钟到十几分钟。不想自己转的话官方预训练 TensorRT 引擎基于 TensorRT 8.5.2.2 构建可直接获取模型规模图像侧引擎文本侧引擎RN50rn50.img.fp16.trtrn50.txt.fp16.trtViT-B/16vit-b-16.img.fp16.trtvit-b-16.txt.fp16.trtViT-L/14vit-l-14.img.fp16.trtvit-l-14.txt.fp16.trtViT-L/14336pxvit-l-14-336.img.fp16.trtvit-l-14-336.txt.fp16.trtViT-H/14vit-h-14.img.fp16.trtvit-h-14.txt.fp16.trt下载后放进 deploy/ 目录即可直接使用。另外提醒一点转换和运行如果不在同一台机器上运行环境的 TensorRT 库版本要和转换时保持一致否则加载引擎直接报错。TensorRTModel 最小推理示例tensorrt_utils.py 封装的 TensorRTModel 用法引擎路径传进去dict 传输入就能跑前向。from cn_clip.deploy.tensorrt_utils import TensorRTModel trt_model TensorRTModel(deploy/vit-b-16.img.fp16.trt) image preprocess(Image.open(examples/pokemon.jpeg)).unsqueeze(0).cuda() features trt_model(inputs{image: image})[unnorm_image_features]图像侧到此结束文本侧输入键是text序列长度 52规则和 ONNX 版一致。T4 实测Chinese-CLIP 推理时延与 MUGE 精度对照测试环境单卡 T416GB 显存、Xeon Platinum 8163 2.5GHz、64GB 内存全部 FP16、batch1。时延是 100 次特征提取的均值来自 speed_benchmark.py时延和 zero-shot 精度放同一张表模型规模任务PyTorchONNXTensorRTViT-B/16图像推理时延 (ms)11.124.923.58ViT-B/16文本推理时延 (ms)12.473.421.54ViT-H/14图像推理时延 (ms)35.1034.0026.98ViT-B/16MUGE zero-shot R1 (%)52.152.052.0ViT-H/14MUGE zero-shot R1 (%)63.062.962.9读法两句模型越小提速越大ViT-B/16 图像侧 3.1 倍、文本侧 8.1 倍ViT-H/14 这类大模型 TensorRT 优化空间小约 1.3 倍。R1 波动全部在 ±0.1 以内工程上可以直接忽略。部署踩坑速查三个最常见的⚠️cuDNN 与 TensorRT 版本不匹配TensorRT 8.5.x 必须配 cuDNN 8.6.0小版本错一位就直接加载报错。torch 建议走 pip 的 cu116 wheel 安装别在同一环境里混 conda 的 cudatoolkit这是 cuDNN 版本漂移的头号来源。⚠️onnxruntime 缺 CUDAExecutionProviderInferenceSession 建好了却回退 CPU多半是装成了 onnxruntime 而不是 onnxruntime-gpu装错一个包GPU 加速收益全丢。⚠️FP16 精度取舍FP16 引擎是提速主力3.58ms 对 11.12ms但动态范围比 FP32 窄个别算子会饱和漂移。转换脚本默认会把 LayerNorm 一类的 POWReduce 模式保留在 FP32一般直接用--fp16即可自训 ckpt 若发现精度掉把敏感算子加进--fp16-banned-ops再转一次。一句话选型ONNX 还是 TensorRT要跨平台部署CPU、其他 GPU 厂商、边缘设备选ONNX通用中间格式runtime 生态成熟。单张 NVIDIA 卡、追极致时延与 QPS选TensorRTFP16 引擎同卡延迟最低。【免费下载链接】Chinese-CLIPChinese version of CLIP which achieves Chinese cross-modal retrieval and representation generation.项目地址: https://gitcode.com/GitHub_Trending/ch/Chinese-CLIP创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
企业数字化 ERP 产品动态
相关推荐
Android天气预报App课设实战:从源码解析到答辩高分技巧 简介:这份资源是面向Android初学者与课程设计需求者的完整天气预报App项目源码,基于Android Studio开发,可直接导入运行,适合作为期末大作业或练手项目。项目通过中国天气网API以HTTP方式获取网络数据,使用JSON解析后展… · 2026/9/26 7:40:55
三步跑通 BlockSuite 预设编辑器:从页面到画布的完整接入路径 三步跑通 BlockSuite 预设编辑器:从页面到画布的完整接入路径 【免费下载链接】blocksuite 🧩 Content editing tech stack for the web - BlockSuite is a toolkit for building editors and collaborative applications. 项目地址: https://gitcode.… · 2026/9/26 7:40:55
HarmonyOS ArkTS中toggleLike为何必须创建新实例 1. 这个 toggleLike 方法到底在“翻”什么?——从表象到内存模型的逐层拆解你看到标题里那句“toggleLike 方法会创建一个新的 FigureModel 实例并翻转其 liked 属性”,第一反应可能是:这不就是个简单的状态切换吗?点一下爱心变红… · 2026/9/26 7:40:43
从素材到成片:读懂video-use背后的完整视频处理链路 做视频处理这些年,我对“video-use”这个词所涵盖的东西越来越有体感。它不是一个软件、一个格式或者某个特效的名字,而是一条完整的链路:从你脑子里冒出“我要做一条片子”开始,到最终成片在别人屏幕上播放,中间每一个… · 2026/9/26 8:55:24
Sourcetree安装配置教程:从零到精通Git图形化操作 如果你正被 Git 命令行绕得头晕,尤其是刚开始接触 Git 的那一两个月,我强烈建议你先装一个 Sourcetree 试试。这是一款免费的 Git 图形化客户端,支持 Windows 和 macOS,也是很多老牌开发团队一直在用的工具。它把 clone、commit、… · 2026/9/26 8:55:24
WorkBuddy Enterprise企业级AI平台架构与Agent生态落地实践 1. 从零理解 WorkBuddy Enterprise 的定位与核心价值1.1 它到底是什么,解决的是谁的问题WorkBuddy Enterprise 是腾讯云推出的一套企业级 AI 平台与 Agent 生态产品。说人话就是:它不是给个人开发者玩的那种“装个插件、写两行提示词”的小工具ÿ… · 2026/9/26 8:55:18
CLI驱动的代码评审基础设施:基于Git Diffs与LLM Agent的开源实践 1. 项目概述:这不是又一个“AI写代码”工具,而是一套可嵌入开发流程的开源代码评审协议你有没有过这样的经历:PR提上去,等了两天没人点“Approve”,最后发现是同事在休假,或者压根没注意到这个改动… · 2026/9/26 8:55:18
Atlas 300V 24G推理加速卡部署YOLO全流程:选型、环境与性能调优 前两天一个做边缘智能的朋友发消息问我:手里那块Atlas 300V 24G到底算不算运算加速卡,能不能拿来跑YOLO做实时检测。这个问题挺典型的,很多从GPU或者纯CPU方案转过来的团队,第一次接触华为昇腾这个系列都会先犹豫一阵:… · 2026/9/26 8:55:18
数据库课后习题答案别硬背:当测试用例集刷,效率翻倍 简介:万常选版《数据库原理与设计》课后习题答案资源,覆盖第2至6章及第9章,适合正在学习关系模型、数据库建模、关系数据理论与模式求精的本科生、自学者作为复习与自测材料。压缩包共7个文件,含3个doc参考答案、2个sql示例脚本、… · 2026/9/26 0:00:21
OpenClaw 替代品?Hermes Agent 踩坑实录:macOS 飞书接入 TaoToken 配置 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 0:00:40
向下兼容与向上兼容:接口设计中的兼容性策略与工程实践 一次版本升级事故,是很多团队绕不过去的坎。线上环境里,服务端明明已经上线了新版接口,老的移动端还在照着旧文档传参数。请求一到网关,校验直接拒绝,用户操作失败,客服群炸了锅,开发群里开始互… · 2026/9/26 0:00:46