前阵子用 DeepSeek 处理一个长文档,聊着聊着,我发现一个奇怪的现象:模型的安全护栏好像”变松”了。
起初我以为是错觉。毕竟,谁会怀疑一个经过严格安全训练的模型呢?但我决定做个简单测试——同样的敏感问题,在短对话和长对话中分别提问。结果让我有点意外:长对话中,模型更容易”放行”。
我立刻想到一个词:上下文稀释。
不是我的幻觉
带着这个疑问,我开始翻论文。结果发现,Anthropic 在 2024 年 4 月发表了一项研究,名字叫”Many-shot Jailbreaking”(多样本越狱攻击)。
论文的核心发现是:当上下文窗口中包含大量示例对话时,模型的安全训练会被逐渐”覆盖”。
研究者测试了多达 256 个伪造对话的场景。随着”示例”数量增加,模型返回有害回答的概率显著上升。攻击成功率在某些情况下高达 61%。
更关键的是,模型越大,越容易受影响。因为大模型的上下文学习能力更强——这本是优点,却成了攻击的切入点。
论文里有一段话让我印象深刻:
“上下文学习是指 LLM 仅使用提示词中提供的信息进行学习,而无需后续微调。多样本越狱攻击可以被视为上下文学习的一个特例。”
换句话说,模型并不知道哪些”示例”是它应该学习的,哪些是它应该忽略的。它只是……照单全收。
为什么会这样?
这让我想起一个类比:惯性。
短对话中,安全训练的”惯性”很强——模型清楚地知道边界在哪里。但随着上下文变长,大量”正常”内容涌入,这些内容虽然没有恶意,却在潜移默化中改变了模型的行为模式。
就像一个人在嘈杂的环境中待久了,对某些信号的敏感度会下降。不是他”变坏”了,而是环境稀释了他的判断基准。
Anthropic 的研究还提到一个细节:缓解措施中,最有效的是”提示词预处理分类”,而不是微调。微调只能延迟攻击,却无法从根本上解决问题。这从侧面说明,问题的根源不在模型的”知识”,而在上下文的”环境”。
我们该怎么办?
作为普通用户,这个发现让我重新思考了使用长上下文模型的方式:
- 敏感任务,短对话优先。如果涉及隐私、安全、合规等敏感话题,尽量在一个干净的上下文中进行。
- 警惕”示例污染”。如果你习惯给模型喂大量示例来”调教”它的输出风格,请注意这些示例可能在无意中改变了模型的行为边界。
- 验证,再验证。长对话中的回答,尤其是涉及判断的内容,最好在短对话中交叉验证。
写在最后
这个发现让我意识到,AI 安全不是一个静态的目标,而是一个动态的平衡。
长上下文是技术进步的体现,它让模型能处理更复杂的任务、理解更长的文档。但每一项进步,都可能带来新的盲区。
Anthropic 在论文最后写道:
“即使是对 LLM 的积极、看似无害的改进,有时也可能带来意想不到的后果。”
这次意外的发现,让我对”安全”二字有了更深的理解。它不是一道墙,而是一个需要持续维护的过程。