← 课程库
预训练工程模块四 · 预训练任务计算12 分钟

困惑度与语言建模损失

把交叉熵翻译成「模型有多迷茫」

学完这节你能:
  • 掌握困惑度(perplexity)的定义
  • 由交叉熵算困惑度
  • 理解困惑度的直觉含义

语言模型好不好,最常用的内在指标是困惑度。它就是交叉熵损失取指数——数值越小,模型对下一个词越「不迷茫」。

Perplexity=exp(loss)=exp ⁣(1NtlogP(xtx<t))\text{Perplexity} = \exp(\text{loss}) = \exp\!\left(-\dfrac{1}{N}\sum_{t} \log P(x_t \mid x_{<t})\right)
以 e 为底(若损失用自然对数);困惑度可理解为「平均每步在多少个词里纠结」。
手算
若平均交叉熵损失 = 2.0(nats)
困惑度 = e² ≈ 7.39
含义:模型平均像在约 7.4 个候选词里犹豫。损失降到 1.0 → 困惑度 e≈2.72,明显更确定。

🔑 两条直觉:① 困惑度 = 1 表示完美预测(毫不迷茫);② 均匀猜 V 个词的困惑度就是 V。所以困惑度可看作「有效候选数」。

均匀猜的困惑度就是候选数
若模型对 V=10000 个词完全没偏好(均匀猜)
交叉熵 = ln(10000) ≈ 9.21
困惑度 = e^9.21 ≈ 10000 = V
→ 印证「困惑度=有效候选数」;模型学得越好,困惑度越远小于 V
自测若语言模型的平均交叉熵损失为 0(自然对数),其困惑度为:
// 带走一句话

困惑度=exp(交叉熵),可理解为「平均在多少候选词里纠结」;越小越好,1 为完美。

独立练习

做到这些,才算完成本节

  1. 替换例题中的数值,从头独立算一遍。
  2. 用数量级、边界值或反向计算检查结果是否合理。
学习记录

记录本节阅读进度

建议先独立回答自测。读完记录不等于已经掌握。

继续下一课
← 上一课
预训练任务:下一词预测 vs 去噪自编码
下一课 →
数据管线:清洗、去重、配比、tokenize

学完不要急着赶进度:去练习自测,或完成对应的阶段实验