上交字节提出 SWE-Pruner Pro:Coding Agent 的模型内部已经知道该裁剪哪些内容

上交字节提出 SWE-Pruner Pro:Coding Agent 的模型内部已经知道该裁剪哪些内容
一句话讲清楚上海交通大学与字节跳动提出 SWE-Pruner Pro 不再外挂独立剪枝模型而是直接读取 Coding Agent 骨干模型在处理工具输出时形成的内部表示按行决定保留或删除在四个多轮基准上最多节省 39% token 部分设置下还能提升任务质量。论文标题SWE-Pruner Pro: The Coder LLM Already Knows What to Prune论文链接https://arxiv.org/abs/2607.18213Github 链接https://github.com/Ayanami1314/swe-pruner-proCoding Agent 修仓库级问题时会反复调用cat、grep、ls、python等工具把环境返回的长文本塞进上下文。论文统计在 SWE-Bench Verified 上仅「读文件」类命令就占 Mini-SWE-Agent 配合 Claude Sonnet 4.5 时超过 70% 的 token 这些内容还会跨轮次留在窗口里既推高成本也触发长上下文退化。现有剪枝路线大致分两派。通用压缩方法用困惑度、句法结构等固定指标打分看不到 Coding Agent 当前在追什么任务专用方法如 SWE-Pruner 会结合 Coding Agent 意图但需要每轮额外写目标 prompt 再跑一个独立打分模型。两派都把剪枝信号放在 Coding Agent 外面而骨干模型在读工具输出时其实已经做了一次完整前向计算。核心发现保留行和删除行在表示空间里可区分论文先问决定「哪行该留、哪行该删」的信息是否已经在骨干模型的最后一层隐藏状态里他们从公开轨迹里收集约 2260 条多轮工具响应、约 15.5 万行用 Claude Sonnet 4.6 给每行打保留/删除标签再冻结 Qwen3-Coder-Next 对每行做均值池化训练逻辑回归探针。结果在留出集上 AUC 达 0.83 最佳 F1 为 0.63 明显高于多数类上界 0.46 正例率约 30%。线性探针在冻结骨干模型最后一层隐藏状态上的结果保留行与删除行沿判别轴分布有偏移但中间区域仍有重叠。这说明剪枝信号确实编码在表示里但简单线性分类器无法处理中间重叠区也无法利用「短输出误删一行代价极高、长输出误删一行影响较小」这类长度相关结构。 SWE-Pruner Pro 正是针对这两个缺口设计的。方法在预填充阶段挂一个小头按行剪枝左 SWE-Pruner 每轮需写目标 prompt 并调用独立剪枝模型右 SWE-Pruner Pro 直接读取 Coding Agent 内部表示无需外部打分模型。每一轮 Coding Agent 发出工具调用 环境返回原始响应 。骨干模型预填充 时前缀 已在 KV 缓存中只需前向 的新 token 得到最后一层隐藏状态 。 SWE-Pruner Pro 就挂在这步预填充上不再对 做额外前向。每轮只对工具响应 token 前向一次剪枝头读取隐藏状态输出按行保留/删除掩码用剪枝后的 替换 进入下一轮。剪枝发生在轮次之间第 轮生成时 Coding Agent 仍能看到完整 从第 轮起历史里换成更短的 。标注数据里平均保留率约 30%下一轮重前向 的开销通常被后续更短上下文带来的节省抵消。剪枝头长度感知 非线性分类设工具响应共 行隐藏维度为 。剪枝头有两部分1.长度感知嵌入 按行数查表零初始化后广播加到每个 上让模型知道当前响应有多长。2.逐 token 前馈分类器 LayerNorm → 两层 Linear-GELU-Dropout → 输出保留 logit 。推理时以阈值 二值化每个 token 再对行内 token 做多数投票得到行级保留/删除决策。剪枝头结构隐藏状态叠加长度嵌入经两层前馈网络输出逐 token 保留概率行级决策由行内多数投票产生。长度嵌入解决的是非均匀风险 5 行响应里错删 1 行可能是灾难 300 行里错删 1 行影响很小。探针实验也表明单靠线性层无法闭合中间分数带上的重叠。训练逐样本平衡的焦点损失训练集 22,609 条真实多轮轨迹样本由 Claude Sonnet 4.6 标注逐行标签再展开到 token 级。骨干全程冻结只在缓存特征上训练剪枝头。普通交叉熵或批次级焦点损失会把约 30% 的全局保留率当成均匀先验稀释「只保留 3 行」或「只删 10 行」这类极端样本里的关键信号。论文改用逐样本平衡焦点损失在每个样本内分别对保留 token 和删除 token 算损失再 1:1 平均。对样本 中 token 令 若 或 1-p_i若y_i0$则样本内分别对保留集和删除集求平均再等权合并。骨干不更新部署时只需为每个骨干重训一个小头。数据构建流程从五个 HuggingFace 轨迹源解析统一样本质量-多样性筛选至 5 万条再由大模型标注并辅以人工抽检。实验设置基准覆盖 SWE-Bench Verified 500 个补丁生成任务、 SWE-QA 144 道多轮问答、 SWE-QA-Pro 260 道带可执行环境问答、 Oolong 280 个长上下文聚合任务。 SWE-Bench Verified 使用标准 Mini-SWE-Agent harness 其余三个用最小 bash-only harness 。骨干为 MiMo-V2-Flash 309B MoE 每 token 激活 15B 和 Qwen3-Coder-Next 80B MoE 每 token 激活 3B 上下文均为 256K 。对照组包括不剪枝、 LLMLingua2 、 Selective Context 、 RAG 滑动窗口检索 bge-reranker 、 Self-Prune 同一骨干用行保留标注 prompt 重写、 LongCodeZip 、 SWE-Pruner 。主结果省 token 的同时质量没有塌只读多轮基准Table 1 SWE-QA 、 SWE-QA-Pro 、 Oolong 上的端到端质量与 token 消耗。绿色箭头表示相对不剪枝基线的有利变化。在 SWE-QA 家族和 Oolong 上 SWE-Pruner Pro 是唯一在所有单元格里都降低 token 的方法。 Qwen3-Coder-Next 上 SWE-QA-Pro 省 39.4%同时评分从 7.60 升到 7.84 MiMo-V2-Flash 在 Oolong 上 token 降 30.1%准确率从 92.4 升到 94.6 2.2 个百分点。对比其他方法更能看出差异 LLMLingua2 在 Oolong 上 token 反而涨 190% RAG 虽能保住分数但最多只省 6.9% token 。论文解释外挂目标 prompt 、代理打分器或朴素检索带来的开销常常吃掉压缩收益从骨干已有表示里直接读信号从机制上避开了这部分成本。代码修改基准 SWE-Bench VerifiedTable 2 两个骨干在 SWE-Bench Verified 上的解决率、输入 token 与 API 调用次数。两个骨干表现不对称。 MiMo-V2-Flash 上所有剪枝方法都提升解决率 SWE-Pruner Pro 从 326/500 提到 345/500 3.8% token 增幅 7.4%低于 SWE-Pruner 的 14.9%。 Qwen3-Coder-Next 上所有剪枝都会掉解决率但 SWE-Pruner Pro 只少 6 题-1.2 个百分点同时输入 token 降幅最大-13.5%。API 调用次数与 token 在不同骨干上方向相反论文因此分开报告不合成单一效率指标。定性案例删的是许可证和空行留的是函数体以view读文件为例剪枝头给许可证、文档字符串最低分 0.25–0.48 把分数集中在 import 、__version__赋值和main、run_main函数体 0.51–0.66 正好对应后续改补丁会引用的符号。读文件案例左侧色条为保留概率绿色 G 为标注保留蓝色 P 为模型预测保留黄色高亮为预测保留行。grep、ls、测试输出三类场景里模型分别偏向保留可执行代码段、实际文件条目、堆栈外层帧和错误信息而不是目录分隔符或测试框架页脚。消融与延迟设计轴变体F1Judge 分损失函数BCE0.4755.95批次级 Focal0.5936.37逐样本平衡 Focal0.6357.08长度嵌入无0.6366.86有0.6357.08逐样本平衡 Focal 比 BCE 的 Judge 分高 1.13 分。长度嵌入几乎不改变 F1 但把 Judge 从 6.86 拉到 7.08——它主要把错误从短响应挪到长响应符合「长文里多留一行、少留一行」的不对称代价。每次剪枝相对紧随其后的生成步骤的额外耗时。剪枝头复用预填充隐藏状态 16 条轨迹重放上总生成时间只增加 15.0%。在 MiMo-V2-Flash 的 16 条轨迹重放中剪枝总耗时占生成总耗时的 15.0%中位数 14.7% 95 分位 34.8%。剪枝头与推理引擎同机部署不需要跨进程传隐藏状态每轮多付一次头部前向但后续轮次因上下文变短而节省的骨干计算通常更大。边界与适用场景论文明确了几条限制。方法依赖读取骨干隐藏状态当前实验只在开源权重模型上验证闭源 API 若不暴露中间层需要另找接入方式。训练与评测以 Python 仓库任务为主虽然 Oolong 的自然语言长上下文实验表明范式可迁移到非代码工具输出但其他编程语言还需按同样流程重训剪枝头。对部署方来说更实际的判断是如果你的 Coding Agent 把大量 token 花在重复的工具输出上且用的是可挂接隐藏状态的开源骨干 SWE-Pruner Pro 提供了一条比「每轮再跑一个剪枝模型」更轻的路径。它不保证在所有骨干上都涨解决率——Qwen3-Coder-Next 上仍会掉少量题目——但在多数设置里能在可接受的质量波动内显著压缩上下文。学AI大模型的正确顺序千万不要搞错了2026年AI风口已来各行各业的AI渗透肉眼可见超多公司要么转型做AI相关产品要么高薪挖AI技术人才机遇直接摆在眼前有往AI方向发展或者本身有后端编程基础的朋友直接冲AI大模型应用开发转岗超合适就算暂时不打算转岗了解大模型、RAG、Prompt、Agent这些热门概念能上手做简单项目也绝对是求职加分王给大家整理了超全最新的AI大模型应用开发学习清单和资料手把手帮你快速入门学习路线:✅大模型基础认知—大模型核心原理、发展历程、主流模型GPT、文心一言等特点解析✅核心技术模块—RAG检索增强生成、Prompt工程实战、Agent智能体开发逻辑✅开发基础能力—Python进阶、API接口调用、大模型开发框架LangChain等实操✅应用场景开发—智能问答系统、企业知识库、AIGC内容生成工具、行业定制化大模型应用✅项目落地流程—需求拆解、技术选型、模型调优、测试上线、运维迭代✅面试求职冲刺—岗位JD解析、简历AI项目包装、高频面试题汇总、模拟面经以上6大模块看似清晰好上手实则每个部分都有扎实的核心内容需要吃透我把大模型的学习全流程已经整理好了抓住AI时代风口轻松解锁职业新可能希望大家都能把握机遇实现薪资/职业跃迁这份完整版的大模型 AI 学习资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】