Skip to content

快手系列

📅 发表于 2025/12/31
🔄 更新于 2026/08/05
👁️ — 次访问
📝 7602 字
⏳ 23 分钟

变化点 ​

2026

2026.07 · KAT-Coder-V2.5

  • AutoBuilder 扩展可验证环境,并修正 sandbox 反馈。
  • Asymmetric PPO 改善长程信用分配,再用 MOPD 整合教师能力。

2026.03 · KAT-Coder-V2

  • 分别训练五类领域专家,再通过 OPD 合并能力。
  • MCLA 稳定策略估计,Tree Training 复用前缀、降低训练开销。
2025

2025.10 · KAT-Coder

  • EM-SFT 将真实执行反馈纳入训练,适配 IDE 和工具交互。
  • 结合 Agentic RL 与 Trie Packing,强化多轮代码任务。

(2607) KAT-Coder-V2.5 (AutoBuilder、Asymmetric PPO、MOPD) ​

🌺 论文摘要

KAT-Coder-V2.5 摘要

参考链接

问题背景

  • Coding Agent 的训练受制于可执行环境不足、轨迹质量参差、长程奖励稀疏和跨 Harness 泛化差。

核心方法

  • 环境与轨迹:AutoBuilder 构建 100K+ 仓库环境,KwaiClawEnv 合成 100K+ 工具任务;修复 near-miss 并过滤低质量行为。
  • Agent RL:Asymmetric PPO 的 Critic 额外读取测试/补丁等 hindsight;测试、行为和进展奖励结合 GRM 过程评分。
  • 多教师融合:五类专家监督学生自己的 rollout,MOPD 结合冷启动、漂移降权与动态截断。

模型效果(KAT-Coder-V2.5,Agent 后训练)

  • SWE-bench Pro 65.2、KAT Code Bench 53.1;均在报告对照中次于 Opus 4.8。
  • PinchBench Avg 94.9;Terminal-Bench 2.1 60.7,终端任务仍有明显差距。

重要结论

  • 环境错误会直接污染 RL 奖励;修复 sandbox 后,反馈错误率由约 16% 降至 2%以下。
  • 仓库修复、工具工作流、终端和科学代码呈现不同能力分布,不能仅以 SWE 分数判断整体代码能力。

核心贡献

  • 将可验证环境、过程轨迹、长程 PPO 与多教师蒸馏整合为 Coding Agent 后训练方案。

未来方向

  • 扩展可验证环境,改进长程信用分配,补强终端与科学编程任务。

问题背景 ​

Agent 训练的三个瓶颈

环境与任务不可靠

  • 原始 Issue 可能遗漏接口和行为要求;依赖安装成功,也不代表目标测试实际运行。
  • 错误环境反馈会把正确策略判错,使 RL 学到与任务目标相反的信号。

最终成败掩盖过程质量

  • 通过测试的轨迹可能硬编码答案或绕过机制;失败轨迹也可能包含有效定位与修复步骤。
  • 长轨迹叠加上下文压缩、子 Agent 分支,单一终局奖励难以判断具体动作的价值。

训练与部署接口不同

  • 固定工具格式和控制流程容易形成依赖;更换 Harness 后,解析、规划与错误恢复可能退化。

核心方法 ​

环境与训练轨迹 ​

可验证任务

任务描述

  • 从真实 PR / commit 提取 Gold Patch + Test Patch。
  • Gold Patch 提供问题背景;Test Patch 提供行为要求;结合两者提取接口与兼容性约束。
  • 经过清晰度检查,保留描述完整、无歧义、与测试一致的任务。

环境构建

  • Build Agent 从干净 checkout 生成依赖与测试脚本;Verification Agent 在 sandbox 中执行。
  • 解析测试框架的结构化输出,要求收集 90%以上预期测试,并重复确认通过/失败状态。
  • 失败日志反馈给 Build Agent 修复;复用语言模板、基础镜像与成功配置,降低重建成本。
  • 预先处理无关依赖变更,删除 Git 历史与参考解痕迹,让训练聚焦任务本身。
轨迹质量

提示辅助恢复

  • 对已定位但缺少关键一步的失败轨迹,提示检查测试断言、接口 schema 或已有实现机制。
  • 得到验证通过的 patch 后,从原任务上下文重新生成轨迹,去掉提示及其泄漏信息。
  • 最终保留无提示、测试通过、与 patch 一致的轨迹,避免训练依赖额外线索。

过程评分

  • 规则过滤无效调用、测试篡改、硬编码和不稳定执行。
  • 过程评分覆盖探索、定位、修改前分析、最小修改、验证、失败恢复等维度。
  • 投机成功降权或剔除;有价值的 near-miss 返回恢复流程,标注同时供偏好学习与 GRM 使用。
SWE 数据流程:从可执行任务环境进入轨迹采集与处理;结合正文区分环境可用性、任务质量和轨迹质量。
原文图 2:SWE 数据流程:从可执行任务环境进入轨迹采集与处理;结合正文区分环境可用性、任务质量和轨迹质量。 来源
三层生成流程

Service:可执行能力

  • 来源包括人工 Skill、社区 Skill 和 LLM 生成的 Service;多个 Service 可串联或嵌套。
  • 从 Skill 提取 API、参数和约束,生成 OpenAPI、容器配置及 fixture 数据。
  • 检查服务连通性、接口完整性与依赖关系,保留可运行的能力单元。

Task:任务扩展

  • 从真实业务任务出发,扩展参数、追加约束、组合工具链,控制难度与交互长度。
  • 并行 rollout,记录模型动作、工具输出和状态变化,形成完整轨迹。

Eval:质量反馈

  • 统一训练格式,验证任务 schema、工具引用、参数与可执行成功标准。
  • 在容器中检查服务启动、fixture 加载、交互完整性与评分正确性。
  • 质量问题回传到 Service 与 Task,区分可修复样本、缺陷样本和可用样本。
数据筛选

硬规则 + LLM Judge

  • 硬规则检查工具黑名单、文件存在、必要工具覆盖和状态一致性。
  • Judge 评价语义正确性、执行效率与交互自然度,两层均通过才进入训练。

规模

  • 从数百万候选中保留 100K+任务;轨迹平均约 15次工具调用,最长超过 100步。
  • 扩展既包括增加 Service,也包括复用同一组 Service 构造不同难度的任务。
KwaiClawEnv 的任务与轨迹生成流程;重点看工具场景、任务合成和验证筛选如何连接。
原文图 3:KwaiClawEnv 的任务与轨迹生成流程;重点看工具场景、任务合成和验证筛选如何连接。 来源

Agent RL 与信用分配 ​

多 Harness 训练

交互分布

  • 白盒:mini-swe-agent,流程简单、无压缩,提供结构清晰的训练轨迹。
  • 黑盒:Claude Code、Codex、OpenClaw、OpenHands,覆盖压缩、重组、复杂工具流程。
  • 随机化调用协议、上下文管理和控制流程,并加入依赖错误、截断输出等扰动。

系统职责

  • Rollout Engine 生成动作;KwaiEnv 运行 Harness 与 sandbox;Train Engine 更新策略。
  • Gateway 中转请求、记录 token 与轨迹,写入 Experience Buffer,将交互执行与训练解耦。
  • 直接使用 /generate 传递 token,避免 chat 模板重套与重新分词造成训练、采样 token 不一致。

Sandbox 可靠性

  • 提前释放近期不再使用的镜像,减少磁盘挤满、反复回收和初始化超时。
  • 修复环境变量覆盖、verifier 执行等问题,避免系统故障变成策略的负奖励。
长程信用分配

Actor 与 Critic 的输入

  • Actor:只读取当前可用历史,包括工具输出、文件片段和压缩摘要。
  • Critic:额外读取最终成败、测试分布、覆盖率、patch 差异、后续轮次等 hindsight 信息。
  • Critic 学习 V(s_t,c_t);其中 c_t 是训练时可见的额外信息,部署只保留 Actor。

优势计算与策略更新

  • 用奖励和前后状态的 Value 计算 TD 误差,再通过 GAE 聚合为各位置的优势。
  • Actor 按标准 clipped PPO 更新;Critic 回归 GAE 构造的 return target。
  • 压缩或分支后前缀不同的样本仍可分别估值,不必强行放入共享前缀的 GRPO 分组。

直观例子

  • 一条轨迹先正确定位,再提交引入回归的 patch;终局失败不足以区分这两步。
  • Critic 结合测试与 patch 信息估值,配合过程奖励,对有效定位和错误修改给出更细的训练信号。
三层规则奖励

任务成功

  • 权重最高;要求全部 Fail-to-Pass 与 Pass-to-Pass 通过,兼顾修复和回归稳定性。

行为约束

  • 惩罚重复文本、乱码、错误参数、把工具调用写进推理字段、单轮重复调用及过度并行。

失败轨迹进展

  • 文件定位用 F₂ 兼顾精确率与召回率;部分测试通过也能提供奖励。
  • 保留有效中间行为的学习信号,同时让完整解决任务保持最高优先级。
GRM 训练

Rubric 构建

  • 人工分析真实失败轨迹,提取有证据的错误模式、触发条件和适用范围。
  • 重点检查故障诊断、修复后验证和执行策略,例如未确认测试入口、修改后漏跑回归测试。

针对性 RL

  • 训练样本包含完整轨迹、人工标注的违规规则与理由;剔除含糊标签。
  • 奖励提高真实违规项的召回率,并对误报项施加惩罚。
  • GRM 判断上下文相关问题,规则 verifier 负责测试结果和格式等确定性信号。

多教师能力融合 ​

五类专家

专家来源

  • SWE、通用 Agent、Terminal、WebCoding、通用知识分别训练专家。
  • 先用专家轨迹做学生冷启动,使学生具备基本行为能力,再进入 on-policy 阶段。

学生轨迹上的教师监督

  • 学生自己 rollout;对应领域教师在同一前缀上提供 token 分布。
  • 用 reverse KL 让学生分布靠近教师,避免只学习教师轨迹却无法处理自己的错误前缀。
  • 不直接平均专家参数,通过输出分布融合不同领域能力。
长上下文蒸馏稳定性

教师监督失真

  • 学生长轨迹逐渐偏离教师熟悉的状态时,教师在该前缀上的分布也可能不可靠。

Top-k 一致性

  • 比较教师与学生 Top-k token 的重叠比例;重叠越低,KL 监督权重越小。
  • 连续若干 token 低于阈值时,截断其后的梯度,保留此前有效前缀。
  • 通过长度分层组 batch,避免长轨迹被截断后逐渐退出训练分布。

实验设置(KAT-Coder-V2.5) ​

训练与评测

训练数据与算法

  • AutoBuilder:100K+环境 / 12种语言;KwaiClawEnv:100K+验证后任务。
  • 专家后训练采用 Asymmetric PPO、规则与 GRM 奖励;统一学生采用冷启动 + MOPD。
  • 主体参数规模、完整训练预算与 PPO 超参未给出。

评测任务

  • 仓库修复:SWE-bench Pro、内部多语言 KAT Code Bench。
  • 工具工作流:PinchBench、覆盖七类业务操作的内部 KAT Claw Bench。
  • 终端与科学编程:Terminal-Bench 2.1、SciCode。

评测协议

  • 除另行注明外,统一 Claude Code,固定工具、上下文预算、环境与解码设置。
  • PinchBench 使用官方榜单 Avg;内部任务结合可执行检查、人工复核与完整轨迹审计。

关键结果(KAT-Coder-V2.5,专家 RL + MOPD) ​

模型能力

仓库级任务

  • SWE-bench Pro 65.2,高于 GLM-5.2 62.1,低于 Opus 4.8 69.2。
  • KAT Code Bench 53.1,高于 GLM-5.2 50.3,低于 Opus 4.8 57.3。
  • 公共与内部仓库任务表现方向一致,说明收益不局限于单一测试集。

多工具任务

  • PinchBench Avg 94.9,报告对照中最高;Opus 4.8 为 93.5。
  • KAT Claw Bench 85.5,接近 GLM-5.2 86.8,低于 Opus 4.8 90.7。
  • 通用工具榜单领先,仍未覆盖业务交付中更复杂的长任务差距。

终端与科学代码短板

  • Terminal-Bench 2.1 60.7,低于四个对照模型;SciCode 50.3,接近 GLM-5.2 50.5。
  • 训练聚焦真实仓库与工具工作流,终端综合操作和科学任务仍需单独补强。
环境与数据工程收益

有效环境供给

  • AutoBuilder 构建成功率 16.5% → 57.2%;模板与可复用配置显著降低环境重建难度。
  • 提示恢复使原先零成功的任务约 20% 获得成功样本,再生成无提示轨迹用于训练。

RL 反馈可靠性

  • Sandbox 反馈错误率约 16% → 2%以下,训练崩溃频率下降约一个数量级。
  • 这些结果反映训练信号质量改善;环境故障应先定位到系统层,再判断策略与算法问题。

未来方向 ​

后续研究

作者提出

  • 将可验证环境构建扩展到更多真实场景,提高长程任务的信用分配质量。
  • 增强终端和科学编程泛化,缩小专项优化与综合能力之间的差距。

笔记归纳

  • 分别检查过程奖励与 hindsight Critic 的贡献,识别额外监督是否真正改善困难决策。
  • 在统一训练预算下比较不同 Harness 配比,评估接口多样性与学习效率的取舍。

(2603) KAT-Coder-V2 (五领域专家、MCLA、Tree Training) ​

🌺 论文摘要

KAT-Coder-V2 摘要

参考链接

问题背景

  • SWE、UI、Terminal、搜索的训练信号差异较大,直接混训容易相互干扰。
  • 多 Harness 与树状上下文增加环境接入成本、训练冗余和 MoE RL 波动。

核心方法

  • 领域专家与数据:五领域分别 SFT + RL;AutoBuilder 从 8K+ 仓库构建 30K 任务,再扩展难度、表达和 Harness。
  • Agent RL 与系统:Turn-level ratio、MCLA 与 IcePop 缓解训推偏差;Tree Training 复用前缀且恢复独立轨迹梯度。
  • 专家蒸馏融合:以 RL + OPD 将专长合并到统一模型,避免单一训练流程相互干扰。

模型效果(KAT-Coder-V2,专家 SFT + RL + OPD)

  • SWE-bench Verified:Claude Code 79.6、OpenCode 74.8、OpenClaw 72.8。
  • PinchBench Best 88.7 / Avg 81.9;Terminal-Bench Hard 46.8。

重要结论

  • 同一模型在不同 Harness 下仍有明显分差,模型能力与交互系统需要一起评估。
  • UI 评测需要实际渲染与设计评分,代码可运行不能替代视觉和交互质量。

核心贡献

  • 五领域专家后训练与 on-policy 融合方案,以及可复用的 KwaiEnv、MCLA 和树状训练设计。

未来方向

  • 笔记归纳:降低专家融合损失,改进跨 Harness 泛化,并分离算法稳定性与系统提速的贡献。

问题背景 ​

多领域 Agent 训练

能力冲突

  • SWE 强调测试通过,WebCoding 强调审美与意图理解,Terminal 强调环境状态与多步执行。
  • 各领域的优质数据和奖励不同,需要分别培养专家,再解决单模型融合问题。

环境与计算开销

  • 数据、sandbox、Harness 和 verifier 紧耦合时,每增加一个框架都要重复接入。
  • 子 Agent、上下文压缩和推理删除会产生分支;逐条训练重复计算大量相同前缀。

核心方法 ​

环境与领域专家数据 ​

五类组件

任务执行

  • Dataset:统一任务、镜像依赖与评分入口;Sandbox:管理创建、运行、回收。
  • Scaffold:通过 API 代理接入 Claude Code、OpenCode、OpenClaw 等,无需改其内部流程。
  • Verifier:明确答案用执行/规则评分;开放任务用 Judge + Rubric;SWE 执行测试套件。

轨迹到训练

  • Trajectory Manager:代理记录模型输入输出、工具序列、token 与时间信息。
  • 按算法要求组装、排序和截断轨迹,再交给 RL 引擎;组件分别迭代,共享训练与评测环境。
三类互补数据

Issue-PR 静态样本

  • 以 merged PR 为锚点,匹配相关 Issue,提取合并前后 diff,恢复发现问题 → 定位 → 修改过程。
  • 拆成检索和编辑任务;跨文件修改、多轮 review、关联 PR 构成长上下文样本。
  • 过滤自动生成内容和无关依赖改动,语义去重后保留 2M+样本。

AutoBuilder 交互任务

  • Dependency、Configuration、Verification Agent 联合安装依赖、配置构建、运行测试。
  • 从 commit、Issue 和周边代码生成只说明需求、不泄漏实现的任务描述。
  • 同时要求 F2P + P2P,得到 30K任务 / 8K+仓库及其 Docker、buggy code、指令、verifier。

代码理解轨迹

  • 筛选活跃仓库,固定 commit,并获取项目文档,保证文档和实际代码版本一致。
  • 生成概览、定位、实现解析、调用链、改进规划、review 六类问题,覆盖四级难度。
  • Claude Code 在对应 Docker 中搜索、读文件、执行命令,生成探索与回答轨迹。
AutoBuilder 从开源仓库构建可执行 SWE 任务;对照正文查看环境搭建、任务生成与验证环节。
原文图 4:AutoBuilder 从开源仓库构建可执行 SWE 任务;对照正文查看环境搭建、任务生成与验证环节。 来源
UI 数据构建

Tri-Perspective Label System

  • 将用户感知 → 设计原则 → 技术实现对齐,拆为七级标签。
  • 从整体风格逐步确定布局、动画、字体,再落到组件实现与素材清单。
  • 简短需求只给出风格时,模型仍需补全一致的设计决策。

Prompt Rewriting

  • 收集高质量截图,反推结构化设计描述,生成 HTML,再由设计师筛选。
  • 同一 HTML 配置设计师版、专业用户版、普通用户版三种描述。
  • 描述约 1000+词 / 200~300词 / 50词,让相同设计质量适配不同信息密度的输入。
Terminal 专家

可执行任务来源

  • 专家编写 DevOps、数据科学、安全等 12类领域任务;多 Agent 同时生成任务、Docker 与测试。
  • 将 SWE 转换为 Terminal 格式,形成 100K+ 可验证任务,覆盖 10种语言。
  • 整合 CLI-Gym、TermiGen 等,覆盖 420+ CLI工具;每项包含指令、参考解、测试和环境。
WebSearch 专家

多跳问题构建

  • 同一搜索轨迹访问的页面天然相关,从中抽取实体与跨页关系,建立知识图谱。
  • 采样多跳路径、隐藏关键实体,构造必须搜索和整合证据才能回答的问题。

难度与轨迹过滤

  • 先剔除不用工具也能回答的问题;再对每题采样 8次,去掉全对与全错样本。
  • 保留答案正确、无失败工具调用、无重复查询的正轨迹,执行 RFT。
  • 最终构建 100K+ 搜索训练样本。
General 专家

基础能力保持

  • 指令遵循:组合格式与内容约束,对具体违规项施加惩罚。
  • 通用问答:加入主题切换、跨轮依赖的长对话。
  • Code / Math:竞赛编程与数学任务,使用 Online Judge 等验证结果。

Agent RL 与训练系统 ​

训练分布扩展

任务难度

  • 强模型生成轨迹并在 sandbox 验证,保留需要多次反思和修正的困难任务。

意图与 Harness

  • 同一 commit 对应多种需求表达,从详细专家指令扩展到简短、含糊的真实用户输入。
  • 同一任务使用不同黑盒、白盒 Harness,避免只学习特定工具协议与控制流程。
  • 每项 RL 数据包含 环境 + 工具集 + Harness/系统提示 + 任务指令 + verifier。
RL 稳定性

Turn-level 更新

  • 按 Harness 动作边界把轨迹拆为若干 turn,每一 turn 单独计算新旧策略概率比并裁剪。
  • 概率变化按动作块处理,避免整条轨迹共用一个 ratio;优势仍来自组级回报信号。
  • 该机制细化更新单位,过程奖励和价值估计仍是进一步改善信用分配的方向。

MCLA

  • MoE 路由、容量丢弃与数值波动会使同一轨迹的训练 logprob 出现噪声。
  • 对同一轨迹 prefill K=8次,平均 logprob 后用于估计,降低概率噪声对策略更新的影响。
  • 配合 IcePop 抑制差异过大的 token,并对齐采样与训练路由,分别处理估计波动与训推错位。
共享前缀训练

树状轨迹

  • 子 Agent 分支、上下文裁剪等使后续请求不再是完整历史的简单追加。
  • 将各请求组织为 Trie,以 DFS 展平;公共前缀在同一批计算中只保留一份。

计算等价性

  • Attention Mask:每个 token 只访问自己路径的祖先,不能看到兄弟分支。
  • Position ID:按原路径位置编号,不使用 DFS 展平后的偏移。
  • Loss Weight:共享 token 按原始独立轨迹中的贡献加权,恢复对应梯度。

KRL 执行

  • Sandbox 并发运行任务,SGLang rollout;计算奖励并打包后切换到 Megatron 更新参数。
  • Cache-aware 调度提高 KV Cache 命中,Dynamic Streaming 协调交互与训练。
Tree Training 将共享上下文表示为树,复用公共前缀;阅读时同时关注分支计算与独立轨迹训练语义。
原文图 5:Tree Training 将共享上下文表示为树,复用公共前缀;阅读时同时关注分支计算与独立轨迹训练语义。 来源

专家蒸馏融合 ​

环境奖励与教师监督

学生自己采样

  • 学生在混合领域任务上 rollout,每题选择表现最好的领域专家作为 Teacher。
  • Teacher 在学生实际前缀上给出 logprob 监督,指出生成过程中的局部偏差。

联合目标

  • RL loss:环境反馈保证最终任务成功;OPD loss:专家给出更密的生成监督。
  • 使用 logprob 监督,降低完整词表 logits 蒸馏的开销。
  • 避免直接平均参数;融合后仍可能有少量能力损失,主要来自容量与领域干扰。

实验设置(KAT-Coder-V2) ​

数据、训练与评测协议

模型与训练

  • 从 KAT-Coder-V1 继续后训练;五领域各自 SFT + RL,最终学生联合 RL + OPD。
  • SWE:2M+ Issue-PR / 30K可验证任务;跨领域 Agentic Scaling:100K+ RL样本。
  • MCLA K=8;代码理解每题最多 150轮;完整模型规模与训练超参未给出。

SWE 与工具任务

  • SWE-bench Verified、Multilingual、SWE-rebench-V2 子集,使用各 Harness 原生协议与系统提示。
  • PinchBench、Claw-Eval 使用 OpenClaw;另评测 Terminal-Bench Hard、τ₂ Telecom、AA-LCR、IFBench。

UI 评测

  • 任务覆盖 Landing Page、Slides、数据可视化,输入均为普通用户表达。
  • 专业设计师盲评;Chrome 1920×1080,实际滚动、hover、点击,检查视觉与动态交互。
  • Landing Page 10维,Slides / 可视化 5维,每维 0~5 锚点评分。

关键结果(KAT-Coder-V2,专家 SFT + RL + OPD) ​

跨 Harness 与综合能力

SWE 能力与系统依赖

  • SWE-bench Verified:Claude Code 79.6、OpenCode 74.8、OpenClaw 72.8。
  • 同环境 Opus 4.6 为 80.8 / 75.0 / 75.7,V2 接近其表现,但跨 Harness 分差仍明显。
  • SWE Multilingual 在 OpenCode 达 71.2,对照 70.2,说明能力覆盖到多语言仓库。

工具工作流

  • PinchBench Best 88.7 / Avg 81.9;对照 Opus 4.6 Best 87.4 / Avg 82.3。
  • 最佳分数更高,平均表现仍略低;挑选最佳运行与日常稳定性是不同维度。
  • Claw-Eval Avg 73.4,低于 Opus 4.6 79.3,复杂真实交付仍有差距。

UI 与通用任务

  • Landing Page / Slides / 可视化:59.8 / 57.6 / 67.6,均高于 GLM-5、Kimi K2.5。
  • Terminal-Bench Hard 46.8、τ₂ Telecom 93.9,体现跨任务专家融合的实际能力。
  • IFBench 67.0,低于 GLM-5 72.3,说明指令遵循仍需独立关注。
训练工程收益

共享计算

  • Tree Training 最高约 6.2倍训练加速,来自消除树状轨迹的重复前缀计算。
  • KRL 结合调度与流水线,使单位样本成本约降低 2.8倍。
  • 前者对应训练计算,后者包含系统调度收益,不能直接把两个倍数相乘。

未来方向 ​

后续研究(笔记归纳)

融合与泛化

  • 减少多领域融合对单专家能力的损失,并检查真实用户含糊需求下的稳定性。
  • 扩展跨 Harness 对照,分析工具协议、上下文管理和控制流程分别造成多大差异。

RL 训练效率

  • 给 turn 引入更直接的过程价值信号,进一步改善长程信用分配。
  • 比较 MCLA 重复 prefill 的成本与稳定性收益,结合 Tree Training 控制训练开销。

(2510) KAT-Coder (EM-SFT、Trie Packing、Agentic RL) ​

🌺 论文摘要

KAT-Coder 摘要

参考链接

问题背景

  • 静态代码监督难以覆盖真实 IDE 的错误恢复、工具交互与上下文切换。
  • 训练数据偏向 Python bug 修复,语言、开发领域和任务类型不够丰富。

核心方法

  • MidTrain 与 SFT:约 20B tokens 工程语料,1M+ 指令样本覆盖 20+语言 × 10场景 × 10任务类型。
  • 工作流适配与 RFT:EM-SFT 屏蔽错误动作,TST 按上下文边界拆轨迹;多参考轨迹纠偏、规则验证后做 GRPO。
  • Agent RL:Trie Packing 复用前缀;按任务难度与策略熵调整优势的更新权重。

模型效果(KAT-Coder,四阶段训练)

  • Claude Code 下 SWE-bench Verified 73.4;AIME 2025 72.5,LiveCodeBench v6 48.2。

重要结论

  • 错误动作、错误反馈和恢复动作应区别处理:保留交互语境,避免把失败调用本身作为正向监督。
  • 仓库级修复与单轮代码题的能力分布不同,不能用单一代码 benchmark 替代部署评测。

核心贡献

  • 真实开发工作流的数据与训练方案;同时开放系列中的 KAT-Dev-32B 模型。

未来方向

  • 多模态 Agent 协作、长程记忆与分层规划,扩展到 GUI 和文档操作。

问题背景 ​

真实开发与静态训练的差异

任务覆盖不足

  • 实际开发包含重构、性能优化、测试生成、部署等,不能只训练 Python bug 修复。

交互过程复杂

  • IDE 中有调试器、linter、包管理器等多种工具,错误调用和冗余调用较多。
  • 上下文压缩、截断与模式切换产生分支,不能把所有轮次强行拼为一条连续对话。

核心方法 ​

MidTrain 与 SFT 数据 ​

四类训练内容

真实工程与推理

  • 从 GitHub 收集约 20B tokens,包括 PR、Issue、commit 和 diff,学习需求到代码演进的联系。
  • 用开源推理模型生成 SWE、STEM 与逻辑任务的 CoT,补充规划、分析与反思。

交互与约束

  • 模拟 Plan → Action → Observation,根据环境反馈调整计划。
  • 加入可验证的逻辑、格式和组合约束,训练复杂指令的一致性与可控性。
数据组织

来源与覆盖

  • 分析 GitHub 和 Stack Overflow 中的 diff、review、问答与开发意图。
  • 语言覆盖 Python、Java、TypeScript、C/C++、Go、Rust 等 20+种。
  • 场景覆盖应用、系统、UI、数据、数据库、机器学习、算法、测试、架构和专用领域。

任务类型

  • 实现、增强、修复、重构、性能优化、解释文档、分析、生成、测试、配置部署,共 10类。
  • 在三维分类中平衡采样,得到 1M+ SFT样本,减少高频语言和任务挤占训练数据。

工作流适配与 RFT ​

错误与分支的处理

Error-Masked SFT

  • 将早期 KAT-Coder 接入 Claude Code、Cline、Roo Code、CodeFlicker,采集实际工具交互。
  • 根据执行反馈识别错误工具调用,仅屏蔽其生成 token 的训练 loss。
  • 错误动作与报错仍留在上下文,后续纠正动作继续参与学习。

Tree-Structured Trajectory Training

  • 按压缩点、上下文切换与模式转换拆分轨迹,得到局部语义连贯的子树。
  • 在子树内执行 SFT,保持模型实际看到的上下文结构。
  • 例如错误参数被工具拒绝:不强化错误调用,但学习读取报错后如何改正参数。
参考引导的强化微调

采样与纠偏

  • 同一问题采样多条输出,使用多条正确参考轨迹作为检查与修正信号。
  • 对偏离参考的轨迹进行在线纠偏;偏离严重时提前结束并重采样,减少无效 rollout。

奖励与更新

  • 修正后的候选经过规则测试,得到可解释的奖励。
  • 在 GRPO 框架下组内聚合、归一化,计算各候选优势并更新策略。
  • 参考轨迹用于训练阶段提供方向,最终奖励仍需通过规则测试。
RFT 将参考轨迹、在线纠偏、规则验证和 GRPO 组内优势连接起来;参考信息参与训练反馈,不只是提供一条模仿答案。
原文图 2:RFT 将参考轨迹、在线纠偏、规则验证和 GRPO 组内优势连接起来;参考信息参与训练反馈,不只是提供一条模仿答案。 来源

Agent RL ​

公共前缀复用

打包

  • 多条轨迹构成 Trie;在显存限制下,用动态规划与贪心策略提高公共前缀复用率。
  • 与推理 prefix cache 不同,训练必须保留各后缀对公共前缀的反向梯度贡献。

正确性

  • 树状 Gradient Scaler 恢复不同分支对共享部分的梯度权重。
  • 自定义 Attention Mask 隔离兄弟分支;Position Embedding 保持原轨迹中的位置。
  • 目标是在前向与反向中都减少重复计算,同时保持原训练目标。
Trie-Packed Training 复用多条轨迹的公共前缀,减少重复计算;分叉后的动作与训练目标仍需分别保留。
原文图 3:Trie-Packed Training 复用多条轨迹的公共前缀,减少重复计算;分叉后的动作与训练目标仍需分别保留。 来源
探索权重调整

组间难度

  • 任务组成功率为 r̄ᵢ,难度定义为 Dᵢ=1−r̄ᵢ。
  • 难度高于 batch 平均的组获得更大缩放权重;容易任务相应降低。

组内不确定性

  • 同组中,策略熵高于平均的样本再增加权重,保留尚未收敛的探索方向。
Aij′=αiβijAij,αi=1+λ(Di−D¯),βij=1+μ(Hij−H¯i)
  • αᵢ 调整任务组权重,βᵢⱼ 调整组内样本权重;它们作用于原来的 advantage。
  • 例如正优势被放大时加强该行为;负优势被放大时加强抑制,全零优势不会凭空变为奖励。

实验设置(KAT-Coder) ​

训练与评测

模型与数据

  • KAT-Coder:MidTrain + SFT + RFT + Agentic RL;主模型参数量和完整优化超参未给出。
  • 真实工程语料约 20B tokens,SFT 1M+样本;系列另开放 KAT-Dev-32B。

评测任务

  • SWE-bench Verified 使用 Claude Code;代码生成用 LiveCodeBench v6、HumanEval。
  • 推理与知识用 AIME 2025、GPQA-Diamond;工具与指令用 τ₂ Retail、IFEval。
  • 主要对照:Qwen3-Coder-480B、Kimi-K2-0905、Claude 4 Sonnet。

关键结果(KAT-Coder,MidTrain + SFT + RFT + Agentic RL) ​

能力分布

仓库级修复

  • SWE-bench Verified 73.4,报告对照 Qwen3-Coder 69.6、Claude 4 Sonnet 72.7。
  • 表现较强的环节是完整交互修复,包含定位、修改和测试反馈利用。

单轮代码与推理

  • LiveCodeBench v6 48.2,与 Qwen3-Coder 持平;HumanEval 96.3,低于 Sonnet 98.2。
  • AIME 2025 72.5,高于 Qwen3-Coder 44.3 和 Sonnet 70.5,保留了数学推理能力。
  • 仓库修复的优势并未转化为所有单轮代码任务领先,应分别观察能力变化。

工具、指令与知识

  • τ₂ Retail 62.3,接近 Sonnet 64.2;IFEval 86.0,低于 Kimi 89.3。
  • GPQA-Diamond 68.2,接近 Sonnet 68.7,但通用知识仍不是最突出优势。

未来方向 ​

后续研究

作者提出

  • 扩展代码执行、GUI 操作、文档编辑等多模态协作场景。
  • 增加持久记忆与分层规划,支持更长、更复杂的工程任务。

笔记归纳

  • 分别消融 EM-SFT、参考纠偏与优势缩放,区分数据质量、探索策略和计算效率的收益。
  • 检查真实 IDE 中长期任务的约束保持与错误恢复,补充单次 benchmark 之外的可靠性评测。
总访客数:— · 总访问量:—
PLM's Blog @ 2016 - 2026