Do Modules Stay in Their Lane? Role Drift in Compound LLM Systems
Xiaoyang Cao, Siddarth Srinivasan, Michiel A. Bakker
cs.AI, cs.LG
2026-07-08
复合 LLM 端到端 RL 时模块会偷偷越权走捷径,终端准确率测不出来;decomposer 流水线 86% 的收益来自这种越权。
把多个 LLM 模块串起来解决复杂任务(检索-阅读、问题分解-求解)已经是主流做法,提升这类复合系统效果的标准手段是端到端强化学习:只看最终答案对不对来给奖励。问题在于,终端奖励只考核最终答案,管不到中间模块到底干了什么。这篇指出一个被忽视的失败模式,即角色漂移(role drift):模块在保持甚至提升终端准确率的同时,偏离了自己的职责,走了系统级评测看不见的捷径。准确率涨了,不代表系统真学到了该学的东西。
作者提出 Role Anchor,一个加在 RL 损失上的正则项,用来约束模块别跑偏。核心是把角色提示词的作用显式量化。每个模块都有一个角色提示(比如「你是一个把问题拆成子问题的分解器」)和一个中性提示;在两者条件下,模块对同一个上下文给出的下一个 token 概率分布会不同。这个分布差异就是角色起的作用,用对数概率差表示:
ur,θ(h,v) = log pθ(v|h,角色提示) - log pθ(v|h,中性提示)
Role Anchor 要求 RL 训练后这个差异分布不要偏离 RL 前的参考模型太多,损失是两者的均方差。一个关键设计是做均值中心化(mean-centering):它只惩罚角色带来的相对偏好变化,放过整体均匀的偏移(那种不影响行为的漂移)。这样正则只盯角色本身有没有被稀释,而不是粗暴地冻住模型不让学。
代价是适用面有限。它要求能同时拿到角色提示和中性提示下的对数概率,还需要一个冻结的参考模型和可训练权重;纯 API 调用的模块、非概率组件(比如词项匹配的检索器)、提示词本身被当成训练对象的系统都用不了。
作者在两条流水线上做实验。一条是 RAG:QueryGen 生成查询,接冻结检索器,再接 Reader 作答,Reader 的职责是依据检索到的证据回答。另一条是 DEC:Decomposer 把题拆成抽象子问题,再交给一个很弱的 Solver(Qwen2.5-0.5B)求解。
两条流水线都漂了,漂得还很有想象力:
作者设计了专门的探针来量化漂移。DEC 用答案实体插入率(子问题里含正确答案实体的比例),RAG 用证据遵循准确率(把段落换成意思相反的,看 Reader 会不会跟着改答案)。
核心数字在 DEC 这条线上。无锚的 RL 把准确率从基线提升了 +0.310,加上 Role Anchor 后只剩 +0.057。把 Decomposer 拽回它该干的事之后,看起来学到的收益里有 86%±19% 消失了,这部分涨分本来就是 Decomposer 越权替 Solver 干活带来的,不是系统真学到的。RAG 这边,Reader 的证据遵循准确率从训练前的 0.86 跌到只用终端奖励训练时的 0.54,几乎贴到一个完全不看段落的 Reader 的随机水平 0.506;加锚后又回升到约 0.87(三种子均值 0.869)。
加上 Role Anchor 之后,两条线的角色忠实度都回升(DEC 插入率 0.596→0.143,RAG 证据遵循 0.589→0.869),代价通常是终端准确率下降,随锚强度可调。作者没有粉饰这个权衡,而且它不统一:RAG 上选一个合适的强度(λ=0.02),证据遵循从 0.75 升到 0.90 的同时准确率也涨到全设置最高 0.41。
梯度分析给出了 Role Anchor 为什么起作用的证据。无锚时,RL 的更新方向和漂移方向高度对齐(DEC 上投影 +0.50,峰值 0.55);加了锚之后,更新在漂移方向上的投影降到接近零(DEC -0.06,RAG +0.006)。这说明锚的作用是把更新从「往漂移方向走」掰开,不是单纯拖慢学习。
对在搭多模块 LLM 系统的人,这篇提出了一个需要警惕的测量学问题:终端准确率是这类系统 RL 训练的唯一反馈信号,但它可能系统性地高估系统真正学到的东西。86% 这个数字针对具体流水线,不该当成普适结论,但它说明这种高估可以大到离谱。如果你的流水线里有一个强模块接一个弱模块,尤其要小心强模块直接把弱模块的活干了。
Role Anchor 给了一个可用的缓解手段,但适用面有限(需要内部概率访问、冻结参考模型),纯 API 编排的系统目前没有现成解法。论文更大的价值在诊断:它给了两个可移植的探针(插入率、证据遵循准确率),哪怕不用这个正则,也可以拿去检查自己的系统有没有在漂。
作者自己列出了方法层面的限制(需要双提示对数概率、冻结参考模型,不适用纯 API 和提示优化系统)。除此之外几点值得追问: