Transformer 为什么更适合并行训练?

分清训练中的位置并行与生成时的自回归依赖。

内容修订 4 · 2026-10-24

T01 · 修订 1 · 2026-10-21

  1. 循环:A → B → C
  2. 训练:A、B、C 同层计算
  3. 生成:A → 生成 B → 生成 C
本站重绘:依赖关系重绘;并排表示可并行,不是实测时间。

问题从哪里来

循环网络的下一状态依赖上一状态,序列维度难以完全并行。2017 年 Transformer 用注意力连接位置,让一层中各位置的计算可组织成矩阵运算。它消除的是层内的循环路径,并没有消除层与层的依赖。

关键机制

训练时完整目标序列已知,右移后的真实 token 作为输入;因果掩码阻止位置读取未来答案。QKᵀ 为各位置计算相关性,softmax 后加权 V。解码时未来 token 尚未知,普通自回归模型仍需生成一个再生成下一个;KV cache 只能省去历史 K/V 的重复计算。

Attention(Q,K,V) = softmax(QKᵀ / √dₖ + mask)V

算例与证据

教学图:训练 [A,B,C]→[B,C,D] 时,三个位置的损失可在同一前向过程中得到;生成时必须先得到 B 才能把 B 作为下一步输入。并行程度取决于批量、序列长度、硬件和实现。

收益之外的新约束

标准稠密注意力的分数矩阵随序列长度平方增长。更好的并行性不等于低总计算量;长上下文又引出了显存、IO、位置表示和训练数据覆盖问题。

原始来源

启用脚本后可使用手动本地阅读记录和交互计算器。

继续追问

I01 · KV cache 为什么随上下文和并发增长?

S03 · FlashAttention 为什么不改公式却更快?

全部18题