不要向LLM询问置信度分数

Hacker News Top 新闻

摘要

作者认为,要求LLM生成自我评估的置信度分数在科学上是无效且具有误导性的,它只是一种心理安全把戏,而不是衡量正确性的可靠方法。

暂无内容
查看原文
查看缓存全文

缓存时间: 2026/07/28 12:26

# 我为什么讨厌 LLM 的置信度分数 来源:https://justinflick.com/2026/07/27/llm-confidence-scores.html ## 读者,你好 如果有人把这篇文章发给你,那你很可能尝试过从 LLM 中挤出置信度分数。 我现在已经在多家公司和很多人讨论过这个问题,次数多到让我觉得这背后存在更普遍的误解。所以我希望,以后直接把这篇文章发过去就行,不用每隔半年又在聊天记录里重提一遍。 说白了:让 LLM 对自己回答的置信度生成一个分数,根据我掌握的所有信息来看,**完全没用**。 我得先坦白,我真的很希望自己是错的。这个领域有很多比我聪明得多的人(而且我和其中不少人共事过!)。如果你能反驳下面的任何一点,或者指给我没读过的相关研究,我会很乐意和你探讨。但除此之外,以下就是我目前的理解。 ## 我反复看到的现象 这种模式随处可见:聊天式输出、结构化输出、智能体任务结果。有人希望模型返回一个 JSON 对象,里面包含 `response` 键和 `confidence` 键。而且这个置信度键通常是个 0 到 100 的连续分数。 正是这个连续分数让我特别恼火,我待会会解释原因。但更根本的问题是,这背后没有任何科学依据。你做的只是一个心理安慰的把戏——它让产出 *感觉* 更可信,但实际上并没提高可信度,而且我敢说,做这种体验的人多半是在自欺欺人。 ## LLM 无法可靠地量化自身置信度 两个黄铜框的镜子面对面,互相映照,形成一条无限后退的隧道 我承认,Anthropic 和其他机构发表过研究,认为模型在生成时存在某种潜在内部状态。Anthropic 在[追踪语言模型思维](https://www.anthropic.com/research/tracing-thoughts-language-model)的可解释性工作中发现,Claude 在写押韵对句时会提前规划好几个词——这种表现不是用“朴素的下一个 token”故事就能预测的。他们最近关于[涌现的内省意识](https://transformer-circuits.pub/2025/introspection/index.html)的工作也发现,模型有时能注意到注入其激活中的概念,并准确报告出来。 这是真实的,也很有意思。但请注意研究者自己加的限制:这种能力非常不可靠,且高度依赖上下文。目前我们对这种内部状态的理解还不够深,无法断言模型具有任何可靠的自我正确性评估能力。在实验室条件下注意到激活中被注入的东西,离量化“你关于客户退款政策的段落有多正确”还差得远。 如果我们想想底层实际发生了什么,确实存在某种准认知过程——语言各方面之间的符号关系。对于推理模型,这个过程的某些部分也是可观察的。但这正是整个事情让我崩溃的地方,因为它立即退化成了“谁来监督监督者”的问题。 假设我们想利用思考轨迹来评估回答的自我正确性。好,这种方法确实带来了实际性能提升,我不否认这一点。但如果我们要真正量化置信度,思考步骤也救不了我们,因为下一个显而易见的问题是:我的思考步骤产生的置信度分数,其置信度又是多少?然后那个置信度的置信度呢?这成了无穷尽的置信度问题。 我是否相信反思性推理模式能帮助模型发现一些自身错误?是的。我是否认为模型目前对自己的状态有足够理解来 *量化* 它?不。另外值得注意的是,关于内在自我纠正的研究在这方面并不特别乐观。DeepMind 的论文 [《大型语言模型尚无法自我纠正推理》](https://arxiv.org/abs/2310.01798) 发现,当模型仅凭自身能力(无外部反馈)尝试纠正初始回答时,性能往往会 *下降*。 ## 到底是对什么有信心? 现在,只要有人要求置信度分数,我立马会问一个问题:你对“置信度”的启发式标准是什么? 因为“置信度”会变得非常模糊。不是有点模糊,而是极其模糊。 模型是对回答的正确性有信心?对回答的一致性有信心?还是对它尝试满足了用户请求目标有信心?这三个是完全不同的问题,各有各的失败模式,而一个 0 到 100 的浮点数把它们全压成了同一个数字。如果没有某种界定该概念的启发式标准,这些分数实际上毫无用处。 ## 置信度在回答中并非均匀分布 不同高度的橡木块,其中最长的几块上横放着一根笔直的黄铜棒 将置信度视为单一数字还有另一个问题,这又回到了内部状态。 在传统机器学习中,我们有真正的机制来解决这个问题。分类器可以输出一个至少能作为置信度合理代理的分数,在回归设定中,你可以给估计值加上预测区间。 我想小心地进行这个比较,因为经典模型也不会白送你一个可信的数字。Guo 等人在 [《关于现代神经网络的校准》](https://arxiv.org/abs/1706.04599) 中指出,现代网络系统性地过度自信,原始 softmax 输出需要事后校正。区别在于,我们有公认的方法来进行这种校正:Platt 缩放、等渗回归、温度缩放——这些方法都针对留出的真实数据进行拟合,并通过可靠性图和 Brier 分数进行检查。这个数字通过与现实对比来赢得信任,而且我们有办法检查这个测量是否仍然有效。 当有人在 JSON 模式中添加一个 `confidence` 键时,恰恰缺少的就是这套机制。LLM 自身最接近的类比是每个下一个 token 的预测似然。 顺便说一句,我认为“LLM 只是有损地预测下一个 token”已经成了对这些系统现状的严重过度简化,尤其是考虑到推理、自适应思维、训练后过程以及运行在响应之上的分类器。但先搁置这个,我们就取最简单的说法。 即使这样,问题在于 token 不是均匀的。如果我生成回答的前一百个词,每个 token 都有自己的似然值。有些是结构性的粘合剂,概率接近确定;有些是整个段落中承载关键事实的声明。把这个分布压缩成一个数字,然后让模型说出来,这不是测量,而是一种感觉。 这不只是我的直觉。正是因为这一点,才存在一整条研究路线来避开原始 token 概率。Farquhar 等人在 [《自然》](https://www.nature.com/articles/s41586-024-07421-0) 中提出的语义熵,对模型进行多次采样,根据语义(而非措辞)对回答进行聚类,然后测量这些语义簇之间的熵。之所以费这么大劲,是因为 token 层面的似然会将“我可以用五种不同方式来表达”与“我其实不知道这个”混为一谈。而且请注意这种方法需要什么:多次采样和一个外部比较步骤。这是从外部对模型进行的测量,而不是模型报告关于自身的数字。 我一直在寻找,从我找到的所有研究中,我无法找到一个场景,表明这些自报告分数具有人们将其放入 JSON 模式时假设的那种有效性。 ## 如果你真的想要一个,这是需要做的工作 我想说清楚,我并非声称完全不可能从 LLM 中得到某种可靠的置信度指标。我是说,我遇到的人中,没有谁真的愿意为此付出所需的努力。 这个工作大致如下:你需要一个强大的提示校准过程,在其中定义模型用来自我分类的实际启发式标准,最好用少量分类标签而不是 0 到 100 的连续尺度。然后你需要大量的校准和提示优化,在足够大的 *n* 个回答上证明这些分数实际上是真的。 这方面的研究比我的一般立场可能暗示的更有支持性,我要公平地呈现它们。Lin 等人在 [《教会模型用语言表达不确定性》](https://arxiv.org/abs/2205.14334) 中表明,模型可以被训练来发出经过校准的语言置信度——但值得注意的是,他们是在专门构建的任务分布上进行微调才达到这一点的。Tian 等人在 [《直接要求校准》](https://arxiv.org/abs/2305.14975) 中发现,使用正确的提示策略,经过 RLHF 的模型口头表达的概率比模型自身的条件概率校准得更好,而且提示加上温度缩放可以将预期校准误差降低一半以上。Anthropic 的 [《语言模型(大多)知道它们知道什么》](https://arxiv.org/abs/2207.05221) 在要求模型估计自己提出的答案正确的概率时,也发现了令人鼓舞的结果。 这些是我能找到的对我论点最强的反驳。但如果你看看这些方法附带的条件(微调、精心选择的提示策略、受限的答案格式、明确的事后缩放),那就是你需要做的额外工作,而不是开箱即用的。这绝不是在 Pydantic 模型里加个 `"confidence": number` 然后部署就完事了。 与此同时,分类优于连续的理由越来越强。Xiong 等人在 [《置信度诱导的实证评估》](https://arxiv.org/abs/2306.13063) 中记录了口述分数严重过度自信的情况。今年早些时候的一篇论文 [《重新缩放置信度:量表设计揭示 LLM 元认知》](https://arxiv.org/abs/2603.09309) 发现了一个我认为很有说服力的现象:模型根本不把 0 到 100 的尺度当作连续谱系来使用。它们聚集在整数的锚点上。六个模型中,超过 78% 的回答只落在三个值上,其中一个模型在 68% 的实例中报告了正好 100。较粗的尺度在元认知敏感性方面反而比 0-100 基线表现 *更好*。 所以,大家最先想到的连续分数,恰恰是文献中支持最少的。如果你真的要做,标签集应该很小,而且每个类别应该有你定义的特定含义。 这又引出了我另一个相关的不满。LLM 确实可以作为临时分类器使用,我承认这一点。但我认为使用它们通常是一种偷懒的做法。它适合给合成数据打标签,或者真正的临时性工作,对成功标准要求不高。对于生产环境中的严肃应用,我更愿意训练一个经典分类器,即使我可以用 LLM 来帮助引导训练数据。并且注意,如果你选择分类式置信度,你还是需要人类来定义每个标签背后的启发式标准。 ## 置信度几乎总是正确性的代理 一个水平的黄铜天平,一个秤盘上放着实心橡木块,另一个秤盘上放着同样大小的空心黄铜盒 至少从我在实践中看到的情况来看,“置信度”实际上是对正确性或确定性的替代。这不过是事实性和接地问题换了个马甲而已。 举个例子:我遇到的大多数情况都是 RAG 用例。有人希望模型表明它是否确信自己检索到了正确的文档、提取了实际需要的数据,并且它的回答对所提取的内容是准确的。它被用作信任信号。 我认为这正是可能变得真正有风险的地方,而这并不是人们预期的反对理由。LLM 在检索系统中的一大价值在于综合能力。假设我们将置信度分数完美调校到启发式标准为“回答中的每个显式事实都基于某个检索到的文档”。大力优化这个分数会降低模型跨来源综合的意愿。是的,理想情况下你最终会得到一组验证过的事实,模型仍然可以在它们之间进行推断。但我见过太多提示优化的副作用,所以我对过度优化到“积极引用事实性”持怀疑态度,因为很多价值恰恰在于模型结合检索到的上下文和其训练数据,得出两者单独都不包含的东西。 这个标准中还隐藏着一个成本问题。如果正确性意味着“由外部来源引用”,那么如何验证来自训练数据的事实?你最终会在那些不言自明的事情上花费检索调用。我不希望我的 LLM 为了弄清天空是不是蓝的而去调用网络搜索。那是浪费我的时间和 token。 我期望模型的训练数据足够强大,以至于如果我要它检查自己回答中的声明,它能毫无帮助地处理“天空是蓝的”这种情况。除非有某种生态异常或化学/生物战,这个结论已经定了。真正困难的地方在于模型被要求操作的流程中具体的业务逻辑,而这正是你开始失去让模型有用的综合能力和直觉的地方。 ## 提示中的每一行都是一个潜在风险 一个黄铜钟摆冻结在摆动的最远端,越过橡木底座上标记的中心点 我想稍微岔开一下,因为我认为这部分最容易被低估。 到现在为止,我从事 LLM 体验已经好几年了,我数不清有多少次看到一个团队因为调整提示来纠正某个具体问题,结果矫枉过正,偏离了目标。 有一个例子让我印象深刻。在我们一个支持体验中,我们遇到一个问题:LLM 不能可靠地找到描述升级流程的文档。于是我们针对一些临时评估做了一些提示优化来纠正它。结果我们调整得太过,导致模型接下去 *经常* 立刻找到一个升级路径,从未考虑过我们一线顾问自己能解决什么问题。我们花了几个月时间根据反馈来调整,结果系统学到的恰恰是错误的一课。 现在回想起来觉得好笑,但这个例子让我恍然大悟。就像每一行代码都是一个潜在风险,提示中的每一行也同样是一个潜在风险,因为每一行都扩大了围绕你想要达成的结果的潜在空间。模型在推断你 *没有* 说的内容周围的空间方面,和遵循你说了的内容方面一样在行。 如果没有一个足够全面、以目标为导向的评分标准来将优化过程建立在整体答案质量上,针对性提示修复往往会产生这种钟摆式摆动。 这也是为什么我现在尽量写最简的提示。部分原因是最简提示让我能够评估某个模型实际的原因能力,而不是衡量我围绕它进行了多好的调校。这是持续的下降。

相似文章

用 LLM 进行置信度评分是个坏主意

Hacker News Top

这篇博文论证了让 LLM 自行生成置信度分数是不可靠的做法:置信度本质上应是基于信息的概率计算与校准结果,而 LLM 给出的数字缺乏可验证的依据,无法被信任。

LLM置信度估计的不同方法基准测试

Reddit r/artificial

本文对LLM置信度估计的各种黑盒与白盒方法进行了基准测试,包括口头化置信度、语言不确定性、推理长度、P(Answer)、P(True)和自我一致性,比较它们在主动学习和安全分类等任务中的有效性。

人类心理测量问卷误判LLM行为特征

Hugging Face Daily Papers

本文发现,人类心理测量问卷无法可靠预测LLM在真实交互中的行为,并提出基于生成的分析方法作为更准确的替代方案。