从机器翻译到 Transformer

左右滑动查看完整图解 ↔

放大阅读图解 ↗

本讲目录

49页课堂主线

一句译文里的决定

语言分析怎样参与翻译

从单位到向量

沿句子更新状态

完整地生成一句译文

需要时回头读取

重新组织完整 Transformer

从任务数据到预训练

让图像提供缺少的颜色

让同一计算少搬数据

回到研究选择

完整资源推导(可选)

本页说明

学习材料

词换了位置,模型得到位置条件了吗?

T28 · 词换了位置,模型得到位置条件了吗?

全可见内容读取尚未为词提供独立的位置输入。将给予者和接受者交换,能把词内容与位置条件的区别暴露出来。

状态 b0

九位置全可见教学算例Q=K=V=X,无位置信息。列出主句各输出行供对照。

状态 b1

实算交换我与他后的attention;输出跟着行置换,其他行保持。两句给予者和接受者不同。

状态 b2

回原九词,显示每处e(词)+p_i。位置条留在位置;词移到另一处会配到另一位置条件。

状态 b3

把我与他再次交换,p₁至p₉固定;我从e(我)+p₁变为e(我)+p₅。这里展示加入位置后的输入条件改变,不沿用无位置数值。

公式与算例详情

R72独立九位置构造:X=[[1, 0], [0, 1], [1, 1], [-1, 0], [0, -1], [0.5, 0.5], [0.5, -0.5], [1, -1], [0, 0]],Q=K=V=X,scaled dot-product除√2,全部位置可见。置换索引为 [4, 1, 2, 3, 0, 5, 6, 7, 8](零起始)。原输出Y=[[0.5645897258631304, 0.0], [0.3524881540972777, 0.33741445021046623], [0.5754729258334949, 0.36396301782304297], [0.019373792165942767, 0.0], [0.3524881540972777, -0.33741445021046623], [0.46353806482736276, 0.18329123574819875], [0.46353806482736276, -0.18329123574819875], [0.5754729258334949, -0.36396301782304297], [0.3333333333333333, 0.0]];交换后重新计算A(PX)=[[0.3524881540972777, -0.33741445021046623], [0.3524881540972777, 0.33741445021046623], [0.5754729258334949, 0.36396301782304297], [0.019373792165942767, 0.0], [0.5645897258631304, 0.0], [0.46353806482736276, 0.18329123574819875], [0.46353806482736276, -0.18329123574819875], [0.5754729258334949, -0.36396301782304297], [0.3333333333333333, 0.0]]。与PA(X)最大绝对差为 0.0。

等变是A(PX)=PA(X),不是所有行数值相同,也不是序列整体输出不变。这里用屏幕行号帮助核对,行号没有进入无位置算例。最后一态加入位置仅展示新的输入条件,没有把前两态数值冒充加位置后的结果。原始Transformer采用正弦位置编码;固定在位置的p_i使同一词迁到不同位置时的输入改变。

继续学习

让整套 Transformer 共同完成一次预测 · LAB03:F · 跟着一个 token 穿过完整 encoder block

历史推导与原实验身份:R39 · R40。旧切分、代词、权重与测量保留原任务条件,不能替换成本轮九单位新句。

原始来源