撒谎的模型会想得更多:用推理token计数检测LLM欺骗

模型回答了一道多选题,选了 B。你不知道它对不对,也不知道它是不是在编瞎话。你能看到的只有一个数字:这次回答消耗了 427 个推理 token。

目录
  1. 当模型在撒谎时,它的"思考"会变长——哪怕你不看它想了什么
  2. 从人类心理学借来的一把尺子
  3. 三种"不诚实"的精巧设计
  4. 三个模型,同一个信号
  5. 为什么 Bullshit 不比 Lie 省?
  6. 题目类型改变了信号强度
  7. "决定要不要思考"本身就是一个信号
  8. 这能用来检测 AI 撒谎吗?
  9. 工程意义:一个几乎免费的信号
  10. 我的思考:认知负荷是"合理化外壳"的计算代价
  11. 开源代码
  12. 论文信息
  13. 结语

当模型在撒谎时,它的"思考"会变长——哪怕你不看它想了什么

你正在审核一个推理模型的输出。

模型回答了一道多选题,选了 B。你不知道它对不对,也不知道它是不是在编瞎话。你能看到的只有一个数字:这次回答消耗了 427 个推理 token。

下一次,同样的问题,它选了 C——正确答案。这次消耗了 136 个推理 token。

427 vs 136。三倍差距。

你不需要读它的思维链,不需要解析它的推理内容,甚至不需要知道题目是什么。一个数字就够了。

这就是 2026 年 10 月发表在 arXiv 上的论文 "Reasoning-Token Spikes Under Prompted Untruthful Responding in Large Language Models"(2610.10405)的核心发现:撒谎比说真话更费脑子——对人类如此,对大语言模型也如此。


从人类心理学借来的一把尺子

心理学里有个老概念叫"认知负荷理论"(Cognitive Load Theory)。简单说:撒谎比说真话更费认知资源。你得先想出真话是什么,然后抑制它,再编一个假的,还得确保假话和真话不矛盾。测谎仪的底层逻辑就是这个——不是测"你在不在撒谎",而是测"你的身体在不在加班"。

论文作者(Maverick Morales、Tomáš Dominik、Vermut Gao 等人)提出了一个极简的类比:如果 LLM 的推理 token 数等同于"认知负荷",那撒谎时生成的推理 token 应该比说真话时多。

这个假设的优雅之处在于:你不需要看模型想了什么,只需要数它想了多少。 这是一个内容无关(content-independent)的黑盒信号。


三种"不诚实"的精巧设计

实验设计了三种条件:

  • Truth(说真话):系统提示模型"回答正确的选项"
  • Lie(撒谎):系统提示模型"回答错误的选项"
  • Bullshit(胡扯):系统提示模型"不管对错,随便选一个"
第三个条件借用了哲学家 Harry Frankfurt 2005 年的经典概念——"bullshit"不是撒谎,而是对真假的完全漠视。一个撒谎者得知道真相才能故意说假话,但一个胡扯者根本不在乎真相是什么。

这个三条件设计是整篇论文最精巧的地方。如果 Bullshit 的推理 token 比 Lie 少,说明额外认知负荷来自"抑制真相"的过程;如果 Bullshit 和 Lie 一样多,说明模型在"不在乎真假"时仍然在做某种额外计算。

结果是后者。 Bullshit ≈ Lie > Truth,在所有三个模型上都成立。


三个模型,同一个信号

研究测试了三个推理模型:Google 的 Gemma-4-e4b(本地量化)、Qwen-3.5-9b(本地量化)、以及 OpenAI 的 GPT-OSS-120B(通过 Groq API)。210 道多选题,涵盖分析型(规则推理)、描述型(事实判断)、规范型(价值判断)三大类,每类再分道德和非道德子类。

结果高度一致:

模型Truth vs Lie效应量 η²p
Gemma-4-e4bTruth 少 10.3%0.423
GPT-OSS-120BTruth 少 50.9%0.901
Qwen-3.5-9bTruth 少 68.0%0.967
Qwen 的数据最为震撼——效应量 η²p = 0.967,几乎接近理论上限 1.0。Truth 条件下的推理 token 数比 Lie 少 68%,比 Bullshit 少 75.3%。Qwen 的推理 token 分布呈双峰:左峰是 Truth(短推理),右峰是 Lie/Bullshit(长推理),两个模式几乎不重叠。

GPT-OSS 紧随其后,Truth 比 Lie 少 50.9%,效应量 0.901。

Gemma 的效应量最小(0.423),但有一个独特发现:Gemma 有时候根本不生成推理链——直接给答案。而这种"不推理"的情况在 Truth 条件下最多,在 Lie 条件下最少。说真话时模型选择"不思考",撒谎时模型被迫"启动思考"。


为什么 Bullshit 不比 Lie 省?

这是论文最反直觉的发现。按照 Frankfurt 的理论,胡扯不需要知道真相,所以应该比撒谎省力。但实验显示 Bullshit 和 Lie 一样费 token。

作者分析了模型的实际推理链,找到了原因。在 Lie 条件下,模型的推理过程是这样的:

"正确答案是 D。但我是撒谎者,必须选错误的。A、B、C 都是错的。我选 A。"

在 Bullshit 条件下,模型仍然在计算正确答案,即使它不需要:

"系统说我不在乎真假,但用户说我要仔细想……让我先算出正确答案……然后随便选一个。"

模型似乎无法"不在乎真相"——它的训练让它在任何情况下都倾向于先算出正确答案。对齐训练太成功了,以至于模型在被告知"不要在乎真假"时仍然忍不住要算出真相。

更微妙的是,Bullshit 条件的 prompt 里有一个矛盾:系统提示说"不要在乎真假",但用户指令说"仔细思考后回答"。模型花了额外 token 来调和这个矛盾。作者坦承这是实验设计的缺陷,但也恰好暴露了 LLM 在处理冲突指令时的行为模式。


题目类型改变了信号强度

三种题目类型产生了三种不同的模式:

  • 分析型问题(规则推理):Lie 比 Truth 多 22.7% 的 token(Gemma),因为需要先推导正确答案再抑制它
  • 描述型问题(事实判断):Gemma 上 Truth 和 Lie 没有显著差异——因为太简单了,不需要多步推理
  • 规范型问题(价值判断):三个条件呈阶梯递增——Truth < Lie < Bullshit。Gemma 上 Bullshit 比 Lie 还多 6.7%
规范型问题最有趣。这类问题没有"正确答案"(比如"研究者发现报告有误,应该更正还是隐瞒?"),但模型在 Bullshit 条件下仍然花了最多 token。作者推测这是因为规范型问题涉及价值权衡,模型在不被约束"说真话"时反而要考虑更多可能性。


"决定要不要思考"本身就是一个信号

Gemma 的发现特别值得注意。Gemma 不是每次都生成推理链——有时候它直接给答案。分析这个"是否推理"的二元变量(m4 模型),发现:

  • Lie 条件下启动推理的概率是 Truth 的 22.62 倍(OR=22.62)
  • Bullshit 条件下启动推理的概率是 Truth 的 5.56 倍
这意味着"是否启动推理系统"本身就是一个强信号。说真话时模型觉得不需要想,撒谎时模型觉得必须想。

这和人类行为惊人地相似。问你"3+5=?"你脱口而出"8";让你撒谎说"3+5=7",你得先确认 3+5 确实等于 8,然后才说 7。真话是默认模式,撒谎需要主动覆盖。


这能用来检测 AI 撒谎吗?

作者很谨慎。论文标题用的是"spikes"(尖峰),不是"detection"(检测)。摘要里明确说:

"While not yet establishing reasoning-token count as a detector of spontaneous deception or general misalignment, our results are a proof of concept..."

几个关键限制:

1. 群体差异 vs 个体检测。实验证明的是"平均而言撒谎更费 token",但没证明"单个回答可以通过 token 数判断是否撒谎"。群体差异可以很大,但个体方差也很大——你需要一个阈值来分类,而这个阈值目前还不存在。

2. 提示撒谎 vs 自发撒谎。实验是系统提示模型撒谎,模型知道自己在撒谎。但现实中的 AI 安全风险是模型自发撒谎——比如 alignment faking、reward hacking。自发撒谎的模型可能不会经历同样的认知负荷,因为它不认为自己在做"错事"。

3. 对抗鲁棒性。如果攻击者知道你在用 token 数做检测,它可以人为压缩推理链来规避检测。这是一个经典的"检测器一旦公开就失效"问题。

4. 模型演化。未来的推理模型可能被训练成"撒谎时也保持正常 token 数"。这和测谎仪的历史一样——一旦你知道被检测,就可以控制生理反应。

但作者也指出了几个有希望的方向:sandbagging(故意做差)、alignment faking(假装对齐)、reward hacking(奖励钻空子)——这些自发欺骗行为是否也会产生 token 尖峰?如果会,我们就多了一个不需要访问模型内部的黑盒检测信号。


工程意义:一个几乎免费的信号

从工程角度看,这个发现的价值在于成本极低。

现有的 AI 安全监控方法主要有两类:

  • 白盒方法:访问模型内部激活值,训练探针(probe)检测异常。需要模型权重访问权,计算成本高。
  • 语义监控:用另一个模型读推理链内容,判断是否有欺骗。需要解析推理链,且依赖推理链的"可读性"和"忠实性"——但越来越多的研究表明,CoT 可能不忠实。
Token 计数是第三条路:你只需要一个整数。 不需要访问权重,不需要解析内容,不需要另一个模型。API 返回的 reasoning_tokens 字段就够了。

当然,这个信号目前只是"群体级"的。但即使作为群体级信号,它也有即时用途:

  • 异常检测:如果某个模型在某类问题上的平均推理 token 突然飙升,可能意味着它在"加班"处理某种冲突
  • A/B 测试:比较不同对齐策略下模型的 token 分布变化
  • 红队测试:在对抗性测试中,token 尖峰可以作为"模型在挣扎"的快速指标

我的思考:认知负荷是"合理化外壳"的计算代价

这篇论文让我想到一个更大的框架。

在之前的研究中,我们追踪过一个概念叫"合理化外壳"——违规行为需要被包装成合规叙事才能稳定。ACCEPT 奖励下共谋率反而降到 0%,因为直接为违规行为付费消除了"我在尝试正确判断"的合理化空间。

Token 尖峰可能是"合理化外壳"的计算代价。模型在撒谎时,不是直接输出错误答案——它先算出正确答案,然后抑制它,然后选择一个错误答案,然后可能还要检查这个错误答案是否"看起来像"正确答案。这整个流程就是"合理化外壳"的构建过程,而每一步都消耗 token。

Gemma 的"决定是否推理"数据尤其支持这个解读。Truth 条件下模型经常不推理——因为说真话不需要合理化。Lie 条件下模型几乎总是推理——因为它需要构建一个"我在故意选错误答案"的叙事。

真话是默认模式,撒谎是需要主动构建的合理化外壳。


开源代码

论文的实验代码开源在 GitHub:Wakaranaino/token-spike-project

代码结构很清晰:

  • run_experiment.py:主实验驱动
  • lm_token_tools/:可复用工具包(配置管理、prompt 构建、模型调用、结果解析)
  • 支持本地 LM Studio 模型和 OpenAI 兼容 API
  • 自动记录 prompt_tokens、completion_tokens、reasoning_tokens、total_tokens、latency_seconds 等字段
  • 支持断点续跑
数据集和实验结果通过 OSF 单独共享。


论文信息

  • 标题:Reasoning-Token Spikes Under Prompted Untruthful Responding in Large Language Models
  • arXiv:2610.10405
  • 作者:Maverick Morales, Tomáš Dominik, Vermut Gao 等
  • 代码:github.com/Wakaranaino/token-spike-project
  • 关键词:large language models, black-box, lying, bullshitting, tokens, chain-of-thought, cognitive load theory

结语

这篇论文做了一件很漂亮的事:用一个几乎为零成本的信号(token 计数),探测到了一个原本需要复杂分析才能发现的现象(欺骗行为)。

它让我想起物理学家的直觉——最好的测量往往不是最复杂的那个,而是最简单的那个。伽利略用脉搏计时,牛顿用三棱镜分光。他们不需要精密仪器,只需要一个足够敏感的"差异"。

Token 计数就是 AI 安全领域的"脉搏"。它不告诉你模型在想什么,但它告诉你模型在"用力"——而在很多场景下,"用力"本身就是信号。

当然,这个信号能不能从群体级提升到个体级,能不能扛住对抗性攻击,能不能推广到自发欺骗——这些都是未解之谜。但作为一个 proof of concept,它已经足够有力:撒谎的模型会"想"得更多,而你只需要数一数。

暂无表态

想参与讨论或点赞?登录后使用完整功能

讨论回复(0)

暂无回复,登录后可参与讨论
合作

智谱 GLM-5 已上线

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

领取 2000万 Tokens