引言

我们都经历过大语言模型 (LLM) 的“幻觉”问题。你向模型询问一个事实,它却自信满满地给出了完全错误的陈述。这不仅令人恼火;在医学、法律或自动决策等领域,这可能是危险的。

为了缓解这个问题,我们依赖置信度分数 (confidence scores) 。 理想情况下,当模型正确时,它应该报告较高的置信度分数。当它不确定或可能出错时,应该报告较低的分数。这种关系被称为校准 (calibration) 。 如果一个模型声称它有 90% 的置信度,那么它在 90% 的情况下都应该是正确的。

然而,从文本生成模型中提取可靠的置信度分数出奇地困难。传统方法通常将最佳答案的低概率解释为不确定性。但在开放式文本生成中,正确答案可能有十种不同的表达方式。如果模型将其概率质量分散在这十个有效答案上,那么任何单个答案的概率都会显得很低,从而错误地发出模型感到困惑的信号。

在论文 Improving the Calibration of Confidence Scores in Text Generation Using the Output Distribution’s Characteristics 中,研究人员提出了一种巧妙且与任务无关的解决方案。他们不再仅仅关注最佳答案,而是分析整个输出分布的“形状”——特别是其斜率和尾部的细度——以此来判断模型是否真的知道自己在说什么。

问题所在: 分类 vs. 生成

要理解为什么标准置信度指标在文本生成中失效,我们需要先看看它们在分类任务中是如何工作的。

在分类任务 (如确定图像包含猫还是狗) 中,通常只有一个正确的标签。如果模型给“猫”分配了 95% 的概率,那就是自信的。如果它给“猫”分配 50%,给“狗”分配 50%,那就是不确定的。

文本生成则不同。假设你让模型翻译一个句子。可能有五种有效的翻译,措辞略有不同但含义完全相同。一个聪明、自信的模型会给这五个序列都分配较高的概率。因此,单一最佳序列的概率可能会下降到 (比如) 20%。

如果我们使用仅关注最佳序列概率的传统指标,我们会错误地得出模型不自信的结论。

展示自信的分类与自信的生成之间差异的直方图。 图 1: 在分类 (左) 中,置信度很容易识别: 一个峰值占据主导地位。在生成 (右) 中,一个自信的模型可能会将概率分散在几个有效的序列上 (前三个直方图) ,从而导致“顶部”概率较低。

如图 1 所示,最右边的直方图代表了一个真正不自信的模型——概率是平坦的,分散在所有选项上。然而,中间的直方图代表了自信的生成,模型看好多个选项。以前的方法很难区分这些中间情况和不自信的情况。

核心方法: 分析分布

研究人员提出,即使有多个有效答案,自信模型的输出分布也会具有两个几何特征:

  1. 陡峭的斜率 (A Steep Slope) : 模型赋予“好”答案集的概率显著高于“一般”或“差”答案集。
  2. 细尾 (A Thin Tail) : 概率在有效答案之后迅速下降,留给分布“尾部”那些无意义序列的概率质量非常少。

显示自信分布的陡峭斜率和长尾的图表。 图 2: 研究人员假设,自信的模型会将“好”序列与“平庸”序列区分开来,从而形成陡峭的斜率和细长的尾部。

基于这些特征,作者引入了两个新指标。

1. 比率法 (The Ratio Method)

第一个指标捕捉了“陡峭斜率”的直觉。它测量了模型最佳猜测与“平均”猜测之间的差距。

具体来说,该方法计算排名第一的序列 (\(1\)) 与排名第 \(k\) 的序列之间概率的比率。

比率法公式。

这里,\(p_{\hat{y}^{(1)}}\) 是排名第一的束 (序列) 的概率,而 \(p_{\hat{y}^{(k)}}\) 是第 \(k\) 个束的概率。

  • 高比率: 最佳答案的可能性远大于第 \(k\) 个答案。这意味着急剧下降,表明模型对其首选充满信心。
  • 低比率: 最佳答案和第 \(k\) 个答案的概率相似。分布是平坦的,表明模型不确定。

\(k\) 值是在验证集上调整的超参数。正如我们稍后将看到的,不同的任务根据其开放程度需要不同的 \(k\) 值。

2. 尾部细度法 (The Tail Thinness Method)

第二个指标关注“尾部”。一个自信的模型应该有一个“细”尾,这意味着它几乎不给糟糕的序列分配概率。一个不自信的模型有一个“厚”尾,给许多不同的序列分配不可忽略的概率,因为它不知道哪些是错的。

为了衡量这一点,作者采用了一个尾部细度 (Tail Thinness) 指数:

尾部细度法公式。

该公式对所有生成序列 (\(N\)) 的概率平方求和。

  • 如果一个序列的概率为 1.0,其余为 0,则总和为 \(1.0^2 = 1\) (最大细度) 。
  • 如果所有 100 个序列的概率相等 (0.01) ,则总和为 \(100 \times 0.01^2 = 0.01\) (尾部非常厚) 。

可视化不同的尾部形状及其指数。 图 3: 尾部指数的可视化。图 B (单一主导答案) 具有最高的指数 (1.0) 。图 A (平坦分布) 最低 (.01) 。图 C 和 D 展示了现实中自信生成的场景,指数介于两者之间。

这个指标很稳健,因为它不在乎概率是分在两个答案还是五个答案上;只要概率集中在少数几个答案上,且其余部分迅速下降,分数就会保持相对较高。

实验

研究人员使用 BARTFlan-T5 两个模型,在三种不同类型的任务中测试了他们的方法:

  1. 翻译: (WMT 英德/英俄,FLORES)
  2. 问答 (QA) : (SQuAD,HotpotQA)
  3. 摘要: (CNN-DailyMail,XSum 等)

他们将新指标与几个基线方法进行了比较,包括:

  • 平均Token概率 (ATP) : 仅查看最佳序列的概率。
  • 熵 (Entropy) : 测量输出的随机性。
  • Dropout 方法: 使用“dropout”噪声多次运行模型,看其是否保持一致。

评估策略

为了确定一个置信度分数是否“好”,作者测量了置信度分数与生成内容的实际质量 (通过 BLEU 评估翻译,ROUGE 评估摘要等) 之间的 斯皮尔曼相关系数 (Spearman correlation)

高相关性意味着置信度分数能准确预测输出的质量。

结果

所提出的方法——特别是 尾部细度 方法——在大多数情况下都优于基线。

显示不同数据集相关性结果的表格。 表 1: 置信度分数与质量指标之间的斯皮尔曼相关系数。“Tail” (尾部) 和“Ratio” (比率) 行 (底部) 通常显示出比基于概率和方差的基线更高的相关性 (加粗/带星号) 。

结果突出了几个主要发现:

  1. 尾部细度表现稳健: 尾部法在 16 个数据集-模型对中的 10 个里取得了最佳性能。
  2. 开放式任务提升显著: 与摘要相比,翻译和问答任务的改进尤为明显。
  3. 更好的校准: 即使最佳束 (top beam) 的概率很低,新指标也能正确识别出自信的输出。

为什么传统方法会失败?

论文使用 SQuAD 数据集的一个直观例子解释了为什么基线方法表现不佳。

SQuAD 上的集束搜索输出比较。 图 4: 在左侧示例中,只有一个有效答案,因此最高概率很高。在中间和右侧的示例中,有多种有效的回答方式。标准指标看到中间图表的低概率,就假设“低置信度”。尾部/比率方法看到了分布的形状,并正确地将其识别为“高置信度”。

在图 4 的中间图表中,模型预测“2 weeks”,但也认为“2 weeks each year”和“2 weeks each year in mid June”是有效选项。因为它分散了投票,所以“2 weeks”的概率下降了。标准指标将其标记为不确定。然而, 尾部细度 指标看到概率完全集中在正确答案的变体上,随后急剧下降,因此正确地将其标记为自信。

\(k\) 值的重要性

对于比率法 (Top vs. 第 \(k\) 个) ,\(k\) 的选择至关重要。实验显示了一个关于任务“开放性”的有趣趋势。

显示相关性与 k 值关系的图表。 图 5: 相关性 vs. \(k\)。像摘要这样的开放式任务 (上排,A-C) 受益于较大的 \(k\),而像 QA 这样的封闭式任务 (G-H) 则受益于较小的 \(k\)。

在严格的 QA 任务中 (只有少数几个正确答案) ,我们应该将最佳答案与第 2 或第 3 个答案进行比较。在摘要任务中 (可能有几十种有效的总结方式) ,我们应该将最佳答案与第 80 或 90 个答案进行比较,以真正了解分布的斜率。

结论与启示

这项研究强调了生成式 AI 中的一个关键细微差别: 不确定性不等于多样性。

模型可以非常确信答案就在特定的五个句子集中,即使它不确定这五个中哪一个是绝对“最好”的。通过不再局限于单一序列的概率,转而分析 输出分布的几何形状 (斜率和尾部) ,我们可以提取出更可靠的置信度分数。

这对在现实世界中部署 AI 具有重要意义:

  • 用户信任: 系统可以准确标记何时需要人类介入。
  • 安全性: 如果分布太平坦 (表明真正的无知) ,模型可以被编程为拒绝回答。
  • 效率: 这些指标是使用标准输出概率计算的,不需要昂贵的重新训练或辅助模型。

虽然存在局限性——例如为了测量比率而生成 \(k\) 个束的计算成本——但这种方法提供了一种数学上有据可依的方式来对神经网络“察言观色”,区分模型究竟是具有创造性的多样性,还是仅仅迷失了方向。