这个项目能做什么

OpenCLIP 是 OpenAI 的 CLIP(对比语言-图像预训练)的开源实现。它提供了一个 Python 库 open_clip_torch,用于加载预训练的图像-文本模型、计算嵌入并运行零样本分类,同时还提供了一套训练栈,用于复现和扩展 CLIP 风格的模型。 主要能力: - 预训练模型库:包含在 LAION-400M、LAION-2B、DataComp-1B 等数据集上训练的模型,并支持加载 OpenAI CLIP、SigLIP、DFN、SigLIP2 和 PE 权重。可以通过 open_clip.list_pretrained() 列出模型,并使用 create_model_and_transforms 加载,包括从本地路径或 Hugging Face Hub 加载。 - 推理 API:将图像和文本编码到共享的嵌入空间,然后计算基于相似度的标签概率,用于零样本分类。示例用法展示了 ViT-B-32 和 laion2b_s34b_b79k 权重。 - 训练栈:主分支使用重构后的训练流水线,围绕 TrainingTask 包装器、基于字典的批次、FSDP2 支持、NaFlex 可变分辨率图像/音频流水线以及多种 torch.compile 策略构建。v3 分支保留了旧的发布稳定训练 API。 - 模型家族:CLIP、SigLIP、CoCa、MaMMUT、CLAP 音频-文本、NaFlex CLIP/CLAP、GenLIP/GenLAP 生成式字幕,以及带有 RoPE、SwiGLU、RMSNorm 和掩码池化的现代文本塔。 - 工具:分词器包装器、损失工厂(create_loss)、WebDataset 流水线、长度分桶、梯度累积支持以及 Hugging Face 分词器集成。 README 中的重要操作细节:最低要求 torch>=2.6,检查点加载使用 weights_only=True,并且主分支记录了若干破坏性的 API/CLI 变更。现有的预训练 .pt 检查点仍然可以加载。该项目还指向 clip-retrieval 用于大规模嵌入计算,以及 WiSE-FT 用于在分类任务上微调零样本模型。