SWE-Pruner Pro:让编码模型在内部学会剪上下文
在编码代理越来越依赖长上下文的今天,如何把“有用信息”留下、把“噪声”尽快删掉,已经成为效率优化的关键。SWE-Pruner Pro 给出的答案很直接:模型在读取工具输出时,其实已经在内部形成了对相关性的判断,不必再额外外挂一个独立分类器。
核心思路
- 从外部筛选转向内部裁剪:以往的上下文裁剪方法通常先训练一个单独的代码分类器,再决定哪些内容该进上下文。SWE-Pruner Pro 则直接利用代理模型自身的表示。
- 逐行做保留/删除判断:它在模型内部加了一个小型 head,把隐藏状态映射成每一行的 keep-or-prune 标签。
- 加入长度感知信息:为了适配不同工具输出的规模,方法还引入与行数相关的长度嵌入,帮助模型更稳定地处理长短不一的输出。
为什么这件事重要
这类方法的意义不只是“省 token”。在真实的 coding agent 场景里,工具输出常常又长又杂:日志、报错、路径、重复片段都会挤占上下文。如果裁剪得不准,代理要么看不到关键线索,要么被无关内容拖慢决策。SWE-Pruner Pro 的价值在于,它把裁剪决策更紧密地绑定到模型的推理过程,让筛选和理解更像同一件事。
实验层面的结果
论文提到,SWE-Pruner Pro 在两个开源权重基座和四个多轮基准上测试后,最多可节省 39% 的 prompt 和 completion token,同时保持任务质量,推理开销也受控。更值得注意的是,在 MiMo-V2-Flash 上,它还带来了 SWE-Bench Verified resolve rate 提升 3.8%,以及 Oolong 长上下文准确率提升 2.2 分。
可能的影响
如果这类方法继续成熟,未来的 coding agent 可能不需要把所有工具回显都原封不动塞进上下文,而是能在“读取”的同时完成“筛选”。这会让长任务编程、调试、代码修复等场景更高效,也为上下文预算紧张的代理系统提供更自然的压缩路径。
总体来看,SWE-Pruner Pro 不是单纯再做一次剪枝,而是在证明:对于编码模型来说,什么该留下,模型自己往往已经知道了一部分答案。
评论
正在确认登录状态……
正在加载评论……