Transformer 为什么更适合并行训练?
分清训练中的位置并行与生成时的自回归依赖。
内容修订 4 · 2026-10-24
T01 · 修订 1 · 2026-10-21
- 循环:A → B → C
- 训练:A、B、C 同层计算
- 生成: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、位置表示和训练数据覆盖问题。
原始来源
- Attention Is All You Need · 2017-06-12 · 核对 2026-10-21
启用脚本后可使用手动本地阅读记录和交互计算器。