人工智能实践(语言智能)
第1讲:经典 NLP 任务

1.5 生成任务

三大经典生成任务:机器翻译 / 摘要 / 问答;解码策略 greedy / beam / top-k / top-p / temperature;teacher forcing 与 exposure bias

从"判别"到"生成"

前两节讲的分类和序列标注都属于判别式任务——输入给定,输出空间是有限的离散标签。从本节开始进入生成式任务:输出是一个可变长度的字符串序列,空间指数级地大,建模难度陡增。

三大经典生成任务:

  • 机器翻译(Machine Translation, MT):一种语言的句子 → 另一种语言的句子
  • 文本摘要(Text Summarization):长文档 → 短摘要
  • 问答(Question Answering, QA):问题 + 上下文 → 答案文本

这三个任务定义了现代 LLM 的大半幅能力地图。本节给出它们的经典建模方式,然后深入解码策略——这一层直接决定了你看到的 GPT 输出是"保守"还是"有创造力"。


共同的数学形式:条件语言模型

三大任务在建模上惊人地一致。给定输入 xx(源语言句子 / 长文档 / 问题上下文),生成目标 y=(y1,y2,,yT)y = (y_1, y_2, \ldots, y_T) 被建模为:

P(yx)=t=1TP(yty<t,x)P(y | x) = \prod_{t=1}^T P(y_t | y_{<t}, x)

训练目标是条件负对数似然

L=t=1TlogPθ(yty<t,x)\mathcal{L} = -\sum_{t=1}^T \log P_\theta(y_t | y_{<t}, x)

这个式子涵盖了从 2014 年 Bahdanau Seq2Seq + Attention、到 Transformer Encoder-Decoder(第 2 讲详讲)、到 GPT 类 decoder-only 的几乎所有主流生成模型。


Teacher Forcing 与 Exposure Bias

Teacher Forcing

训练时的一个标准技巧:在时刻 tt 预测 yty_t喂给模型的不是模型自己前面几步的预测,而是真实标签 y1,,yt1y_1, \ldots, y_{t-1}。这样每一步的误差不会累积,训练稳定得多。

Exposure Bias

Teacher forcing 带来一个本质的训练-推理不一致问题

  • 训练时:每一步都站在正确答案的肩膀上
  • 推理时:每一步站在自己上一步的预测上,错误会累积

这就是 exposure bias。一旦推理中某步产生轻微偏差,后续可能越跑越远。经典现象:Seq2Seq 模型翻译后半句常重复或"跑题"。

现代 LLM 时代缓解 exposure bias 的主要手段:

  • 更大的模型和更多数据,让单步错误率本身降到很低
  • Scheduled Sampling:训练时以一定概率把模型预测喂回去,模拟推理
  • RLHF / PPO / DPO(第 6 讲):在完整生成序列上优化奖励,跳出单步 teacher forcing

解码策略:从分布到字符串

模型最终输出的是每一步的概率分布 P(yty<t,x)RVP(y_t | y_{<t}, x) \in \mathbb{R}^V如何从这个分布中采样出具体 token,就是解码(Decoding)的问题。这一层参数设置直接决定了生成文本的风格。

Greedy Decoding

每步取概率最大的 token:

yt=argmaxwP(wy<t,x)y_t = \arg\max_w P(w | y_{<t}, x)

特点:确定性、快;但容易陷入重复循环,输出死板无创造力。

每步同时维护 Top-kk 个候选序列(beam size = kk),展开下一步时保留总概率最高的 kk 个序列。

特点:近似最大化整条序列概率。在机器翻译、摘要等有标准答案的任务上是默认选择(beam size 4-10)。陷阱:在开放式生成上会产生过度保守、缺乏多样性的文本。

Temperature Sampling

在 softmax 上加温度 TT

PT(w)=exp(zw/T)wexp(zw/T)P_T(w | \cdot) = \frac{\exp(z_w / T)}{\sum_{w'} \exp(z_{w'} / T)}
  • T0T \to 0:趋近 greedy,最确定
  • T=1T = 1:原始分布
  • TT \to \infty:趋近均匀分布,纯随机

聊天模型常用 T=0.71.0T = 0.7 \sim 1.0;代码生成、事实性问答常用 T=00.3T = 0 \sim 0.3

Top-k Sampling

每步只在概率最高的 kk 个 token 中采样,其余置零并重新归一化。

Top-p(Nucleus)Sampling

动态选择累积概率达到 pp 的最小 token 集合,然后在这个集合内采样。

Vp=minV  V  s.t.  wVP(w)pV_p = \min_V \; V \; \text{s.t.} \; \sum_{w \in V} P(w) \ge p

相比 top-k(固定 kk),top-p 在分布尖锐时只保留少数几个 token,在分布平缓时保留更多——自动适应不同步骤的不确定性。当前最主流的采样方式,典型 p=0.90.95p = 0.9 \sim 0.95

一张对照表

策略确定性多样性典型场景典型参数
Greedy代码补全、事实问答
Beam Search翻译、摘要beam=4~10
Temperature可调可调大多数聊天场景T=0.71.0T=0.7\sim1.0
Top-k创意写作k=4050k=40\sim50
Top-p现代 LLM 默认p=0.90.95p=0.9\sim0.95

组合使用

工业界通常同时使用 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 位置)SQuADBERT + span 分类
选择题 QA从 A/B/C/D 中选一个RACE、MMLU分类模型
生成式 QA任意文本NQ-Open、TriviaQAEncoder-Decoder 或 decoder-only LLM

RAG(第 4 讲详讲)本质上就是生成式 QA + 检索增强——先从文档库检索相关段落,再让模型基于段落生成答案。


本节小结

概念要点
条件语言模型生成任务的统一数学形式 P(yx)=P(yty<t,x)P(y\|x) = \prod P(y_t\|y_{<t}, x)
Teacher Forcing训练时喂真实标签,不喂模型预测;稳定但带来 exposure bias
Exposure Bias训练-推理分布不一致;靠更大模型、scheduled sampling、RLHF 缓解
Greedy每步取最大;快但死板
Beam SearchTop-k 候选;翻译/摘要默认
Temperature控制分布尖锐度;聊天常用 0.7-1.0
Top-p核采样,现代 LLM 默认;0.9-0.95
三大任务翻译 / 摘要 / 问答,建模一致,评估不同