从机器翻译到 Transformer

左右滑动查看完整图解 ↔

放大阅读图解 ↗

本讲目录

49页课堂主线

一句译文里的决定

语言分析怎样参与翻译

从单位到向量

沿句子更新状态

完整地生成一句译文

需要时回头读取

重新组织完整 Transformer

从任务数据到预训练

让图像提供缺少的颜色

让同一计算少搬数据

回到研究选择

完整资源推导(可选)

本页说明

学习材料

先沿源位置归一化,再带回内容

T22 · 先沿源位置归一化,再带回内容

刚才已经把读取放到两个不同的目标前缀。这里倒回 I gave→?,缩小数值规模,让源评分、源归一化与值汇总能被逐项指认。

状态 b0

时间点从I gave him a book退回I gave→?;原九单位源句不变,局部只放大他、书、昨天三槽,q不含待预测词。K与V分栏,q单独给定。

状态 b1

q=(1,0),三个点积得到 (1,0,1)。分数的索引仍是源槽。

状态 b2

源权重约 (.422,.155,.422),条长对应权重,三项总和为1。此时没有英文词概率。

状态 b3

同一权重乘各槽 V 得 c≈(1.267,1.466),两个数条呈现读回坐标,它仍不是词。

公式与算例详情

这里的c沿用T20定义,指本次attention读取结果,不是LSTM的cell状态;cG继续表示该内容经过给定输出矩阵。

本轮独立 R72 三源槽:他/书/昨天。q=(1,0),K=((1,0),(0,1),(1,1)),V=((2,0),(0,4),(1,2))。未缩放点积;没有把本算例冒称完整九位置翻译器或旧 checkpoint。

全精度计算: { "labels": [ "他", "书", "昨天" ], "K": [ [ 1, 0 ], [ 0, 1 ], [ 1, 1 ] ], "V": [ [ 2, 0 ], [ 0, 4 ], [ 1, 2 ] ], "G": [ [ 2, 0, 0 ], [ 0, 1, 0 ] ], "base": { "scores": [ [ 1.0, 0.0, 1.0 ] ], "weights": [ [ 0.4223187982515182, 0.15536240349696362, 0.4223187982515182 ] ], "output": [ [ 1.2669563947545546, 1.4660872104908909 ] ], "q": [ 1, 0 ], "logits": [ 2.533912789509109, 1.4660872104908909, 0.0 ], "probabilities": [ 0.7026897700402427, 0.24155324403777662, 0.05575698592198072 ] }, "changed": { "scores": [ [ 0.0, 1.0, 1.0 ] ], "weights": [ [ 0.15536240349696362, 0.4223187982515182, 0.4223187982515182 ] ], "output": [ [ 0.7330436052454454, 2.533912789509109 ] ], "q": [ 0, 1 ], "logits": [ 1.4660872104908909, 2.533912789509109, 0.0 ], "probabilities": [ 0.24155324403777662, 0.7026897700402427, 0.05575698592198072 ] }, "scaled": { "scores": [ [ 0.7071067811865475, 0.0, 0.7071067811865475 ] ], "weights": [ [ 0.4011120926797859, 0.1977758146404282, 0.4011120926797859 ] ], "output": [ [ 1.2033362780393577, 1.5933274439212846 ] ] } }

可运行定义位于 scripts/r72/middle_helpers.py;减去最大分数再指数化的 softmax 与直接定义数学等价。课堂只显示约三位小数,所有中间结果来自同一次计算,未用四舍五入后数值继续相乘。

继续学习

读取之后,系统怎样决定写 him · LAB02:E · 只改 q 或只改 V,分别会改变什么?

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

原始来源