资讯动态

CLIP 模型选型:9 个官方权重与 2 类视觉编码器的取舍

发布时间:2026/9/2 10:18:17 来源:尧图企业网站定制
CLIP 模型选型9 个官方权重与 2 类视觉编码器的取舍【免费下载链接】CLIPCLIP (Contrastive Language-Image Pretraining), Predict the most relevant text snippet given an image项目地址: https://gitcode.com/GitHub_Trending/cl/CLIPCLIP对比语言-图像预训练用自然语言指令对图像做零样本识别给一张图加一批候选文本输出最相关的文本。官方权重共 9 个视觉侧只有两类编码器——ResNet 与 Vision Transformer图像切块后过 Transformer。选型的核心矛盾只有一个权重规模与输入分辨率往上走精度上限更高显存和算力开销同步上升。本文给出可直接执行的选择结论与仓库内可验证的依据。⚡ 选型速查约束先到型号后到先看这张表再读后文。型号清单与 clip/clip.py 中的_MODELS字典一致你的约束或场景推荐变体一句话理由单卡低算力、先跑通流程ViT-B/32与 RN50 同为最早发布的两个权重224px 输入是 README 示例的默认选择高并发服务、固定英文类别RN50 / RN101卷积主干224px 输入下单像素开销最小便于批量推理高分辨率输入336pxViT-L/14336px同一 ViT-L 主干换更高分辨率输入细节更足代价见下文只有 CPURN50 或 ViT-B/32小权重 小输入且仓库对 CPU 推理自动降为 float32英文文本的检索/匹配任一 9 个变体所有模型共享 77 token 的文本 Transformer类别集固定后任意变体均可 9 个变体的规格与发布时间以下信息全部可溯源型号与权重 URL 见 clip/clip.py发布时间见 model-card.md分辨率由 clip/model.py 的位置编码与池化维度推出。型号视觉编码器输入分辨率发布时间RN50ResNet50 层224px初始发布2021-01RN101ResNet101 层224px阶段发布RN50x4ResNet宽度按 EfficientNet 规则扩 4 倍384px阶段发布RN50x16ResNet宽度扩 16 倍512px2021-07RN50x64ResNet宽度扩 64 倍640px2022-01ViT-B/32ViT32px patch224÷327共 49 块224px初始发布2021-01ViT-B/16ViT16px patch24×24 块384px2021-07ViT-L/14ViT14px patch16×16 块224px2022-01ViT-L/14336pxViT-L 同宽同深输入改 336px24×24 块336px2022-04两类编码器的本质差异用白话说ResNet 系ModifiedResNet卷积主干入口用 3 层 stem 卷积最终池化换成 QKV 注意力池化。xN表示宽度按 EfficientNet 缩放规则扩大 N 倍分辨率从 384 升到 640。ViT 系VisionTransformer把整图切成 patch 序列后做自注意力。ViT-L/14336px 与 ViT-L/14 的差异只有输入分辨率——patch 数从 16×16256 变为 24×24576自注意力开销约增为 (576/256)² ≈ 5 倍这是它更高分辨率的直接代价。文本侧 9 个变体完全一致77 token 上限的掩码自注意力 Transformer见 clip/clip.py 的tokenize与 clip/model.py 的CLIP.__init__图文各自投影到同一嵌入空间算相似度。 仓库内可溯源的表现依据仓库不含分型号的精度或耗时数字以下只列有出处的结论可溯源结论口径出处CLIP 的 ImageNet 零样本识别精度可接近原版 ResNet50未使用该数据集的 128 万条标注零样本 Top-1相对 ResNet50 的表述README.md 首段官方在 34 个基准上评测过 CLIPFood101、ImageNet、SST-2、Kinetics700 等完整列表见 model-card.md论文口径仓库未附逐型号数值model-card.md Performance 节细粒度分类与物体计数是 CLIP 的共性短板官方限制声明model-card.md Limitations 节ViT-B/32 对一张 CIFAR-100 图的零样本 Top-1 输出为 snake 65.31%、turtle 12.29%官方代码示例输出设备不同数值略有差异README.md Zero-Shot Prediction 节选型含义同一档位内分辨率与宽度更大的变体RN50x64、ViT-L/14336px上限更高但开销更大跨任务比较时先确认任务是否落在细粒度分类或计数上这类任务即便换更大型号也不会有质的改善。 三个典型落地场景单卡推理选 ViT-B/32显存预算小、目标是先把 pipeline 跑通。它是与 RN50 同批发布的初始权重也是仓库全部示例的默认型号。代价224px 输入下小目标细节有限换到 ViT-B/16 可把 patch 从 32px 细化到 16px输入同步到 384px。高分辨率输入选 ViT-L/14336px或预算充足时 RN50x64图像细节占比高时值得上 336px 输入。代价已量化相对 ViT-L/14注意力计算量约 5 倍见上节推导。若输入要 512px 以上只有 RN50x16/RN50x64 这一支可选显存规划按对应分辨率留足。高并发、固定英文类别的服务选 RN50 或 RN101224px 输入、卷积主干单图预处理与编码开销是 9 个型号里最低一档。两条硬约束必须写进方案其一所有 CLIP 权重仅用英文训练与评测非英文输入需先转写model-card.md Out-of-Scope Use Cases其二官方明确任何部署场景无论是否商用都在范围外上线前必须用固定类别集在真实域内数据上测出基线再定型号。▶ 最小可用示例import torch, clip from PIL import Image model, preprocess clip.load(ViT-B/32, devicecpu) image preprocess(Image.open(CLIP.png)).unsqueeze(0) text clip.tokenize([a diagram, a dog, a cat]) with torch.no_grad(): logits_per_image, _ model(image, text) probs logits_per_image.softmax(dim-1)README.md 中该示例在 GPU 上的参考输出为[[0.9927937, 0.00421068, 0.00299572]]。常见坑文本超过 77 token 时tokenize直接抛错长描述要截断或用truncateTrue。图像必须走load()返回的preprocessResize 中心裁剪 固定均值方差归一化换成自定义 transform 结果不可比。clip.load的device参数不传会落到 CPU 且权重为 float32速度慢一个量级权重自动下载到~/.cache/clip并做 SHA256 校验校验失败会重新下载。版本演进与维护仓库当前收录 9 个官方权重最新为 2022-04 发布的 ViT-L/14336px更大的模型家族至 ViT-G/14在 README.md See Also 一节指向 OpenCLIP 项目。后续若型号有增减_MODELS字典与build_modelclip/model.py是唯一需要改动的两处。【免费下载链接】CLIPCLIP (Contrastive Language-Image Pretraining), Predict the most relevant text snippet given an image项目地址: https://gitcode.com/GitHub_Trending/cl/CLIP创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价