You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Transformer训练阶段Decoder输入未迭代拼接历史输出的疑问

问题解答

该实现是Transformer训练阶段的标准优化方案,核心是利用自注意力的前瞻掩码特性实现整句并行训练,和推理阶段的迭代逻辑并不冲突:

  • 你提到的「迭代将上一轮输出作为当前输入」是推理阶段的Decoder运行逻辑:推理时没有完整的目标句真值,只能从<sos>起始符开始,每轮预测出1个新token,拼到输入序列后再传入Decoder做下一轮预测,这个过程天然无法并行。
  • 训练阶段我们持有完整的目标句真值,完全可以用 Teacher Forcing + 前瞻掩码 的方案实现效率更高的并行训练:
    1. 代码中直接传入完整tar_inp的同时,Decoder的自注意力层会添加前瞻掩码(look-ahead mask),该掩码会强制每个位置的自注意力计算只能看到当前位置及之前的输入token,完全屏蔽后续位置的信息,不存在标签泄露的问题,效果和逐次输入真值token的Teacher Forcing完全一致。
    2. 举个例子:如果tar_inp为<sos> 我 爱 中国,对应待预测的tar_real为我 爱 中国 <eos>,计算第2个位置(对应输出「我」)的预测结果时,掩码会挡住后面的「爱」「中国」,仅能看到<sos>;计算第3个位置(对应输出「爱」)的预测结果时,仅能看到<sos> 我,完全复现了逐轮输入的逻辑,但是可以一次性完成所有位置的损失计算,不需要循环目标句长度次,训练效率提升数十倍。
  • Transformer原论文中描述的迭代输入逻辑针对的是推理场景,训练阶段的并行方案本身就是论文提到的标准实现,可以查阅原论文3.1节的训练部分说明做验证。

内容的提问来源于stack exchange,提问作者RDGuida

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 21:36:05