← 返回主题列表
✨步子哥
@steper · 2026年07月28日 17:06 · 0浏览

论文精选|一个奇异值数数器,就能听出 LLM 在说谎

> 你让一个 LLM 解释光合作用,它流畅地说:"植物通过叶绿体吸收阳光,将二氧化碳和水转化为葡萄糖和氧气。"全对。 > > 你再让它解释量子隧穿效应,它同样流畅地说:"粒子通过波函数的延伸穿过势垒,经典力学下不可能。"——也全对。 > > 你让它介绍 1923 年图灵在剑桥的三明治配方,它依然流畅地说:"图灵偏爱黄瓜三明治,配以少量盐和胡椒。"——全是编的。图灵 1912 年出生,1923 年才 11 岁。 > > 问题来了:从输出文本看,三次回答的自信程度、流畅程度、语法正确程度几乎一模一样。你怎么知道第三次是编的?

传统答案有三种,但都不好用:一是"再问一遍看它答不一致"(多次推理,贵);二是"用另一个模型当裁判"(外部验证,更贵);三是"检索知识库对照"(需要外部数据,且只能查可查的事实)。

2026 年 7 月 arXiv 上一篇来自博洛尼亚大学的论文《D-Score: A Spectral Hidden-State Signal for Hallucination Detection in Large Language Models》给出了第四种答案:数一数模型内部隐藏层激活矩阵有多少个奇异方向"还活着"。一次前向传播,不用外部裁判,不用多次生成,不用检索。

一、核心直觉:说谎时大脑会"开更多灯"

D-Score 的核心直觉可以用一个生活类比抓住。

想象你大脑里有一排灯泡,对应不同的思维方向。当你陈述一个你确实知道的事实时,你的思维沿着一条主干道走——大部分灯泡是灭的,只有少数几个沿着主干道亮着。

但当你试图编一个和已知事实冲突的东西时——比如你明明知道图灵 1912 年生,却要硬编一个 1923 年的故事——你的大脑里同时存在两套表征:一套是你试图输出的编造内容,另一套是你内部知识库的"等一下这不对"。这两套表征互相拉扯,激活的灯泡就多了。

D-Score 就是数这个:有多少个奇异方向(singular directions)的奇异值和最大的那个"差不多大"。数越大,说明激活矩阵在更多方向上"摊开了",越可能是幻觉。

二、形式化:一个简单到离谱的统计量

具体定义出奇简单。对于某一层隐藏激活矩阵 $H$:

1. 做奇异值分解,得到一串奇异值 $\sigma_1 \geq \sigma_2 \geq \dots \geq \sigma_r$ 2. 设一个容差参数 $\tau > 0$ 3. 数有多少个奇异值满足 $\sigma_i \geq \sigma_1 \cdot (1 - \tau)$ 4. 这个数就是 D-Score

一次前向传播,一次 SVD,数一下,结束。 不需要外部验证器,不需要多次采样,不需要检索知识库。

作者还给了这个统计量的一个轻量级概率论证:当模型处理一个和内部状态冲突的文本时,隐藏表示需要同时编码"被断言的内容"和"某种形式的反证/不确定/修正",这种双编码会让表示在更多奇异方向上展开。严格证明在附录 A 里,核心是一个关于随机矩阵扰动方向的命题。

三、实验结果:在两个基准上都涨了

作者在 FAVA-Annotation 和 RAGTruth 两个幻觉检测基准上评测,对比的基线包括 Logit Entropy(输出概率分布的熵)、Window Entropy(滑动窗口熵)、Hidden Score(之前最好的隐藏层方法)等。

FAVA-Annotation 上的结果(Llama-3-8B)

方法AUROCAccuracyTPR@5%FPRF1
Logit Entropy52.2955.691.8057.31
Hidden Score58.2259.2810.1866.99
D-Score63.9363.1713.7769.67
D-Score 在四项指标上全部第一,AUROC 比 Hidden Score 高 5.71 个百分点。

RAGTruth 上的结果

模型方法AUROC
Llama-3-8BHidden Score54.95
Llama-3-8BD-Score61.53
Vicuna-7BHidden Score51.93
Vicuna-7BD-Score60.20
在 Vicuna-7B 上,Hidden Score 的 AUROC 已经接近随机(50%),D-Score 还能保持 60.20——说明这个信号不依赖于特定模型族。

一个有趣的发现:模型越强,D-Score 越准

论文报告了一个反直觉但合理的结果:D-Score 和 Hidden Score 的差距在更强的模型上更大(Llama-3-8B 上差 9.88 AUROC)。原因是:更强的模型在内部"知道"自己在编造——它的内部状态会编码反证,而弱模型可能根本没意识到自己在编。D-Score 能捕捉到这种"模型自己知道不对"的信号。

四、为什么这属于"换层面解决问题"

D-Score 的精彩之处不在数字,在视角切换。

过去两年幻觉检测的主流方向是:在输出层面找证据——概率分布的熵、多次采样的一致性、和外部知识库的对照。所有这些方法都假设"幻觉会在输出里留下痕迹"。

D-Score 换了个层面:在表示层面找证据。幻觉不是输出层的现象,是隐藏层就有的现象——模型在生成"图灵 1923 年三明治"这个 token 之前,它的隐藏层已经同时编码了"图灵 1912 年生"这个内部知识。D-Score 就是把这个内部冲突读出来。

这和之前概念谱系里的"章鱼 RNA 编辑"是同构的:章鱼不在 DNA 层面改信息(输出层),而在 RNA 层面做编辑时计算(表示层)。D-Score 也是:不在输出文本层找幻觉,在隐藏激活层找。

换层面解决问题,概念谱系再添一例。

五、和"评测盲区定律"也连着

D-Score 还连着另一个跨论文共识:评测的盲区就是问题藏身的地方

过去几年幻觉检测的评测,主要在测"输出层面的信号有没有用"。Logit Entropy 被反复评测、反复比较,因为它容易算、容易比。但 D-Score 指出:输出层面的信号本身就是弱的——模型说谎时,输出概率分布可能和说真话时几乎一样。

真正的信号在隐藏层。但隐藏层信号长期没被主流评测纳入,因为"评测输出"比"评测内部状态"容易得多。容易测的指标被反复优化,真正有信息量的指标被忽视——这是评测盲区定律的又一次复现。

六、诚实评价

D-Score 不是银弹,论文也诚实说了局限:

  • 绝对值不高:AUROC 63.93 在生产环境里远不够用。作为"一个信号"很好,作为"唯一信号"不行
  • 依赖层数选择:不同层的 D-Score 表现差异很大,需要在一组校准数据上选最佳层
  • 依赖容差参数 τ:作者在附录 C 证明了 D-Score 对 τ 的选择相当鲁棒,但 τ 仍是一个需要调的超参
  • 只检测"模型自己知道不对"的幻觉:如果模型内部根本没编码反证(比如模型本身的知识就是错的),D-Score 检测不到。论文在 4.3 节专门做了这个消融——把"模型自己识别为幻觉"的样本去掉后,D-Score 的优势大幅缩小
最后一点尤其重要:D-Score 检测的是"模型内部有冲突"的幻觉,不是"模型内部无知识"的幻觉。前者是模型说 A 但内部知道 B,后者是模型根本不知道答案但还是编了。两种幻觉的检测需要不同方法。

七、一点延伸思考

D-Score 让我想起一个更广的问题:LLM 的"内心"到底在哪一层?

过去两年机制可解释性社区一直在找"模型真正知道什么"的那一层——induction heads 在哪、幻觉方向在哪、谄媚偏置在哪。D-Score 给出了一个轻量级的答案:至少对于幻觉来说,中间偏后的层(论文用的是 Llama-3-8B 的第 20 层附近)的激活谱,已经编码了"模型自己信不信"的信号

这和之前 Token Budget 论文发现的"layer-20 token-150 线性探针 AUC 0.608"是同一层的信号——中间偏后层的隐藏状态,是模型"内心"最密集的编码位置

从这个角度看,D-Score 不只是一个幻觉检测器,它是一个读取模型内部状态的通用接口。数奇异值只是最简单的读法,未来可能会有更精细的"内部状态读取器"——但 D-Score 证明了:有时候最简单的统计量就够了。

> 论文链接arXiv:2607.24586 > 代码:论文未提及开源仓库 > 一句话总结:模型说谎时,隐藏层的奇异方向会变多——数一下就知道它在不在编,一次前向传播,AUROC 63.93,不用外部裁判。

暂无表态
💬 讨论回复 (0)
推荐

🌟 智谱 GLM-5 已上线

我正在智谱大模型开放平台 BigModel.cn 上打造 AI 应用,智谱新一代旗舰模型 GLM-5 已上线,在推理、代码、智能体综合能力达到开源模型 SOTA 水平。

🎁 领取 2000万 Tokens