跳转至

讲解稿 · 第 10 章 第 01 节 · 多模态表征

口播时长: 约 13 分钟|建议语速: 中速, 公式处停两拍|字数: 约 2800 字

承 Ch09 §05 TTS 与语音合成 → Ch10 §01 多模态表征 → Ch10 §02 VLM (下游章节预告)


导语 (约 80 秒)

讲一个经常被问的问题。

手机相册里, 你搜"日落", 它会帮你找出所有日落照片——不靠文件名, 也不靠 EXIF, 而是看懂照片内容。再比如你截图一段财报里"营收同比增长 23%", 你把它扔给豆包或 GPT-4V, 它能接着问你:"要不要做财务摘要?要不要画折线图?要不要对比去年同期?"——用同一段截图, 同时做识别 + 推理 + 生成。

这两种能力背后都叫多模态学习 (Multimodal Learning)。它的核心就是: 把不同模态 (vision, text, audio, video) 编码到共享语义空间, 让模型能跨模态对齐、检索、生成。这一节讲 3 件事: ① 多模态融合的 3 种时间点策略;② CLIP 用对比学习做对齐的范式;③ 怎么把这个范式泛化到任意模态组合。听 13 分钟。


一 · 融合在什么时间发生 (Fusion Time) (约 4 分钟)

把多个模态拼起来, 工程师第一问题:在哪一层拼。有三个选择, 跟你说下。

早期融合: 一开始就把图像的 patch embedding 和文本的 token embedding 拼接到同一个序列, 喂给一个 Transformer。 - 公式: \(x_{\text{fused}} = [x_{\text{img}}; x_{\text{txt}}] \in \mathbb{R}^{d_1 + d_2}\) - 优点: 模型从第一层开始就能学跨模态对齐, 细粒度高 - 缺点: 维度直接相加过大 (ViT patch 数 256 × 1024 维就是 262144), LLM 上下文长度压力大; 还要学把分布差异大的数据 (像素 vs 整数 ID) 摆平

晚期融合: 各模态独立编码器, 到最后才合。 - 公式: \(\hat y = \alpha \hat y_1 + (1 - \alpha) \hat y_2\) - 优点: 简单, 可复用单模态预训练 (CLIP / ViT / BERT 都在用) - 缺点: 学不到低层跨模态信号——例如"窗外有只猫"这种细节, 视觉特征已经丢了

中层融合 (主流): Q-Former / Perceiver Resampler / cross-attention。 - 公式: 不简单 concat, 而是用一组 learnable query (32 个向量) 与视觉特征做 cross-attention, 输出压缩表达到 LLM。 - 代表: BLIP-2, LLaVA-1.5 (线性投影也算)

用一个比喻: 早期融合 = 两个人合住一间房 (学得快但互相影响); 晚期融合 = 各住各的, 只在月底看一份共同账单; 中层 = 同住一套两居室, 客厅共用, 卧室独立。当前业界几乎都用中层——兼顾表达力和工程可控。


二 · CLIP 的对比学习范式 (约 5 分钟)

讲 CLIP。OpenAI 2021 年的工作, 把多模态对齐这件事从"靠别人标"变成"靠对比自监督"。

前提: 网上随便抓 4 亿图文对 (WebImageText 数据集), 没有标注——只知道"这张图配这段文字"。

训练流程: batch 内 32768 对图文对, 每个图片和文本都过各自的编码器 (ViT-L/14, Transformer), 投影到共享 256 维空间, L2 归一化算余弦相似度。

关键公式 InfoNCE: $\(L_i = -\log \frac{\exp(s(z_i^{\text{img}}, z_i^{\text{txt}})/\tau)}{\sum_{j=1}^N \exp(s(z_i^{\text{img}}, z_j^{\text{txt}})/\tau)}\)$ - \(s\) 是余弦相似度 - \(\tau\) 是温度参数, CLIP 用 0.07 - 分子是"图配对应文本"的相似度 (正例) - 分母是"图配所有文本"的相似度总和 (含正负样本) - 对称: 文本侧再做一次 (双向 InfoNCE)

直觉: 让图 i 和它对应文字越来越像, 和其它文字越来越不像。

为什么需要大 batch: softmax 分母有 N 项 = 32768 配 32768 的关系——只有 batch 大才能获取足够负样本。如果 N=128, 模型可能偷懒, 把所有东西认为相似; N=32768 时, 模型必须找细粒度区分。SigLIP (Google 2023) 的改进是用 sigmoid 损失替代 softmax——每对图文独立打分, 不需要 N² 关系矩阵, 小 batch (1024) 也能稳定训练, 性能持平。

零样本分类: 训练完, 不需要再训练, 就能分类新类别。给一张图 + 候选类别名 (模板"a photo of a {class}"), 算相似度最高的那个就是预测结果。ImageNet 76.2%, 比 ResNet-50 监督训练的 76.0% 还高——而且这个数字只用自然语言标签就能换。


三 · 多模态评估怎么测 (约 3 分钟)

图文检索: 给定图片找文字, 或给定文字找图片。 - 指标: Recall@k = 前 k 个候选里命中正确答案的比例 - 数据集: MS-COCO 5K, Flickr30K - CLIP 65%, SigLIP 70%, Florence-2 78%

零样本分类: ImageNet 100% 类, 76% 准确率。

真正难的是推理: - VQAv2: 闭集 4 选 1 VQA, 人类 95%, GPT-4o 85% - MMMU: 大学级图文问答 (30 学科 11.5K 题), GPT-4o 69%, 人类 88% - MMHal-Bench: 多模态幻觉 (GPT-4o 7% 错答, 没缓解的模型 14%)


跨章衔接 (60 秒)

Ch10 §01 的核心是"对齐"——把视觉和文本投影到共享空间, 但它只支持对齐和检索, 不能生成。§02 就把这个对齐成果喂给 LLM, 做成能"看图说话"的 VLM。Ch06 §03 ViT 给 CLIP 提供了图像 backbone, Ch07 §04 注意力机制给 §02 VLM 提供了注入视觉信息的方法。Ch10 是把 Ch06-Ch08 视觉成果 + Ch09 听觉成果 + Ch07 文本机制统一起来的关键一章。