CLIP 模型:连接图像与文本的桥梁
2024 年正在成为多模态机器学习的关键年份。从实时文本生成图像模型到开放词汇模型,再到像 GPT-4V 和 Gemini Pro Vision 这样的多模态大语言模型,人工智能正在为前所未有的交互式多模态应用和体验做好准备。在许多 2023 年多模态进展的核心,是一种称为对比语言图像预训练(Contrastive Language-Image Pretraining,CLIP)的技术。
1. CLIP 基本原理
1.1 什么是 CLIP
CLIP 由 OpenAI 于 2021 年推出,旨在对齐视觉编码器和文本编码器,使得视觉编码器对狗的照片的表示与文本编码器对"一张狗的照片"的表示相似。这种对齐方式在零样本任务和作为更具体、定制应用的起点(预训练)方面都非常有用。
要理解 CLIP,我们需要将这个缩写词拆解为三个组成部分:
对比学习(Contrastive):采用对比技术来对齐两种模态。对比技术取成对的输入(例如图像及其标题),并训练模型的两个编码器尽可能接近地表示这些配对。同时,模型被激励将未配对的输入(例如狗的图像和文本"一张汽车的照片")表示得尽可能远。
语言-图像(Language-Image):CLIP 模型接受两种类型的输入,文本(语言)或图像。CLIP 通过两个编码器处理这些不同的输入——文本编码器和图像编码器。这些编码器将数据投影到低维潜在空间,为每个输入生成嵌入向量。关键细节是图像和文本编码器将数据嵌入到同一空间中——在 CLIP 的情况下,是 512 维向量空间。
预训练(Pretraining):虽然 CLIP 本身对零样本分类、语义搜索和无监督数据探索等应用很有用,但 CLIP 也被用作各种多模态应用的构建模块,从 Stable Diffusion 和 DALL-E 到 StyleCLIP 和 OWL-ViT。对于这些下游应用程序,初始 CLIP 模型被视为"预训练"起点,整个模型针对其新用例进行微调。
1.2 训练数据
虽然 OpenAI 从未明确指定或共享用于训练原始 CLIP 模型的数据,但 CLIP 论文提到该模型是在从互联网收集的 4 亿个图像-文本对上训练的。值得注意的是,在 OpenCLIP 排行榜上,OpenAI 最大、最强大的 CLIP 模型在 38 个数据集的平均零样本准确率方面仅排名第 41 位。
2. CLIP 训练数据演变史
自 OpenAI 发布 CLIP 以来,研究界在数据收集和过滤策略方面取得了显著进展。以下是五个最重要的以数据为中心的对比语言-图像预训练进展:
2.1 ALIGN:用噪声文本监督扩大规模
发布时间:2021 年 2 月
关键创新:用规模换取过滤
OpenAI 的 CLIP 使用了 4 亿个图像-文本对。在描述新数据集时,他们参考了 Google 的 Conceptual Captions(GCC)作为灵感来源——这是一个相对较小的数据集(330 万个图像描述对),利用了昂贵的过滤和后处理技术。这些技术虽然强大,但不是特别可扩展。
ALIGN(A Large-scale ImaGe and Noisy-text embedding)旨在通过用规模换取过滤来克服这一瓶颈。ALIGN 利用 18 亿对图像和替代文本,而不是依赖小型、精心注释和策划的图像标题数据集。虽然这些替代文本描述平均而言远比标题嘈杂,但数据集的庞大规模绰绰有余。研究人员仅应用基本过滤来删除重复项、具有 1000+ 个关联替代文本的图像以及无信息的替代文本(太常见或包含罕见标记),但避免了昂贵的过滤操作。仅通过这些简单步骤,ALIGN 在各种零样本和微调任务上匹配或超越了最先进的水平。
2.2 K-LITE:利用外部知识
发布时间:2022 年 4 月
关键创新:用外部知识增强文本
像 ALIGN 一样,K-LITE 面临着一个相当大的挑战:用于对比预训练的高质量图像-文本对数量有限。K-LITE(Knowledge-augmented Language Image Training and Evaluation)利用大规模预先存在的文本数据集来增强图像-标题对的多模态数据集,而不是转向替代文本并用噪声换取规模。
K-LITE 专注于这样一个直观的概念:将定义或描述作为上下文与未知概念一起包含可以帮助培养广义理解。这就是为什么人们在第一次介绍技术术语和不常见的单词时经常简要地定义它们。
为了实施这一直觉,微软和加州大学伯克利分校的研究人员使用 WordNet 和 Wiktionary 来增强图像-文本对中的文本。对于孤立的概念(例如 ImageNet 中的类标签),概念本身会得到增强;而对于标题(例如来自 GCC 的标题),最不常见的名词短语会得到增强。有了这些额外的结构化知识,对比预训练模型在迁移学习任务上表现出显著改进。
2.3 OpenCLIP:可重现的扩展定律
发布时间:2022 年 12 月
关键创新:系统研究数据规模的影响
到 2022 年底,transformer 模型已经在文本和视觉(vision transformer)领域确立。这两个领域的开创性实证工作也清楚地表明,transformer 模型在单模态任务上的性能可以通过简单的扩展定律非常好地描述。换句话说,人们可以相当准确地预测随着训练数据量、训练时间或模型大小的增加,模型的表现会有多好。
OpenCLIP 通过使用有史以来发布的最大开源图像-文本对数据集(50 亿)系统地研究训练数据对零样本和微调任务上模型性能的影响,将这一研究扩展到多模态场景。与单模态情况一样,该研究揭示了模型在多模态任务上的性能按计算、看到的样本和模型参数数量的幂律缩放。
比幂律的存在更有趣的是观察到的幂律缩放与预训练数据之间的关系。保留 OpenAI 的 CLIP 模型架构和训练配方,OpenCLIP 模型在零样本图像检索任务上表现出更强的扩展性。对于 ImageNet 上的零样本图像分类,OpenAI 的模型(在其专有数据集上训练)表现出更强的扩展性。这些发现突出了数据收集和过滤程序对下游性能的重要性。
⚠️ 注意:LAION 数据集因包含非法图像而从互联网上撤下。
2.4 MetaCLIP:揭秘 CLIP 数据
发布时间:2023 年 9 月
关键创新:揭示数据策划方法
OpenCLIP 试图了解下游任务的性能如何随数据量、计算和模型参数数量扩展,而 MetaCLIP 则专注于如何选择数据。正如作者所说,"我们认为 CLIP 成功的主要因素是其数据,而不是模型架构或预训练目标。"
为了测试这一假设,研究团队固定了模型架构和训练制度,并进行了实验以揭示 OpenAI 在训练其原始 CLIP 模型时使用的数据策划方法。MetaCLIP 团队测试了与子字符串匹配、过滤和平衡数据分布以减轻噪声相关的多种策略,发现当每个文本在训练数据集中最多限制为 20,000 次出现时,可以实现最佳性能——即使是单词 "photo",在初始数据池中出现了 5400 万次,在训练数据中也被限制为 20,000 个图像-文本对。使用这种策略,MetaCLIP 在来自 Common Crawl 数据集的 4 亿个图像-文本对上训练,在各种基准测试中优于 OpenAI 的 CLIP 模型。
2.5 DFN:数据过滤网络
发布时间:2023 年 11 月
关键创新:用模型过滤数据
通过 MetaCLIP,很明显数据策划可能是训练高性能多模态模型(如 CLIP)最重要的因素。MetaCLIP 的过滤策略非常成功,但它也主要基于启发式方法。在《数据过滤网络》(Data Filtering Networks)中,研究人员询问他们是否可以训练一个模型来更有效地进行这种过滤。
为了测试这一点,研究人员使用来自 Conceptual 12M 的高质量数据训练了一个 CLIP 模型来过滤高质量和低质量数据。然后,这个数据过滤网络(DFN)被用来通过从未策划的数据集(在这种情况下是 Common Crawl)中仅选择高质量数据来构建更大的高质量数据集。在过滤数据上训练的最终 CLIP 模型优于仅在初始高质量数据上训练的模型,也优于在大规模未过滤数据上训练的模型。
这种方法的核心理念是:用高质量数据训练的小模型可以作为数据质量的判断器,为更大规模的数据集提供智能过滤。
3. 知识图谱与多模态学习
3.1 知识图谱在多模态学习中的作用
知识图谱(Knowledge Graphs,KGs)在推进各种 AI 应用方面发挥着关键作用,语义网社区对多模态维度的探索为创新开辟了新途径。知识图谱通过提供结构化的知识表示,可以有效地支持多模态任务。
根据《Knowledge Graphs Meet Multi-Modal Learning: A Comprehensive Survey》论文,知识图谱在多模态学习中主要有两个研究方向:
KG4MM(知识图谱驱动的多模态学习):知识图谱支持多模态任务,如图像分类和视觉问答。
MM4KG(多模态知识图谱):将知识图谱研究扩展到 MMKG(多模态知识图谱)领域,包括多模态知识图谱补全和实体对齐等任务。
3.2 K-LITE 模型详解
K-LITE 是知识增强多模态学习的代表性工作,其核心思想是利用外部知识源(如 WordNet 和 Wiktionary)来增强图像-文本对的语义信息。
工作原理:
- 知识提取:从外部知识库中提取概念的定义和描述
- 文本增强:将知识信息融入到原始标题或类别标签中
- 对比学习:使用增强后的文本进行对比预训练
- 迁移学习:在下游任务上评估模型的迁移能力
优势:
- 提供了更丰富的语义上下文
- 增强了模型对罕见概念的理解
- 在迁移学习任务上表现出色
- 不需要大幅增加训练数据规模
4. CLIP 模型变体与扩展
4.1 核心 CLIP 模型
根据 Awesome CLIP Papers 的整理,以下是主要的 CLIP 模型及其创新点:
模型 | 年份 | 关键创新 | 开源 |
---|---|---|---|
CLIP | 2021 | 简化的对比语言-图像预训练 | ✔️ |
ALIGN | 2021 | 使用噪声替代文本扩展规模 | ✔️ |
CLOOB | 2021 | 避免 InfoNCE 目标饱和 | ✔️ |
DeCLIP | 2021 | 通过监督提高数据效率 | ✔️ |
FILIP | 2021 | 细粒度交互式语言-图像预训练 | ✔️ |
K-LITE | 2022 | 利用外部知识增强文本 | ✔️ |
CyCLIP | 2022 | 优化图像和文本空间的几何一致性 | ✔️ |
FLIP | 2022 | 通过掩码提高速度-准确率权衡 | ✔️ |
OpenCLIP | 2022 | 可重现的扩展定律 | ✔️ |
EVA-CLIP | 2023 | 改进的表示学习和优化 | ✔️ |
SigLIP | 2023 | Sigmoid 损失解耦批量大小 | ✔️ |
CLIPA | 2023 | 逆向扩展定律提高训练效率 | ✔️ |
MetaCLIP | 2023 | 揭示数据策划过程 | ✔️ |
DFN | 2023 | 用模型过滤数据 | ✔️ |
4.2 CLIP + 额外预训练目标
一些模型通过添加额外的预训练目标来扩展 CLIP:
- SLIP(2021):结合自监督学习
- FLAVA(2021):使用图像-文本匹配、多模态掩码建模、掩码图像建模和掩码语言建模
- BLIP(2022):结合图像-文本匹配和语言建模
- MobileCLIP(2023):多模态强化训练
4.3 其他模态的 CLIP 扩展
音频领域
- AudioCLIP(2021):扩展到音频、图像和文本
- WAV2CLIP(2021):从 CLIP 学习鲁棒的音频表示
- SpeechCLIP(2022):整合语音、图像和文本
- CLAP(2023):大规模对比语言-音频预训练
视频领域
- CLIP4Clip(2021):端到端视频片段检索
- VideoCLIP(2021):零样本视频-文本理解
- X-CLIP(2022):多粒度对比学习用于视频-文本检索
3D 领域
- PointCLIP(2021):点云理解
- CLIP2Point(2022):迁移 CLIP 到点云分类
- PointCLIPV2(2022):结合 GPT 的 3D 开放世界学习
5. 实践应用与未来展望
5.1 主要应用场景
CLIP 模型在以下领域展现出强大的应用潜力:
- 零样本分类:无需针对特定类别训练即可进行图像分类
- 语义搜索:基于自然语言描述搜索图像
- 图像生成:作为 Stable Diffusion、DALL-E 等模型的组件
- 视觉问答:理解图像内容并回答相关问题
- 跨模态检索:在图像和文本之间进行双向检索
5.2 当前挑战
尽管 CLIP 取得了显著进展,但仍面临以下挑战:
- 数据质量与规模的平衡:如何在保证数据质量的同时扩大训练规模
- 计算资源需求:大规模预训练需要大量计算资源
- 细粒度理解能力:在需要详细视觉理解的任务上仍有提升空间
- 多语言支持:大多数模型主要针对英语优化
- 知识更新:如何有效地更新模型中的知识而无需完全重新训练
5.3 新兴趋势
- 大语言模型集成:将 CLIP 与大型语言模型结合,实现更强大的多模态理解
- 多模态预训练策略:探索更有效的预训练目标和策略
- 参数高效微调:使用 LoRA、Adapter 等技术减少微调成本
- 知识增强方法:进一步探索外部知识在提升模型能力中的作用
- 数据策划自动化:使用机器学习方法自动化数据过滤和选择过程
6. 参考资源
- Awesome CLIP Papers - CLIP 相关论文的综合集合
- OpenCLIP - CLIP 的开源实现
- Zero-shot Prediction Plugin for FiftyOne - 将 OpenCLIP 兼容模型应用于数据的工具
- Knowledge Graphs Meet Multi-Modal Learning: A Comprehensive Survey - 知识图谱与多模态学习综述
- K-LITE: Learning Transferable Visual Models with External Knowledge - K-LITE 论文
- A History of CLIP Model Training Data Advances - CLIP 训练数据演变历史