1.5 生成任务
三大经典生成任务:机器翻译 / 摘要 / 问答;解码策略 greedy / beam / top-k / top-p / temperature;teacher forcing 与 exposure bias
从"判别"到"生成"
前两节讲的分类和序列标注都属于判别式任务——输入给定,输出空间是有限的离散标签。从本节开始进入生成式任务:输出是一个可变长度的字符串序列,空间指数级地大,建模难度陡增。
三大经典生成任务:
- 机器翻译(Machine Translation, MT):一种语言的句子 → 另一种语言的句子
- 文本摘要(Text Summarization):长文档 → 短摘要
- 问答(Question Answering, QA):问题 + 上下文 → 答案文本
这三个任务定义了现代 LLM 的大半幅能力地图。本节给出它们的经典建模方式,然后深入解码策略——这一层直接决定了你看到的 GPT 输出是"保守"还是"有创造力"。
共同的数学形式:条件语言模型
三大任务在建模上惊人地一致。给定输入 (源语言句子 / 长文档 / 问题上下文),生成目标 被建模为:
训练目标是条件负对数似然:
这个式子涵盖了从 2014 年 Bahdanau Seq2Seq + Attention、到 Transformer Encoder-Decoder(第 2 讲详讲)、到 GPT 类 decoder-only 的几乎所有主流生成模型。
Teacher Forcing 与 Exposure Bias
Teacher Forcing
训练时的一个标准技巧:在时刻 预测 ,喂给模型的不是模型自己前面几步的预测,而是真实标签 。这样每一步的误差不会累积,训练稳定得多。
Exposure Bias
Teacher forcing 带来一个本质的训练-推理不一致问题:
- 训练时:每一步都站在正确答案的肩膀上
- 推理时:每一步站在自己上一步的预测上,错误会累积
这就是 exposure bias。一旦推理中某步产生轻微偏差,后续可能越跑越远。经典现象:Seq2Seq 模型翻译后半句常重复或"跑题"。
现代 LLM 时代缓解 exposure bias 的主要手段:
- 更大的模型和更多数据,让单步错误率本身降到很低
- Scheduled Sampling:训练时以一定概率把模型预测喂回去,模拟推理
- RLHF / PPO / DPO(第 6 讲):在完整生成序列上优化奖励,跳出单步 teacher forcing
解码策略:从分布到字符串
模型最终输出的是每一步的概率分布 。如何从这个分布中采样出具体 token,就是解码(Decoding)的问题。这一层参数设置直接决定了生成文本的风格。
Greedy Decoding
每步取概率最大的 token:
特点:确定性、快;但容易陷入重复循环,输出死板无创造力。
Beam Search
每步同时维护 Top- 个候选序列(beam size = ),展开下一步时保留总概率最高的 个序列。
特点:近似最大化整条序列概率。在机器翻译、摘要等有标准答案的任务上是默认选择(beam size 4-10)。陷阱:在开放式生成上会产生过度保守、缺乏多样性的文本。
Temperature Sampling
在 softmax 上加温度 :
- :趋近 greedy,最确定
- :原始分布
- :趋近均匀分布,纯随机
聊天模型常用 ;代码生成、事实性问答常用 。
Top-k Sampling
每步只在概率最高的 个 token 中采样,其余置零并重新归一化。
Top-p(Nucleus)Sampling
动态选择累积概率达到 的最小 token 集合,然后在这个集合内采样。
相比 top-k(固定 ),top-p 在分布尖锐时只保留少数几个 token,在分布平缓时保留更多——自动适应不同步骤的不确定性。当前最主流的采样方式,典型 。
一张对照表
| 策略 | 确定性 | 多样性 | 典型场景 | 典型参数 |
|---|---|---|---|---|
| Greedy | 高 | 低 | 代码补全、事实问答 | — |
| Beam Search | 高 | 低 | 翻译、摘要 | beam=4~10 |
| Temperature | 可调 | 可调 | 大多数聊天场景 | |
| Top-k | 中 | 中 | 创意写作 | |
| Top-p | 中 | 中 | 现代 LLM 默认 |
组合使用
工业界通常同时使用 temperature + top-p:
outputs = model.generate(
**inputs,
max_new_tokens=256,
do_sample=True,
temperature=0.7, # 先按温度压缩/放大 logits
top_p=0.9, # 再在核概率集合内采样
repetition_penalty=1.1, # 抑制重复
)调参直觉:
- 希望更准确、更一致 → 降温度、开 beam search、用 greedy
- 希望更有创意、更多样 → 升温度、用 top-p、关 beam search
同一个模型只靠调解码参数就能让输出从"死板公文"切换到"天马行空"——这是很多"模型表现差"抱怨背后的真正原因。
三大任务的具体形态
机器翻译
- 输入:源语言句子;输出:目标语言句子
- 经典架构:Seq2Seq + Attention → Transformer Encoder-Decoder
- 评估:BLEU、chrF、COMET(下一节详讲)
- 解码偏好:beam search(beam 4-5)+ 低温度
文本摘要
两种范式:
- 抽取式(Extractive):从原文挑关键句拼接——保真度高,流畅度差
- 生成式(Abstractive):真正"生成"新句子——流畅度高,可能引入幻觉
评估:ROUGE-1/2/L(下一节详讲)
忠实性问题:摘要必须忠于原文,绝不能产生原文没有的事实。这是摘要任务被 LLM 颠覆的同时也面临最严重挑战的点——LLM 摘要 的幻觉率远高于抽取式。
问答
按答案形式分三类:
| 类型 | 答案形式 | 典型数据集 | 经典方法 |
|---|---|---|---|
| 抽取式 QA | 原文中的一个片段(start/end 位置) | SQuAD | BERT + span 分类 |
| 选择题 QA | 从 A/B/C/D 中选一个 | RACE、MMLU | 分类模型 |
| 生成式 QA | 任意文本 | NQ-Open、TriviaQA | Encoder-Decoder 或 decoder-only LLM |
RAG(第 4 讲详讲)本质上就是生成式 QA + 检索增强——先从文档库检索相关段落,再让模型基于段落生成答案。
本节小结
| 概念 | 要点 |
|---|---|
| 条件语言模型 | 生成任务的统一数学形式 |
| Teacher Forcing | 训练时喂真实标签,不喂模型预测;稳定但带来 exposure bias |
| Exposure Bias | 训练-推理分布不一致;靠更大模型、scheduled sampling、RLHF 缓解 |
| Greedy | 每步取最大;快但死板 |
| Beam Search | Top-k 候选;翻译/摘要默认 |
| Temperature | 控制分布尖锐度;聊天常用 0.7-1.0 |
| Top-p | 核采样,现代 LLM 默认;0.9-0.95 |
| 三大任务 | 翻译 / 摘要 / 问答,建模一致,评估不同 |