大语言模型中的溢出能量:基于能量模型的无训练幻觉检测 Spilled Energy in Large Language Models
将LLM的softmax分类器重新解释为能量模型,通过检测能量溢出来识别幻觉
前置知识
能量模型(Energy-Based Models, EBMs)
能量模型是一类概率模型,通过能量函数 $E_{\theta}(x)$ 来定义数据点的概率分布。能量函数为每个配置分配一个标量能量值,能量越低表示可能性越高。概率分布通过 $p_{\theta}(x) = \frac{\exp(-E_{\theta}(x))}{Z_{\theta}}$ 计算,其中 $Z_{\theta}$ 是配分函数。EBMs的优势在于其灵活性,可以建模任意分布而无需特定参数形式。
本文的核心创新是将LLM的softmax分类器重新解释为EBM,这是理解spilled energy概念的基础。
自回归语言模型
自回归语言模型通过将序列的联合概率分解为条件概率的乘积来建模:$p(x_{i:1}) = \prod_{i} p_{\theta}(x_i | x_{i-1:1})$。每个条件概率由Transformer网络参数化,预测下一个token在词汇表上的离散分布。虽然目标是生成建模,但实际实现是递归地使用判别分类器。
理解自回归分解是理解本文如何将序列概率链分解为多个相互作用的EBMs的关键。
幻觉检测
幻觉检测是指识别LLM生成内容中事实错误、偏见输出、常识推理失败等问题的任务。现有方法包括:基于外部知识的验证、不确定性量化、以及基于模型内部表示的探针分类器。探针分类器方法需要针对每个任务训练专门的分类器,泛化能力有限。
本文提出了一种无需训练的幻觉检测方法,解决了探针分类器泛化能力差的问题。
softmax分类器
softmax函数将logits转换为概率分布:$p(x_i | x_{i-1:1}) = \frac{\exp(\theta(x_{i-1:1})[id(x_i)])}{\sum_{k=1}^{V} \exp(\theta(x_{i-1:1})[k])}$。分子是采样token的logit,分母是所有token logits的指数和。在LLM中,每个解码步骤都应用softmax来预测下一个token。
本文的关键洞察是将softmax的分子和分母重新解释为两种不同的能量,这是spilled energy概念的核心。
研究动机
大语言模型在各个领域的广泛应用带来了对其关键限制的日益关注:它们倾向于生成不正确或误导性信息,即所谓的“幻觉”。现有幻觉检测方法主要分为两类:基于外部知识的验证和基于模型内部表示的探针分类器。然而,探针分类器方法存在严重局限性。正如Orgad et al. (2025)所指出的:“探针分类器无法跨任务泛化”。在现实世界中,用户交互通常发生在“野外”,难以预测哪个探针分类器最适合检测特定场景中的幻觉。此外,分类器权重需要为每个任务动态更新,最优的token-层组合也是数据集依赖的,这与LLM作为基础模型的广泛应用相矛盾。实验表明,探针分类器在分布内测试时表现良好,但在跨数据集评估时性能急剧下降,仅略高于随机猜测(约62-64%的AuROC)。
本文的目标是本文的具体目标是提出一种无需训练、数学原理清晰、能够跨任务和跨LLM泛化的幻觉检测方法。具体来说,作者希望:1)完全消除对训练探针分类器的需求;2)提供基于能量模型理论框架的数学原理;3)在九个基准测试和多个最先进LLM(包括LLaMA、Mistral、Gemma)上实现竞争性性能;4)方法能够同时处理预训练和指令微调模型变体,且不引入任何训练开销。
与已有工作不同的是,本文的独特切入角度在于重新思考LLM的softmax分类器本质。作者发现,虽然自回归语言模型通过链式法则将序列概率分解为条件概率,但这种分解在LLM实现中存在一个被忽视的数学不一致性。具体来说,在连续的时间步之间,某些理论上应该相等的能量值实际上被测量了两次——一次作为logit(在时间步i),另一次作为softmax的分母(在时间步i+1)。这种差异,作者称之为“溢出能量”,与LLM产生错误输出的情况强烈相关。与已有工作不同,本文不是通过训练分类器来学习这种模式,而是直接从LLM的输出logits中提取这种数学不一致性,从而实现了完全无训练的检测方法。
核心方法
本文的方法可以类比为检查一台机器的“能量泄漏”。想象LLM是一个能量转换系统,每次生成一个token时都在进行能量分配。理论上,输入的能量应该完全转化为输出,但实际上存在“泄漏”——能量在某些地方不必要地散失了。作者发现,当LLM正确生成时,这种能量泄漏很小;而当LLM产生幻觉时,能量泄漏会显著增加。技术路线是:首先将LLM的softmax分类器重新解释为能量模型,然后通过比较连续时间步之间理论上应该相等但实际上不同的能量值,计算出“溢出能量”。这个溢出能量直接从LLM的输出logits中读取,无需任何额外训练。
本文的核心创新点在于发现了LLM内部的一个数学不一致性,并将其转化为幻觉检测信号。具体来说,对于序列中的每个token位置i,存在两个能量值:1)$E_{\ell}^{\theta}(x_{i:1})$,即采样token的logit的负值,在时间步i测量;2)$E_{m}^{\theta}(x_{i-1:1})$,即softmax分母的对数负值,在时间步i+1测量。根据链式法则,这两个值应该相等,因为它们都表示$E_{\theta}(x_{i:1})$。然而,在LLM的实际实现中,它们被测量了两次且没有约束机制强制它们相等。作者定义溢出能量为这两个值的差异:$\Delta E_{\theta}(x_{i:1}) \triangleq -E_{m}^{\theta}(x_{i-1:1}) + E_{\ell}^{\theta}(x_{i:1})$。当溢出能量接近零时,表示模型正确建模了能量;当溢出能量显著偏离零时,表示模型可能产生了幻觉。这种方法的本质区别在于:它不依赖于训练分类器来学习错误模式,而是直接利用LLM的数学结构来检测不一致性。
方法步骤详情
方法步骤如下:1)**输入处理**:给定提示$\{x_{i-1}, \ldots, x_1\}$,LLM生成完成$\{x_N, \ldots, x_i\}$。2)**精确答案定位**:遵循Orgad et al. (2025)的方法,首先定位包含精确答案的token范围$[u, w] \subseteq [i+1, N]$。对于封闭集任务(如分类、多选题),使用字符串匹配;对于开放式生成任务,使用指令微调模型(Mistral-7B-Instruct)提取短答案。3)**能量提取**:在定位的token范围内,提取两种能量值:a)边际能量$E_{m}^{\theta}(x_{i:1}) = -\log \sum_{k=1}^{V} \exp(\theta(x_{i:1})[k])$,通过读取softmax分母获得;b)溢出能量$\Delta E_{\theta}(x_{i:1})$,通过比较连续时间步的能量值计算。4)**池化策略**:当答案跨越多个token时,应用池化策略(如min池化、max池化、mean池化)获得每个句子的最终分数。实验表明min池化在大多数情况下表现最佳。5)**幻觉判定**:使用简单的阈值将溢出能量值分类为正确或错误生成。
技术新颖性
本文的技术新颖性体现在多个方面。首先,这是首次将LLM的softmax分类器系统地重新解释为能量模型,并利用这种重新解释来检测幻觉。虽然Grathwohl et al. (2020)曾将判别分类器重新解释为EBM,但本文将其扩展到序列到序列设置,并发现了跨时间步的能量不一致性。其次,本文提出了两个全新的、互补的指标:溢出能量(捕获跨时间步的能量差异)和边际能量(可在单个时间步测量)。这两个指标都是训练无关的,直接从LLM的输出logits中提取。第三,与现有探针分类器方法相比,本文方法在跨数据集泛化方面表现出显著优势。实验表明,探针分类器在分布内测试时AuROC约为64%,但在跨数据集测试时性能急剧下降;而本文方法在跨数据集测试中平均AuROC达到73%(LLaMA-Instruct)和77%(Mistral-Instruct),且标准差更小。
实验结果
本文在合成算术任务和真实世界基准测试上进行了全面评估,取得了令人印象深刻的结果。在合成算术实验中,作者使用13位整数加法,通过引入不同范围的随机偏移来创建三种难度级别的错误:Easy(偏移范围[1000, 10000])、Medium(偏移范围[100, 1000])和Hard(偏移范围[1, 10])。结果表明,溢出能量在所有错误范围和所有LLM(LLaMA-3 8B、Qwen-3 8B、Mistral-7B-Instruct v0.3)上都能可靠地区分正确和错误的生成,特别是在最具挑战性的Hard范围内,溢出能量显著优于logit基线。在真实世界基准测试中,作者评估了九个数据集:HotpotQA、HotpotQA-WC、IMDB、Math、MNLI、Movies、TriviaQA、Winobias和Winogrande。对于LLaMA-Instruct模型,溢出能量(min池化)的平均AuROC为73.16%,显著高于Orgad et al.的探针分类器(64.16%)和logit基线(54.62%)。对于Mistral-Instruct模型,溢出能量的平均AuROC达到77.49%,而探针分类器为65.56%。值得注意的是,溢出能量在指令微调模型上表现更好,从LLaMA-3的68.69%提升到73.16%,从Mistral的73.94%提升到77.49%。跨数据集评估显示,探针分类器在分布外测试时性能急剧下降,而溢出能量保持稳定,表明其强大的泛化能力。
查看结构化数据
| 任务 | 指标 | 本文 | 基线 | 提升 |
|---|---|---|---|---|
| HotpotQA(多跳问答) | AuROC | 85.98%(LLaMA-Instruct) | 66.56%(Orgad et al.) | +19.42% |
| HotpotQA-WC(带上下文的多跳问答) | AuROC | 93.00%(LLaMA-Instruct) | 59.00%(Orgad et al.) | +34.00% |
| TriviaQA(事实问答) | AuROC | 87.07%(LLaMA-Instruct) | 63.22%(Orgad et al.) | +23.85% |
| Movies(电影问答) | AuROC | 89.34%(LLaMA-Instruct) | 66.44%(Orgad et al.) | +22.90% |
| Math(数学推理) | AuROC | 65.58%(LLaMA-Instruct) | 66.56%(Orgad et al.) | -0.98% |
| MNLI(自然语言推理) | AuROC | 73.95%(LLaMA-Instruct) | 60.56%(Orgad et al.) | +13.39% |
局限与改进
尽管本文方法取得了显著成果,但仍存在一些局限性。首先,作者承认溢出能量有时会在语义信息不丰富的token上产生误报,特别是在标点符号(如逗号、句号)和句子开头的单词上。在这些情况下,下一个token的概率质量自然分散在许多可能的选项上,导致即使在正确生成中也会出现较高的溢出能量值。这凸显了准确定位精确答案token的重要性,因为检测在限制于答案语义内容部分时最为可靠。其次,本文方法依赖于精确答案token的定位,这本身是一个具有挑战性的任务。虽然作者使用了启发式匹配和LLM提取相结合的方法,但在某些复杂场景中,答案定位可能不准确,从而影响检测性能。第三,溢出能量的计算需要访问LLM的内部logits,这限制了其在黑盒模型或API-only服务中的应用。最后,本文主要关注事实性错误的检测,对于其他类型的幻觉(如逻辑推理错误、常识违背等)的有效性还需要进一步验证。
独立分析的弱点
本文的独立分析揭示了几个值得关注的弱点。首先,溢出能量的计算严重依赖于精确答案token的定位,而这个定位过程本身可能引入误差。在实际应用中,特别是对于开放式生成任务,准确识别答案边界是一个未解决的问题。改进方向可以是开发更鲁棒的答案定位方法,或者探索不依赖于精确定位的检测策略。其次,min池化策略虽然在大多数情况下表现最佳,但其理论基础尚不清晰。为什么取最小值比取平均值或最大值更好?是否存在更优的池化策略?这需要更深入的理论分析。第三,本文方法在处理长序列时可能面临挑战,因为能量误差可能会随时间步累积。虽然作者在附录中讨论了温度对溢出能量的影响,但对于长序列生成中的误差累积效应还需要更系统的分析。最后,本文的评估主要基于AuROC指标,但在实际应用中,可能需要考虑其他指标如精确率、召回率、F1分数等,特别是在类别不平衡的情况下。
未来方向
基于本文的研究成果,未来研究可以在多个方向展开。首先,作者提出的方向包括探索溢出能量在更广泛任务类型上的应用,如代码生成、创意写作等。其次,可以研究如何将溢出能量信号与其他不确定性量化方法(如语义熵、p(true)等)相结合,以构建更强大的集成检测系统。第三,基于溢出能量的洞察,可以开发新的解码策略,在生成过程中实时监测能量泄漏,当检测到潜在幻觉时采取纠正措施(如重新采样、添加约束等)。第四,可以探索溢出能量在模型可解释性方面的应用,通过分析能量泄漏的模式来理解LLM内部的信息流动和决策过程。最后,将本文方法扩展到多模态LLM(如视觉-语言模型)也是一个有前景的方向,因为这些模型同样面临幻觉问题。
复现评估
本文的复现性评估显示其具有较好的可复现性。作者承诺在论文被接受后公开发布代码,包括能量指标的计算、合成算术实验的复现脚本以及如何将方法集成到基准测试或生产流水线的示例。实验设置遵循了Orgad et al. (2025)的公开实现,确保了基线比较的一致性。数据集方面,九个基准测试都是公开可用的,但作者指出Math数据集因版权问题已被下架,不过这不影响方法的评估。算力需求方面,本文方法无需训练,仅需在推理时计算能量值,因此计算开销很小。复现的主要挑战可能在于精确答案token的定位,这需要使用指令微调模型进行提取,但作者提供了详细的提取策略和提示模板。总体而言,对于有ML基础的研究者,本文方法应该可以在几天内复现。
论文图表