为什么transformer decoder在推理时不用mask,但GPT在推理时就需要用mask?
2024-03-13 阅读 8
关键在于“有没有未来位置可见”这个语义约束,而不是模型名字本身。自回归解码需要因果性:当前时刻不能看到未来 token。训练时通常用三角形(causal)mask 强制这种因果约束。推理有两种实现:如果一次性并行前向计算整个已生成序列,就需要显式的 mask;如果采用逐步生成并把前面各层的 key/value 缓存下来(KV‑cache),每次只计算新产生的一个位置,前面没有“未来”位置可见,就不需要再施加三角形 mask。所谓“transformer decoder 推理不用 mask”通常指的是用 KV‑cache 的逐步解码实现,而 GPT 在并行化或训练复现时仍会用因果 mask。实现上为了简单,有的框架即便用缓存也保留 mask。
更新于 2026年01月03日