What is 困惑度(Perplexity)?

    衡量语言模型预测文本序列能力的指标,数值越低表示预测越好、语言理解越流畅。

    Definition

    困惑度是语言模型的标准评估指标,量化模型对给定文本序列的「惊讶」程度。数学上,它是序列中 token 的平均负对数似然的指数:PPL = exp(-1/N * sum(log P(token_i | context_i)))。困惑度为 10 意味着模型在每个位置上的不确定性,平均相当于在 10 个等概率的 token 中进行均匀选择。困惑度越低表示语言建模越好——模型对实际出现的 token 赋予了更高的概率。

    困惑度是语言模型最常用的内在评估指标。与衡量下游任务性能的任务特定指标(准确率、F1、BLEU)不同,困惑度衡量模型的基本语言理解能力。在领域特定语料库上具有低困惑度的模型已经有效地学习了该领域的词汇、语法和模式。

    在微调的背景下,留出验证集上的困惑度是监控训练进度的主要信号。随着模型学习训练数据中的模式,验证困惑度会下降。当验证困惑度停止下降或开始上升而训练困惑度继续下降时,模型正在过拟合——这是停止训练或应用更强正则化的信号。

    Why It Matters

    困惑度提供了一种通用的、与任务无关的语言模型质量度量。虽然任务特定的评估对生产决策最终更为相关,但困惑度在开发过程中提供了快速、可靠的信号。微调模型在领域特定文本上应该比基础模型具有更低的困惑度——如果没有,说明训练中出了问题。

    困惑度对于比较量化质量也很有价值。当模型从 FP16 量化到 4 位精度时,困惑度的增加衡量了损失了多少语言建模能力。在基准语料库上困惑度增加 0.2 是可接受的;增加 2.0 则表明质量显著下降。这使得困惑度成为评估量化方法的标准指标。

    How It Works

    计算困惑度需要在评估模式下(不进行梯度计算)对文本序列运行模型,并记录在给定前文上下文的情况下每个 token 被赋予的对数概率。这些对数概率在所有 token 上取平均并进行指数运算。对于因果语言模型,只对第一个 token 之后的 token 进行评分,因为第一个 token 没有前文上下文。

    上下文长度会引入一个微妙之处。对于有限上下文窗口的模型,很长的文本必须被分割为重叠或滑动窗口。步幅(窗口之间的重叠)的选择会影响困惑度的计算。步幅等于上下文长度产生不重叠的段,而步幅为 1 给出最准确的每 token 困惑度但计算量很大。常见做法是使用上下文长度一半的步幅作为实际折中方案。

    Example Use Case

    一个团队在医学文献上微调模型,并在留出的医学期刊文章集上追踪困惑度。基础模型在该语料库上的起始困惑度为 45。微调后,困惑度降至 12,确认模型已学习了医学词汇和写作模式。然后他们将微调模型量化到 4 位并测量困惑度增加:仅增加了 0.4(至 12.4),确认量化保留了模型质量。

    Key Takeaways

    • 困惑度衡量语言模型预测文本的能力——越低越好。
    • 它是评估语言模型质量的标准内在指标。
    • 微调期间的验证困惑度可以指示何时停止训练以避免过拟合。
    • 量化期间困惑度的增加衡量了压缩的质量代价。
    • 它提供了一种通用的、与任务无关的信号,补充任务特定的评估。

    How Ertas Helps

    Ertas Studio 在整个微调过程中追踪验证数据上的困惑度,并以实时图表显示,帮助用户识别最佳检查点并在过拟合影响模型质量之前检测到它。

    Related Resources

    Ship AI that runs on your users' devices.

    Early bird pricing starts at $14.50/mo — locked in for life. Plans for builders and agencies.