困惑度(Perplexity):衡量语言模型好坏
一句话总结
困惑度(PPL)是语言模型最基本的评估指标,等于交叉熵损失的指数形式,直觉上表示模型在每个位置平均要在多少个Token中做选择。
核心概念
| PPL = exp(H) = exp(-1/N × Σlog P(t_i | t_<i)),其中H是平均交叉熵损失。如果PPL=10,意味着模型在每个位置平均面临10个等概率的候选Token。PPL越低,模型对数据的预测越准确。对于随机猜测,PPL等于词表大小V(通常数万)。GPT-3在WikiText-103上PPL约20,当前顶级模型可以做到更低。PPL只衡量模型分配概率的质量,不直接衡量生成文本的质量。 |
为什么重要
PPL是预训练阶段最重要的自动评估指标,不需要人工标注。它与模型在下游任务上的表现通常正相关(PPL越低,下游越好),但不是完全相关。PPL可以用来:(1)对比不同模型的基础语言建模能力;(2)监控训练过程;(3)评估模型在特定领域的适应度。
实践要点
PPL的计算依赖于分词方式和数据集,不同Tokenizer的PPL不可直接比较;评估PPL时需要用固定的测试集,不能用训练数据;PPL对常见模式敏感但对罕见知识不敏感,因此低PPL不等于模型知识面广;Bits Per Character(BPC)是跨Tokenizer可比的替代指标。
常见误区
误区一:PPL可以跨模型直接比较——不同词表的模型PPL不可比,因为预测空间大小不同。误区二:PPL低就意味着生成质量好——PPL衡量的是概率估计质量,不是生成的流畅性、创造性或事实正确性。误区三:PPL在所有文本上表现一致——模型在其训练分布内的文本上PPL低,在分布外的文本上PPL可能很高。