CLIP 模型全面解析
CLIP 的基本原理与模型架构
(Multi-modal ML with OpenAI’s CLIP | Pinecone) 图 1:CLIP 将相关的图像和文本映射到相近的向量空间位置,不相关的则距离较远 (Multi-modal ML with OpenAI’s CLIP | Pinecone)。例如,文本描述“两只狗在寒冷田野上奔跑”会被编码到与真实犬类奔跑场景图片相似的向量;而描述“大象在塞伦盖蒂”的文本与狗的图片在向量空间中距离很远。
CLIP(Contrastive Language-Image Pre-training,对比语言-图像预训练)是 OpenAI 于 2021 年提出的一种多模态模型,它通过对比学习在海量图像-文本对上进行自监督训练,将图像和文本映射到同一个嵌入空间 (理解 OpenAI 的 CLIP 模型 - IcyFeather233 - 博客园)。简单来说,CLIP 包含两个主体:一个文本编码器和一个图像编码器,分别将输入的文本和图像转换为对应的特征向量表示 (理解 OpenAI 的 CLIP 模型 - IcyFeather233 - 博客园)。如图所示,一张狗的照片和句子“一张狗的图片”在 CLIP 的嵌入空间中会非常接近 (理解 OpenAI 的 CLIP 模型 - IcyFeather233 - 博客园)。这种共同空间使模型能够跨模态地理解语义——例如,我们可以用一段文字描述去检索匹配的图片,反之亦然 (理解 OpenAI 的 CLIP 模型 - IcyFeather233 - 博客园)。CLIP 最初在4亿对图文数据上训练,具有出色的零样本能力:在未针对 ImageNet 进行微调的情况下,CLIP 仅凭类别名称提示就取得了与直接在 ImageNet 上训练的ResNet-50可比的分类准确率 (理解 OpenAI 的 CLIP 模型 - IcyFeather233 - 博客园)。
(Multi-modal ML with OpenAI’s CLIP | Pinecone) 图 2:CLIP 模型架构示意图。模型包含一个文本编码器(Transformer)和一个图像编码器(可用 ViT 或 ResNet),分别将输入文本和图像映射为固定长度的向量嵌入 (Multi-modal ML with OpenAI’s CLIP | Pinecone)。这些向量位于同一语义空间,维度一般为512。
在模型架构上,CLIP 采用了双塔结构:文本编码器通常使用 Transformer(与 BERT 类似的自注意力模型)来处理文本序列;图像编码器可以使用经典卷积网络(如 ResNet-50)或视觉Transformer(ViT)来提取图像特征 (理解 OpenAI 的 CLIP 模型 - IcyFeather233 - 博客园)。OpenAI 在论文中尝试了 ResNet-50 和 ViT 两种架构,发现 ViT 在大规模训练下收敛更快 (理解 OpenAI 的 CLIP 模型 - IcyFeather233 - 博客园)。例如,最大规模的ResNet模型(RN50x64)在592个V100 GPU上训练18天,而等价规模的ViT在256个V100上仅需12天 (理解 OpenAI 的 CLIP 模型 - IcyFeather233 - 博客园)。值得注意的是,CLIP的文本和图像编码器均从零开始训练,未使用ImageNet预训练权重或BERT预训练权重做初始化 (理解 OpenAI 的 CLIP 模型 - IcyFeather233 - 博客园)。文本编码器输出文本描述的嵌入向量,图像编码器输出图像内容的嵌入向量,一般都归一化为单位向量并映射到相同维度的多模态语义空间 (理解 OpenAI 的 CLIP 模型 - IcyFeather233 - 博客园)。在OpenAI提供的模型中,这个向量维度为512 (Multi-modal ML with OpenAI’s CLIP | Pinecone)。通过这种设计,语义相关的图文将生成相似的向量表示,不相关的则相距较远 (Multi-modal ML with OpenAI’s CLIP | Pinecone)。
训练数据、目标函数与训练策略
训练数据: CLIP使用了约4亿对图像-文本作为训练语料 (理解 OpenAI 的 CLIP 模型 - IcyFeather233 - 博客园)。这些图文对主要来自互联网,例如图片及其附带的标题、描述、Alt文本等,涵盖了种类繁多的视觉概念。如此大规模且丰富多样的弱标注数据,使CLIP具备广泛的视觉语义知识。不过,这些数据未经严格人工清洗,难免存在噪声和偏差,这也是CLIP训练面临的挑战之一 (

9235

被折叠的 条评论
为什么被折叠?



