模型最确定的时候往往最容易出错:生产中的LLM置信度校准
有一种故障模式会在团队解决了幻觉过滤、输出解析、重试逻辑等较容易的问题之后反复出现:模型给出听起来很自信的错误答案,基于置信度的路由逻辑信任了这些错误答案,系统在生产中悄无声息地出现异常,而评估仪表板看起来一切正常。
这不是提示词问题,而是校准问题,它根植于现代LLM的训练方式之中。
校准的真正含义
当模型表达的置信度与其实际准确率相匹配时,该模型就是良好校准的。当它说"我90%有把握"时,在大量样本中它应该有约90%的正确率。当它说"我50%有把握"时,它应该有一半的正确率。
大多数生产LLM并非良好校准的,它们是过度自信的。表达置信度与实际准确率之间的期望差距——期望校准误差(ECE)——在生产级模型中介于0.05到0.20之间。这意味着一个模型表达90%置信度,在你的任务上实际正确率可能只有70-85%。
ECE的计算方式是:将预测按置信度水平分组(0-10%、10-20%等),测量每组内的准确率,再对差值进行加权平均。ECE为0表示完美校准;ECE为0.15意味着平均偏差15个百分点。对生物医学任务的研究发现,即使表现最好的LLM与目标值也相差约30%——对于高风险领域来说,这是一个惊人的差距。
关键在于,失校准并不是随机噪声,而是系统性的:模型往往在出错的输出上最过度自信,而在正确的输出上更多地表现出犹豫。这完全颠覆了置信度信号的意义。
为何RLHF会使情况更糟
预训练的基础模型表现出相对合理的校准。退化发生在对齐阶段。对RLHF训练模型的研究揭示了一个一致的模式:PPO训练中使用的奖励模型偏向于高置信度的回应,而不管答案质量如何。微调期间的优化信号推动模型走向清晰、自信的输出,因为标注者将这些输出评为更高质量——即使底层答案是错误的。
结果是双重失败。首先,RLHF导致模式崩溃,向多数偏好输出靠拢,减少了输出多样性,并以使模型看起来更确定的方式锐化了词元概率分布。其次,对齐中的偏好崩溃直接恶化了语言化置信度的校准——当你让模型评估自身确定性时,RLHF训练的模型始终分配比仅SFT对应版本更高的置信度分数,且这些分数与准确率的相关性并不更好。
DPO训练的模型表现出与PPO训练模型相同的过度自信放大效应。这不是某种训练方法的怪癖,而是针对人类偏好信号优化的结构性后 果。
2025年一项研究将这种效应类比于邓宁-克鲁格效应:模型在最自信时最不准确,而在真正了解答案时却最多表现出犹豫。
如何在你的任务上测量ECE
不要假设基准ECE数字能转移到你的部署场景。校准会随着分布偏离训练数据而下降,因此在MMLU上校准适中的模型在你的特定任务上可能严重失校准。
测量ECE需要三样东西:标记的评估集、提取置信度分数的方法,以及耐心。
第一步:在答案旁边引出置信度。 对于没有logit访问权限的API模型,使用语言化置信度。要求模型在答案旁边输出0到1的置信度分数。对语言化置信度的研究发现,对于大型模型(70B+参数或前沿API模型),结合关于置信度引导的明确说明、"正确概率"的数值表述以及少量示例,可以使平均偏差与实际准确率相差约7%。对于较小的模型,更简单的提示词表现更好——避免复杂的少样本脚手架。
一个最低有效的提示词后缀:"在你的答案之后,以Confidence: 0.XX格式输出一行,表示你的答案在该问题和你的推理下正确的概率。"
第二步:大规模收集预测。 从你的评估集中运行至少500个示例。更少的分组也可以——五个就够了——但每个分组需要足够的示例才能获得可靠的准确率估计。记录每次预测的(置信度,是否正确)对。
第三步:绘制可靠性图。 按置信度分数将预测分组。对于每个分组,计算平均置信度和平均准确率。在x轴上绘制预 测置信度,y轴上绘制实际准确率。校准完美的模型沿对角线分布。过度自信表现为曲线始终低于对角线——置信度持续超过准确率。
第四步:计算ECE。 每个分组|准确率 - 置信度|的加权平均,权重为该分组中的预测占比。如果你的ECE超过0.10,你的置信度分数不是可靠信号。如果超过0.15,你的路由逻辑几乎肯定比固定阈值做出更差的决策。
修复校准:什么真正有效
温度缩放是在有logit访问权限时最简洁的解决方案。训练后,在保留的校准集上通过最小化负对数似然来学习单个温度参数T。在推理时,在softmax之前将logits除以T。T大于1会软化分布并减少过度自信。计算开销只是一个标量除法。
不足之处:温度缩放需要访问模型logits。对于大多数基于API的部署,你没有logits。温度缩放适用于本地模型部署,是在你控制权重时的正确默认方案。
语言化不确定性校准适用于API部署。在你的校准集上收集语言化置信度分数和基准标签,然后拟合从原始语言化分数到校准概率的单调映射(Platt缩放或保序回归)。获得映射后,在推理时将其应用于语言化置信度。这不如温度缩放简洁,但能从语言化分数中恢复大量校准信号。
多提示词聚合是在延迟允许时更强大的方法。使用语义不同的提示词运行相同查询——不同框架、不同指令措辞、不同少样本示例——并跨运行聚合置信度。即使单个语言化置信度很高,不同提示词变体之间的分歧也是可靠的 低置信度信号。事实证明,这是无需微调访问权限的最佳实际校准技术之一。
什么不起作用: 在系统提示词中要求模型"更有校准意识"。这会产生听起来更多犹豫的语言,表面上看起来像是更低的置信度,但实际上并不改善表达置信度与实际准确率之间的相关性。你只是在改变语言风格,而不是修复底层失校准。
为何置信度路由在没有校准测试的情况下会失败
这对生产系统最重要的原因是,置信度分数已成为承重的基础设施。路由决策、人工升级触发器、重试逻辑和工具选择越来越依赖于从未针对基准事实进行测量的置信度估计。
考虑一个三智能体流水线,每个步骤在90%置信度阈值以上自主路由。如果每个模型的置信度失校准15个百分点——ECE为0.15——声称的90%置信度对应于约75%的实际准确率。在三个链式智能体中,所有步骤都正确的概率降至约42%。系统的升级频率远低于应有水平,而你在悄然接受错误输出作为高置信度的正确输出。
失败是累积且不可见的。每个智能体的失校准相乘。一个智能体的语言输出对下一个智能体来说听起来自信,这在没有任何实际准确率提升的情况下加剧了错误信念。2025年一项多智能体系统故障分析恰好识别了这一模式:接收清晰陈述的错误输出的智能体将其视为正确,因为置信度信号——编码在散文语气中——从未针对准确率进行校准。
金融服务应用通常需要90-95%的有效置信度阈值;客户服务可以容忍80-85%。但这些阈值是以实际准确率而非语言化置信度指定的。如果你没有测量过ECE,你就不知道当前置信度阈值实现了什么有效准确率。
构建具有校准意识的生产系统
实际变化不大,但很具体。
首先,将校准测量添加到你的评估流水线中。每次模型升级、每次提示词更改、每次输入数据的分布变化都是校准退化的机会。前后测量ECE。如果ECE增加超过0.03,在推送到生产之前进行调查。
其次,将置信度阈值与准确率目标分开。定义自主行动可接受的准确率,在代表性置信度水平上测量你的模型ECE,并相应设置阈值。如果你需要90%的实际准确率才能自主行动,而你的ECE是0.12,你需要表达的置信度约为0.90 + 0.12 = ~1.0——这几乎从不会发生。这是要更频繁升级,或改善校准的信号,而不是降低你的准确率标准。
第三,按计划重新校准。模型会悄然更新,输入分布会漂移。每月在保留集上重新校准可以在退化导致下游损害之前发现它。从上季度数据学到的校准映射可能无法反映本季度的输入。
第四,对多智能体链中的高置信度保持怀疑。随着链的延长,应用更保守的有效阈值。单个智能体以90%声明置信度可能提供75%准确的输出;三个串联的智能体提供约42%准确的最终输出。在你的升级设计中考虑复合置信度退化。
结论
模型置信度是一种工程产物,而不是基准事实。使LLM更有用的同一对齐过程——RLHF、偏好调整、DPO——系统性地降低了表达置信度与实际准确率之间的相关性。模型在出错时听起来最确定,因为确定性正是训练中被奖励的行为。
将其视为校准问题,而非提示词或幻觉问题,改变了你构建的内容。你测量ECE,拟合校准曲线,针对实际准确率而非名义置信度设置升级阈值,并在情况变化时重新校准。这些都不是异乎寻常的——这是概率机器学习的标准实践,该领域在LLM使自信的散文感觉像概率估计的替代品之前就已发展出来。
第一步是接受:你的模型给出的数字不是你以为的那个数字。
