第 18 讲:多模态

Natural Language Processing with Deep Learning · Lecture 18。个人学习讲义与配套实验,按主题整理并持续修订。

课程源码 ZIP ↓

个人整理的学习笔记,非官方讲义;课程来源与整理说明见课程介绍。配套示例未逐一运行验证。

本篇目录

对应:Stanford CS224N Winter 2026 Lecture 17(嘉宾讲座:Multimodality)。和同目录 CS336 第 17 讲(多模态)有重叠:本讲侧重直觉与 NLP 视角。 配套代码:code/lecture18/(需要 PyTorch;导入第 7 讲的 transformer.py) 预计阅读时间:3 小时


0. 本讲导航

0.1 学完本讲,你应该能够

  1. 说出让语言模型处理图像、语音的动机,以及”符号接地”问题。
  2. 梳理视觉—语言模型的发展:图像描述、视觉问答、双流预训练、CLIP、视觉—语言大模型。
  3. 解释 CLIP 的对比学习、零样本分类的原理,以及它在组合关系上的弱点。
  4. 解释图像怎样变成”词元”:视觉 Transformer 的图像块嵌入、分辨率与词元数的取舍、离散图像词元。
  5. 比较几种视觉—语言模型的架构:Flamingo(交叉注意力)、BLIP-2(Q-Former)、LLaVA(投影层)、早融合(Chameleon)。
  6. 说出多模态模型特有的问题:物体幻觉、组合性、“不看图也能答”、文字攻击,以及评估的难点。
  7. 了解语音模型(Whisper、语音词元、端到端的语音模型)和其他模态的大致思路。

0.2 先修知识

知识点用在哪里最低要求
第 7 讲第 3、4 节自注意力、交叉注意力(编码器—解码器)、位置编码
第 12 讲第 2 节双塔编码器、对比学习、批内负例
第 10 讲第 4 节指令微调
第 16 讲第 3、7 节分词、离散词元

0.3 本讲地图

第1节  动机:语言之外的世界
第2节  视觉与语言的相遇;CLIP                        ← 代码 01(演示 2、3)
第3节  图像怎样变成词元                               ← 代码 01(演示 1)
第4节  视觉—语言大模型的架构
第5节  训练数据
第6节  多模态模型的问题
第7节  语音与其他模态
第8–12节 小结、与作业的关系、练习、延伸阅读、下一讲预告

关于本讲的实验数字:01 号代码训练约 30 秒,编写讲义时完整运行过,讲义引用的是实际输出。它用的是合成的 8 × 8 小图,结论只说明原理。


1. 动机:语言之外的世界

人类的交流是多模态的:我们指着东西说话,看图表讨论问题,听语气判断情绪。很多任务天然需要多种模态:描述一张照片、回答关于图表的问题、读懂一张截图里的报错、根据说明书的插图组装家具、听一段录音写纪要。

还有一个更深的理由:符号接地问题(symbol grounding,Harnad 1990)。只从文本学习的模型,知道”红色”和”苹果""消防车”经常一起出现,但它从没”见过”红色。它的意义完全由其他符号定义,像一本只用字典里的词解释字典里的词的字典。一种观点认为,真正的语言理解需要把符号和感知、行动联系起来(Bisk 等 2020,Experience Grounds Language)。另一种观点认为,大规模的文本已经隐含了大量关于世界的结构。多模态模型让我们可以从实验上探讨这个问题。


2. 视觉与语言的相遇;CLIP

2.1 早期:图像描述与视觉问答

  • 图像描述(image captioning):用 CNN 把图片编码成一个向量,再用 RNN 生成描述(Show and Tell,Vinyals 等 2015);加上注意力机制后,生成每个词时可以”看”图片的不同区域(Show, Attend and Tell,Xu 等 2015)。这和第 6 讲的 seq2seq + 注意力完全是同一个架构,只是编码器从”读句子”换成了”看图片”。
  • 视觉问答(VQA,Antol 等 2015):给一张图和一个问题,回答问题。研究者很快发现了语言先验问题:很多问题不看图就能猜对。“图里有几个……?“答”2”,“这是什么运动?“答”网球”,就能拿到不错的分数。VQA v2(Goyal 等 2017)为每个问题配了两张答案不同的相似图片,迫使模型真的看图。
  • 双流预训练(2019,ViLBERT、LXMERT 等):仿照 BERT,在图文对上用掩码预测等目标预训练,图像用目标检测器提取的区域特征表示。

2.2 CLIP:对比学习

CLIP(Radford 等 2021)的做法极其简单,规模却很大:

  1. 从网上收集 4 亿对(图片,说明文字),不需要人工标注;
  2. 一个图像编码器(ResNet 或视觉 Transformer)、一个文字编码器(Transformer),分别把图片和文字编码成向量(双塔,和第 12 讲的稠密检索一样);
  3. 对比学习:一批 nn 对,相似度矩阵 Sij=τ−1⋅imgi⋅txtjS_{ij} = \tau^{-1} \cdot \text{img}_i \cdot \text{txt}_j(向量都归一化,τ\tau 是可学习的温度),对角线是配对的。损失是按行和按列的交叉熵的平均:每张图要在 nn 句话里认出自己的那句,每句话要在 nn 张图里认出自己的那张。
L=12[CE(S,对角线)+CE(S⊤,对角线)]\mathcal{L} = \frac{1}{2}\Big[\text{CE}(S, \text{对角线}) + \text{CE}(S^\top, \text{对角线})\Big]

零样本分类:训练好之后,把每个类别写成一句话(“a photo of a dog”、“a photo of a cat”……),编码成向量;对一张新图,选和它最接近的那句话。分类器就是这组文字向量,换一组类别只要换一组句子。CLIP 不用 ImageNet 的任何一张训练图片,零样本准确率就达到了 76.2%,和在 128 万张标注图片上训练的 ResNet-50 相当;在分布偏移的版本(素描、对抗样本等)上,它比在 ImageNet 上训练的模型稳健得多。同期的 ALIGN(Jia 等 2021)用 18 亿对更嘈杂的图文对得到了类似的结果:规模可以弥补数据的噪声。

2.3 一个玩具 CLIP

代码 01 把 CLIP 缩小到半分钟就能训练完:

  • “图片”是 8 × 8 的彩色小图,上面画着一个某种颜色的某种形状(6 种颜色 × 6 种形状 = 36 种组合),位置随机、加噪声;“说明文字”如 “a red cross”;
  • 图像编码器:图像块嵌入 + 2 个第 7 讲的 Transformer 块(第 3 节);文字编码器:词向量平均;
  • 其中 6 种组合(比如红色的十字)训练时从不出现,用来测试组合泛化。

训练 1500 步后,在 36 句描述里选最接近的一句(瞎猜:完全正确 2.8%,颜色或形状对 16.7%):

测试的组合完全正确颜色对形状对
训练时见过的 30 种99.8%100.0%99.8%
训练时没见过的 6 种77.3%99.0%78.3%
  • 没有任何”类别标签”,分类器就是 36 句描述的文字向量。
  • 没见过的组合,大部分也能认对:模型分别学会了”红色”和”十字”在向量空间里的含义,能把它们组合起来。但准确率明显低于见过的组合,而且错误几乎都出在形状上:比如把没见过的”蓝色拐角”认成训练时见过的”蓝色方块”。颜色只是像素值,很容易和形状分开;形状的特征却部分地和训练时搭配过的颜色”纠缠”在了一起。

2.4 CLIP 的弱点:组合关系

对比学习只要求”整句话和整张图匹配”。在一批随机的图文对里,只靠”图里有哪些东西”(词袋式的匹配)往往就足以区分,模型没有压力去理解关系。

  • Winoground(Thrush 等 2022):每道题两张图、两句话,两句话用的词完全相同、只是顺序不同(“一个人在草地上,一匹马在人身上” vs “一匹马在草地上,一个人在马身上”)。当时所有的视觉—语言模型都接近瞎猜。
  • Yuksekgonul 等(2023)发现,CLIP 类模型在很多情况下表现得像词袋:打乱描述的词序,匹配分数几乎不变。我们的玩具文字编码器本身就是词袋,“a red cross” 和 “a cross red” 对它完全一样。
  • 用”困难负例”(只改了词序或属性的描述)训练,可以部分缓解这个问题(和第 12 讲稠密检索的困难负例是同一个道理)。

3. 图像怎样变成词元

3.1 视觉 Transformer

要把图像送进 Transformer,需要把它变成一串向量。视觉 Transformer(ViT,Dosovitskiy 等 2021,An Image is Worth 16x16 Words)的做法:

  1. 把图像切成不重叠的小块(比如 16 × 16 像素);
  2. 每块展平成一个向量(16 × 16 × 3 = 768 个数),用一个线性层投影成 DD 维;
  3. 加上位置嵌入,前面加一个 [CLS] 词元,送进标准的 Transformer 编码器。

图像就变成了一个由图像块组成的”句子”。代码 01 的演示 1:一张 3 × 8 × 8 的小图,切成 2 × 2 的块,得到 16 块、每块 12 个数,投影成 48 维后就可以送进第 7 讲的 Transformer 块。

ViT 几乎没有为图像设计任何专门的结构(卷积网络有的平移不变性、局部性,它都没有),在中等规模的数据上不如卷积网络;但在足够大的数据(几亿张图片)上,它超过了卷积网络。这又一次说明:足够多的数据可以替代人为设计的归纳偏置。今天的视觉—语言模型几乎都用 ViT 作为视觉编码器。

3.2 分辨率与词元数

一张 224 × 224 的图片,用 14 × 14 的块,就是 16 × 16 = 256 个词元;336 × 336 的图片是 576 个。分辨率越高,细节越多(看清图表里的小字、文档里的表格需要高分辨率),词元也越多,计算量随之增长。常见的做法:

  • 把大图切成几个子图分别编码,再加一个缩略图提供全局信息(动态切块);
  • 让视觉编码器直接处理不同分辨率、不同长宽比的图像;
  • 在送进语言模型之前压缩视觉词元(比如合并相邻的块,或者用一组可学习的查询把几百个视觉词元”读”成几十个,第 4.2 节)。

一张图占几百到几千个词元,这也是多模态模型推理贵的原因之一。

3.3 离散的图像词元

上面的视觉词元是连续的向量,只能作为输入。如果想让模型生成图像,一种办法是把图像变成离散的词元:训练一个 VQ-VAE / VQGAN 式的图像分词器,把每个小块映射到一个码本里最接近的条目(比如 8192 个”视觉词”之一),图像就变成了一串整数,和文字词元一样可以用下一个词元预测来建模和生成(DALL-E 第一代、Chameleon)。


4. 视觉—语言大模型的架构

核心问题:怎样把一个视觉编码器(通常是预训练好的 CLIP / ViT)和一个大语言模型(预训练好的)接起来?

4.1 Flamingo:交叉注意力

Flamingo(Alayrac 等 2022)冻结了视觉编码器和语言模型,在语言模型的层与层之间插入新的门控交叉注意力层:文字的表示作为查询,去关注图像的特征(第 6 讲的注意力、第 7 讲的编码器—解码器交叉注意力)。门控参数初始化为 0,插入时不改变原来语言模型的行为(和第 11 讲适配器的零初始化是同一个想法)。Flamingo 能处理图文交错的输入,展示了多模态的少样本上下文学习。

4.2 BLIP-2:Q-Former

BLIP-2(Li 等 2023)在冻结的视觉编码器和冻结的语言模型之间放一个轻量的 Q-Former:一组(比如 32 个)可学习的查询向量,通过交叉注意力从图像特征里提取信息,输出 32 个向量作为语言模型的”软提示”(第 11 讲)。它把几百个视觉词元压缩成固定的几十个,训练的只有 Q-Former。

4.3 LLaVA:简单的投影

LLaVA(Liu 等 2023)的做法简单得出人意料:

图片 ──► CLIP ViT(冻结)──► 几百个视觉向量 ──► 投影层(线性层或两层 MLP)──► "视觉词元"
                                                                        │
用户的问题 ──► 词嵌入 ─────────────────────────────────────────────────►├─► 语言模型 ──► 回答

视觉词元和文字词元拼在一起,作为语言模型的输入,就像一种”外语”的词。训练分两阶段:

  1. 特征对齐:冻结视觉编码器和语言模型,只训练投影层,数据是约 60 万对图片和简短描述;
  2. 视觉指令微调:训练投影层和语言模型,数据是约 15 万条多模态的指令—回答对。这些数据是让(只能读文字的)GPT-4 根据图片的描述和物体框生成的对话、详细描述和推理问题,是第 10 讲 SFT 思想在多模态上的应用。

LLaVA 证明了:一个好的视觉编码器 + 一个好的语言模型 + 一个简单的投影层 + 高质量的指令数据,就能得到很强的视觉对话能力。今天大部分开源的视觉—语言模型都沿用这种”编码器 + 投影 + 语言模型”的结构。

4.4 早融合与原生多模态

上面的方法都是晚融合:图像和文字分别用不同的模型处理,再接到一起。另一条路是早融合:从一开始就用一个模型处理所有模态。

  • Chameleon(Meta 2024):用离散的图像词元(第 3.3 节),把图片和文字混在同一个序列里,用一个 Transformer 从头训练,既能理解也能生成图文交错的内容;
  • Transfusion(Zhou 等 2024):同一个 Transformer,文字部分用下一个词元预测,图像部分用扩散模型的目标;
  • GPT-4o、Gemini 等商业模型被描述为”原生多模态”:从预训练开始就使用多种模态的数据。

早融合的好处是模态之间的交互更深、能生成多种模态;代价是训练更难、更贵,不能直接利用现成的单模态模型。


5. 训练数据

  • 网上的图文对:图片的 alt 文本、配图说明。规模巨大(LAION-5B 有约 58 亿对),但非常嘈杂:很多说明和图片关系不大。常用一个 CLIP 模型给每对打分,过滤掉不匹配的。
  • 合成描述:网上的描述往往很短、不准确。用一个描述模型重新生成详细、准确的描述(recaptioning),能明显提升模型质量(DALL-E 3 就用这种方法训练)。
  • 图文交错的文档:网页里图片和文字交错出现(OBELICS、MMC4),模型能学到更丰富的上下文关系,也能做多模态的少样本学习。
  • 指令数据:人工标注、或者用强模型生成(LLaVA 的做法);还有大量从现成的数据集(VQA、OCR、图表问答)改写成指令格式的数据。
  • 数据的问题:网上的图文数据带着各种偏见(某些职业的图片里主要是某种性别、某种肤色)、版权和隐私问题(第 19 讲)。

6. 多模态模型的问题

6.1 物体幻觉

模型描述图片时说出图里根本不存在的东西:一张餐桌的照片,模型说”桌上有一把叉子”,因为餐桌和叉子在训练数据里经常一起出现。这是物体幻觉(Rohrbach 等 2018 的 CHAIR 指标;Li 等 2023 的 POPE 基准用”图里有没有 X?“这样的是非题来测)。它是第 12 讲语言模型”凭印象编造”在多模态上的翻版:语言先验压过了视觉证据。

6.2 不看图也能答

Chen 等(2024,MMStar)发现,很多多模态基准里有相当比例的题目不看图也能答对(靠常识或者题目本身的信息),有些题目甚至在语言模型的训练数据里出现过(第 13 讲的数据污染)。这和 VQA 早期的语言先验问题如出一辙。评估多模态模型时,要检查”去掉图片之后模型还能答对多少”。

6.3 文字攻击

CLIP 学会了”读”图片里的文字。Goh 等(2021)发现:在一个苹果上贴一张写着 “iPod” 的纸条,CLIP 就会把它分类成 iPod。图片里的文字成了一种强大的”提示”,这也意味着多模态模型可能受到图片里的提示注入(第 12 讲):图片里藏着一行”忽略之前的指令……”。

6.4 计数、空间、细节

数清图里有几个东西、判断”左边 / 右边 / 上面”、读懂图表的细节,对视觉—语言模型来说仍然困难。部分原因是视觉编码器(CLIP)的训练目标不要求这些能力(第 2.4 节),部分原因是分辨率和视觉词元的压缩(第 3.2 节)。

6.5 评估

多模态评估的难点:开放式回答难以自动打分(常用大模型当评委,第 13 讲);基准很快饱和;题目可能不看图就能答。常见的基准包括 MMMU(大学水平的多学科多模态题目)、MathVista(视觉数学推理)、图表与文档问答等。


7. 语音与其他模态

7.1 语音识别:Whisper

Whisper(Radford 等 2022)用 68 万小时从网上收集的”音频 + 文字”数据(弱监督:字幕、转写,质量参差不齐),训练一个编码器—解码器 Transformer:编码器读音频的梅尔频谱,解码器生成文字。一个模型同时完成多语言的语音识别、翻译成英文、语言识别。它的思路和 CLIP 一样:用大规模、嘈杂但便宜的网络数据,换取稳健性和泛化能力。

7.2 语音词元与语音语言模型

要让语言模型直接”听”和”说”,需要把音频变成词元:

  • 自监督的离散单元:HuBERT(Hsu 等 2021)等模型从音频里学到的表示,聚类成离散的”语音单元”,捕捉的主要是发音内容;
  • 神经音频编解码器:SoundStream、EnCodec 把音频压缩成几层离散码,能高保真地还原声音,包括音色、语气。

AudioLM(Borsos 等 2022)把这两种词元结合起来,用语言模型的方式生成连贯、自然的语音和音乐。今天的端到端语音助手(如 GPT-4o 的语音模式)直接输入、输出音频词元,能保留语气、情绪,延迟也更低;而传统的语音助手是”语音识别 → 文字模型 → 语音合成”三段式的流水线,语气信息在第一步就丢掉了。

7.3 视频与更多模态

  • 视频:通常抽取若干帧,每帧编码成视觉词元;长视频的词元数非常大,需要压缩或者长上下文模型。
  • 机器人:视觉—语言—动作模型(VLA,如 RT-2,Brohan 等 2023)把机器人的动作也表示成词元,用视觉—语言模型直接输出动作,把网上学到的知识迁移到机器人控制上。
  • “任意到任意”:一个模型理解和生成文字、图像、音频、视频的任意组合,是多模态研究的一个方向。

8. 本讲小结

  1. 动机:很多任务天然需要多模态;符号接地问题让人思考只靠文本能否”理解”语言。
  2. 发展:CNN + RNN 图像描述 → 视觉问答(语言先验问题)→ 双流预训练 → CLIP:4 亿图文对的对比学习,零样本分类,规模弥补噪声。
  3. CLIP 的弱点:对比学习的目标对组合关系没有压力,模型常像词袋(Winoground);玩具实验里没见过的组合准确率明显下降,错误集中在形状上。
  4. 图像词元:ViT 把图像切成块、线性投影成词元;分辨率和词元数的取舍;离散图像词元用于生成。
  5. 架构:Flamingo(门控交叉注意力)、BLIP-2(Q-Former 压缩)、LLaVA(投影层 + 视觉指令微调,最简单也最流行)、早融合(Chameleon、Transfusion、原生多模态模型)。
  6. 数据:嘈杂的网络图文对 + CLIP 过滤、合成描述、图文交错文档、指令数据。
  7. 问题:物体幻觉、不看图也能答、图片里的文字攻击、计数和空间关系、评估困难。
  8. 语音与其他:Whisper(大规模弱监督)、离散语音单元和神经编解码器、端到端语音模型、视频、机器人。

9. 与作业的关系

  • CS224N 的作业以文本为主。期末项目里,多模态是一个常见的方向:在小数据上复现 CLIP 式的对比学习、研究视觉—语言模型的幻觉或组合性、做多模态的评估。本讲的代码是一个可控的起点(可以把形状换成更复杂的组合关系,比如”红色在蓝色的左边”)。
  • 想了解多模态模型的大规模训练和系统实现,可以参考 CS336 第 17 讲。

作业的具体题目以当年官方发布的版本为准。


10. 练习

练习 1(对比损失)★:一批 3 对(图,文),相似度矩阵(已乘以缩放)为

S=(510241033)S = \begin{pmatrix} 5 & 1 & 0 \\ 2 & 4 & 1 \\ 0 & 3 & 3 \end{pmatrix}

(a) 按行的交叉熵损失分别是多少?(b) 哪一对最”难”?(c) 按列的损失里,第 2 句话的损失是多少?

参考答案

(a) 第 1 行:−log⁡e5e5+e1+e0≈−log⁡148.4148.4+2.72+1≈0.025-\log\frac{e^5}{e^5 + e^1 + e^0} \approx -\log\frac{148.4}{148.4 + 2.72 + 1} \approx 0.025。第 2 行:−log⁡e4e2+e4+e1=−log⁡54.67.39+54.6+2.72≈0.170-\log\frac{e^4}{e^2 + e^4 + e^1} = -\log\frac{54.6}{7.39 + 54.6 + 2.72} \approx 0.170。第 3 行:−log⁡e3e0+e3+e3=−log⁡20.11+20.1+20.1≈0.718-\log\frac{e^3}{e^0 + e^3 + e^3} = -\log\frac{20.1}{1 + 20.1 + 20.1} \approx 0.718。 (b) 第 3 对:图 3 和文 2 的相似度和它自己的配对一样高,模型分不清。 (c) 第 2 列 (1,4,3)(1, 4, 3),正确的是第 2 行:−log⁡e4e1+e4+e3=−log⁡54.62.72+54.6+20.1≈0.349-\log\frac{e^4}{e^1 + e^4 + e^3} = -\log\frac{54.6}{2.72 + 54.6 + 20.1} \approx 0.349。

练习 2(零样本分类)★:(a) 用 CLIP 做零样本分类时,为什么把类别名写成 “a photo of a {类别}“,往往比只写 “{类别}” 好?(b) 如果要区分 “狗” 和 “狼”,你会怎样设计提示?

参考答案

(a) 训练数据里的说明文字大多是完整的句子或短语,“a photo of a dog” 更接近训练分布;单个词(尤其是多义词,比如 “crane” 既是鹤也是起重机)缺少上下文。CLIP 论文发现,提示工程和多个提示取平均(集成)能把 ImageNet 零样本准确率提高几个百分点。 (b) 加入区分性的描述,或者用多个提示取平均:“a photo of a dog, a type of pet”、“a photo of a wolf, a wild animal”;也可以加场景:“a photo of a wolf in the forest”。

练习 3(视觉词元数)★:一张 448 × 448 的图片,用 14 × 14 的图像块。(a) 有多少个视觉词元?(b) 如果语言模型的上下文窗口是 4096 个词元,最多能放几张这样的图?(c) 如果把每 2 × 2 个相邻的视觉词元合并成一个呢?

参考答案

(a) (448/14)2=322=1024(448/14)^2 = 32^2 = 1024。 (b) 不算文字,最多 4 张。 (c) 每张 256 个,最多 16 张,但细节会损失(看小字、数小物体会更难)。

练习 4(架构比较)★★:比较 Flamingo、BLIP-2、LLaVA 三种架构:(a) 视觉信息分别从哪里进入语言模型?(b) 哪些参数在训练?(c) 各自的视觉词元数是否固定?

参考答案

(a) Flamingo:在语言模型的层之间插入的交叉注意力层,文字表示作为查询去关注图像特征;BLIP-2:Q-Former 输出固定数量的向量,作为语言模型输入的软提示;LLaVA:视觉编码器的输出经过投影层,直接作为语言模型输入序列里的词元。 (b) Flamingo:交叉注意力层和感知重采样器(语言模型、视觉编码器冻结);BLIP-2:Q-Former(两端冻结);LLaVA:第一阶段只训练投影层,第二阶段训练投影层和语言模型。 (c) Flamingo 的重采样器、BLIP-2 的 Q-Former 输出固定数量的视觉向量;LLaVA 的视觉词元数等于图像块数,随分辨率变化。

练习 5(幻觉)★★:一个视觉—语言模型描述厨房照片时常说”有一个冰箱”,即使照片里没有冰箱。(a) 为什么会这样?(b) 设计一个检测这类幻觉的评估方法。(c) 有什么缓解办法?

参考答案

(a) 语言模型的先验:在训练数据里,厨房的描述经常提到冰箱,模型在视觉证据不足时就按先验”补全”。 (b) 类似 POPE:对每张图问”图里有冰箱吗?“这样的是非题,正例是图里真的有的物体,负例分别取随机的物体、和场景经常一起出现的物体(“对抗性”负例,比如厨房里的冰箱),看模型在负例上答”有”的比例。 (c) 更高分辨率、更好的视觉编码器;用标注准确的详细描述训练;在训练数据里加入”图里没有 X”的负例问答;用偏好优化惩罚幻觉的回答;解码时对比”有图”和”没图”时的输出,削弱纯语言先验(对比解码)。

练习 6(思考:符号接地):一个只在文本上训练的语言模型能正确回答”苹果通常是什么颜色”。这说明它”理解”了颜色吗?多模态训练会改变什么?

参考答案

开放问题,没有标准答案。一种观点:它只是学到了”苹果”和”红色”的共现统计,并不知道红色”看起来”是什么样的,因为它的意义完全由其他符号定义。另一种观点:文本中关于颜色的关系(红色和橙色相近、和绿色是互补色……)足够丰富,模型学到的颜色表示的结构可能和人的感知空间相似(有研究发现语言模型的颜色词表示和人类的颜色感知空间存在对应关系)。多模态训练把符号和感知数据直接联系起来,至少让模型能把”红色”和图像里的像素对应起来。是否带来”更深的理解”,可以通过需要感知经验的任务来实验检验。

练习 7(动手):

(a) 在代码 01 里把留出的组合从 6 种改成 12 种,没见过的组合的准确率怎样变化? (b) 把文字编码器换成对词序敏感的(比如一个小 GRU),再加一种”颜色 A 在颜色 B 的左边”的两物体图片,模型能区分 “red left of blue” 和 “blue left of red” 吗? (c) 把图像块大小从 2 改成 4(每张图只有 4 个块),准确率有什么变化? (d) 做一个”不看图”的基线:把图像向量换成随机向量,零样本准确率是多少?为什么在这个任务上它一定接近瞎猜,而在真实的视觉问答基准上不一定?


11. 延伸阅读

  • Harnad,The Symbol Grounding Problem(1990);Bisk et al.,Experience Grounds Language(2020)。
  • Vinyals et al.,Show and Tell(2015);Xu et al.,Show, Attend and Tell(2015);Antol et al.,VQA(2015);Goyal et al.,Making the V in VQA Matter(2017)。
  • Radford et al.,Learning Transferable Visual Models From Natural Language Supervision(2021,CLIP);Jia et al.,ALIGN(2021)。
  • Dosovitskiy et al.,An Image is Worth 16x16 Words(2021,ViT)。
  • Alayrac et al.,Flamingo(2022);Li et al.,BLIP-2(2023);Liu et al.,Visual Instruction Tuning(2023,LLaVA)。
  • Chameleon Team,Chameleon: Mixed-Modal Early-Fusion Foundation Models(2024);Zhou et al.,Transfusion(2024)。
  • Thrush et al.,Winoground(2022);Yuksekgonul et al.,When and Why Vision-Language Models Behave like Bags-of-Words(2023)。
  • Rohrbach et al.,Object Hallucination in Image Captioning(2018);Li et al.,Evaluating Object Hallucination in Large Vision-Language Models(2023,POPE);Chen et al.,Are We on the Right Way for Evaluating Large Vision-Language Models?(2024,MMStar)。
  • Goh et al.,Multimodal Neurons in Artificial Neural Networks(2021)。
  • Radford et al.,Robust Speech Recognition via Large-Scale Weak Supervision(2022,Whisper);Borsos et al.,AudioLM(2022)。
  • Brohan et al.,RT-2(2023)。
  • CS336 第 17 讲(同目录):多模态模型的训练与系统。

12. 下一讲预告

前面十八讲讨论的都是”怎样让模型更强”。模型越来越强、用得越来越广,它们对社会的影响也越来越大:偏见与歧视、虚假信息、隐私、版权、环境成本、被滥用的风险……

下一讲(NLP 的社会影响与开放问题)讨论:

  • 词向量和语言模型里的偏见:怎样测量(WEAT)、能不能去掉(以及为什么去偏比看起来难);
  • 分类器的公平性指标,以及它们为什么不能同时满足;
  • 虚假信息、隐私与记忆、版权、环境成本、安全与滥用;
  • 这个领域接下来最重要的开放问题。
← 返回课程目录