6.3 图像描述生成与自回归训练 生成式任务是当代多模态大模型的主流预训练目标。本节聚焦图像描述生成(Image Captioning / Image-Grounded Text Generation, ITG)与自回归训练(LM)的细节。 一、ITG:以图像为条件的文本生成 任务定义 ITG(Image-Grounded Text Generation)让模型根据图像生成描述性文本: 这与纯文本 LM 的区别在于条件——文本生成以图像为条件: $$ p(\text{text} | \text{image}) = \prod{t=1}^{T} p(\text{text}t | \text{image}, \text{text}{<t}) $$ 模型在生成每个 token
生成式任务是当代多模态大模型的主流预训练目标。本节聚焦图像描述生成(Image Captioning / Image-Grounded Text Generation, ITG)与自回归训练(LM)的细节。
ITG(Image-Grounded Text Generation)让模型根据图像生成描述性文本:
[图像: 猫坐在窗台] → 模型 → "一只橘色的猫坐在窗台上看着窗外"
这与纯文本 LM 的区别在于条件——文本生成以图像为条件:
模型在生成每个 token 时,都要参考图像内容。
ITG 用标准的自回归交叉熵:
这与 LLM 训练完全一样,只是输入多了图像 token。
ITG 需要图文对数据——图像 + 对应描述:
数据质量直接决定生成质量——LAION 这种噪声数据训练的模型描述质量较差,COCO 这种精标数据训练的模型描述流畅但多样性低。
ITG 训练好后,推理时是自回归生成——逐 token 输出:
输入: [图像] + 起始符 <BOS> 步骤 1: 模型预测下一个 token → "一" 步骤 2: 把 "一" 加入输入,模型继续预测 → "只" 步骤 3: 把 "一只" 加入输入,模型继续预测 → "橘" ... 步骤 N: 模型预测结束符 <EOS> → 停止
每一步的输入都在变长,这是「自回归」的含义。
朴素实现下,每生成一个 token 都要重新计算整个序列的 Self-Attention,开销 O(N^2)。生成 1000 个 token 总开销 O(N^3),无法接受。
KV Cache 是工程上的关键优化:
这就是为什么 GQA、MLA 等技术会优化 K、V 的内存占用——KV Cache 是推理时最主要的内存消耗。
BLIP-2 的阶段一用 ITG 训练 Q-Former:
[图像] → Q-Former (32 个 query) → 32 个视觉 token ↓ 拼接 [BOS] + 已生成文本 ↓ Q-Former 自身 → 预测下一 token
注意 BLIP-2 的 ITG 在 Q-Former 内部完成(Q-Former 既是视觉特征抽取器,也是文本生成器),不是在 LLM 里。这让 Q-Former 学到的视觉 token 「对生成友好」。
LLaVA 的生成直接发生在 LLM 中:
[图像] → CLIP ViT → 视觉 token ↓ MLP 投影 [文本指令] → 分词 → 文本 token ↓ 拼接 [视觉 token; 文本 token] ↓ LLM 自回归生成
LLM 已经有强大的生成能力(预训练获得),LLaVA 只需要让视觉 token 与文本 token 兼容。
生成任务对数据格式敏感。常见数据格式:
[图像] → "一只猫坐在窗台上"
最简单格式,来自 COCO、CC3M 等。
[图像] + 指令:"请描述这张图" → 回答:"图中是一只橘色的猫..."
LLaVA、InstructBLIP 等模型用这种格式,更接近对话场景。这是第7章「指令微调」的主题。
[图像] + Q1: "图里有几只猫?" + A1: "一只" + Q2: "它在做什么?" + A2: "坐在窗台上" + Q3: ...
多轮对话格式,更接近真实使用场景。
[图像] + Q: "图中的猫为什么看着窗外?" A: "首先,猫的视线朝向窗外; 其次,窗外可能有鸟或昆虫吸引它; 因此猫在专注地观察窗外的物体。"
带推理过程的回答,训练模型的视觉推理能力。
训练时用 Teacher Forcing——不依赖模型自己生成的 token,而用真实文本作为下一步输入:
训练时: t=1: 输入 [图像, <BOS>] → 目标 "一" t=2: 输入 [图像, <BOS>, "一"] → 目标 "只" ← 用真实 token,不是模型预测的 t=3: 输入 [图像, <BOS>, "一只"] → 目标 "橘"
Teacher Forcing 让训练并行化——所有位置可以同时计算损失。
但 Teacher Forcing 有一个副作用——exposure bias:训练时总看真实输入,推理时只能看自己生成的(可能有错的)输入,分布不匹配导致错误累积。RLHF(第7章)部分解决了这个问题。
为了提高生成的多样性,训练时常加 Label Smoothing:
把 hard label(one-hot)变成 soft label(保留 (1-ε) 给正确类,ε/V 给所有类)。这让模型不会对单一预测过于自信,生成时更有探索性。
不是所有 token 都参与损失计算。常见做法:
LLaVA 等模型就是这样——只对模型应该生成的回答部分反向传播,避免模型学习「模仿问题」这种无意义目标。
如何评估生成质量?这是多模态研究的难点。
这些指标基于词重叠,不适合评估开放性生成——同义不同词会被打低分。
这些指标用学习到的语义空间评估,比 n-gram 更接近人类直觉。
用 GPT-4、Claude 等大模型当裁判,给生成结果打分:
LLM-as-Judge 已成为多模态评估的事实标准(如 LLaVA-Bench、MMBench),但有 LLM 自身的偏见。
最可靠但最贵。通常作为「金标准」校验自动指标。
模型生成图像中不存在的物体:
图: 一只猫 生成: "一只猫和一只狗在草地上玩耍" ← 「狗」是幻觉
幻觉是多模态大模型最严重的问题之一。它的根源:
缓解方法:
图: 橘色的猫 生成: "一只黑色的猫" ← 颜色错
这种错误通常源于视觉编码器不够强,或者训练数据中颜色信息稀疏。增强视觉编码器(如 InternViT)能改善。
生成越往后,质量越差——前面 token 的错误累积到后面。这是自回归生成的固有问题,长上下文 LLM 与 RLHF 能部分缓解。
早期 ITG 用纯字幕数据(COCO Captions 等),生成短而模板化。当代模型(LLaVA、InstructBLIP)用指令数据,生成长而多样。
LLaVA-NeXT、Qwen2-VL 等支持多图与视频输入,ITG 任务扩展为:
[多张图] + 指令 → 描述多图之间的关系 [视频] + 指令 → 描述视频中的动作与事件
最新模型不再只生成描述,而是做视觉推理:
[图表] + 指令:"分析这个图表的趋势" → 生成包含推理、对比、结论的长回答
这要求模型不仅看图,还要思考——这是第8章 VQA 与多模态推理的主题。
当代多模态预训练通常把生成任务与判别任务组合:
| 模型 | 任务组合 |
|---|---|
| ALBEF | ITC + ITM + LM |
| BLIP | ITC + ITM + LM(含 ITG) |
| BLIP-2 | ITC + ITM + ITG (阶段一) + LM (阶段二) |
| CoCa | ITC + LM |
| LLaVA | LM(指令微调) |
| PaLI | LM |
可以看到,LM(生成)越来越占主导,ITC/ITM 作为辅助。这与 LLM 时代生成范式的统治力一致。
ITG 与自回归 LM 是当代多模态大模型的主流预训练任务。它们让模型获得生成能力,支持 VQA、图像描述等开放性任务。训练时需注意 Teacher Forcing、Label Smoothing、Loss Masking 等工程细节。生成质量评估从 n-gram 指标演化到 LLM-as-Judge。幻觉、细节错误、长文本质量是主要挑战。当代模型趋向于把 LM 作为主导任务,ITC/ITM 作为辅助。
下一节(6.4)我们看 ALBEF、BLIP、CoCa 等模型如何把这些任务组合成多任务联合预训练。