先沿源位置归一化,再带回内容
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 与直接定义数学等价。课堂只显示约三位小数,所有中间结果来自同一次计算,未用四舍五入后数值继续相乘。
继续学习
历史推导与原实验身份:R31 · R32 · R33 · R34 · R36 · R37 · R28 · R30。旧切分、代词、权重与测量保留原任务条件,不能替换成本轮九单位新句。
原始来源
- https://arxiv.org/pdf/1409.0473v1:。原版本及采用边界见正文