困惑度是一种统计度量,用于评估语言模型预测文本序列的效果。 它量化了模型在为序列中的下一个token(例如,单词或子词)分配概率时的不确定性。 较低的困惑度表明模型对其预测更有信心,这表明性能更好。 从数学上讲,困惑度是从测试数据集上的平均交叉熵损失得出的。 例如,如果模型为句子中实际的下一个词分配了高概率,则该预测的交叉熵损失较低,从而降低了总体困惑度。 这使得困惑度成为比较模型的直接方法:在相同测试数据上具有较低困惑度的模型通常被认为更擅长捕获语言中的模式。
在实践中,开发人员在训练和评估阶段使用困惑度。 在训练期间,监视验证困惑度有助于检测过拟合。 例如,如果模型的训练困惑度降低,但验证困惑度趋于稳定或增加,则表明该模型正在记忆训练数据而不是泛化。 困惑度也用于比较架构。 例如,与较旧的循环神经网络 (RNN) 相比,基于 Transformer 的模型在 WikiText-2 等基准数据集上可能获得较低的困惑度,表明更好地处理了长期依赖关系。 此外,困惑度可以指导超参数调整。 如果调整 dropout 率或学习计划可以降低验证困惑度,则表明模型稳定性和泛化能力得到改善。
但是,困惑度具有局限性。 它仅关注单词预测的准确性,而不直接衡量诸如连贯性、事实正确性或与用户意图一致性之类的质量。 例如,模型可能会生成流畅的文本,困惑度较低,但包含事实错误或无意义的主张。 困惑度还很大程度上取决于测试数据的领域。 在新闻文章上训练的模型在医学术语上进行测试时可能会有很高的困惑度,即使它在其预期领域中表现良好。 开发人员通常将困惑度与特定于任务的指标(例如,用于翻译的 BLEU)或人工评估相结合,以评估现实世界中的可用性。 虽然有用,但应将困惑度解释为更广泛评估策略的组成部分。