切换深浅主题
第 15 章:需要时回查的矩阵公式与补充推导
下面保留第一版与第二版里有用的补充公式,供你在主文某一步想核查时使用。原对话直接用到的Softmax、方差、负对数与单参数更新,已经在对应章节展开;这里不把那些解释抽走。
本章沿用补充推导里的U记输出矩阵,与主文Wout同义。例子里的WQ、WK等仍是同一组参数,不新增一套模型。
15.1 Softmax导数,从商法则逐项推出
设 ,
。若对自己的分数sj求导,商法则给出:
若对别的分数sk求导,只有分母受影响:
这解释了“提高一项,会挤掉其他项的比例”。若一项已接近1、其他项接近0,上述导数都可能很小,所以过尖的注意力分配可能不易调整。缩放分数是帮助控制这种情况的方法,不是所有训练问题的保证解法。
为了数值稳定,所有分数可先减去最大值。Softmax不变,因为分子分母中的公共指数因子会约去。这能避免直接对很大的分数取指数。
15.2 输出Softmax与交叉熵合起来怎样求导
对目标编号y,输出分数是 ,Softmax概率为p。将目标概率代入负对数:
对第j个分数求导:第一项在j=y时给−1,否则给0;第二项给 。所以:
因此即使输出对错误候选很自信,目标项梯度仍可能接近−1。不能仅根据Softmax本身的导数很小,就推断“输出错误且自信时一定无法学习”。合并损失后要看完整导数。
15.3 内容混合、Q/K/V与矩阵反传的完整连接
用上横线表示“损失对这个量的梯度”,比如 。梯度与原量同形状。对矩阵X,它的含义由微分关系规定:
对输出 :
第一式为什么是外积?因为第j分数是 ,故
。多位置时将各贡献累加;若损失取平均,梯度也带同样的平均系数。
对于本版第13章定义的简化模块 ,给定
:
对允许的注意力分数,用Softmax各导数汇总:
被禁止位置梯度为0。然后:
输入X通过残差与三条投影路径同时影响损失,故收到的梯度要相加:
这些式子针对本节明确的小模块,不冒充整个完整GPT的反向公式。完整网络还要沿FFN、归一化和更多层继续用链式法则。
如果X来自嵌入查表,某个词表行收到的梯度,就是本次所有使用该行的位置梯度之和。没有用到的行不从输入路径收到梯度;重复Token的贡献相加。
15.4 小模型其余参数的梯度
同一次前向得到的梯度约为:
C“黑便”的嵌入行没作为输入出现,所以这里E第三行梯度为0;但U的C输出列有非零梯度。输入角色和输出角色是不同路径。WV与WO梯度相等,则是本例单位矩阵初值造成的特殊结果。
配套程序用 对24个参数逐项做中心差分,
,
表示只在第r个参数位置改动。差分有数值误差,是对解析推导的核验,不代替推导本身。
15.5 FFN与LayerNorm的公式及反向计算
主线只解释各模块用途,这里明确一种可计算的排列。令X是本层输入,LN1/LN2为两次归一化,MHA是多头注意力:
这叫Pre-LN,因为归一化放在各子层前面。Y进入下一层。最后还可以做最终归一化,得到用于输出的H。原始2017年Transformer使用子层与残差相加之后再归一化的Post-LN排列,不要混成同一精确配置。[R1]
对一行x,LayerNorm先定义均值μ和平方偏差平均v:
再逐坐标计算:
ε为小正数,避免分母为0;γ/β是可训练的逐坐标缩放和偏移。这里v是归一化定义的平方偏差平均,不是除以d−1的统计样本方差。因为有ε及γ/β,不能声称最后输出严格均值0、方差1。[R3]
FFN可设 。给定
,按乘积与链式法则:
符号⊙表示逐坐标相乘;偏置梯度对位置相加。ReLU在0不可微,自动微分实现会使用约定值;平滑激活按自己的导数计算。
LayerNorm也可逐步求导。令 、
,已知输出梯度g,令
,可整理为:
mean沿这一个位置的坐标取平均。用 、
与
代入
,即可推出。γ/β梯度分别为
与g,多位置时相加。完整网络就是把这些局部规则按计算图连接起来。
15.6 位置旋转与输入输出共享
没有位置编码、也没有位置相关掩码的全注意力,对输入位置的重排会相应重排输出,这叫置换等变。因为Q/K/V都随行重排,分数表随行列重排,每行Softmax与内容组合也随之重排。
因果掩码本身已经引入方向约束,不能把这个“没有掩码”的论证原封不动套给因果网络。显式位置信息还可提供位置或距离结构。
RoPE的一种理解是:先给不同位置的Q/K施加不同角度的二维旋转,再点积。本段专门采用列向量,写成 。那么:
若一个二维块的旋转角是位置乘固定频率ω,则 。相对位置差j−i便进入点积分数。换回主文行向量约定时,相应转置即可。[R4]
最后,输入嵌入E为N×d,输出U为d×N,可以有意设置 ,这叫权重共享。此时输出是拿h与各Token嵌入点积,而不是对E求逆。共享参数收到输入、输出两条路径的梯度之和;不共享时分别训练。[R1、R6]
15.7 残差的直接梯度路径
残差形式是 。相加要求形状相同。它提供一条不必经过
的直接路径,而不是保证原信息永远不丢失,例如
会得到零。
在列向量的 Jacobian 记号下:
所以梯度有一条恒等路径。这有助于解释深层优化,但不保证 永远良好,也不构成“绝不会梯度消失”的证明。
15.8 学习两套Q/K投影,比直接点积多了什么
用行向量写:
中间矩阵 可训练,秩至多dk,通常不要求对称。若强制WQ=WK,那么B变成
,额外受到对称半正定约束。
一个小例子:,取
,则a读b时点积为1,b读a时为0。原来两个输入向量的直接点积却是0。可见投影后的匹配不是原始向量相似度的简单重复。
15.9 原始架构和GPT不要混为一谈
| 架构 | 主要信息流 | 常见任务形式 |
|---|---|---|
| Encoder-only | 输入位置双向互读 | 表示、分类、掩码预测等 |
| Decoder-only | 因果自注意力 | 自回归续写 |
| Encoder–Decoder | 编码器双向;解码器因果并读取编码结果 | 条件序列生成,如翻译 |
编码器—解码器的交叉注意力中,Q 来自解码端,K/V 来自编码端,长度可以不同,注意力矩阵是目标长度乘源长度。它不是把同一个 X 投影三次的 self-attention。原始 Transformer 属于第三类;本笔记训练与生成主线研究第二类。[来源 R1、R5]
15.10 关于能力,哪些是机制解释,哪些还需证据
训练目标奖励能预测文本的数据处理方式。有些预测需要句法、指代、事实关联或多步依赖;模型若学到可复用特征,可以在多个样本上减少损失。输入嵌入、内容混合和输出层共同适应,使隐藏向量成为后续计算可利用的表示。
这是训练机制与经验结果之间的解释,不能由矩阵公式单独推出“必然具有可靠推理能力”。表达能力、优化是否找到好参数、数据是否提供信号、泛化是否可靠,是不同问题。
较大注意力系数表示该头对某个 Value 使用了较大系数;它不直接量化最终答案受该词影响多少。Value 的方向与大小、其他头、投影、残差和后续非线性都会改变最终效果。
“华法林与黑便有关”可以作为教学情境,但不能在未测真实模型时声称某个头已经学到这个关系。第13章甚至展示了损失降低时某条注意力比例下降的情况。
对数损失以数据实际提供的后续为目标,不直接判断命题真伪。一段错误文本也能成为训练样本;降低该样本损失不等于提高事实可靠性。模型有能力拟合复杂关系,也可能依赖表面共现、偏差或记忆。
所以本文能严格建立的是“定义后的模型怎样计算、梯度怎样产生、给定例子怎样更新”;对现实模型理解、推理、可靠性的判断,需要额外实验与证据。