第25章 多模态:文字、图像、声音和视频进入同一模型
看到一张雨中的街道照片,人可以说“路面湿滑,汽车开着灯”;听到同一场景的声音,又可能判断雨势和车辆距离。文字、像素和声波的数据结构完全不同,却指向同一个事件。
多模态 AI(multimodal AI)试图让模型处理并连接不同类型的信息。它可能根据图片回答问题,把语音转成文字,用文本生成图像,或同时理解视频中的画面、声音和字幕。
“进入同一模型”不等于所有模态从一开始就用相同格式。常见系统先让专门编码器处理各自信号,再通过联合嵌入、投影器、查询模块或交叉注意力建立联系。
本章沿四步追踪数据流:各模态怎样编码,表示怎样对齐,信息怎样融合,结果怎样被生成或用于决策。
不同模态拥有不同局部结构
文本是一串离散 Token,顺序通常是一维的。图像是二维像素网格,邻近位置关系重要。声音是连续波形,频率和时间共同承载信息。视频还增加时间维度和跨帧运动。
因此,各模态常使用不同前端:
| 模态 | 原始输入 | 常见初始表示 |
|---|---|---|
| 文本 | 字符或字节 | 子词 Token |
| 图像 | 像素网格 | 图块 Token 或特征图 |
| 音频 | 波形 | 频谱片段或音频 Token |
| 视频 | 帧与音轨 | 时空图块、帧特征与音频表示 |
编码器把原始输入变成向量序列。只有形状对齐还不够:图像向量中的“狗”和文字向量中的“狗”必须在训练目标下建立可利用关系。
第一条路线:把配对数据拉进联合空间
互联网上存在大量图片与标题、视频与字幕、语音与转写。这些配对提供跨模态监督。
设图像编码器输出 \(u_i\),文本编码器输出 \(v_i\)。对同一对样本,希望相似度高;对批次中不匹配的组合,希望相似度低。这叫作对比学习(contrastive learning)。
CLIP 使用大规模图文配对训练独立图像与文本编码器,使自然语言能够作为开放类别描述。(Radford 等 2021年) 训练后,图像和文本可以在同一嵌入空间中比较。
图像 -> 图像编码器 -> u ----+
| 相似度
文字 -> 文本编码器 -> v ----+
联合空间适合检索:给文字找图,或给图找文字。它也可以用于零样本分类,把类别写成文本提示,再选择与图像向量最相近的类别描述。
核心机制:分别编码,再学习对应关系
多模态模型通常先把每种输入变成自己的向量或 Token,再用配对数据训练跨模态相似度或信息交换。编码器保留模态结构,对齐模块建立对应,融合模块决定一侧如何读取另一侧。共同空间表示“在训练目标下可比较”,不等于不同模态已被无损翻译。
技术深潜:批次中的配对怎样互相竞争
将图像和文本向量归一化,定义温度为 \(\tau\) 的相似度:
\[ s_{ij}=\frac{u_i^\top v_j}{\tau} \]
一个批次有 \(B\) 对样本,第 \(i\) 张图对应第 \(i\) 段文字。图到文的正确配对概率为:
\[ p_i^{u\rightarrow t}= \frac{\exp(s_{ii})} {\sum_{j=1}^{B}\exp(s_{ij})} \]
文本到图则按列归一化:
\[ p_i^{t\rightarrow u}= \frac{\exp(s_{ii})} {\sum_{j=1}^{B}\exp(s_{ji})} \]
再分别计算两个方向的平均负对数似然:
\[ \mathcal{L}_{u\rightarrow t} =-\frac{1}{B}\sum_{i=1}^{B}\log p_i^{u\rightarrow t} \]
\[ \mathcal{L}_{t\rightarrow u} =-\frac{1}{B}\sum_{i=1}^{B}\log p_i^{t\rightarrow u} \]
最后取两个方向的平均:
\[ \mathcal{L}_{\mathrm{contrast}} =\frac{\mathcal{L}_{u\rightarrow t}+\mathcal{L}_{t\rightarrow u}}{2} \]
批次中的其他样本充当负例。批次越大,候选越多,但也更可能出现“假负例”:两张不同图片都合理对应同一描述,却被当作竞争者。
温度 \(\tau\) 控制分数尺度。温度太高,概率过平;太低,模型可能过度关注少数难例或噪声配对。对比损失学到的是相对匹配,不直接训练逐像素定位或长答案生成。
相似度高不等于理解全部细节
一张“孩子在红色自行车旁”的图片与对应文字相似度高,可能只因为“孩子”“自行车”和总体场景匹配。模型未必准确绑定“红色”属于自行车,也未必能数清车轮或判断左右关系。
全局嵌入会压缩信息。适合检索的表示可能忽略对当前检索任务不重要的小文字、坐标和数量。
因此,图文检索、零样本分类、物体定位和视觉问答应分别评估。不能用一个全局相似度成绩代替所有视觉语言能力。
第二条路线:把图像变成可读取的视觉 Token
若要让语言模型回答图片细节,通常需要保留多个空间位置。视觉 Transformer 可以把图像切成图块,每个图块映射成视觉 Token,再经过视觉编码器形成序列。
图像 -> 图块 -> 视觉编码器 -> z_1, z_2, ..., z_N
|
连接器或交叉注意力
|
文本 -> Token -> 语言模型 <--------+
语言模型不能直接接收任意维度的视觉特征。连接器要把视觉宽度、Token 数量和统计分布变成语言模型可用的形式。
简单连接器可以是线性投影或多层感知机。更复杂的方法使用一组可训练查询,从大量视觉特征中提取较少的摘要 Token。BLIP-2 使用 Querying Transformer 连接冻结的图像编码器和冻结的大语言模型。(Li 等 2023年)
连接器是重要信息瓶颈。若只保留少量视觉 Token,计算便宜,但小目标和文字可能丢失;保留太多 Token,则占用上下文和注意力计算。
交叉注意力让文字按需读取视觉信息
在交叉注意力中,文本侧隐藏状态产生 Query,视觉 Token 提供 Key 和 Value。生成“红色”时,某些文本位置可读取颜色区域;生成“自行车”时,可读取物体结构。
Flamingo 在冻结视觉与语言模型之间加入 Perceiver Resampler(感知器重采样器)和门控交叉注意力,使模型能处理交错的图像与文本,并展示少样本视觉语言能力。(Alayrac 等 2022年)
视觉指令微调则把图像、用户问题和助手回答组织成对话数据,让模型学习“看图并按指令回答”的行为。(Liu 等 2023年) 这与第 23 章的语言指令微调相似,只是输入多了视觉表示。
图像描述数据和对话偏好会共同影响回答风格。模型可能用语言先验补全图片中没有的内容,产生多模态幻觉。
技术深潜:视觉 Token 到语言隐藏状态
设批次为 \(B\),视觉编码器输出 \(N\) 个宽度为 \(D_v\) 的 Token:
\[ Z_v\in\mathbb{R}^{B\times N\times D_v} \]
用矩阵 \(W_p\in\mathbb{R}^{D_v\times D}\) 投影到语言模型宽度 \(D\):
\[ \tilde Z_v=Z_vW_p \]
若文本长度为 \(T\),文本隐藏状态 \(H_t\in\mathbb{R}^{B\times T\times D}\) 产生 Query,视觉表示产生 Key 和 Value。忽略头维度,注意力分数形状为:
\[ QK^\top\in\mathbb{R}^{B\times T\times N} \]
每个文本位置对 \(N\) 个视觉位置得到一行权重,输出回到 \(B\times T\times D\)。这条数据流决定语言模型能访问哪些视觉信息。
还可以把视觉 Token 直接插入文本 Token 序列,使用统一自注意力。此时需要定义模态标记、位置编码和掩码。直接拼接结构简单,却会让视觉 Token 与文本 Token 共同占用平方增长的注意力矩阵。
声音怎样进入模型
原始波形采样率很高,直接把每个采样点当 Token 会得到极长序列。语音系统常先把波形转换成时频表示,再按时间窗口编码。
大规模弱监督语音识别使用音频与互联网上已有转写或翻译配对训练模型。Whisper 展示了这种规模化弱监督在多语言语音识别、翻译和鲁棒性上的效果。(Radford 等 2023年)
语音到语音系统还需要处理说话节奏、音色和生成延迟。可以先识别成文字、由语言模型回答、再合成语音;也可以把音频表示直接接入统一模型。前者模块清楚、容易检查,后者可能保留更多非文字信息,但训练和评估更复杂。
“听懂”也不只等于转写准确。语气、背景声、多人重叠和非语言声音可能影响意义,却未必进入文字转写。
视频增加了时间和计算
视频可以看作图像帧序列,但逐帧处理会产生巨大 Token 数。模型常进行抽帧、时空下采样或先提取片段特征。
只看少量帧可能错过瞬间事件;只平均帧特征可能丢失动作顺序。“人站起后开门”和“开门后站起”包含相似画面,事件关系却不同。
视频还可能包含音轨、字幕和镜头切换。多模态系统需要对齐多个时间轴,并判断证据来自画面、声音还是文字覆盖层。
一个空间绑定多种模态
ImageBind 使用图像作为枢纽,把文本、音频、深度、热成像和惯性信号等映射到联合嵌入空间。(Girdhar 等 2023年) 某些模态之间即使没有大量直接配对,也可以通过共同图像建立间接对应。
这显示联合空间可以扩展,但间接对齐会累积误差。若“声音到图像”和“图像到文字”各自只捕捉粗粒度语义,声音到文字的间接关系可能更粗。
共同空间适合检索和条件控制,不自动提供任意模态之间的无损转换。
模块化与统一 Token 路线
多模态系统有两种常见方向:
| 路线 | 结构 | 优势 | 风险 |
|---|---|---|---|
| 模块化 | 专用编码器、连接器、语言模型 | 可复用强模型,边界清楚 | 接口可能丢信息 |
| 统一表示 | 多模态 Token 进入共享网络 | 交互更早、更直接 | 序列巨大,训练更复杂 |
真实模型常处在两者之间:使用专用前端,再把中间 Token 交给共享 Transformer。架构名称不如数据流重要。应问:每种输入怎样编码?在哪里对齐?哪些参数冻结?何时发生交叉注意力?输出由哪个解码器生成?
多模态不会自动消除幻觉
给语言模型一张图片,确实能提供额外证据,但也增加了新的错误来源:
- 视觉编码器漏掉小物体或文字;
- 连接器压缩掉细节;
- 注意力读错区域;
- 语言先验覆盖视觉证据;
- 图文训练数据描述不准确;
- 多张图片或长视频中的指代混乱;
- 生成答案仍按语言概率继续,而非逐项核验。
模型可能正确描述常见场景,却在计数、空间位置、罕见物体和图表读数上失败。需要针对细粒度任务设计评测,而不是只看一组令人印象深刻的演示。
学习路径:图文检索与零样本分类
实践继续后置。使用预训练图文编码器可以做一个算力较低的机制实验:
- 准备几十张授权清晰的图片和多种文本描述;
- 计算所有图文向量及相似度矩阵;
- 检查正确配对排名,并加入近义描述与属性冲突描述;
- 用类别模板做零样本分类,比较不同提示措辞;
- 加入计数、颜色归属和左右关系的困难样本;
- 分析全局相似度高但细节错误的案例。
这个实践验证联合空间的优势和边界,不需要从头训练多模态大模型。
本章小结
- 文本、图像、声音和视频具有不同局部结构,通常先由专用前端编码。
- 对比学习用配对数据把不同模态拉入可比较空间,适合检索和零样本分类。
- 共同嵌入压缩信息,相似度高不保证细粒度绑定、计数和定位正确。
- 视觉 Token 可通过投影器、查询模块或交叉注意力接入语言模型;连接器决定信息瓶颈。
- 声音和视频需要时间压缩与对齐,不能只把它们视为更长的静态图片。
- 模块化与统一 Token 各有计算和信息权衡,许多真实系统是混合结构。
- 多模态增加证据,也增加编码、对齐和语言先验覆盖等新幻觉路径。
思考问题
- 图文向量相似度很高,为什么仍不能证明模型正确绑定了颜色和物体?
- 视觉连接器减少 Token 数量时,计算与信息分别发生什么变化?
- 语音先转文字再推理,会丢失哪些可能重要的信息?
- 多模态输入为什么既可能减少幻觉,也可能增加新的幻觉来源?
延伸阅读
- CLIP 论文适合理解大规模图文对比学习和零样本迁移。(Radford 等 2021年)
- Flamingo 与 BLIP-2 展示了把冻结视觉和语言模型通过不同连接器组合的路线。(Alayrac 等 2022年; Li 等 2023年)
- Whisper 论文适合观察弱监督规模化怎样改变多语言语音识别。(Radford 等 2023年)
- ImageBind 展示了以图像为枢纽对齐更多模态的联合空间。(Girdhar 等 2023年)
- 视觉指令微调工作连接了多模态表示与对话助手训练。(Liu 等 2023年)
