从直觉到证明3Blue1Brown 中文导学教材
3.6 语言模型的简明图景

3.6 语言模型的简明图景

追踪一次预测、采样和追加上下文,区分单步概率与整段序列概率。

例题练习Lean 对照原课

一步一步建立直观

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

01先把上下文压缩成一次加权读取

完整语言模型要根据此前的词元预测下一个词元。右图只抽出其中的注意力读取:两个候选信息各带一个分数,归一化后决定各自参与输出的份额。分数相同就平均读取。这些份额不是整个词表的下一词概率,二者在模型中的位置不同。

02相关性改变了信息的去向

增加第二项相对分数,输出便更靠近它的值。可以把这一步理解为读者根据当前问题重新分配注意,而不是把所有上下文不加区分地平均。实际模型会从向量计算查询和键;本图直接调分数,用来隔离“分数如何影响权重”这一机制。

03集中读取不等于理解正确

降低温度后,权重更加集中,但若较高分数本来分配给错误线索,集中只会强化错误。语言模型还需要词元表示、多层变换、训练目标及最终概率输出。这个窗口帮助理解一个局部部件,不把输出偏向某个值称为已经完成语言理解。

3.6.1 把生成一句话拆成一连串预测

模型不必一次选出完整句子。给定当前上下文,它先为下一个 token 分配概率,选择一个 token 后放回上下文,再预测下一步。token 是编码单位,可能是词、字或词的一部分,不能总按完整单词理解。

一条序列的概率是沿这条路径的条件概率乘积。第二步的分布取决于第一步已经选了什么,所以不能把每步无条件概率相乘,更不能把概率相加。取负对数后,乘积转成和,这让每个位置对训练目标的贡献可以累积。

3.6.2 局部最可能不等于整句最可能

假设第一步选甲的概率为 0.60.6、选乙为 0.40.4;在甲之后最可能的下一步概率是 0.50.5,在乙之后则为 0.90.9。贪心先选甲,完整两步最多得 0.30.3;经过乙的路径却可达 0.360.36。因此每一步取最大值,不保证整段序列概率最大。

温度改变分数经 Softmax 后的尖锐程度。低温让高分候选占比更大,高温使分布更平缓;这会改变采样行为,却不凭空增加事实知识。概率较高描述模型的统计偏好,不等于内容一定真实。

接下来要理解的核心,是上下文如何变成这些概率。Transformer 先把 token 写成向量,再让它们交换信息,最后产生词表分数。先弄清输入、条件概率和采样的关系,后续矩阵细节才有明确任务。

数学表述 3.6.1

语言模型为下一个 token 分配条件概率,采样一个结果后把它放回上下文,继续预测。token 可以是词的一部分,不能总当成完整单词。

概率链式分解为 P(x1,…,xT)=∏t=1TP(xt∣x1,…,xt−1).P(x_1,\ldots,x_T)=\prod_{t=1}^T P(x_t\mid x_1,\ldots,x_{t-1}). 训练中常最小化正确 token 的负对数概率总和;推理中的采样温度改变概率分布的尖锐程度。

例 3.6.1 把概念用于具体计算

两步条件概率分别为 0.4,0.250.4,0.25 时,这条具体序列的联合概率为 0.10.1,不是 0.650.65。

练习 3.6.1

概率 0.5,0.2,0.10.5,0.2,0.1 的三步序列概率?

展开解答与检查

0.010.01,负对数概率将乘积变成和。

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

验证两个合法概率的乘积仍在 [0,1][0,1];完整条件概率的测度论链式法则未形式化。

NeuralNetworks.conditional_product_bounds

theorem conditional_product_bounds (p q : ℝ)
    (hp : 0 ≤ p) (hp₁ : p ≤ 1) (hq : 0 ≤ q) (hq₁ : q ≤ 1) :
    0 ≤ p*q ∧ p*q ≤ 1 := by
  constructor
  · positivity
  · nlinarith [mul_nonneg hp (sub_nonneg.mpr hq₁)]

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

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

追踪一次预测、采样和追加上下文,区分单步概率与整段序列概率。

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

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