快手KwaiKAT发布KAT-Coder-V2.5:基于10万+可验证代码环境训练的智能编码体
快手KwaiKAT团队推出KAT-Coder-V2.5,一款面向真实可执行代码仓库的智能编码模型,不生成单次代码片段,而是在完整、隔离的验证环境中完成补丁生成与迭代修复。模型配套开源权重KAT-Coder-V2.5-Dev已上线Hugging Face,支持Apache-2.0协议。
面向真实仓库的代理式编码范式
KwaiKAT团队(快手旗下)正式发布KAT-Coder-V2.5,其核心定位是「在真实、可执行的代码仓库中运行的编码智能体」,而非传统意义上仅输出单轮代码文本的大模型。该模型通过StreamLake平台提供服务;同时,团队单独开源了开放权重版本KAT-Coder-V2.5-Dev,托管于Hugging Face,采用Apache-2.0许可证。
构建超10万可验证环境的AutoBuilder框架
研究将「可验证编码任务」明确定义为三元组:精确的任务描述、可执行的仓库环境、一组结构化验证测试。只有补丁通过全部测试才算正确。任务数据源自真实Pull Request与提交记录,沿袭SWE-bench方法论——合并的代码变更构成“黄金补丁”,配套的测试变更则构成“测试补丁”。原始Issue文本被弃用,取而代之的是经重生成的三部分描述:基于黄金补丁的问题陈述、源于测试补丁的功能需求、以及从二者共同推断出的接口约束。随后进行清晰性校验,剔除所有模糊、不完整、规格不足或逻辑矛盾的样本。
AutoBuilder系统负责自动化构建验证环境:构建代理分析仓库并生成配置脚本,用于从干净检出中安装依赖及运行测试;验证代理则在隔离沙箱中执行该脚本。关键创新在于验收机制——不依赖进程退出码或日志关键词匹配,而是解析测试框架输出的结构化结果,仅当超过90%的预期测试被成功采集且通过/失败状态在多次运行中稳定复现时,才接受该环境。失败信息以结构化形式反馈,支撑迭代修复。结合预置基础环境、构建系统模板与可检索的精炼构建配方库,环境构建成功率从16.5%提升至57.2%,最终建成覆盖12种编程语言、总量超10万的可验证环境。所有Git历史、提交元数据等潜在线索均被剥离,防止智能体从仓库中直接读取参考解。
数据质量飞轮:过程导向的轨迹筛选
单纯按最终测试是否通过来过滤训练轨迹存在偏差:部分通过轨迹依赖硬编码、绕过机制或测试导向捷径;部分失败轨迹却蕴含有效的搜索、定位与修复行为。KwaiKAT为此设计双向优化策略:对“近似通过”(near-miss)轨迹注入目标明确的过程级提示(如“检查test_utils.py中的mock逻辑”),不泄露解法,仅引导验证方向——此举使原零通过率任务的通过率跃升至约20%;随后,基于提示生成的验证补丁被固化,并从原始任务上下文中重新生成无提示轨迹,仅保留通过验证、无提示泄露、且与补丁一致的样本。对通过轨迹,则设置规则门控,剔除无效、不稳定或投机性轨迹;再经评分阶段,综合评估探索质量、定位精度、编辑前推理、规格忠实度、仓库惯例遵循、补丁最小性、验证严谨性、恢复行为及诚实性等维度。第三重机制防范测试工具过拟合:在保持功能不变前提下,随机化工具名、参数约定、输出格式及提示模板;因验证锚定于测试结果而非工具调用痕迹,同一任务可适配多种工具配置;还主动注入现实扰动,如缺失依赖、瞬时命令失败、截断输出及噪声日志。
基础设施优化:将沙箱误差率从16%压降至2%以下
KAT-Coder-V2.5训练初期,缓慢的奖励曲线曾归因于强化学习算法本身。但审计发现,约16%的轨迹失败实为沙箱基础设施缺陷所致——例如边界错位导致连续约40步观测为空,严重污染奖励信号。团队实施三项关键改进:一是启用早期镜像驱逐策略,将磁盘占用率从95%降至60%,使超时引发的无效rollout比例由6–7%降至1%以内;二是修正远程沙箱初始化阶段的环境变量设置,避免系统级覆盖导致约6–7%样本的奖励反转,错误率亦降至1%以下;三是网关服务器绕过主流聊天端点(其在约200轮对话尺度下因重复应用chat template造成40% token漂移),直接调用/generate接口,确保rollout token严格对齐。上述措施将沙箱反馈错误率从约16%降至2%以下,训练崩溃频次降低一个数量级。
本文为企业智脑(优秘智能)编译整理自公开资讯,信息与观点以原文为准,仅供参考。阅读原文(MarkTechPost) →