现代 Transformer 架构纯数学推导与第一性原理 (数学附录)

高中生友好版的第一性原理数学推导:从平面向量与矩阵几何变换,到复数旋转与欧拉公式推导 RoPE、注意力方差缩放因子 1/sqrt(d_k) 的独立随机变量严密证明、Softmax 数值稳定性推导,以及极大似然估计与交叉熵损失的数学同构。

本文目录31 个章节

导读与数学免责声明: 很多人以为研究大模型必须精通流形学习、张量分析、泛函微积分等艰深的大学数学。 但事实上,现代 Transformer 核心算子(RoPE、Attention、RMSNorm、SwiGLU)的数学灵魂,其核心骨架几乎全建立在高中数学(平面向量、三角函数、复数与极坐标、基础导数、均值与方差)的基础之上!

本专题专门作为 第 02 章|从零手写现代 Transformer 架构 的先修与深度补充。 无论你是高中生、大一新生,还是工作多年数学早已还给老师的工程师,只要你还记得什么是 sin\sincos\cos 和虚数 ii,跟着本文手拿一支笔、一张草稿纸,你就能彻彻底底推导出当代大模型每一个核心公式背后的全部数学原理!

文本
===================================================================================
                     高中数学到现代 Transformer 知识跃迁路线图
===================================================================================

【高中数学积木】                                  【大模型核心算子】
1. 平面向量与点乘 (a·b = |a||b|cosθ) ───────────► 词向量相似度 & Attention 寻人打分
2. 虚数 i 与复数乘法几何旋转 ────────────────────► RoPE 旋转位置编码 (相对距离涌现)
3. 随机变量均值与独立方差加法 ──────────────────► Attention 缩放因子 1/√d_k 推导
4. 导数切线与指数对数运算 ──────────────────────► RMSNorm 尺度不变性 & SiLU 平滑门控
5. 条件概率连乘与对数转化 ──────────────────────► 因果语言模型交叉熵损失 (MLE)
===================================================================================

第一篇:向量与空间映射 —— 从平面小箭头到 512 维语义世界

1.1 高中几何里的向量:有大小、有方向的箭头

在高中物理和平面几何中,我们第一次接触向量(Vector):

  • 向量用一个带箭头的线段表示,比如从原点 (0,0)(0,0) 指向点 (3,4)(3, 4) 的向量 v=(3,4)\vec{v} = (3, 4)
  • 模长(长度):利用勾股定理求出:v=32+42=5|\vec{v}| = \sqrt{3^2 + 4^2} = 5
  • 点乘(内积):如果有两个向量 a=(x1,y1)\vec{a} = (x_1, y_1)b=(x2,y2)\vec{b} = (x_2, y_2),它们的点乘公式为: ab=x1x2+y1y2=abcosθ\vec{a} \cdot \vec{b} = x_1 x_2 + y_1 y_2 = |\vec{a}| |\vec{b}| \cos\theta 其中 θ\theta 是两个箭头之间的夹角。

💡 高中点乘的物理意义:

  • 如果两个箭头方向完全一致θ=0\theta = 0^\circ),cos0=1\cos 0^\circ = 1,点乘取得最大正值
  • 如果两个箭头垂直正交θ=90\theta = 90^\circ),cos90=0\cos 90^\circ = 0,点乘为 0(两者毫无干系);
  • 如果两个箭头背道而驰θ=180\theta = 180^\circ),cos180=1\cos 180^\circ = -1,点乘为最大负值

这就是大模型度量“相关性”的终极法宝:点乘结果越大,说明两个向量的方向越接近,语义越相似!

1.2 升维!从 2 维平面到 512 维高维空间

高中黑板上只能画 2 维(x,yx, y 轴)或 3 维(x,y,zx, y, z 轴)坐标系。 在大模型里,我们不过是把坐标轴从 3 条扩展到了 512 条! 词向量不再是平面上的 (x,y)(x, y),而是一长串包含 512 个实数的数组: x=(x1,x2,x3,,x512)\vec{x} = (x_1, x_2, x_3, \dots, x_{512})

1.2.1 多维向量的模长(长度)怎么算?—— 高维勾股定理

很多同学初学多维空间时,总觉得 512 维空间不可思议。其实它的距离计算和初中几何里的勾股定理一脉相承,没有任何本质区别

  • 2 维平面向量 a=(x,y)\vec{a} = (x, y) 的长度(模长): a=x2+y2|\vec{a}| = \sqrt{x^2 + y^2}
  • 3 维立体空间向量 a=(x,y,z)\vec{a} = (x, y, z) 的长度(从长方体一角连到对角线): a=x2+y2+z2|\vec{a}| = \sqrt{x^2 + y^2 + z^2}
  • 推而广之:512 维超空间向量 a=(a1,a2,,a512)\vec{a} = (a_1, a_2, \dots, a_{512}) 的模长: a=a2=a12+a22+a32++a5122=i=1512ai2|\vec{a}| = \|\vec{a}\|_2 = \sqrt{a_1^2 + a_2^2 + a_3^2 + \dots + a_{512}^2} = \sqrt{\sum_{i=1}^{512} a_i^2} (在大学数学中,这种模长被称为 L2L_2 范数(Euclidean Norm),记作 a2\|\vec{a}\|_2
💡 关键数学恒等式:模长等于“自身点乘再开根号”

仔细观察上面根号里面的那串连加: a12+a22++a5122=a1a1+a2a2++a512a512=aaa_1^2 + a_2^2 + \dots + a_{512}^2 = a_1 a_1 + a_2 a_2 + \dots + a_{512} a_{512} = \vec{a} \cdot \vec{a} 这就是向量代数中最基础、最重要的恒等式a=aa|\vec{a}| = \sqrt{\vec{a} \cdot \vec{a}} 任何一个向量和自己做点乘,结果就是它的长度的平方!

拿具体数字算一遍:

假设有一个 4 维微型向量:v=(1.0,2.0,2.0,4.0)\vec{v} = (1.0, 2.0, 2.0, 4.0)

  1. 各分量平方:12=1,22=4,22=4,42=161^2 = 1, \quad 2^2 = 4, \quad 2^2 = 4, \quad 4^2 = 16
  2. 平方累加:1+4+4+16=251 + 4 + 4 + 16 = 25
  3. 开根号: v=25=5.0|\vec{v}| = \sqrt{25} = 5.0 这个 4 维向量从原点出发,它的物理空间总长度精准等于 5.0
🔗 与后面 RMSNorm 算子的血缘关系:

请大家提前看一眼模长公式与后面要讲的均方根(RMS)

  • 模长(Norm)是:i=1dai2\sqrt{\sum_{i=1}^d a_i^2}
  • 均方根(RMS)是:1di=1dai2=ad\sqrt{\frac{1}{d}\sum_{i=1}^d a_i^2} = \frac{|\vec{a}|}{\sqrt{d}} 原来 RMSNorm 的本质,就是把整个高维向量的长度,平均分摊到了每一个维度上的“平均刻度大小”!

1.2.2 高维点乘与余弦相似度(Cosine Similarity)

高维向量的点乘法则依然和高中完全一模一样,就是对应分量两两相乘再求和: ab=i=1512aibi=a1b1+a2b2++a512b512\vec{a} \cdot \vec{b} = \sum_{i=1}^{512} a_i b_i = a_1 b_1 + a_2 b_2 + \dots + a_{512} b_{512}

根据高中点乘定义 ab=abcosθ\vec{a} \cdot \vec{b} = |\vec{a}| |\vec{b}| \cos\theta,如果我们把分母除过去,就得到了衡量两个高维词向量语义相似度的黄金公式——余弦相似度cosθ=abab=i=1512aibii=1512ai2i=1512bi2\cos\theta = \frac{\vec{a} \cdot \vec{b}}{|\vec{a}| |\vec{b}|} = \frac{\sum_{i=1}^{512} a_i b_i}{\sqrt{\sum_{i=1}^{512} a_i^2} \cdot \sqrt{\sum_{i=1}^{512} b_i^2}}

  • 单位化(归一化)后的直觉: 如果我们事先把每个词向量的长度都缩放到 1(即变成单位向量 a^=aa\hat{a} = \frac{\vec{a}}{|\vec{a}|}),那么分母就恒等于 1: cosθ=a^b^\cos\theta = \hat{a} \cdot \hat{b} 此时,两个词的语义相似度直接等于它们的点乘结果!
  • 在 512 维的宏大宇宙中,“国王”和“王后”这两个向量的夹角极小(cosθ0.9\cos\theta \approx 0.9),而“国王”和“拖拉机”的夹角接近 9090^\circcosθ0.0\cos\theta \approx 0.0)!

1.3 矩阵乘法的物理本质:给空间做“换视角透视”

在大学线性代数课上,老师教矩阵乘法时通常会甩出一句机械的口诀:“左边矩阵取第 ii 行,右边向量取第 jj 列,对应元素相乘再相加”。 这种死板的算法让无数同学只会盲目算账,却从来不知道矩阵乘法到底在空间中对数据做了什么

现在,让我们回到高中平面几何,用最直观的“基底箭头(Basis Vectors)”彻底看透矩阵乘法的几何灵魂!

1.3.1 高中坐标系的基石:两根标准基底箭头

在高中直角坐标系中,任何一个点或向量,本质上都是由两根最基础的单位基底箭头组合出来的:

  • 横向基底:e1=(10)\vec{e}_1 = \begin{pmatrix} 1 \\ 0 \end{pmatrix}(代表向右迈 1 步)
  • 纵向基底:e2=(01)\vec{e}_2 = \begin{pmatrix} 0 \\ 1 \end{pmatrix}(代表向上迈 1 步)

如果有一个向量 v=(32)\vec{v} = \begin{pmatrix} 3 \\ 2 \end{pmatrix},它的真实含义是什么? v=3e1+2e2=3(10)+2(01)=(32)\vec{v} = 3 \cdot \vec{e}_1 + 2 \cdot \vec{e}_2 = 3 \begin{pmatrix} 1 \\ 0 \end{pmatrix} + 2 \begin{pmatrix} 0 \\ 1 \end{pmatrix} = \begin{pmatrix} 3 \\ 2 \end{pmatrix} 通俗解释:沿着“向右的基准走 3 步”,再加上“沿着向上的基准走 2 步”!

文本
===================================================================================
                       高中标准网格与向量 (3, 2)
===================================================================================
                    y (纵向基底 e2)
                    ▲
                 3  │
                 2  │       • v = (3, 2) [向右走3步,向上走2步]
                 1  │   ▲   │
                 0  ┼───┼───┼───► x (横向基底 e1)
                    0   1   2   3
===================================================================================

1.3.2 矩阵到底是什么?每一列就是“新基底箭头飞到了哪里”!

现在,神圣的时刻到了:一个矩阵,其实就是一套被你扭曲、旋转、拉伸后的“新基准网格”!

假设我们有一个 2×22 \times 2 的矩阵: M=(2102)M = \begin{pmatrix} 2 & 1 \\ 0 & 2 \end{pmatrix} 请死死盯住这个矩阵的第一列和第二列

  • 第一列 (20)\begin{pmatrix} 2 \\ 0 \end{pmatrix}:它宣告了原来的向右箭头 e1\vec{e}_1 变换后飞到了哪里
  • 第二列 (12)\begin{pmatrix} 1 \\ 2 \end{pmatrix}:它宣告了原来的向上箭头 e2\vec{e}_2 变换后飞到了哪里

当我们计算矩阵乘法 MvM \cdot \vec{v} 时,根据高中分配律重新拆开: M(32)=(2102)(32)=3(20)+2(12)M \cdot \begin{pmatrix} 3 \\ 2 \end{pmatrix} = \begin{pmatrix} 2 & 1 \\ 0 & 2 \end{pmatrix} \begin{pmatrix} 3 \\ 2 \end{pmatrix} = 3 \cdot \begin{pmatrix} 2 \\ 0 \end{pmatrix} + 2 \cdot \begin{pmatrix} 1 \\ 2 \end{pmatrix} =(60)+(24)=(84)= \begin{pmatrix} 6 \\ 0 \end{pmatrix} + \begin{pmatrix} 2 \\ 4 \end{pmatrix} = \begin{pmatrix} 8 \\ 4 \end{pmatrix}

💡 顿悟的一刻:
  • 在原来的世界里,点 v\vec{v} 的坐标是“在旧基底下走 (3, 2)”;
  • 矩阵 MM 把整个空间的基底坐标轴倾斜并拉长了;
  • 经过矩阵乘法后,点依然在那个相对位置上,但在新坐标系下它的坐标变成了 (8,4)(8, 4)矩阵乘法 y=Wxy = W \cdot x 的物理本质,就是把一整张平整的方格纸,进行了一次“整体的旋转、拉伸与倾斜变换(线性映射)”!
文本
===================================================================================
                       矩阵变换的几何效果 (方格网格被拉伸倾斜)
===================================================================================
     【变换前的原始网格】                      【经过矩阵 M 变换后的新空间】
           y                                              y' (第二列 [1, 2]^T)
           ▲                                             ▲
           │                                            /
       ┌───┼───┐                                   ┌───/───┐
       │   │   │                                  /   /   /
       ├───┼───┤                                 /───/───/
       │   │   │                                /   /   /
   ────┴───┼───┴────► x                     ───┴───/───┴────► x' (第一列 [2, 0]^T)

1.3.3 拿三个经典矩阵切身感受三种物理效果

① 纯旋转矩阵:把整个世界逆时针旋转 90 度
R90=(0110)R_{90^\circ} = \begin{pmatrix} 0 & -1 \\ 1 & 0 \end{pmatrix}
  • 第一列 (0,1)(0, 1):原本向右的箭头,转成了向上;
  • 第二列 (1,0)(-1, 0):原本向上的箭头,转成了向左;
  • 任何向量乘上它,长度不变,整张图纸逆时针旋转整整 9090^\circ
② 尺度缩放矩阵:像调音台一样放大缩小不同维度
S=(2.0000.5)S = \begin{pmatrix} 2.0 & 0 \\ 0 & 0.5 \end{pmatrix}
  • 第一列 (2.0,0)(2.0, 0):把横轴方向的信息猛烈放大 2 倍;
  • 第二列 (0,0.5)(0, 0.5):把纵轴方向的信息狠狠压缩一半;
  • 任何向量乘上它,空间被拉长变扁。
③ 投影降维矩阵:把三维立体世界拍扁成二维皮影戏
P=(100010)P = \begin{pmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \end{pmatrix}
  • 输入是一个立体的三维点 (xyz)\begin{pmatrix} x \\ y \\ z \end{pmatrix}
  • 矩阵乘法输出:P(xyz)=(xy)P \begin{pmatrix} x \\ y \\ z \end{pmatrix} = \begin{pmatrix} x \\ y \end{pmatrix}
  • 物理效果:直接把 zz 轴拍扁归零,保留影子!就像阳光把立体的你投射在平面的柏油马路上。

1.3.4 回到大模型:为什么 Transformer 内部要到处乘上这些矩阵?

读到这里,你已经彻底参透了线性代数的精髓。现在我们把目光从 2 维拉回到 Transformer 的 512 维高维世界

当分词器把一个词(比如 "苹果")转为一个 512 维的向量时,这个初始向量是一个原始的“大杂烩特征包”

  • 它里面混杂着水果的特征(甜、红、脆、多汁);
  • 混杂着科技公司的特征(库克、iPhone、股票代码 AAPL、纳斯达克);
  • 还混杂着万有引力的物理故事(牛顿、树下被砸中)。

面对这么一个庞大混杂的 512 维向量,模型怎么知道在当前的句子里该关注哪一面? 这就是矩阵乘法登场拯救全场的时刻!

文本
===================================================================================
                   大模型中三大权重矩阵的“聚光灯多视角投影”
===================================================================================

                    原始 512 维词向量 X (包含水果、公司、物理全部知识)
                                   │
         ┌─────────────────────────┼─────────────────────────┐
         ▼ 乘以矩阵 W_q            ▼ 乘以矩阵 W_k            ▼ 乘以矩阵 W_v
  [ 寻人空间投影 ]          [ 名片空间投影 ]          [ 情报空间投影 ]
         │                         │                         │
  产生 Query 向量           产生 Key 向量             产生 Value 向量
  (我此刻在找什么特征?)     (我身上能提供什么特征?)   (如果选我,我给什么干货?)
===================================================================================
  • 矩阵 WqW_q(寻人视角透视): 它就像一具特定的几何透镜,旋转拉伸原始特征,把和“当前问句意图”最相关的维度放大,抑制无关维度,产生专门用于打听别人的 Query 向量
  • 矩阵 WkW_k(名片视角透视): 它把原始特征映射到名片空间,提炼出这个词能向外界展示的标识标签,产生用于接受别人检索的 Key 向量
  • 矩阵 WvW_v(真正干货透视): 它专门提取这个词最核心的实质内容,产生最终供注意力加权混合的 Value 向量
  • FFN 里的 Wgate,Wup,WdownW_{gate}, W_{up}, W_{down}: 则是先将 512 维特征“投影放大”到 1408 维的更广阔多维空间(展开更细致的知识检索),然后再用 WdownW_{down} “投影压缩”回 512 维!
💡 为什么大模型能学会这么聪明的透视?

这些矩阵里的每一个数值,初看只是一堆死板的小数(权重 Parameters)。 但在几何上,它们每一个数字都决定了坐标轴拉伸的比例、旋转的倾角! 在预训练阶段,反向传播算法带着微积分的链式法则,以极高的智慧不断微调这千万个坐标轴旋钮,最终训练出了一组组最精准、最通透、最懂人类语言奥秘的“超级透镜”

第二篇:复数与几何旋转 —— RoPE 旋转位置编码的高中推导

旋转位置编码(RoPE)被誉为当代大模型最天才的数学发明。看似高深莫测,其实全篇只用到了高中的复数乘法三角函数两角和差公式

2.1 高中复数回忆:虚数 ii 的旋转几何

在高中代数里,为了解方程 x2=1x^2 = -1,数学家定义了虚数单位 i=1i = \sqrt{-1}。 复数的一般形式为 z=a+biz = a + biaa 是实部,bb 是虚部)。

在复平面(Gauss 平面)上:

  • 横轴是实数轴,纵轴是虚数轴。复数 z=1z = 1 就是横轴上的点 (1,0)(1, 0)
  • 把它乘以 ii1×i=i1 \times i = i,变成了纵轴上的点 (0,1)(0, 1)相当于逆时针旋转了 9090^\circ
  • 再乘以一个 iii×i=i2=1i \times i = i^2 = -1,变成了点 (1,0)(-1, 0)又逆时针旋转了 9090^\circ
  • 再乘以一个 ii1×i=i-1 \times i = -i,变成了点 (0,1)(0, -1)又逆时针旋转了 9090^\circ
  • 再乘以一个 iii×i=(1)=1-i \times i = -(-1) = 1,回到了原点!

高中数学核心顿悟:在复数的世界里,“乘法”的几何本质就是“旋转”!

文本
===================================================================================
                       复数平面上连续乘 i 的 90度 几何旋转
===================================================================================

                              虚数轴 (Im)
                                   ▲
                                   │  (0, 1) = i
                                   │   ▲
                                   │   │ 乘 i (逆时针 90°)
                                   │   │
        (-1, 0) = -1 ◄─────────────┼─────────────► (1, 0) = 1
                乘 i (又转 90°)    │   │  实数轴 (Re)
                                   │   │
                                   │   ▼ 乘 i (再转 90°)
                                   │  (0, -1) = -i
                                   ▼
===================================================================================

2.2 欧拉公式:任意角度的旋转轮盘

如果不想每次只转 9090^\circ,想转一个任意角度 θ\theta 怎么办? 数学大师欧拉给出了人类数学史上的皇冠定理——欧拉公式(Euler's Formula)eiθ=cosθ+isinθe^{i\theta} = \cos\theta + i\sin\theta

我们来看一个模长为 1 的复数 eiθe^{i\theta}

  • θ=0\theta = 0 时:ei0=cos0+isin0=1e^{i0} = \cos 0 + i\sin 0 = 1(指向 0 度横轴);
  • θ=π2\theta = \frac{\pi}{2}(即 9090^\circ)时:eiπ/2=cos90+isin90=ie^{i\pi/2} = \cos 90^\circ + i\sin 90^\circ = i(精准对齐上面的结论!);
  • θ=π\theta = \pi(即 180180^\circ)时:eiπ=cos180+isin180=1e^{i\pi} = \cos 180^\circ + i\sin 180^\circ = -1,移项便得到著名的极美公式:eiπ+1=0e^{i\pi} + 1 = 0

因此,eiθe^{i\theta} 就是一个绝对纯净的“旋转算子”:任何一个复数只要乘上它,长度丝毫不变,逆时针精准旋转 θ\theta 弧度!

2.3 纸上手算:为什么两数相乘,角度自然相加?

我们用高中学过的三角函数两角和公式,亲手推导一遍欧拉乘法:

  • cos(α+β)=cosαcosβsinαsinβ\cos(\alpha + \beta) = \cos\alpha\cos\beta - \sin\alpha\sin\beta
  • sin(α+β)=sinαcosβ+cosαsinβ\sin(\alpha + \beta) = \sin\alpha\cos\beta + \cos\alpha\sin\beta

设两个旋转复数分别为 eiαe^{i\alpha}eiβe^{i\beta},我们将它们按普通多项式乘开: eiαeiβ=(cosα+isinα)(cosβ+isinβ)e^{i\alpha} \cdot e^{i\beta} = (\cos\alpha + i\sin\alpha)(\cos\beta + i\sin\beta) =(cosαcosβ)+i(cosαsinβ)+i(sinαcosβ)+i2(sinαsinβ)= (\cos\alpha\cos\beta) + i(\cos\alpha\sin\beta) + i(\sin\alpha\cos\beta) + i^2(\sin\alpha\sin\beta) 因为 i2=1i^2 = -1,把实部和虚部分开归拢: =(cosαcosβsinαsinβ)这正是 cos(α+β)!+i(sinαcosβ+cosαsinβ)这正是 sin(α+β)!= \underbrace{(\cos\alpha\cos\beta - \sin\alpha\sin\beta)}_{\text{这正是 } \cos(\alpha + \beta) !} + i \underbrace{(\sin\alpha\cos\beta + \cos\alpha\sin\beta)}_{\text{这正是 } \sin(\alpha + \beta) !} =cos(α+β)+isin(α+β)=ei(α+β)= \cos(\alpha + \beta) + i\sin(\alpha + \beta) = e^{i(\alpha + \beta)}

看到了吗! 在复数乘法下,原本复杂的几何旋转,在指数上变成了极其平易近人的**“加法”**!

2.4 终极揭秘:RoPE 如何让相对距离 (mn)(m-n) 自动浮出水面?

现在我们来到 RoPE 旋转位置编码的最核心推演现场!

假设一句话里有两个词:

  • 第一个词在位置 mm(比如 m=2m=2),它的查询向量是 q=(x1,x2)q = (x_1, x_2),化为复数即 q=x1+ix2q = x_1 + i x_2
  • 第二个词在位置 nn(比如 n=5n=5),它的键向量是 k=(y1,y2)k = (y_1, y_2),化为复数即 k=y1+iy2k = y_1 + i y_2

第一步:施加位置旋转

根据它们各自的位置下标,分别让它们旋转对应的圈数:

  • qq 旋转 mθm\theta 角度:qm=qeimθq_m = q \cdot e^{im\theta}
  • kk 旋转 nθn\theta 角度:kn=keinθk_n = k \cdot e^{in\theta}

第二步:计算注意力内积

在高中数学中,两向量点乘可以写为复数的共轭乘积的实部: qmkn=Re(qmkn)\vec{q}_m \cdot \vec{k}_n = \text{Re}\big( q_m \cdot k_n^* \big) (注:kk^* 是复数共轭,即 (a+bi)=abi(a + bi)^* = a - bi,在极坐标下 (einθ)=einθ(e^{in\theta})^* = e^{-in\theta}

把旋转后的式子代进去: qmkn=(qeimθ)(keinθ)q_m \cdot k_n^* = \left( q \cdot e^{im\theta} \right) \cdot \left( k \cdot e^{in\theta} \right)^* =qeimθkeinθ= q \cdot e^{im\theta} \cdot k^* \cdot e^{-in\theta} 把实数部分与指数部分重新组合: =(qk)(eimθeinθ)= (q \cdot k^*) \cdot \big( e^{im\theta} \cdot e^{-in\theta} \big) 利用底数相同、指数相加的初中代数法则: =(qk)ei(mn)θ= (q \cdot k^*) \cdot e^{i(m - n)\theta}

最后取实部: qmkn=Re((qk)ei(mn)θ)\vec{q}_m \cdot \vec{k}_n = \text{Re}\Big( (q \cdot k^*) \cdot e^{i\mathbf{(m - n)}\theta} \Big)

推导完成!全体起立! 请看加粗的部分:原本各自分散在句子不同位置的绝对编号 mmnn,在相乘的一刹那,天然化解成了差值 (mn)(m - n) 这意味着:

  • 如果 m=2,n=5m=2, n=5,差值是 3-3
  • 如果整句话往后平移 100 个字,m=102,n=105m=102, n=105,差值依然是 102105=3102 - 105 = -3
  • 它们的点乘内积得分分毫不差,完全相等!这就是大模型实现“平移不变性”与长文本外推能力的数学铁证!

第三篇:统计与方差 —— 为什么 Attention 必须除以 dk\sqrt{d_k}

在自注意力机制公式中: Attention(Q,K,V)=softmax(QKTdk)V\text{Attention}(Q, K, V) = \text{softmax}\left(\frac{Q K^T}{\mathbf{\sqrt{d_k}}}\right) V 初学者往往对分母上的 dk\sqrt{d_k} 感到莫名其妙:为什么要平白无故开个根号除一下?

3.1 高中统计学基本功:期望与方差

  • 期望 E[X]E[X](均值):代表变量平均落在哪里;
  • 方差 Var(X)\text{Var}(X):代表数据波动的剧烈程度,公式为 Var(X)=E[X2](E[X])2\text{Var}(X) = E[X^2] - (E[X])^2
  • 标准差 σ\sigma:方差开根号 σ=Var(X)\sigma = \sqrt{\text{Var}(X)}

高中两个独立变量的统计性质:

如果两个随机变量 XXYY 互相独立,且均值都为 0(E[X]=E[Y]=0E[X]=E[Y]=0):

  1. 乘积的方差Var(XY)=Var(X)Var(Y)\text{Var}(X \cdot Y) = \text{Var}(X) \cdot \text{Var}(Y)
  2. 和的方差Var(X+Y)=Var(X)+Var(Y)\text{Var}(X + Y) = \text{Var}(X) + \text{Var}(Y)

3.2 纸上算方差:不除 dk\sqrt{d_k} 的雪崩过程

在我们的 Mini-LLaMA-0.04B 模型中,每个注意力头的维度是 dk=64d_k = 64。 计算一次注意力打分,是把 64 个数字相乘再累加: S=qk=q1k1+q2k2+q3k3++q64k64S = \vec{q} \cdot \vec{k} = q_1 k_1 + q_2 k_2 + q_3 k_3 + \dots + q_{64} k_{64}

因为前面的数据都经过了归一化,我们合理假设每一个分量都是标准的均值为 0、方差为 1 的变量:

  • E[qi]=0,Var(qi)=1E[q_i] = 0, \quad \text{Var}(q_i) = 1
  • E[ki]=0,Var(ki)=1E[k_i] = 0, \quad \text{Var}(k_i) = 1

那么:

  1. 每一对单项乘积的方差Var(qiki)=Var(qi)Var(ki)=1×1=1\text{Var}(q_i k_i) = \text{Var}(q_i) \cdot \text{Var}(k_i) = 1 \times 1 = 1
  2. 64 项相加后的总方差Var(S)=i=164Var(qiki)=1+1++1=64\text{Var}(S) = \sum_{i=1}^{64} \text{Var}(q_i k_i) = 1 + 1 + \dots + 1 = \mathbf{64}
  3. 总打分结果的标准差σS=64=8\sigma_S = \sqrt{64} = \mathbf{8}

😱 灾难发生了:

标准差等于 8 意味着什么?根据正态分布“3-Sigma 原则”: 算出来的打分 SS 经常波动在 24+24-24 \sim +24 之间! 现在,把一个包含 +20+2015-15 的向量送入 Softmax 函数: Softmax(S)i=eSijeSj\text{Softmax}(S)_i = \frac{e^{S_i}}{\sum_j e^{S_j}}

  • e20485,165,195e^{20} \approx 485,165,195(将近 5 亿!)
  • e150.0000003e^{-15} \approx 0.0000003
  • 结果:最大分数的那个词独占了 99.9999% 的概率,其余所有词的概率全部被压死成了 0.0000%

更恐怖的是求导链式法则:Softmax 的反向传播导数为: piSi=pi(1pi)\frac{\partial p_i}{\partial S_i} = p_i(1 - p_i)pi1p_i \approx 1 时,导数是 1×(11)=01 \times (1 - 1) = \mathbf{0}; 当 pi0p_i \approx 0 时,导数是 0×(10)=00 \times (1 - 0) = \mathbf{0}结论:反向传播回来的所有梯度全部归零!神经网络瞬间由于“导数休克”彻底丧失学习能力!

3.3 救命解药:方差缩放重置

为了拯救濒死的网络,数学家根据高中方差常数乘法法则 Var(cX)=c2Var(X)\text{Var}(c \cdot X) = c^2 \cdot \text{Var}(X): 只要给打分乘以一个常数 c=1dkc = \frac{1}{\sqrt{d_k}}Var(Sdk)=(1dk)2Var(S)=1dkdk=1.0\text{Var}\left( \frac{S}{\sqrt{d_k}} \right) = \left(\frac{1}{\sqrt{d_k}}\right)^2 \cdot \text{Var}(S) = \frac{1}{d_k} \cdot d_k = \mathbf{1.0}

标准差被精准拽回到了 1.0=1.0\sqrt{1.0} = 1.0 打分大部分落在 3+3-3 \sim +3 之间,此时 Softmax 概率过渡极其平滑均匀,导数处于最敏感的黄金响应区,模型得以欢快而健康地更新参数!

第四篇:微积分与极限 —— RMSNorm 尺度免疫与 SiLU 平滑特性

4.1 RMSNorm 的尺度无关性推导

在第 02 章中我们见识了 RMSNorm: RMSNorm(x)=x1dxi2+ϵγ\text{RMSNorm}(x) = \frac{x}{\sqrt{\frac{1}{d}\sum x_i^2 + \epsilon}} \odot \gamma 很多同学好奇:为什么不需要像高中物理一样测量绝对幅值?

假设前一层神经网络发生了异常震荡,把输出向量的数值集体放大了 100 倍(即输入变成了 100x100x):

  • 分子变成了:100x100x
  • 分母上的均方根计算: RMS(100x)=1d(100xi)2=10021dxi2=100RMS(x)\text{RMS}(100x) = \sqrt{\frac{1}{d}\sum (100x_i)^2} = \sqrt{100^2 \cdot \frac{1}{d}\sum x_i^2} = 100 \cdot \text{RMS}(x)
  • 分子分母相除: 100x100RMS(x)=xRMS(x)\frac{100x}{100 \cdot \text{RMS}(x)} = \frac{x}{\text{RMS}(x)} 常数 100 在分子分母中被无情地精准约分抵消掉了! 这就是数学上的“尺度无关性”。不管外界输入怎么乱晃,RMSNorm 输出的数据振幅永远稳固如山。

4.2 极限分析:因果掩码为什么能让“未来”概率归零?

在计算自注意力时,我们不能让第 2 个字偷看到第 3 个字。 在代码中,我们在未来的位置填上了负无穷大(-\infty): 根据高中数学指数函数 y=exy = e^x 的图像性质: 当自变量 xx 向负无穷大狂奔时: limxex=0\lim_{x \to -\infty} e^x = 0

代入 Softmax 分子计算中: 未来词对应的分子项 ee^{-\infty} 严格收敛到 0。 无论分母是多少,未来词分配到的注意力权重必然是 0.00%0.00\%!数学逻辑极其干脆利落。

第五篇:信息论与概率链 —— 自回归交叉熵的本源推演

很多新手不理解:模型每次只算“根据上文预测下一个字”,为什么最终能学会写出一整篇结构完整、充满逻辑的小说?

5.1 高中条件概率连乘定理

在高中概率论中,我们学过条件概率公式: P(AB)=P(A)P(BA)P(A \cap B) = P(A) \cdot P(B \mid A) 推广到包含 TT 个词的完整文章 W=(w1,w2,w3,,wT)W = (w_1, w_2, w_3, \dots, w_T),整篇文章出现的总体概率,等于每一步条件概率的链式连乘: P(W)=P(w1)P(w2w1)P(w3w1,w2)P(wTw<T)=t=1TP(wtw<t)P(W) = P(w_1) \cdot P(w_2 \mid w_1) \cdot P(w_3 \mid w_1, w_2) \cdots P(w_T \mid w_{<T}) = \prod_{t=1}^T P(w_t \mid w_{<t})

5.2 对数的魔法:连乘变连加

我们希望整篇文章出现的概率 P(W)P(W) 越大越好(这在统计学中称为极大似然估计 MLE)。 但是,几千个介于 010 \sim 1 之间的微小概率连乘在一起,结果会变成 1050010^{-500},计算机的浮点数寄存器会直接发生下溢归零!

高中对数函数的单调递增性质拯救了我们: ln(AB)=lnA+lnB\ln(A \cdot B) = \ln A + \ln B 两边同时取自然对数 ln\ln,乘法瞬间变成了优美的加法!再添上一个负号,把“最大化概率”转换为深度学习标准的“最小化损失(Loss)”: L=lnP(W)=t=1TlnP(wtw<t)\mathcal{L} = -\ln P(W) = -\sum_{t=1}^T \ln P(w_t \mid w_{<t})

这就是代码中自回归损失的本质:把序列错位 1 位,让模型计算每一步真实下文的负对数似然(Negative Log-Likelihood, NLL),在数学上完全等价于交叉熵损失(Cross-Entropy Loss)!

第六篇:高中数学到大模型核心公式对照总览

最后,让我们用一张规范清晰的对照表,把高中数学概念与大模型架构算子彻底贯通:

高中数学知识点高中典型数学公式在现代大模型中的工业级具象化落地核心解决的工程与物理问题
平面向量点乘$\vec{a} \cdot \vec{b} =\vec{a}
复数乘法与欧拉公式eiθ=cosθ+isinθe^{i\theta} = \cos\theta + i\sin\thetaRoPE 旋转位置编码 Re(qkei(mn)θ)\text{Re}(q k^* e^{i(m-n)\theta})用平面纯几何旋转自然导出相对距离差 (mn)(m-n),实现长文本无损外推。
独立随机变量方差加法Var(X+Y)=Var(X)+Var(Y)\text{Var}(X+Y) = \text{Var}(X) + \text{Var}(Y)Attention 缩放因子 1dk\frac{1}{\sqrt{d_k}}抵消 64 维点乘方差膨胀,防止 Softmax 进入导数饱和区(梯度消失)。
高斯极限法则limxex=0\lim_{x \to -\infty} e^x = 0因果掩码矩阵 Causal Mask 赋负无穷大严格遮蔽未来时间步的词,杜绝模型抄近道作弊。
多项式均方根RMS=1dxi2\text{RMS} = \sqrt{\frac{1}{d}\sum x_i^2}Pre-RMSNorm 归一化网络具备尺度不变性,甩掉多余均值包袱,保障 12 层网络特征信号稳定不爆。
条件概率乘法链P(A,B)=P(A)P(BA)P(A, B) = P(A)P(B \mid A)自回归因果语言模型交叉熵损失将全局篇章生成任务严格解构为单步 Next-Token 预测。

💡 学毕指引: 掌握了上述这套数学武器后,请带着满满的信心重新回到 第 02 章|从零手写现代 Transformer 架构,在代码的每一行中亲眼见证这些数学定律是如何指挥着千亿晶体管翩翩起舞的吧!

REFERENCES

参考链接

  1. 01Attention Is All You Need (Vaswani et al.)
  2. 02RoFormer: Enhanced Transformer with Rotary Position Embedding (Su et al.)
  3. 03Root Mean Square Normalization (Zhang & Sennrich)

所属系列

从零开始手搓大模型

下一步

继续浏览相关主题

沿着同一主题继续阅读。

查看最新资讯