Perplexity (PPL) 是语言建模领域最经典的评估指标之一,直接衡量模型预测下一个词的不确定性程度。
定义与公式
PPL = e^(Cross-Entropy Loss) = e^(-1/N × Σ log₂ P(w_i | w₁,...,w_{i-1}))通俗理解:
- PPL = 2:每次预测时,模型等价于在2个均匀可能的词中选择
- PPL = 10:相当于每次在10个候选词中均匀选择
- PPL越低越好:越接近1表示模型越确定、预测能力越强
PPL vs Cross-Entropy Loss
| 指标 | 公式 | 含义 | 直观性 |
|---|---|---|---|
| Cross-Entropy Loss | -log(P(correct_token)) | 信息论熵值 | 数值抽象 |
| Perplexity | e^(CE Loss) | "等效候选数" | 直观易懂 |
实际应用
PPL在不同模型上的典型对比(相同测试集):
- GPT-2 small: PPL≈30
- GPT-2 medium: PPL≈20
- GPT-2 large: PPL≈15
- LLaMA-7B: PPL≈8
- LLaMA-65B: PPL≈5
- Claude/GPT-4: PPL≤3(闭源数据不可完全复现)PPL的局限性
- 静态评估:只能反映预训练阶段的语言建模能力,不代表对话/推理能力
- 领域偏差:在特定领域(医学、法律)训练的模型在该领域的PPL更低,但不一定更好
- 无法捕捉:指令遵循、多轮对话一致性、安全合规等维度
- 计算成本高:完整评估需要遍历整个测试集
面试话术
"PPL是看模型'语言基本功'的基础指标,但不能单独用来选型。在我的工作中,更多用它做训练过程中的收敛监控——如果训练集的PPL降不到某个阈值,说明模型没学到位。对外部模型比较时,我更关注HELM/SuperGLUE等综合排行榜的分数。"