像 GPT-4 和 LLaMA-2 这样的大型语言模型 (LLM) 彻底改变了我们与信息交互的方式。它们非常有帮助、无害且富有创造力。然而,它们有一个臭名昭著的缺陷: 它们不知道何时该闭嘴。

或者更准确地说,它们不知道如何承认自己不确定。你可能经历过这样的情况: LLM 在幻觉般地编造事实时,表现出的自信与它陈述 \(2+2=4\) 时完全一样。这是校准 (Calibration) 的失败。

在一个完美校准的系统中,如果模型说它对答案有 80% 的信心,那么它应该在 80% 的情况下是正确的。不幸的是,经过人类反馈强化学习 (RLHF) 微调的现代 LLM 往往是“取悦者”——它们表现出过度自信,因为它们受到的奖励是生成听起来有帮助的回答,而不一定是统计上谨慎的回答。

在这篇文章中,我们将深入探讨一篇题为 “Calibrating the Confidence of Large Language Models by Eliciting Fidelity” (通过引出忠实度来校准大型语言模型的置信度) 的研究论文。研究人员提出了一种巧妙的、即插即用的方法,称为 UF 校准 (UF Calibration) , 它通过测试两个特定的特征来强制模型揭示其真实的置信度: 不确定性 (Uncertainty)忠实度 (Fidelity)

Figure 1: In four different MCQA datasets, our method has demonstrated good calibration effects, meaning it is sufficiently close to the y = x curve.

如图 1 所示,这种方法使模型的置信度更接近现实 (对角虚线) ,明显优于标准方法。让我们以此来探索它是如何工作的。

RLHF 模型中的校准危机

在解决问题之前,我们必须先了解它。预训练的基础模型 (在聊天机器人微调之前) 通常具有不错的校准能力。如果你查看下一个 token 的原始概率分数 (logits),它们大致与正确率相关。

然而,对齐过程 (RLHF) 扭曲了这一点。通过优化人类偏好,模型将概率分布推向极端。它们变得“过度自信”。

现有的修复校准的尝试

研究人员已经尝试了几种方法来从 LLM 中获得诚实的置信度分数:

  1. 基于 Logit 的方法: 这涉及查看输出 token 的原始概率分数。

    \[ \mathrm { C o n f } ( a _ { i } ) = \frac { \mathrm { e x p } ( \mathrm { l o g i t } _ { a _ { i } } / t ) } { \sum _ { j = 1 } ^ { | \mathcal { A } | } \mathrm { e x p } ( \mathrm { l o g i t } _ { a _ { j } } / t ) } , \]

    Equation showing Softmax over logits 虽然准确,但这需要对模型内部进行“白盒”访问,而商业 API (如 GPT-4) 通常不提供这种权限。

  2. 采样方法: 对于“黑盒”模型,你可以多次询问同一个问题,看看答案重复的频率。

    \[ \mathrm { C o n f } ( a _ { i } ) = \mathcal { P } _ { \mathrm { s a m p l e d } } ( a _ { i } ) = \frac { n _ { i } } { K } , a _ { i } \in \mathcal { A } \]

    Equation showing frequency based confidence

  3. 语言化置信度 (Verbalized Confidence): 简单地提示模型: “你确定吗?给我一个 0 到 1 之间的数字。”

    \[ ( \mathrm { A n s w e r , C o n f } ) = \mathrm { L L M ( Q u e s t i o n ) } , \]

    Equation for verbalized confidence 这里的问题是,LLM 经常会直接说“0.9”或“高置信度”,而不管实际难度如何,因为它们认为这才是乐于助人的助手听起来该有的样子。

解决方案: UF 校准

这篇论文的作者认为,置信度不是一个单一的指标。相反,他们将其分解为两个不同的维度:

  1. 不确定性 (Uncertainty, U): 模型对问题有多困惑?
  2. 忠实度 (Fidelity, F): 模型对它选择的答案有多坚定?

将这两者结合起来,我们就得到了 UF 校准 分数。

第一步: 估计不确定性

第一步很简单。给定一个多项选择题,我们对模型的输出进行 \(K\) 次采样 (例如 10 次) 。

如果模型每次都回答“A”,则不确定性很低。如果它回答“A” 4 次,“B” 3 次,“C” 3 次,则分布是平坦的,不确定性很高。

为了量化这一点,研究人员使用信息熵 。 他们查看采样答案的频率分布并计算归一化熵:

\[ \mathbf { U n c e r t a i n t y } ( \mathcal { Q } ) = - \frac { \sum _ { i = 1 } ^ { \mathrm { M } } p _ { i } \cdot \log p _ { i } } { \log \mathrm { M } } , \]

Equation for Uncertainty calculation

这给出了一个 0 到 1 之间的值,代表模型最初猜测的“分散”程度。

第二步: 引出忠实度 (核心创新)

这是论文中最具创新性的部分。仅仅因为模型经常选择答案“A”,并不意味着它真正理解为什么“A”是正确的。它可能只是因为训练数据中的偏差而猜测“A”。

为了测试模型对其答案的忠诚度 (忠实度) ,研究人员使用了一个反事实陷阱

假设模型针对某个问题选择了选项 A。然后,研究人员修改提示,将选项 A 的文本替换为短语: “所有其他选项都是错的。(All other options are wrong.)”

然后他们要求模型再次回答。

  • 高忠实度: 如果模型真的相信 A,它应该认识到“所有其他选项都是错的”现在是正确的逻辑选择。
  • 低忠实度: 如果模型只是在猜测或匹配关键词,它现在可能会偏向选项 B 或 C,因为 A 的原始文本已经消失了。

Figure 2: Visualizing the fidelity test.

如图 2 所示,如果仅因为文本改变,模型就从选项 D 切换到选项 A,那么它对 D 的忠实度就很低。

忠实度链

由于可能存在多个看似合理的答案,研究人员通过迭代执行此替换来创建忠实度链 (Fidelity Chain) 。 他们执行贪婪解码 (选取首选) 并生成偏好层级。

例如,如果模型首选 A,但如果 A 被移除/替换,它首选 C,如果 C 被移除,它首选 D,则链条为 \(A \rightarrow C \rightarrow D\)。

忠实度分数的计算是通过给这个链条分配权重来实现的。出现在链条较早位置的答案 (意味着模型强烈捍卫它们) 获得更高的分数。

\[ \mathbf { F i d e l i t y } _ { \mathcal { C } } ( a _ { i } ) = \frac { \boldsymbol { \tau } ^ { i } } { \sum _ { i = 1 } ^ { | \mathcal { C } | } \boldsymbol { \tau } ^ { i } } , \]

Equation for calculating Fidelity

这里,\(\tau\) 是一个超参数 (通常设置为 2) 。该公式确保链条中的首选获得大部分的忠实度权重。

因为我们在第一步中进行了多次采样,我们可能会有不同的起点。我们通过对链结果进行加权平均来计算整体忠实度,权重取决于这些链出现的频率:

\[ \mathbf { F } ( a _ { i } ) = \sum _ { j = 1 } ^ { | A | } \mathcal { P } _ { \mathrm { s a m p l e d } } ( \mathcal { C } _ { j } ) \cdot \mathbf { F i d e l i t y } _ { \mathcal { C } _ { j } } ( a _ { i } ) , \]

Equation for overall Fidelity

第三步: 计算最终置信度

最后,我们结合这两个指标。答案 \(a_i\) 的置信度是其忠实度按问题的整体不确定性进行缩放后的结果。

\[ \mathbf { C o n f } ( \mathscr { Q } , a _ { i } ) = \left( 1 - \mathbf { U n c e r t a i n t y } ( \mathscr { Q } ) \right) \cdot \mathbf { F } ( a _ { i } ) , \]

Equation for Final Confidence

Figure 3: Our proposed UF Calibration workflow.

图 3 总结了整个流程:

  1. 采样以获得分布 (不确定性) 。
  2. 通过将答案替换为“所有其他选项都是错的”来引出忠实度 , 看看模型是否坚持己见。
  3. 结合它们以获得最终分数。

实验与结果

研究人员使用 GPT-3.5-Turbo、GPT-4、LLaMA-2 和 Baichuan2 等模型,在 MMLU、ARC-Challenge 和 TruthfulQA 等具有挑战性的多项选择数据集上,将 UF 校准与标准基线 (语言化、采样等) 进行了测试。

评估指标

为了评估成功程度,他们使用了三个指标:

  1. ECE (期望校准误差): 标准指标。越低越好。
  2. IPR (逆序对比例): 作者提出的新指标。它衡量“单调性”。理想情况下,较高置信度的答案应该总是比低置信度的答案具有更高的准确率。如果一个 60% 置信度的答案比 90% 置信度的答案正确率更高,那就是一个“逆序对” (不好) 。 \[ \mathrm { I P R } _ { M } = { \frac { \mathrm { I P } } { C _ { K } ^ { 2 } } } , \] Equation for IPR
  3. CE (置信度均匀性): 另一个新指标。它检查模型是否使用了完整的置信度分数范围 (0-100%),还是仅仅将所有分数都聚集在 90% 左右。 \[ \mathrm { C E } _ { M } = - \frac { \sum _ { i = 1 } ^ { \mathrm { M } } p _ { i } \cdot \log p _ { i } } { \log \mathrm { M } } , \] Equation for CE

性能比较

结果令人信服。在下表中,蓝色表示更好的性能 (更低的误差) 。UF 校准 (标记为“Ours”) 始终击败语言化 (“Verb”,“Ling”) 和采样方法。

GPT-3.5 和 GPT-4 结果: Table 1: Experimental results derived from GPT-3.5-Turbo and GPT-4-Turbo.

Baichuan2-13B 结果: Table 2: Experimental results derived from Baichuan2-13B-Chat

在表 1 中,请注意“Ours”获得的 ECE 分数 (GPT-3.5 在 MMLU 上为 0.088) 明显低于语言化方法 (在 TruthfulQA 上为 0.215) 。

可视化改进

数字虽好,但可靠性图更能说明问题。这些图表绘制了置信度 (x 轴) 与准确率 (y 轴) 的关系。完美校准的模型遵循对角虚线 (\(y=x\))。

Figure 6: Reliability diagrams of Baichuan2-13B-Chat on ARC-Challenge.

在图 6 中,查看“Verb” (语言化) 的图表。条形图聚集在高端 (0.8-1.0),但准确率很低 (条形图位于对角线下方) 。这是典型的过度自信。

现在看看“Ours” (UF 校准) 。条形图更均匀地分布在 x 轴上,并且它们的高度更符合对角线。这意味着当 UF 校准说“我有 60% 的把握”时,模型实际上大约有 60% 的时间是正确的。

鲁棒性测试

人们可能会担心这种方法很脆弱。如果我们改变模型的温度 (随机性) ,它会失效吗?

Figure 7: The Impact of Temperature on Different Methods.

图 7 显示,无论温度如何变化,UF 校准 (青色线) 都保持稳定并保持最低的 ECE 错误率,而采样方法 (橙色线) 波动剧烈。

此外,它在不同模型规模上是否有效?

Figure 5: The experimental results are derived from LLaMA2-Chat.

图 5 证实,无论你使用的是 7B 参数模型还是 70B 参数模型,UF 校准始终提供最低的校准误差。

讨论: 什么是“真正”的校准?

论文中最有趣的讨论之一是关于 LLM 置信度的本质。

作者指出,语言化方法 (“直接问模型”) 部分失败的原因是模型有一个“最喜欢”的置信度水平。无论问题如何,它们都喜欢说自己有 90% 的把握。

Table 7: Language models tend to prefer outputting expressions of certain confidence.

表 7 显示了 LLaMA-2 输出的置信度分数的原始计数。注意在 0.8 和 0.9 处的巨大峰值。模型本质上是在猜测一个听起来不错的数字。

“真正”的校准需要置信度均匀性 (CE) 。 模型应该能够像说“我确定 (99%)”一样频繁地说“我完全不知道 (10%)”。UF 校准通过从行为 (忠实度) 数学推导分数,而不是要求自我评估,从而强制实现了这种分布。

结论

论文“Calibrating the Confidence of Large Language Models by Eliciting Fidelity”在使 AI 系统更加诚实方面迈出了重要一步。通过承认置信度是初始不确定性和答案稳健性 (忠实度) 的混合体, UF 校准方法为模型输出提供了更准确的概率分数。

主要收获:

  1. 不要相信模型的话: 语言化置信度 (“我有 95% 的把握”) 通常是有用性的幻觉。
  2. 测试忠诚度: 通过试图用“所有其他选项都是错的”来欺骗模型,我们可以衡量它实际上持有其信念的强度。
  3. 即插即用: 这种方法适用于黑盒模型,无需访问内部权重。

对于学生和从业者来说,这意味着构建可靠的 AI 应用程序不仅仅是为更好的答案进行提示工程,还在于设计更好的方法来衡量这些答案何时可能是错误的。