R46 · 回到翻译:三种读取,各自从哪里取信息?
单个块的职责已经清楚。将它放回最初的翻译任务,检查源句、目标前缀与跨序列条件怎样进入同一个预测。
状态 b0
先把完整源句接上已知decoder母图;源端全可见编码,留下逐位置H供后续查询。
状态 b1
目标端恢复因果读取:gave行只读BOS、I、gave。比较源全可见与目标前缀可见的不同条件。
状态 b2
cross的Q来自目标中间表示,K/V来自完整源H。预测her时可读取中文全部来源,因为源句已给定。
读取源句中的“她”不是读取未来英文her;源条件与目标答案属于两条不同序列。
状态 b3
FFN、层叠与词表头补齐模型。回看位置、因果mask与cross各自解决的顺序、合法性和条件来源问题。
公式与算例详情
沿目标位置穿过完整翻译模型
原始 Transformer 是 encoder–decoder 翻译模型。源 token embedding 加位置后进入 encoder;每层包含全 self-attention 与逐位置 FFN,每个子层采用残差相加后 LayerNorm。编码器最终输出 H 保留一行对应一个源位置的表示。
Decoder 接收右移的目标序列。其第一种 attention 是 masked self-attention:Q、K、V 来自该 decoder 层输入,但 mask 限制未来读取。经过第一次 Add & Norm 后,第二种是 cross-attention:Q 来自当前 decoder 中间表示,K、V 投影自编码器最终 H。cross-attention 一般能读取完整源句,因为源句是已知条件;它不是读取未来目标。随后还有 Add & Norm、FFN、Add & Norm。
原论文 base 的 encoder 与 decoder 各叠6层,$d_{model}=512$,8个 head,$d_{ff}=2048$。最后的 decoder 表示经线性词表投影与 softmax 得到各位置下一词分布。本讲上一组4维数值模型只是显示部件计算,并不冒充这套已训练512维翻译系统。图中每条 Add & Norm 均为 post-norm;源句中的“她”属于已知条件,目标端尚未生成的 her 属于未来,两者不能因字义相近而混同。
参考与采用
- Vaswani et al. · Attention Is All You Need:原始 encoder–decoder Transformer:信息来源、并行性、路径和代价。 复核位置:§3、Table 1/2;本轮核对v7 PDF;首次提交2017-06-12
原课页采用记录:M28 完整翻译 Transformer。页码均按PDF物理页计。
继续学习
如果一张整图中分不清三种 attention,读Transformer 的信息流“沿一行目标表示走一遍”和“把完整单元接回翻译模型”,并按完整翻译模型说明标出每次 Q/K/V 的来源。CLS 02“8 · 完整 encoder–decoder 没有被小 block 取代”与LAB 03 F 段分别承担系统走读和局部算子复算;核对源侧“她”可读并不意味着目标未来 her 可读。