60 秒回答模板

Teacher forcing 是训练自回归序列模型时,用真实的前一个 token 或标签作为下一步输入,而不是用模型自己上一步生成的结果。这样训练更稳定、收敛更快,也能并行计算每个位置的交叉熵。但问题是推理时模型拿不到真实前缀,只能基于自己已经生成的 token 继续预测,一旦前面生成错了,后续输入分布就偏离训练时见过的真实前缀,错误会逐步累积,这就是 exposure bias。缓解方法包括 scheduled sampling,训练时逐渐混入模型自己的预测;用序列级目标或强化学习优化完整生成结果;做数据增强和噪声前缀训练,让模型学会从错误上下文恢复;改进解码约束和重排序;评估时必须使用 free-running generation,而不能只看 teacher-forcing loss。

考点 Teacher forcing 训练
难度 真实面经题
回答目标 解释 exposure bias 和缓解方法

深入解析

01

Teacher forcing 的训练方式

在语言模型、机器翻译或序列生成中,训练第 t 步预测时,输入通常是真实的前 t-1 个 token。模型学习在正确历史上下文下预测下一个 token。优点是训练信号稳定、收敛快,并且可以对整段序列并行计算 loss。

02

推理时输入来源变了

推理阶段没有真实答案作为前缀,模型只能把自己生成的 token 作为下一步输入。如果某一步生成了错误 token,后续所有预测都建立在这个错误上下文上。训练时模型很少见到这种错误前缀,因此泛化到推理状态会变差。

03

Exposure bias 的本质

Exposure bias 指训练阶段模型主要暴露在真实数据分布下,而推理阶段暴露在自己生成的数据分布下。这种分布偏移会导致小错误被放大,尤其在长序列生成、多步推理和结构化输出中,前面一步偏差可能让后面越来越难纠正。

04

Scheduled sampling 的思路

Scheduled sampling 是一种常见缓解方法:训练早期更多使用真实 token,随着训练推进逐步用模型预测 token 替代部分真实 token,让模型提前适应自己的输出分布。它能降低训练推理不一致,但也可能带来训练目标偏差和稳定性问题。

05

序列级优化和鲁棒训练

另一类方法是直接优化完整序列质量,例如最小风险训练、强化学习或基于偏好的优化,让模型关注最终生成结果而不只是每个位置的交叉熵。也可以用噪声前缀、错误恢复样本、数据增强和 curriculum learning 提升模型从坏上下文恢复的能力。

06

评估不能只看训练 loss

如果只在 teacher forcing 条件下看 token-level loss,可能低估推理时的错误累积。评估应包含自由生成结果,例如 BLEU、ROUGE、准确率、结构合法率、人工质量评分、长序列一致性和任务成功率。解码策略如 beam search、约束解码和重排也能影响实际表现。

易错点

  • 只解释 teacher forcing 是用真实标签训练,没有说推理时输入变成模型输出。
  • 把 exposure bias 说成普通过拟合,没指出训练推理分布偏移。
  • 认为 teacher forcing 一定不好,忽略它带来的训练稳定和效率优势。
  • 只提 scheduled sampling,不说明其训练目标偏差和稳定性问题。
  • 只看交叉熵 loss,不看自由生成和序列级任务指标。
  • 没有解释错误如何在长序列中逐步累积。

面试官追问

Teacher forcing 为什么能加快训练收敛?

因为每一步都使用真实前缀,训练信号稳定,不会被模型早期错误污染;同时整段序列的各位置 loss 可以并行计算。相比逐步采样训练,它更高效、方差更低。

Exposure bias 和 label bias 是同一个问题吗?

不是同一个问题。Exposure bias 强调训练时看到真实前缀、推理时看到模型生成前缀造成分布偏移;label bias 通常指局部归一化序列模型偏向某些状态转移,来源和解决思路不同。

Scheduled sampling 有什么缺点?

它会让训练目标变得不再是标准最大似然,混入模型预测后可能带来偏差;如果模型早期预测很差,也会引入噪声导致训练不稳定。因此采样比例和训练阶段需要谨慎设计。

为什么 token-level loss 低不一定代表生成质量好?

Token-level loss 是在真实前缀条件下计算的,不能完全反映自由生成时的误差累积。模型可能每步平均概率不错,但一旦生成偏离,后续上下文越来越陌生,最终序列质量变差。

强化学习或偏好优化如何缓解训练推理不一致?

这些方法更关注完整序列的结果质量,而不是每个位置独立预测。通过奖励最终答案、偏好更好输出或惩罚坏序列,模型能学习在自己生成的轨迹上优化任务目标。

在机器翻译或代码生成中 exposure bias 会如何表现?

机器翻译中可能表现为前面译错导致后文指代、语序和实体持续错误;代码生成中可能是早期变量、类型或 API 选择错误,后续代码为了适配错误前缀继续偏离,最终无法编译或语义错误。