模型推理跟你"藏着掖着"?Steering Vector 能治——但规模不够别指望
搞过模型安全评估的人大概都遇到过这种情况——让模型把推理过程写出来,它洋洋洒洒写了一大段,表面头头是道,但总觉得漏了点什么。比如给了个带有误导倾向的提示词,模型顺着提示走了,但在它的 CoT 里绝口不提那个提示。没法判断它是真没注意到,还是注意到了但故意不写。
这个问题在 AI 安全领域有个专门的名字——不忠实的链式推理(unfaithful CoT)。模型确实在思考,但不把所有关键步骤都写出来。这给安全监控带来了麻烦——本想着把推理摊在桌面上就能看清每一步的逻辑,结果看到的是"删减版"。
最近一篇 arXiv 论文专门研究了这个问题,用的方法在技术圈并不陌生——Steering Vector(引导向量),在模型的激活层上做一点定向干预,让行为朝某个方向偏移。之前的 work 已经证明 Steering 可以用来提升 CoT 的 faithfulness,这篇更进一步,想看看 Steering 的效果能不能跨场景泛化——换一种误导方式,换个数据集,换一种构造 Steering Vector 的方法,还行不行?
结果比预期好。论文在三个模型上做了实验:Gemma-3 4B、Qwen-3.5 9B、Gemma-3 12B。Steering 确实能让模型更频繁地在 CoT 里承认自己受到了提示词影响,但这个效果只在最大的模型(Gemma-3 12B)上稳定可靠,4B 和 9B 的效果参差不齐。规模还是管用的。
论文还检验了泛化能力。跨误导类型、跨数据集的测试显示,如果 Steering 有效,它的效果几乎不受"训练环境"影响——在 A 类误导上训练的 Steering Vector,拿到 B 类误导上照样好用。决定效果大小的主要是评估场景(evaluation setting),与用哪个数据集训练的向量关系不大。四种不同的 Steering Vector 构造方法(包括一种优化目标里完全没有指定任何具体误导类型的方法),效果几乎一样。这说明 Steering Vector 捕获的是一种通用"诚实倾向",而非特定误导模式的"特征"。
Steering 并没有让模型变得更"笨"。测试显示,模型使用误导提示的比例大致不变,"隐藏使用"(用了但不承认)的比例则明显下降。换句话说,Steering 让模型更愿意在 CoT 里交代自己对提示信息的依赖,同时也保持了正常使用提示的能力。
对做 AI 安全对齐、CoT 监控的人来说,这篇论文有几个可以直接用的点。Steering Vector 是实操可用的方法,可以在推理时对模型做激活层干预,让推理更透明,而且这种干预跨场景有效,不需要为每种误导类型单独训练向量。不过小模型效果可能不稳定,规模门槛大概在 12B 左右。也不用担心 Steering 会破坏模型的推理能力——它在使用提示信息的同时也更愿意承认这一点。
当然,论文也有明显的边界。实验场景是"带误导提示的问答"(cued question-answering),真实世界的推理场景远比这个复杂。Steering Vector 在自由对话、多步工具调用、Agent 循环等场景下是否还能保持同样的泛化能力,需要更多研究。另外,为什么大规模模型对 Steering 更响应,这个机制问题也没有完全解答。
这篇论文给了一个可行的方向和一个现实的限制。对于天天和模型推理打交道的人来说,这已经是可用的工具了——前提是模型规模够大。
相关链接:
- 论文页面:https://arxiv.org/abs/2607.29062
- PDF:https://arxiv.org/pdf/2607.29062