ICR 探针:追踪隐藏状态动态以在 LLMs 中实现可靠的幻觉检测
(ACL 2025)
目前存在多种幻觉检测方法。主流方法通过一致性检查或参考对比分析生成结果 (对比解码等),而基于概率的方法则关注 Logit概率的不确定性。
另一种方法是检查大语言模型各层中的隐状态(例如嵌入向量)以检测幻觉 。基于输出或 Logit 概率的方法通常需要真实值参考或多次生成以保证一致性。相比之下,基于隐状态的检测方法具有无需参考的优势,无需依赖外部资源。
当前基于隐状态的幻觉检测方法大致可分为基于训练和无训练两类。
基于训练的方法通常涉及训练单独或组合的探针,或使用语义熵探针 ,而无训练方法则直接从隐状态计算检测指标。然而,现有方法通常聚焦于静态的高维隐状态(约 4000 维度),这限制了特征抽取能力。这些方法难以捕捉隐状态的更新以及残差流的跨层演化,最终制约了幻觉检测的有效性。
为了克服这些局限性,本文将关注点从隐状态本身转移到其在各层间的更新过程。引入一种新指标——ICR 得分(Information Contribution to Residual Stream),用于量化模块对隐状态更新的贡献。
算法
对于模型有,$x_i^{\ell} = z_i^{\ell-1} + \underbrace{\text{MHSA}^\ell(x_i^{\ell-1})} _ {a_i^\ell} + \underbrace{\text{FFN}^\ell(z_i^{\ell-1} + a_i^\ell)} _ {m_i^\ell}$。
定义层 $\ell$ 中隐藏状态的总更新为:
$$
\Delta x_i^{\ell}
= x_i^{\ell} - x_i^{\ell-1}
= a_i^{\ell} + m_i^{\ell}
$$
一种简单的方法是$\frac{a}{a+m}$。但作者认为这是不可靠,m是通过a计算得到的,这使得区分 FFN 对新参数化知识的贡献与其对 MHSA 信息的强化作用变得复杂。
作者通过以下方式计算所谓的ICR 得分:
(1)提取注意力,并对H个注意力头的得分进行池化/平均。
1 |
|
(2)识别隐状态的更新方向。$p _ {i,j}^\ell=\frac{(\Delta x_i^{\ell})^T\cdot x_j^\ell}{||x_j^\ell||} $
1 |
|
(3)隐状态更新方向与注意力得分之间的一致性计算。使用 JS 散度(JSD)。
$$
ICR_i^\ell=JSD(Proj_i^\ell,Attn_i^\ell)
$$
实验
消融实验:
在 NONE 情景中,同时排除隐状态和注意力信号,导致随机性能(AUROC= 0.5)。
在 HS ONLY 情景中,仅使用隐状态信息,而注意力得分被设置为均匀分布。此时,计算对应于 Proj的熵。
在 HS + ATTN 情景中,同时整合隐状态和注意力信号。