10 分钟跑通 open_clip不写一行标注的零样本多模态检索【免费下载链接】open_clipAn open source implementation of CLIP.项目地址: https://gitcode.com/GitHub_Trending/op/open_clip搜索框里只敢填标签词你有 5 万张商品图搜索框里却只能填标签标一个新类目要几天类目一变又要重来。open_clip 把图像和文本编码进同一向量空间零样本检索开箱即用。最小可行上手路径一条命令装好依赖依赖版本备注Python 3.9pyproject.toml声明的最低版本torch 2.6低于此版本装不上torchvision与 torch 匹配图像预处理依赖timm 1.0.29ConvNeXt、SigLIP 等图像塔依赖pip install open_clip_torch # 后续要自己训练 CLIP 时再装 training 依赖组 pip install open_clip_torch[training]import torch from PIL import Image import open_clip model, _, preprocess open_clip.create_model_and_transforms( ViT-B-32, pretrainedlaion2b_s34b_b79k) model.eval() # 模型默认训练模式推理前必须切 eval tokenizer open_clip.get_tokenizer(ViT-B-32) image preprocess(Image.open(docs/CLIP.png)).unsqueeze(0) text tokenizer([a diagram, a dog, a cat]) with torch.no_grad(): image_features model.encode_image(image) text_features model.encode_text(text) # 省略两侧特征归一化算余弦相似度softmax 得标签概率权重首次运行自动下载之后离线可用。整个流程不到 10 分钟瓶颈只在首次下载权重。示例里对docs/CLIP.png打三个候选标签a diagram概率为 1.0README 官方示例。核心能力速查ViT-B-32 还是 ViT-H-14 怎么选 参数量取自docs/model_profile.csv零样本精度取自 README 的官方 ImageNet-1k 基准。表里参数量是图像塔加文本塔的总和。同一模型不同预训练权重精度不同选权重往往比选架构更影响效果。模型参数量ImageNet 零样本 Top-1适用场景推荐硬件ViT-B-32151M72.8%DataComp-1B 权重快速验证、显存紧张8GB 显存单卡ViT-B-16150M73.5%DataComp-1B 权重精度与吞吐平衡12GB 显存单卡ViT-L-14428M79.2%DataComp-1B 权重生产级跨模态检索24GB 显存单卡ViT-H-14986M78.0%LAION-2B 权重高精度离线任务多卡ViT-bigG-142540M80.1%LAION-2B 权重精度上限、集群训练多卡 A100不知道选哪个就选ViT-B-32laion2b_s34b_b79k。这是 README 示例的默认组合8GB 显存单卡就能跑。想换模型时用open_clip.list_pretrained()查可用权重。实战场景检索和训练两条最短路径场景一商品图以文搜图图库没有标签体系时把自然语言直接当查询词。标签换一句描述就能扩展新类目不用改任何代码。image_features model.encode_image(product_images) # 商品图批量编码 text_features model.encode_text(tokenizer(红色皮质运动鞋)) # 省略两侧归一化后算余弦相似度按得分取 top-k参考官方 38 数据集零样本评测docs/openclip_results.csvViT-B-16的 ImageNet 零样本 top-1 为 73.5%。场景二自建图文对从零训练数据整理成 webdataset每个样本同名.jpg加.txt后直接起训练。不想跑 ImageNet 零样本评估时删掉--imagenet-val即可省一份数据。python -m open_clip_train.main \ --model ViT-B-32 \ --train-data /data/train-{0000..2175}.tar \ --imagenet-val /data/imagenet/validation/ \ --batch-size128 --lr1e-3 --epochs30官方用 128 张 A100 在 LAION-400M 上训ViT-B/32耗时约 36 小时。ImageNet 零样本 top-1 为 62.96%出处docs/PRETRAINED.md。调优与踩坑清单六个高频问题 以下问题都可以用一行命令或参数修复。老权重加载后精度无故掉点→ 模型名换-quickgelu后缀如ViT-B-32-quickgelu→ 精度对齐官方基准ConvNeXt、SigLIP 报Unknown model→pip install -U timm→ 图像塔由 timm 提供需较新版本多卡训练显存被 logit 矩阵吃爆→ 加--local-loss --gather-with-grad→ 空间复杂度降到近似线性单卡 batch 上不去→ 先开--grad-checkpointing再用--accum-freq k等效放大 batch训练吞吐低、指标盯不过来→--torchcompile配--torchcompile-strategy task再用--report-to tensorboard盯 zero-shot 曲线线上推理想省显存→open_clip.utils.replace_linear换 bitsandbytesLinear8bitLt→ 官方教程实测量化层权重显存约降 2 倍CIFAR-10 零样本 int8 88.83% 对 fp16 88.76%延伸资源预训练模型列表38 数据集零样本基准结果模型参数量与 FLOPs 表训练脚本示例交互 NotebookInt8 推理教程【免费下载链接】open_clipAn open source implementation of CLIP.项目地址: https://gitcode.com/GitHub_Trending/op/open_clip创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考