从直觉到证明3Blue1Brown 中文导学教材
3.7 Transformer 的整体结构

3.7 Transformer 的整体结构

沿着数据形状走过嵌入、注意力、前馈和输出分数,检查 Softmax 的归一化。

例题练习Lean 对照原课

一步一步建立直观

先预测,再点“演示本步”核对右图。每一步都重设到指定情形,随后可以自由修改参数。

01在结构图中定位这一小块计算

Transformer 把词元变成向量,反复进行上下文信息交换与逐位置变换,再输出词表分数。右图展示信息交换中的一个头、一次查询和两个候选值。先用相同分数得到平均值,确认加权读取的基本算术,再放回完整网络结构中理解其作用。

02把归一化前后分清楚

注意力先得到实数分数,softmax 再把它们转成正权重并归一化。给所有分数加同一个常数不会改变结果,因为共同的指数因子会约去。本图只保留分数差,正是利用这一不变性。实际模型的缩放与掩码应在归一化前处理。

03明确预测时可见的信息范围

降低温度可以观察更集中的权重,但自回归预测还要用因果掩码禁止读取未来位置。权重是否集中与是否泄露未来是两个不同问题。此处只有两个可见候选,没有模拟掩码、多头、残差与完整词表;正文的架构说明负责连接这些部件。

3.7.1 沿着数据走一遍整体结构

一段文字先分成 token,每个 token 查表得到嵌入向量,再加入或结合位置信息。只有内容、没有顺序,就无法区分同一组词的不同排列。随后经过多层注意力和前馈计算,向量逐渐携带上下文信息,最后投影成词表上每个候选的分数。

分数不是概率:它可以为负,也不必相加为一。Softmax 先指数化使其为正,再用总和归一化。相对分数差决定概率偏好,同加一个常数只引入共同因子,除法会将其抵消。

3.7.2 从一个两分类例子看出数值实现的意义

分数 (0,ln3)(0,\ln3) 指数化后是 (1,3)(1,3),归一化得到 (1/4,3/4)(1/4,3/4)。两分数都减去 ln3\ln3 后,虽然数值改变,概率不变。实现中常减去最大分数,避免指数过大;这个技巧基于精确恒等式,浮点误差仍需单独考虑。

嵌入空间的方向可能与某些语义变化相关,但不要把每个坐标轴都当成固定概念标签。向量表示允许特征分布在许多坐标中,网络也可能在不同层使用不同表示。

本节只建立全景路线:嵌入负责表示,注意力交换位置间信息,前馈层处理各位置的特征,输出投影把表示转为预测分数。真实架构还涉及归一化、残差等细节;理解它们时仍应沿数据形状和作用追踪,而不是只记一张盒子图。

数学表述 3.7.1

token 先嵌入为向量,再通过注意力与前馈层反复更新,最后映射为词表上的分数。位置信息使顺序能被模型感知。

logits ziz_i 转成概率:pi=ezi/∑jezjp_i=\mathrm{e}^{z_i}/\sum_j\mathrm{e}^{z_j}。对全部分数加同一常数 cc 不改变概率,因为共同因子 ec\mathrm{e}^c 会抵消。

例 3.7.1 把概念用于具体计算

两个 logits 为 (0,ln3)(0,\ln3),得到概率 (1/4,3/4)(1/4,3/4)。把两者都减去 ln3\ln3 后概率相同,这也是数值稳定 Softmax 的依据。

练习 3.7.1

z=(2,2)z=(2,2) 的概率?

展开解答与检查

(1/2,1/2)(1/2,1/2);这与 logits 的绝对大小无关。

Lean 对照 3.7.1 命题、证明与适用边界

完整证明双分类 Softmax 的平移不变性。定理使用精确实指数;浮点稳定性仍属于数值实现问题。

NeuralNetworks.softmax_shift

theorem softmax_shift (x y c : ℝ) :
    Real.exp (x+c)/(Real.exp (x+c)+Real.exp (y+c)) =
      Real.exp x/(Real.exp x+Real.exp y) := by
  rw [Real.exp_add, Real.exp_add]
  have hx := Real.exp_pos x
  have hy := Real.exp_pos y
  have hc := Real.exp_pos c
  field_simp
  ring

查看完整定义与上下文 ↗ · 全书证明范围

原课对照 观课问题、视频与图示

沿着数据形状走过嵌入、注意力、前馈和输出分数,检查 Softmax 的归一化。

官方课程与图示 ↗ · 原视频 ↗

点击后连接 YouTube;播放器不可用时可通过上方原链接观看。