换了个句式,LLM 的立场就变了——一篇论文用因果追踪找到了病灶

句式微调导致 LLM 立场漂移:Stuttgart 团队的新发现与实操启示

如果你做过 prompt 调优,应该遇到过这种事:把一句「公司应该裁员降本」改成「裁员降本应该由公司来推进」,意思没变,但模型输出的立场评分差了十个百分点。你可能把它归成玄学——换几个词就漂,不换词也漂,那还能怎么着。

Stuttgart 团队的这篇论文说的就是这种事,而且不止描述现象,还给出了一个定位方法。论文全名叫 Understanding the Impact of Linguistic Realization Choices on LLM Stance with Causal Tracing,作者是 Langchen Huang、Sebastian Padó 和 Franziska Weeber,被 KONVENS 2026 接收。他们干了两件事:一是系统性地测了「句式构造」而非「词汇替换」对 LLM 立场判断的影响,二是用激活修补(activation patching)找到了这些影响在模型内部的位置。

一、系统性测量:句法构造如何干扰一致性判断

先说第一件事。他们选了一个对意义天然敏感的任务——政治立场判断——然后构造了六种受控的语言改写类型。这些改写分两类:

  • 意义保持型:换句式不换真值(如主动变被动)
  • 意义反转型:从肯定变否定

他们跑了四个开源模型做实验,结论很直接:即使语义不变,换一种句法构造,模型的立场判断也会不稳定。

这对谁有影响?所有依赖 LLM 做一致性判断的人。如果你搭了一个舆情分析 pipeline,用同一个 prompt 模板去判断新闻立场,但原始新闻里有主动被动混用、句式不统一——那模型的输出偏差可能不是来自内容,而是来自句式。这不是 corner case,是系统性的测量噪声。

二、因果追踪:激活修补定位「立场判断层」

第二件事才是论文最硬的部分。知道改写影响立场是一回事,但要定位「到底模型的哪一层决定了这个偏移」,需要更精细的手段。他们用了激活修补:把原始句子的激活值替换到改写句子前向传播的对应位置,然后看哪些组件能「恢复」原始的立场分布。

结果很清楚:中后段 decoder 层,尤其是最后一个 prompt 位置的 block 输出,提供了最强的恢复信号。 换句话说,模型的「立场判断」不是均匀分布在所有层里的,而是集中在某个区间的几个关键层。这条线索跟之前做事实编辑、知识定位的因果追踪思路是一脉相承的——你能修补,就说明你能定位。

三、边界条件:不要过度概括

不过这篇论文也有它自己的边界。实验跑的是政治立场数据集,模型只覆盖了开源权重模型,立场漂移的程度跟具体构造类型和具体模型都有交互。你不能读出「所有模型都在第 N 层做立场判断」这种结论——更准确的概括是,在特定的构造改写下,中后段 decoder 层是对立场最敏感的瓶颈,修补它们能最大程度恢复原始判断。

四、实操启示:你的 prompt 本身也是一种「句式选择」

写这个不是为了复述一篇论文,而是想给一个实操层面的提醒。你现在用的 prompt 模板、few-shot 格式、系统指令,本质上也是一种「句式选择」。如果主动和被动之间的构造差异都能影响判断,那你套的那些结构化输出格式——JSON 指令里的措辞、Markdown 标题的层级——也可能在模型内部触发类似的漂移。不一定每次都出事,但出事的时候你不会知道是这个原因。

Stuttgart 团队补了一块之前很少有人认真碰的拼图:大家都在调词汇、调温度、调样本排列,但很少有人专门去测「句法构造」本身带来的偏差。他们给了一个方法,也给了个警告。至于你能不能在自己每天跑的那些 pipeline 里察觉到这种漂移——那得靠你盯 diff 的习惯了。