第二次 softmax,候选已经换成英文词
T23 · 第二次 softmax,候选已经换成英文词
第一次归一化解决从哪些源槽带回多少内容,第二次才解决英文候选的概率。沿同一小计算接通两端,可避免把 attention 权重直接当成翻译。
状态 b0
G 两行三列;cG=(2c₁,c₂,0)≈(2.534,1.466,0)。当前条形图是候选分数,尚未归一化。
状态 b1
him/book/yesterday 的概率约 (.703,.242,.056)。源槽和目标词表是两套不同的归一化轴。
状态 b2
标签 him 通过 loss 训练输出头、加权汇总与打分;不把答案提前放进 query。
状态 b3
可选干预 q=(0,1),K/V/G 不变;重新算得源权重 (.155,.422,.422)、c≈(.733,2.534)及词概率 (.242,.703,.056)。
公式与算例详情
本轮独立 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 与直接定义数学等价。课堂只显示约三位小数,所有中间结果来自同一次计算,未用四舍五入后数值继续相乘。
G 只是两维内容到三个候选的教学输出头,完整模型还会使用目标状态和完整词表。监督可通过最终任务训练匹配接口,不要求每个源词与目标词都有人工对齐标签。
继续学习
历史推导与原实验身份:R28 · R30 · R37 · R32。旧切分、代词、权重与测量保留原任务条件,不能替换成本轮九单位新句。
原始来源
- https://arxiv.org/pdf/1409.0473v1:。原版本及采用边界见正文