← 返回题目列表

Seq2Seq 推理阶段和训练阶段有什么区别?

中等 第 19 / 25 题 更新于 2026/09/25
循环神经网络机器学习面试题模型训练
学习 AI 实战项目

简化版

Encoder-Decoder 推理先编码输入,再从 BOS 开始自回归生成,每一步把已选 token 作为下一步输入,直到 EOS 或最大长度。训练时通常用右移真值做 teacher forcing:Transformer 解码器可并行计算各目标位置,RNN 解码器的循环计算仍是串行的。推理没有真值历史,还要处理搜索、逐样本结束、状态或缓存以及错误累积。

详细版

  • 推理没有目标 token 可供 teacher forcing。

  • Greedy、beam 与 sampling 对质量和延迟取舍不同。

  • 结束条件要覆盖每条序列的 EOS 与批量活跃掩码。

  • 注意力/循环状态应随解码步正确更新。

  • 部署需缓存编码结果和可复用的 decoder 状态。

完整版教学

一、训练条件与推理闭环不同

训练时已知完整目标,decoder 可使用右移后的真值历史;Transformer 可借因果掩码并行计算各位置,而 RNN 即使使用 teacher forcing 仍需按时间递推隐藏状态。推理时第 t 步依赖前 t-1 个已生成 token,错误会进入后续条件。

这类训练—推理历史分布差异通常称为 exposure bias,也是 scheduled sampling 和序列级训练等方法的动机之一;beam search 主要改善有限宽度的推理解码,不能消除这种分布差异。

二、底层机制与公式

h=Encoder(x)
y_0=BOS
for t: p_t=Decoder(y_(t-1),state,h); y_t=select(p_t)

三、带数字的推演

若第 2 步把正确 token 概率排第二,greedy 选错后,第 3 步条件已经改变;即使原正确路径后续概率很高,也无法恢复。

Beam=2 可能暂时保留它。

四、方案对比

方案/对象核心特点代价或边界
Teacher forcing 训练真值历史使优化较稳定RNN 仍串行,且条件分布与推理不同
Greedy 推理延迟低错误不可回溯
Beam 推理保留多前缀成本高且需长度规则

五、执行流程

Encoder 一次前向 -> BOS 初始化 -> decoder step + 状态/cache
-> token 选择 -> EOS mask -> 重复 -> 去特殊 token/反词表

六、边界条件与工程代价

批量中部分样本先 EOS,应冻结其状态或只压缩活跃样本,不能继续让 padding 结果污染输出。

训练预处理、BOS/EOS id、最大长度和推理词表必须与模型版本绑定,错一项都可能生成乱码。

记忆钩子:推理链是“编码一次,BOS 起步,预测喂回,EOS 结束”。

七、常见误区与追问

  • 误区:推理时也可一直输入真实上一词。 线上没有真实目标序列。

  • 追问:为什么出现 exposure bias? 模型训练多见正确历史,推理却消费自身错误。

  • 误区:到最大长度停止就足够。 还需逐样本 EOS 和异常无终止保护。

  • 追问:缓存什么? 编码器输出;RNN 保存递推隐状态,Transformer 自回归解码通常保存各层注意力 K/V,二者不要混为一种实现。

  • 追问:如何降低延迟? greedy、小 beam、批处理与状态缓存联合优化。

八、加强记忆

推理链是“编码一次,BOS 起步,已选 token 喂回,逐样本遇 EOS 结束”。Teacher forcing 提供真值历史,但只有非循环架构才能由此并行各位置;RNN 隐状态仍须串行递推。实现要把搜索策略、活跃样本掩码、RNN 状态或 Transformer K/V 缓存与模型版本绑定,并防止无 EOS 时无限生成。