核心要点

  • 能给定义:困惑度 = 测试集平均负对数似然(NLL)的指数,PPL = exp(平均 NLL),等价于交叉熵取指数

  • 能给直觉:可理解为模型在每个位置「等效在多少个等可能选项中犹豫」,越低代表预测越确定、建模越好

  • 能讲核心局限:依赖分词与词表,不同 tokenizer 的 PPL 不可直接比;且只衡量似然,不等于事实正确、有用或对齐

  • 能说出适用边界:适合同口径比较预训练语言建模能力,但 RLHF/对齐后的模型不能只看 PPL,要用下游基准

标准回答

定义

困惑度衡量语言模型对一段文本的预测不确定性。先对测试集每个 token 算负对数似然(NLL),取平均,再取指数:PPL = exp(平均 NLL)。由于平均 NLL 就是交叉熵,困惑度等价于交叉熵取指数。

直觉

可以把它理解为模型在每一步「平均要在多少个等可能候选中纠结」。PPL=1 表示完全确定,PPL 越大越迷茫。模型对真实下一个 token 给的概率越高,NLL 越小,困惑度越低,说明语言建模越好。

主要局限

  1. 强依赖分词与词表:PPL 是按 token 算的,不同 tokenizer 切分粒度不同,跨模型的 PPL 数值不可直接比较,必须同口径。
  2. 只反映似然,不反映能力:困惑度低只说明会预测下一个词,不代表回答事实正确、有帮助或符合对齐目标。
  3. 对评测语料分布敏感:换一个领域的测试集,PPL 会显著变化。

适用边界

它适合在同一分词、同一测试集下比较预训练语言建模能力或做训练监控;但经 RLHF/指令对齐的模型不能只看 PPL,应配合 MMLU、人评、Arena 等下游基准。详见 LLM 评测:基准测试与对齐评估

常见误区

⚠️ 常见踩坑

别拿不同 tokenizer 模型的 PPL 直接比高低——切分粒度不同会系统性改变数值;也别把低困惑度等同于「模型更好用」,它只衡量似然,与事实性、有用性、对齐度无必然关系。

追问

追问 1困惑度和交叉熵是什么关系?

平均负对数似然就是交叉熵损失,困惑度是它取指数:PPL = exp(交叉熵)。所以最小化训练交叉熵等价于降低困惑度,二者只差一个单调变换。

追问 2为什么对齐后只看困惑度会误导?

RLHF 会牺牲一点纯语言建模似然换取有用性与安全性,可能让 PPL 略升却更符合人类偏好。此时该用任务准确率、人评、偏好胜率等衡量真实质量。

追问 3用 bits-per-byte 比 PPL 好在哪?

bits-per-byte 以字节为单位、与分词无关,可在不同 tokenizer、不同语言间公平比较压缩/建模能力,规避了 PPL 受词表切分影响的问题。

延伸学习

与本题相关的知识库文章、术语、工具与行业资讯。