SFT 训练细节补充:无需 Decoding 的监督学习
| 字段 | 内容 |
|---|---|
| 作者/整理 | 基于公开课程资料整理 |
| 来源 | 五道口纳什 |
| 日期 | 2025 |

引言
本期补充 SFT 的更多细节:SFT 训练时不需要 decoding,以及 Cross-Entropy Loss 的计算。
SFT 训练不需要 Decoding
SFT 是有监督学习,我们已经知道 target response。训练时不需要模型逐 token 生成(decoding),而是一次性并行计算所有位置的 loss。这与推理时的 auto-regressive generation 有本质区别。
Cross-Entropy Loss 详解
对于 GPT 这样的 decode-only 模型:
- 输入完整序列(prompt + response)
- 模型并行输出所有位置的 logits
- 只对 response token 的位置计算 cross-entropy loss
- Prompt 部分通过 loss mask 屏蔽
Training vs. Inference
关键区别
- Training:Teacher Forcing,并行计算所有位置
- Inference:Auto-regressive,逐 token 生成
本章小结
SFT 的高效性来自 Teacher Forcing:并行计算所有位置的 loss,无需逐 token decoding。
效率来源:训练与推理为什么差这么多
很多初学者第一次接触 SFT 时会疑惑:同样是语言模型,为什么训练能并行算完所有位置,而推理却必须一个 token 一个 token 地生成?这正是 Teacher Forcing 和 Auto-regressive decoding 的本质区别。
一句话抓住差异
训练阶段知道完整目标序列,因此可以并行计算所有 response 位置的 loss;推理阶段不知道下一个 token,只能逐步生成。这也是 SFT 往往比 RL rollout 便宜得多的根本原因。
本章小结
理解 Teacher Forcing,不只是理解一个训练技巧,而是在理解为什么监督学习阶段和在线 rollout 阶段的系统成本差异如此巨大。
总结与延伸
- SFT 训练不需要 decoding(Teacher Forcing)
- 只对 response 部分计算 Cross-Entropy Loss
- 这是 SFT 比 RL 训练快得多的根本原因