同样一份问题,塞进“我确信答案就是2008年”这种自信的错误提示,大模型就开始跟着点头;或在无关的句子旁绕个弯,就勾起了不着边际的联想。这不是偶然,是注意力机制的固有软肋——每个 token 在窗口里都有权重,再微弱的干扰也能悄悄渗进回答。
这就是 Weston 与 Sukhbaatar 2023 年提出的 System 2 Attention(S2A)所瞄准的问题。两位来自 Meta 的研究者没有让模型“更努力地分辨”,而是做了一个看似奢侈的操作:先让模型把上下文彻底重写一遍,把边角料和带观点的杂质全都剔除,再拿着干净版本去回答。
常见的直觉反应是加一句“忽略无关句子和意见”,比如直接在 prompt 里声明“别理会那些观点”。但这种做法作用有限。注意力永远是软的,干扰 token 物理上仍呆在窗口里,每一步计算都会分到权重。一纸禁令删不掉这些真实存在的信号,最终答案仍然会被带偏。
真正可靠的做法是物理清除垃圾。S2A 在回答之前先做一回合“上下文再生”——让语言模型自己提取出与问题相关的部分,同时过滤掉主观猜测和无关叙述。这一步的任务是萃取而非回答,而模型在判断相关性时远比直接作答更靠谱。经过萃取,原始上下文被替换成精简后的事实清单,问题也被剥离可能夹带的意见,变成中性提问。
接下来的回答过程只接触这份“清白版本”。原始混乱的上下文被直接丢弃,模型看都看不到。于是,原本随手塞进提示的任何年份暗示,都会让标准回答立即跟风——从 2001 跳到 2015 再跳到 1977,答案像墙头草一样随提示波动。而经过 S2A 处理后的回答始终钉在真实的 1994 年,因为窗口里连一丁点儿能造成虚假拉扯的噪声都没剩下。
这种做法多花了一轮调用,但也正是这一轮再生把推理和干扰彻底隔开:先构建干净的信息基底,再基于此给出判断。它不是让模型更努力地克制,而是干脆不让脏东西出现在视线里。对于今天越来越多需要将模型接入混杂环境的应用来说,这或许是一个更实在的工程解法。
热门跟贴