IT 论文精读 · PAPER 6
Radford 等 · OpenAI · ICML 2021
2021 年,OpenAI(后来做出 ChatGPT 的那家公司)发布了 CLIP:不再请人给图片打标签,而是从互联网上收来4 亿对「图片 + 它旁边的文字说明」,让机器自己学会「这张图和这句话说的是不是同一回事」。学成之后,它不用再训练就能认出成千上万种没专门教过的东西。今天你用文字生成图片(Stable Diffusion、DALL·E)、用一句话搜图,背后都有它。
在这之前,教机器认图像是办一所只考选择题的学校:先雇一大批人,给上百万张图一张张手工贴标签——「猫」「狗」「飞机」——机器再对着背。贵、慢不说,最要命的是学会一千种就只会这一千种:想让它多认一个「滑板」,就得重新收集图、重新标、重新训一轮。而且它认的只是编号,「猫」对它来说不过是第 281 号选项,跟「猫爱抓沙发」这些含义毫无关系。
CLIP 的点子是:老师其实早就免费待在互联网上了。网上每张图片旁边几乎都有人写好的文字——图注、标题、配文。别再出选择题,直接玩一个连线配对游戏:一次发给机器一叠图片和一叠打乱的说明文字,让它把「哪张图配哪句话」连对。连错了就调整自己,连对为止。这个游戏不用人出题、题量近乎无限。
关键在于,机器为了玩好配对,练出了两个翻译官:一个把图片翻成一种内部的「意思坐标」,一个把句子也翻到同一套坐标里——说同一件事的图和话,会被翻到彼此挨得很近的位置,就像地图上两家紧邻的店。
要认新东西时,你只需用文字报上候选名字:比如把「一张滑板的照片」「一张猫的照片」都交给文字翻译官,再把要认的图交给图片翻译官,看图落在哪句话的旁边——离谁近就是谁。因为「滑板」这个词的意思它在配对游戏里早就见识过,所以不用任何新训练,写句话就等于当场造出一个新的识别器。类别不再是固定的选项表,而是你随口说出的语言。
视觉从此接上了语言的水管。想生成「一只骑滑板的柯基」,机器得先懂这句话和什么样的图「意思相近」——CLIP 练出的这套共同坐标,正是后来 Stable Diffusion、DALL·E 这类文生图模型的地基;今天的多模态助手(能看图聊天的 AI)大多也用它的「图片翻译官」当眼睛。也得诚实说一句:它擅长认「是什么」,但数数、分辨极相近的车型这类细活儿至今仍不灵。
与其雇人给图片打标签,不如让机器拿互联网上现成的 4 亿对「图 + 配文」玩连线配对,练出把图像和语言放进同一套「意思坐标」的本事——从此认新东西不用重新训练,写一句话就是一个识别器。这套坐标成了文生图和多模态 AI 的地基。
想看配对游戏的结构图、真实数字和它输在哪? → 切到精读版
CLIP(Contrastive Language-Image Pre-training)用从互联网收集的 4 亿对图文数据,以对比学习同时训练一个图像编码器和一个文本编码器,把图像和文字嵌进同一个向量空间;训练完后只靠把类别名写成一句话,就能零样本(zero-shot)迁移到 30 多个视觉任务——不用 ImageNet 的 128 万张训练图中的任何一张,就追平了在其上全监督训练的 ResNet-50。它把视觉从「固定类别的分类器」带进「用语言即时定义任务」的时代,成为文生图与多模态大模型的地基。
作者是 Alec Radford(GPT-1/GPT-2 的第一作者)、Jong Wook Kim 等,OpenAI 团队,发表于 ICML 2021。它上承两条线:NLP 里 GPT 证明的「网上生数据 + 大规模预训练」范式,和视觉里 VirTex、ConVIRT 等「用自然语言监督学图像」的小规模先驱(更早的 Li 等 2017 做过零样本,但 ImageNet 准确率只有 11.5%);同期还有 Google 的 ALIGN 用 18 亿对更脏的数据验证同一思路。下启 DALL·E 2、Stable Diffusion、LLaVA 等几乎整个多模态时代,开源社区以 OpenCLIP + LAION 数据集复刻并延续了它。
2021 年的计算机视觉停在一个别扭的位置。NLP 那边,GPT 系列已经证明:拿互联网上近乎无限的生文本做预训练,模型能零样本干各种活。而视觉的主流仍是监督学习——在 ImageNet 这类人工标注数据集上训练。这有三个硬伤:
而互联网上躺着海量免费的监督信号:每张图旁边的自然语言描述。它比类别编号信息丰富得多(一句话里有物体、动作、关系、场景),也不需要雇人。问题只在于:此前用它的尝试规模太小、方法太低效,成绩上不了台面。CLIP 要回答的就是:把「语言监督 + 规模」推到底,视觉能不能复制 NLP 的奇迹?
CLIP 不用任何人工标注,而是自建了一个 4 亿对的图文数据集 WIT(WebImageText):用约 50 万个查询词在网上搜集图片和它们的配文,每个词条大致平衡数量。监督信号从「第 281 号类别」变成了「一句人话」——类别有了语义,而且天然开放:世界上有多少种说法,就有多少种潜在的类别。
直觉的做法是让模型看图生成配文(像图像版 GPT),但作者发现这条路训练效率极低——网上配文措辞千变万化,逐词猜「人到底会怎么写」太难,算力都耗在无关紧要的用词上。CLIP 换成一个宽松得多的目标:不用会写,只要会认。
做法是:一个批次取 N 对图文,图像编码器把 N 张图各压成一个向量,文本编码器把 N 句话也压成向量,两两算相似度得到一张 N×N 的分数表;训练目标是让表格对角线上的 N 个「真配对」分数尽量高、其余 N²−N 个「错配」分数尽量低。关键一式是 相似度 = cos(图向量, 文向量) / τ——就是量两个向量方向多接近(τ 是可学的温度,控制分数拉开的锐度),再对行、列各做一次交叉熵(即「每张图在 N 句话里选对那句、每句话在 N 张图里选对那张」的选择题损失)。论文实测:同样的零样本成绩,对比目标比预测词袋的方案省 4 倍数据/算力——把目标从「复述」降级成「认亲」,正是规模能推上去的原因。
训练完成后,两个编码器就是一对进出同一语义空间的翻译官。要做任何分类任务:把每个候选类别名套进模板写成一句话(如 a photo of a {label}),全部过文本编码器得到一组「类别向量」;再把待认的图过图像编码器,哪个类别向量和图向量的余弦相似度最高,就判为哪类。类别表是临时用文字写出来的,所以任务可以随写随换——这就是「零样本」的机制本体。论文还发现提示工程(prompt engineering)有实效:因为配文里的词有歧义(crane 是吊车也是鹤),用「一张…的照片」这类模板消歧、再把 80 个不同模板的类别向量平均(集成),能把 ImageNet 零样本准确率提高近 5 个百分点。
结构是干净的双塔:图像塔训了两个家族——改良版 ResNet 和 ViT(共 9 个规格,最强的是 ViT-L/14@336px);文本塔是一个 6300 万参数、12 层的 Transformer。两塔各自输出的向量经一次线性投影进入共同空间。规模才是主角:4 亿对数据训 32 轮,最大的 ResNet 版本在 592 块 V100 GPU 上训了 18 天,ViT-L/14 用 256 块 V100 训了 12 天。方法本身几乎没有新部件——新的是把「语言监督 + 对比目标 + 规模」这三件事同时推满。
它把视觉带进了「预训练 + 提示」的时代,影响至少四路:① 文生图的地基——Stable Diffusion 直接用 CLIP 文本编码器理解提示词,DALL·E 2 整个建立在 CLIP 的图文空间上;② 多模态大模型的眼睛——LLaVA 等「看图聊天」模型的主流做法就是把 CLIP 视觉编码器接到大语言模型上;③ 开放词汇的一切——检测、分割、检索、内容审核都从「固定类别」升级为「文字随写随认」,以图搜图/以文搜图成了一行余弦相似度;④ 开源生态——OpenAI 只放了模型没放数据,社区以 OpenCLIP + LAION-400M/5B 复刻并反超,顺带催生了开源图文数据集这条产业线。方法论上,它和 GPT 一起坐实了一个信条:与其精雕任务专用模型,不如在海量弱监督数据上学一个通用接口。
① 一句话:4 亿对网络图文 + 对比学习,把图像和语言训进同一个向量空间,类别用文字随写随认。
② 痛点:监督视觉标注贵、类别封闭、换分布就崩;而互联网上有近乎免费的语言监督。
③ 机制一(对比目标):N×N 相似度表,真配对拉高、错配压低;「会认就行、不必会写」,比预测配文省 4 倍效率——这是规模推得上去的关键。
④ 机制二(零样本):分类器 = 把类别名写成句子过文本编码器;prompt 模板 + 80 模板集成再涨近 5 个点。
⑤ 结果:零样本 ImageNet 76.2% 追平监督 ResNet-50;27 个数据集赢 16 个;分布偏移下鲁棒性差距最多缩小 75%;但 MNIST 只有 88%。
⑥ 影响:Stable Diffusion / DALL·E 2 的文本理解、LLaVA 类模型的视觉编码器、开放词汇检测分割检索、OpenCLIP+LAION 开源生态。
⑦ 局限:数数与细粒度差、组合理解像词袋、贴字条就被骗、网络数据偏见、纯零样本离 SOTA 还差约 1000 倍算力。
⑧ 站远看:它是「规模 + 弱监督 + 通用接口」信条在视觉上的落地——视觉的 GPT 时刻。