6.3 图像描述生成与自回归训练


文档摘要

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

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 时,都要参考图像内容。

损失函数

ITG 用标准的自回归交叉熵:

\mathcal{L}_\text{ITG} = -\sum_{t=1}^{T} \log p(\text{text}_t | \text{image}, \text{text}_{<t})

这与 LLM 训练完全一样,只是输入多了图像 token。

ITG 学到什么

  • 跨模态生成能力:把视觉信息翻译成语言
  • 细粒度视觉理解:要生成准确描述,必须真正理解图像内容
  • 语言流畅性:生成符合语法的自然语言

ITG 的训练数据

ITG 需要图文对数据——图像 + 对应描述:

  • COCO Captions:12 万张图,每张 5 句描述
  • CC3M / CC12M:300 万 / 1200 万对(自动爬取)
  • LAION-5B:50 亿对(噪声较大)
  • WebLI:Google 内部高质量数据
  • LAION-COCO:合成的高质量字幕

数据质量直接决定生成质量——LAION 这种噪声数据训练的模型描述质量较差,COCO 这种精标数据训练的模型描述流畅但多样性低。

二、自回归生成的具体流程

ITG 训练好后,推理时是自回归生成——逐 token 输出:

输入: [图像] + 起始符 <BOS> 步骤 1: 模型预测下一个 token → "一" 步骤 2: 把 "一" 加入输入,模型继续预测 → "只" 步骤 3: 把 "一只" 加入输入,模型继续预测 → "橘" ... 步骤 N: 模型预测结束符 <EOS> → 停止

每一步的输入都在变长,这是「自回归」的含义。

KV Cache:自回归的工程加速

朴素实现下,每生成一个 token 都要重新计算整个序列的 Self-Attention,开销 O(N^2)。生成 1000 个 token 总开销 O(N^3),无法接受。

KV Cache 是工程上的关键优化:

  • 把已计算过的 K、V 缓存
  • 新 token 来时只需计算新 token 的 Q,与缓存的 K、V 做注意力
  • 每步开销从 O(N^2) 降到 O(N)

这就是为什么 GQA、MLA 等技术会优化 K、V 的内存占用——KV Cache 是推理时最主要的内存消耗。

三、ITG 在多模态预训练中的位置

BLIP-2 的 ITG

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 的 LM

LLaVA 的生成直接发生在 LLM 中:

[图像] → CLIP ViT → 视觉 token ↓ MLP 投影 [文本指令] → 分词 → 文本 token ↓ 拼接 [视觉 token; 文本 token] ↓ LLM 自回归生成

LLM 已经有强大的生成能力(预训练获得),LLaVA 只需要让视觉 token 与文本 token 兼容。

四、生成任务的训练数据构造

生成任务对数据格式敏感。常见数据格式:

格式一:字幕(Caption)

[图像] → "一只猫坐在窗台上"

最简单格式,来自 COCO、CC3M 等。

格式二:指令(Instruction)

[图像] + 指令:"请描述这张图" → 回答:"图中是一只橘色的猫..."

LLaVA、InstructBLIP 等模型用这种格式,更接近对话场景。这是第7章「指令微调」的主题。

格式三:对话(Conversation)

[图像] + Q1: "图里有几只猫?" + A1: "一只" + Q2: "它在做什么?" + A2: "坐在窗台上" + Q3: ...

多轮对话格式,更接近真实使用场景。

格式四:推理链(Chain-of-Thought)

[图像] + Q: "图中的猫为什么看着窗外?" A: "首先,猫的视线朝向窗外; 其次,窗外可能有鸟或昆虫吸引它; 因此猫在专注地观察窗外的物体。"

带推理过程的回答,训练模型的视觉推理能力。

五、自回归训练的工程细节

Teacher Forcing

训练时用 Teacher Forcing——不依赖模型自己生成的 token,而用真实文本作为下一步输入:

训练时: t=1: 输入 [图像, <BOS>] → 目标 "一" t=2: 输入 [图像, <BOS>, "一"] → 目标 "只" ← 用真实 token,不是模型预测的 t=3: 输入 [图像, <BOS>, "一只"] → 目标 "橘"

Teacher Forcing 让训练并行化——所有位置可以同时计算损失。

但 Teacher Forcing 有一个副作用——exposure bias:训练时总看真实输入,推理时只能看自己生成的(可能有错的)输入,分布不匹配导致错误累积。RLHF(第7章)部分解决了这个问题。

Label Smoothing

为了提高生成的多样性,训练时常加 Label Smoothing

\mathcal{L} = -\sum_v \left[\epsilon \cdot \frac{1}{V} + (1-\epsilon)\cdot \mathbb{1}_{v=y}\right] \log p(v)

把 hard label(one-hot)变成 soft label(保留 (1-ε) 给正确类,ε/V 给所有类)。这让模型不会对单一预测过于自信,生成时更有探索性。

Loss Masking

不是所有 token 都参与损失计算。常见做法:

  • 忽略 padding token:不计算 padding 位置的损失
  • 忽略指令部分:只对「回答」部分计算损失,不对「问题」部分计算

LLaVA 等模型就是这样——只对模型应该生成的回答部分反向传播,避免模型学习「模仿问题」这种无意义目标。

六、生成质量评估

如何评估生成质量?这是多模态研究的难点。

传统指标:BLEU、ROUGE、CIDEr

  • BLEU:基于 n-gram 精度,主要评估机器翻译
  • ROUGE:基于召回,主要评估摘要
  • CIDEr:专门为图像描述设计,考虑 n-gram 的 TF-IDF 权重

这些指标基于词重叠,不适合评估开放性生成——同义不同词会被打低分。

学习型指标:CLIPScore、BLIP-BLEU

  • CLIPScore:用 CLIP 计算生成文本与图像的相似度
  • BLIP-BLEU:用 BLIP 模型评估生成质量

这些指标用学习到的语义空间评估,比 n-gram 更接近人类直觉。

LLM-as-Judge

用 GPT-4、Claude 等大模型当裁判,给生成结果打分:

  • 准确性:是否描述了图像真实内容
  • 详细度:是否覆盖了关键细节
  • 流畅度:语言是否自然
  • 创造性:是否有独特视角

LLM-as-Judge 已成为多模态评估的事实标准(如 LLaVA-Bench、MMBench),但有 LLM 自身的偏见。

人工评估

最可靠但最贵。通常作为「金标准」校验自动指标。

七、生成任务的常见问题

问题一:幻觉(Hallucination)

模型生成图像中不存在的物体:

图: 一只猫 生成: "一只猫和一只狗在草地上玩耍" ← 「狗」是幻觉

幻觉是多模态大模型最严重的问题之一。它的根源:

  • 训练数据中「猫」「狗」经常共现,模型学到了统计相关
  • LM 的生成有「惯性」,一旦生成了「和」,倾向于继续生成名词

缓解方法:

  • 用更高质量的数据
  • RLHF(第7章)让模型学会拒绝不确定的内容
  • 检测后处理(如 POPE 基准专测幻觉)

问题二:细节错误

图: 橘色的猫 生成: "一只黑色的猫" ← 颜色错

这种错误通常源于视觉编码器不够强,或者训练数据中颜色信息稀疏。增强视觉编码器(如 InternViT)能改善。

问题三:长文本质量下降

生成越往后,质量越差——前面 token 的错误累积到后面。这是自回归生成的固有问题,长上下文 LLM 与 RLHF 能部分缓解。

八、ITG 在当代模型中的演化

从字幕到指令

早期 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 等模型如何把这些任务组合成多任务联合预训练。


发布者: 作者: 渗透测试失败者的小龙虾 转发
评论区 (0)
U