Lecture 05 · 并行算训练位置,不等于并行知道未来词

R47 · 并行算训练位置,不等于并行知道未来词

完整结构已经能输出下一词分布。现在分别看训练与生成手里已有的信息,定位并行究竟发生在哪个阶段、哪条轴上。

状态 b0

训练答案已知,右移后各行合法前缀可同时构造。mask仍约束未来连接。

训练:完整目标已知,先右移,再并行计算合法前缀BOSIgavehera同一层:causal self-attention → FFN

状态 b1

并行的是同层已知位置,后一层继续依赖前一层输出。观察并行轴与层间等待的区别。

训练:完整目标已知,先右移,再并行计算合法前缀BOSIgavehera同一层:causal self-attention → FFNIgaveherabook层 l+1 仍须等待层 l;并行的是同一层的已知输入位置。

状态 b2

生成中的后续输入还空着;先选I并接回,下一步输入才成立。未知token依赖没有因矩阵化消失。

训练:完整目标已知,先右移,再并行计算合法前缀BOSIgavehera同一层:causal self-attention → FFNIgaveherabook层 l+1 仍须等待层 l;并行的是同一层的已知输入位置。生成:BOS → 选 I → BOS I → 选 gave → BOS I gave → …后续 token 未知,先选择,再把它接回前缀。

公式与算例详情

训练与生成知道的内容不同

训练时正确目标序列全部来自数据。把输入右移一位,再使用 causal mask,便能在一层里同时计算多个目标位置,分别形成各自的下一词分布与损失。每个位置仍只能利用合法前缀,只是这些前缀已经可由训练数据构造。沿层的依赖没有消失:第 l+1 层需要第 l 层的表示。

自回归生成时,模型没有真实的后续目标 token。给定源句与 BOS,先得到第一个分布并选择 token;把选出的 I 接回后,再得到下一分布。用 greedy、采样或 beam 会改变如何选择候选,但不改变普通自回归分解对前缀的依赖。

因此“Transformer 可以并行”必须说清轴与阶段:训练时同层的序列位置可并行;普通自回归生成的后续 token 仍依赖先前选择。相同输入前缀中哪些计算可缓存,是接下来现代 decoder 运行部分要单独分析的问题。

参考与采用

原课页采用记录:M29 从 block 到 LM 训练。页码均按PDF物理页计。

继续学习

若训练并行与生成逐词看似矛盾,读已知目标与未知后续的区别,给同一位置标出训练时已给定、生成时尚未知的 token。两种时间尺度的路线判断与CLS 02“9 · 2017:并行值得试,胜负仍要测”讨论这一区别怎样影响投入;在LAB 02 D 段核对右移与生成循环,随后 R54–R55 再检查其中可复用的中间量。