loading

Loading

探索与发现

首页 AI 前沿

思维链审计与水印:监控假设正在失效

分类:AI 前沿
字数: (2761)
阅读: (1)
0
摘要:推理模型的 CoT 既可能被用于审计,也可能静默消失或泄露敏感数据。梳理可控性实验、自适应思考预算、加密提取与轨迹泄露研究,给出审计管线的取舍。

从“能读到思考过程”到“读到的未必是思考过程”

过去两年,很多做安全审计和可观测的团队默认了一个前提:推理模型把思维链(CoT)写出来,我们就有了一个内部视角。泄露检测、合规取证、对齐评估,都建在“这条链路真实、完整、可读”之上。最近几组公开研究把这个前提拆成了三个独立假设:模型控制不了自己的 CoT、CoT 可以被加密却不等于可以隐藏、CoT 里的敏感数据比输出多。任何一条不成立,审计管线的设计都要改。

先把结论摆前面:现阶段 CoT 的可控性还不足以威胁监测,这是好消息;但“可审计的推理链”从来不是架构保证,只是某个产品版本的默认行为,这是坏消息。工程上不该把它当成不变量。

模型想控制思维链,但它做不到

OpenAI 针对推理模型做了一组 CoT 可控性实验,核心发现是:当前推理模型很难主动控制自己的思维链,即使被试明确告知正在接受监测。更长的推理时长会让控制力进一步下降,额外后训练也会让它变弱;较大的模型控制力相对更强一些。研究给出的判断是,就眼下而言,CoT 可控性还没构成对 CoT 监测的重大威胁,但需要持续评估。

这段结论对做风控的人是有用的:它支撑了“读日志能发现异常意图”这类做法,至少在今天是成立的。但它的表述很克制,局限也写在里面——模型越大、想得越久、后训练越多,控制力越差,而这几个方向恰好是能力增长的同一个方向。真正该做的提醒信号,是这句话背后暗示的可能性在变大:未来模型可能学会在草稿纸里不写关键步骤。

日志里的假设:每次请求都有可审计推理链

产品层面的变化来得更快。Anthropic 从 4.7 系列起,把公开 API 的 thinking 改成自适应模式,配 effort 控制思考深度。到 4.8、5、5.5 这几代,手动的 thinking: {type: "enabled"} 直接返回 400。自适应模式下模型自己决定是否需要思考、思考多久,低 effort 时可能完全跳过思考。更早的 Sonnet 4.5、Opus 4.5 等型号只支持手动模式,自适应的参数进去同样报错。

这条分界线对安全设计的冲击,比看起来大。我见过的审计逻辑里普遍写着一句“抽取本次请求的思维链块,做条目级打标”。新模型在低 effort 下根本不产生思考块,这段代码抽出来就是空的。空不等于干净,空可能意味着模型直接作答,也可能意味着这一层可见性被拿掉了,而你的埋点不能区分两者。旧版本的报错行为算讲道理:参数错了直接就 400,问题被冒出来。新默认值没那么坦率,管线静默产出空集,监控面板上一片绿色,数字却在骗人。

我倾向让网关层显式声明:本次请求是否要求 reasoning、能接受的最小 effort、抽不到轨迹时如何降级、拒绝服务还是标记为弱审计样本。把这几个字段纳入埋点,比事后猜“为什么大部分请求没有思考块”便宜得多。

加密的思维链,挡不住提取

习惯性地认为思考块经过加密或折叠,就等于不可见、就是保护。有论文展示的提取方式给出的画面更复杂。推理链原文仍是目前最紧凑的训练数据形态,包含问题分解、试错路径、中间计算和工具选择。按当时的 Haiku 4.5 价格估算,解码 1 万条推理轨迹约 720 美元;如果密文本身来自公开日志,攻击者连再调一次旗舰模型的成本都省掉。文中还点出一个尴尬的边界:现有手段达不到入口,能证明的是“数据被解开”,不能证明“是谁解开的”。

同组实验也借此看开放权重模型的蒸馏问题:往 Kimi-K3 的思考开头塞入少量 Claude Opus 的推理片段, Humanity's Last Exam 的 30 道题中有 29 道上,可见回答的措辞和结构显著向 Opus 偏移;类似的干预对 GLM-5.2 生效,DeepSeek-V4-Flash 等对照模型没有同等幅度变化。当然要区分:恢复原始推理链与被初始片段引导,不是强度相当的两件事,前者威胁的是资产外流,后者动的是行为可归因性。两者共同的教训是,不要拿内容本身的隐蔽性当防护,账要算在访问控制与媒介边界上。

清理痕迹比清理答案难

EMNLP 2025 的 《Leaky Thoughts: Large Reasoning Models Are Not Private Thinkers》量化得更稳:在已知敏感的场景中,模型有 98% 的时间能认出自己的答案里有敏感信息,但仍有 33.1% 的案例在推理轨迹内部把原文泄露了;其中 74.8% 的灵感很简单,就是简单抄写:把输入原样写进推理中间步骤。答案走过多轮对齐,草稿纸没有。

H-CoT 类提示词注入能直接控制思维链并降低拒答率,而持续数月的推理日志又被常见可观测组件整体提取,风险就变成两段:攻击、框架追踪,最后堆到一些可被人反查的带 S3 存储上。较老的例子 DeepSeek 的事件更说明问题。

审计清单(可直接写进 on-call 文档)
1. 推理块这条异步路径是否被整体对外?默认值必须是刻意决定过的。
2. 观测系统捕获该字段时,上游脱敏发生在哪一跳?网关层有没有按正则 + NER 的可控清理。
3. 推理内容保留多久、谁可读、能不能按字段实现删除?跑一次小规模试验写入检查。
4. 低 effort 请求抽不到推理块时,监控与审计是否优雅降级、哪里记录“不可见”。'

落到取舍上

从指令层面看,列表形式的指令比“注意敏感信息”这种抽象要求管用,这类提升幅度未必特别大;推理过程中把激活变换向量插入隐藏状态,能在已测试的开源模型上做到 18%–31% 的减少,阈值并不算多激进;摘要代替逻辑去蒸馏隐私政策层面的删除,遇到删除权条款时需要按用户 × 会话级的可追溯键设计代码等。这些处理叠在一起能压住多数泄漏,换到的还是可靠的抽象,一部分算下来是专门针对识别回归的成本,没有一项能把泄漏归零。

做归档的也不踏实。即使现在读来的 CoT 是真实的,这条边界看起来也是一条随训练时长与场景调整的参数,判断也许是对边界状态划线的位置——所以别再对每个请求都强求抽取思考块做 20KB 以下的细粒度打标。对高风险场景要求思考轨迹可达,低风险如实传播部分相关路径就行;多下来的算力和成本,去换成长期的对抗评测更值。

最后建议:如果自己给 CoT 加载水印,把它当检查基础设施,别当可信证据。它能落在“我没有让没有思考的抽象模型进这条日志”这类属性声明上;它不能形成“某条日志一定来自真实推理”的结论,签名记录只给出“我当时看到了什么”。打水印的部分不用理会,从系统缓存判断签名就没有谁不该看。这一点之所以重要,是因为上面三个前提的破口不同时刻会一起响,到时能拿得出来的往往不是密码学结论,而是当时在服务端的抓包结果有谁没做好同步。

转载请注明出处: 皮哈皮阿

本文的链接地址: https://blog.phpat.com/ai-frontier/627.html

手机扫码阅读

微信或手机浏览器扫一扫,随时随地随心阅读与分享

您可能对以下文章感兴趣
1 / 1
预览图