大语言模型(LLM)在各个领域的应用日益广泛,但随之而来的问题是:我们如何衡量LLM给出的答案是否可靠?如何评估其置信度?尤其是在高风险场景下,如医疗诊断或金融分析,对LLM置信度的准确评估至关重要。本文将深入探讨LLM置信度测量的各种方法,从模型内部的概率评估到外部的知识库验证,旨在为开发者和研究者提供一个全面的指南,帮助他们构建更安全、更可靠的LLM应用。
模型内部置信度评估:白盒方法
模型内部方法,也被称为“白盒”方法,直接利用LLM自身的内部信息来评估其置信度。这类方法的前提是我们能够访问模型的内部结构,包括输出概率、隐藏层激活等。其优势在于能够直接获取模型自身对不确定性或知识的评估。
1. 基于 Logit 的置信度评估:概率的解读
Logit-based confidence (Using Model Probabilities) ,一种直接的方法是通过观察LLM的输出概率来评估其置信度。LLM生成文本的过程本质上是对下一个token进行预测,并赋予每个token一个概率分布。如果模型对其答案非常有信心,那么它应该为输出的token序列赋予较高的概率。
优点:
- 易于实施: 如果可以访问模型的概率,这种方法实现起来非常简单,无需额外的训练或外部数据。
- 通用性强: 适用于任何任务,因为模型始终会生成token概率。
- 可扩展性: 可以扩展到多次采样模型或使用模型集成,通过概率的方差来评估置信度。
缺点:
- 概率并非总是等同于正确性: 低概率的答案可能仍然是正确的,只是措辞不常见或涉及罕见的主题。相反,模型可能会对一个流利、自信但完全错误的答案赋予高概率,也就是所谓的“幻觉”。
- 模型过度自信: LLM通常倾向于过度自信,尤其是在出现事实错误时。单纯依赖模型的自身概率可能会产生误导。
- 答案长度的影响: 答案越长,概率自然越低(因为它是多个token概率的乘积)。虽然可以通过长度归一化来解决,但需要额外的处理步骤。
案例分析:
在机器翻译任务中,如果LLM给出一个译文,并且每个token的概率都很高,那么可以认为这个译文的置信度较高。然而,如果译文涉及到某个专业术语,即使译文是正确的,模型也可能赋予较低的概率,因为该术语在训练数据中出现的频率较低。
实际应用:
AI助手通常会使用基于logit的置信度来决定是否回答问题。只有当置信度高于某个阈值时,才会给出答案,否则会提示“我不确定”。
2. 隐藏状态探测:神经网络的蛛丝马迹
Hidden State Probing (Using Internal Activations),另一种方法是深入LLM的隐藏状态,寻找(不)确定性的迹象。即使模型没有明确表达不确定性,其神经元也可能透露出相关信息。研究表明,可以通过训练一个单独的轻量级分类器(称为“探针”)来预测模型答案的正确性。
优点:
- 深度洞察: 可以深入了解模型自身的“信念”,就像询问模型的大脑,而不是它的嘴巴,是否自信。
- 捕捉细微线索: 能够捕捉到模型内部的不确定性,即使输出概率没有反映出来。
- 适用于多步骤推理: 可以分析中间状态,例如在链式思考之后但在最终答案之前,判断解决方案路径是否有效。
缺点:
- 需要训练单独的模型: 这需要大量的标注数据,成本较高。
- 泛化问题: 探针可能会捕捉到一些表面的线索,这些线索在新的场景中可能失效。
- 技术门槛高: 需要访问模型内部结构和训练探针的专业知识。
案例分析:
假设我们有一个专门用于回答科学问题的LLM。我们可以收集大量的问答示例,微调一个探针来检测其正确性信号,然后在部署中使用该探针来标记低置信度的答案。
实际应用:
如果LLM用于关键推理(例如医疗诊断支持),内部探针可以帮助识别模型超出其能力范围的情况。
3. 模型自我评估:自己评价自己
Self-Evaluation by the Model (Verifying Its Own Answer),不用其他模型,而是直接询问模型本身有多自信。在模型给出答案后,可以追问一个提示,例如:“在1到10的范围内,你对这个答案有多自信?为什么?”或者更简单地说,“你的答案正确吗?回答True或False。”模型会提供一些置信度的指示,例如“我相当自信,因为XYZ”,或者直接输出一个概率或一个带有概率的true/false。
优点:
- 直接且直观: 直接询问模型,它会告诉你。
- 无需额外训练或数据集: 可以通过提示工程在任何有足够能力的LLM上进行。
- 提供解释: 模型可能会解释其置信度的原因。
缺点:
- 自我评估可能同样不准确: 模型可能像其答案一样不准确,过度自信或过度谨慎。
- 增加交互: 再次查询模型会增加交互次数,耗费更多的时间和计算资源。
- 无意义的评估: 如果模型对某个问题一无所知,其自我评估可能毫无意义。
案例分析:
在ChatGPT风格的AI助手或问答系统中,在模型回答后,系统可以内部提示“评估上述答案正确的可能性”。
实际应用:
对于复杂的推理任务,让模型反思其答案通常可以发现错误。例如Reflection Agents。
4. 蒙特卡洛 Dropout 与集成:众说纷纭
Monte Carlo Dropout & Ensembles (Multiple Model Runs) 在经典的不确定性估计中,一个常见的方法是多次运行模型,观察其答案的变化程度。在LLM的背景下,可以通过从同一模型中采样多个响应(使用不同的随机种子或细微的提示变化),或者通过使用不同模型的集成来实现。
优点:
- 捕捉决策过程中的不确定性: 单次运行可能具有误导性,多次采样可以更好地了解决策不确定性。
- 模型无关: 适用于任何可以采样输出的模型,无需特殊训练。
- 受益于多样性: 如果使用集成,不同的模型可能具有不同的知识或错误模式,因此它们之间的一致性是一个强烈的信号。
缺点:
- 计算成本高: 为每个查询运行大型LLM 5或10次是昂贵且缓慢的。
- 难以聚合答案: 如何聚合多个答案是一个挑战,因为这些模型并非真正的独立选民。
- 一致的错误: 如果模型存在强烈的误解,每次采样都可能重复相同的错误事实。
案例分析:
在解决数学文字题时,对多个采样的链式思考进行多数投票可以显著提高准确性,因为错误的推理路径往往会发散,而正确的推理路径往往会独立地与正确答案对齐。
实际应用:
这种方法适用于复杂的推理任务(数学问题、逻辑谜题等)和事实准确性很重要的生成任务(如摘要或开放式问答)。
外部置信度评估:黑盒方法
外部方法,也被称为“黑盒”方法,假定我们只能访问模型的输出(生成的文本)和可能的输入提示,而无法访问其内部运作。这些技术通常涉及与原始LLM分离的附加工具、模型或流程。
1. 语言线索与口头表达的置信度:字里行间的信号
Linguistic Cues and Verbalized Confidence,一种简单的黑盒方法是分析模型答案的文本本身,寻找不确定性的线索。答案是否使用了“我认为”或“可能”等短语?或者它是否说了“肯定”和“显然”?这些语言信号可以作为置信度的粗略代表。
优点:
- 易于理解: 如果模型说“我不完全确定,但我认为答案是X”,用户会立即意识到这个答案可能需要验证。
- 提高用户信任度: 鼓励模型表达不确定性可以提高用户信任度,因为它比始终自信的AI感觉更透明。
- 易于实施: 只需调整提示以引出这些短语或百分比即可。
缺点:
- 模型词语选择未必反映真实的不确定性: 有些模型可能非常礼貌和不确定(总是说“可能”),尽管它们是正确的,这会削弱我们的置信度测量。
- 缺乏不确定性短语并不保证自信: 模型可能只是不知道如何很好地表达不确定性。
- 不一致性: 如果不明确要求置信度陈述,不同的模型甚至不同的运行可能会自发地插入或省略对冲语言,这是不可预测的。
案例分析:
许多系统现在会说“我不确定,但我找到了这些信息……”,这基本上就是这种方法。
实际应用:
这种方法适用于需要记录模型自我报告的置信度以供后续分析或决定是否显示答案的场景。例如,客户支持机器人可能只在“高度自信”时才直接回答,并在表达低置信度时转接给人工代理。
2. 自洽性与多答案一致性:真金不怕火炼
Self-Consistency and Multiple Answer Agreement,一种评估置信度的有效方法是使用自洽性,即检查模型在以不同方式多次提问时是否给出相同的答案(或一致的答案)。如果LLM被问到一个问题,并且我们通过使用随机性或重新措辞问题来采样,例如,5个不同的答案,一个自信的模型应该在这些尝试中给出等效的答案。
优点:
- 经验证有效: 在复杂的问答和推理问题中,自洽性在实践中非常有效。
- 无需额外训练: 您可以使用模型本身多次。
- 擅长捕捉幻觉: 特别擅长在诸如摘要或长篇生成之类的任务中捕捉幻觉。
缺点:
- 计算和延迟: 生成多个答案会花费更多的时间和计算。
- 一致的错误: 如果模型存在偏差或知识差距,它可能会始终重复相同的错误答案。自洽性会错误地将其解释为高置信度。
案例分析:
在链式思考推理问题中,模型可能会找到多种解决问题的方法;如果它们都产生相同的结果,我们就对它感觉良好。
实际应用:
检测摘要或事实生成中的幻觉,基本上是任何内容真实性受到威胁的场景。
3. 替代模型与代理估计器:曲线救国
Surrogate Models and Proxy Estimators,一种方法是使用替代模型,通过构建第二个模型来估计第一个模型的置信度。一种方法是使用较小的、完全可访问的LLM,经过训练或提示以模仿大型模型的答案,然后使用该较小模型的内部置信度测量。另一种形式的替代是专用的分类模型,该模型读取问题和LLM的答案,然后预测置信度或正确性分数。
优点:
- 可以使用强大的技术: 即使原始模型是黑盒,替代模型也可以让您应用诸如logit分析或探测之类的强大技术。
- 资源利用率: 较小的模型可以更便宜、更快速地多次运行。
- 可以直接优化: 训练辅助分类器可以检测不正确的答案。
缺点:
- 不完全一样: 替代模型不是原始模型。如果替代模型的知识或行为与主要模型不同,其置信度估计可能会出错。
- 需要大量数据: 在输出上训练单独的分类器也需要一个标记的输出数据集,其中包含正确性。
- 维护成本高: 如果主模型更新或更改,则可能需要重新训练替代或分类器才能跟上。
案例分析:
Shrivastava 等人采用了一个开源模型(如 LLaMA-2),并将其输入与黑盒模型相同的输入,从而获得 LLaMA-2 对其产生的答案的基于 logit 的置信度。
实际应用:
如果您要构建一个维基百科聊天机器人,那么您肯定希望它通过引用维基百科本身来验证其答案。
4. 外部验证:求助于外部力量
External Verification (Tools, Knowledge Bases, and Humans),这一类别涉及走出AI模型的领域,进入真实世界的信息或人类专业知识。外部验证意味着我们采用模型的答案并对照一些可信来源进行检查。这可以是从在数据库中进行自动查找,到要求人工审核员提供反馈。
优点:
- 最可靠的答案: 如果在数据库中存在正确的答案或可以计算出来,那么外部检查是确认答案最可靠的方法。
- 显著减少幻觉: 这些方法可以显著减少幻觉,因为您将AI的答案置于现实之中。
- 提高透明度: 您可以向用户展示“根据[来源],此答案得到支持”。
缺点:
- 扩展性差: 如果天真地使用这些方法,则无法很好地扩展。
- 对于需要创造力的场景无效: 在某些情况下,尤其是在创造性或观点性问题中,没有可以对照检查的真实情况。
- 需要可靠的工具: 外部工具有时可能会误导您。
案例分析:
Gou et al. (2023) 和 Chern et al. (2023) 开发了沿这些思路构建的系统(CRITIC: Large Language Models Can Self-Correct with Tool-Interactive Critiquing):他们会让模型调用诸如搜索引擎或计算器之类的外部工具来自我验证或纠正其答案。
实际应用:
构建一个维基百科聊天机器人,您肯定希望它通过引用维基百科本身来验证其答案(许多此类系统正是这样做的,检索相关文章并确保答案得到它们的支持)。
推理模型与非推理模型的置信度估计
根据模型的类型或任务(推理密集型与直接检索或基于事实)不同,上述方法的表现也有所不同。总的来说,与非推理模型相比,推理模型(执行多步骤逻辑或计算的模型,通常通过链式思考)往往受益于不同的或额外的置信度策略。
推理模型:
这些模型将问题分解为多个步骤。它们可能会在数学问题中展示它们的工作,或者通过逻辑推导出一个答案。对于此类模型,诸如自洽性之类的方法非常有用。此外,由于这些模型确实产生了它们的推理过程,因此人类或另一个模型可以分析该推理的合理性,以此作为置信度的衡量标准。
非推理模型:
这些模型更直接地回答,通常通过利用记忆的知识或模式完成。对于它们来说,基于logit的置信度通常是首选。自洽性仍然适用,但通常非推理模型会始终重复相同的答案(如果它“认为”它知道),或者如果它真的不知道,则始终说“我不知道”。
结语
评估AI模型响应的置信度既重要又具有挑战性。没有一种适用于所有情况的解决方案,最佳方法通常取决于手头的任务和模型的性质。随着AI助手继续成为日常生活的一部分,我们可能会看到这些方法的组合在使用中。最终目标是使AI不仅能给出答案,而且还能知道它什么时候不知道。通过仔细测量和校准置信度,我们使AI系统更安全、更可靠,并成为我们分配给它们的任何任务中更透明的合作伙伴。