Composer:使用强化学习构建快速前沿模型

转载

作者: Cursor Team

日期: 2025年10月29日

分类: Research

Composer是我们的新agent模型,专为软件工程智能和速度而设计。在我们的基准测试中,该模型实现了前沿的编码结果,生成速度比类似模型快四倍。

我们通过训练模型完成大型代码库中的真实软件工程挑战来实现这些结果。在训练过程中,Composer被赋予访问生产级搜索和编辑工具的权限,并 tasked with 高效解决各种难题。最终的结果是一个为在Cursor中作为agent高速使用而优化的大规模模型。

我们的动机来自于开发Cursor Tab(我们的自定义补全模型)的经验。我们发现开发者通常希望拥有最智能的模型,同时支持交互式使用,让他们保持编码的flow状态。在开发过程中,我们试验了一个代号为Cheetah的原型agent模型,以更好地理解快速agent模型的影响。Composer是这款模型的更智能版本,通过足够快的速度提供交互式体验,让编码保持愉悦。

Composer是一个mixture-of-experts (MoE) 语言模型,支持长context生成和理解。它通过在多样化的开发环境中进行reinforcement learning (RL) 专门用于软件工程。在训练的每次迭代中,模型被赋予问题描述并被指示产生最佳响应,无论是代码编辑、计划还是信息性答案。模型可以访问简单工具,如读取和编辑文件,也可以访问更强大的工具,如terminal commands和codebase-wide semantic search。

为了衡量进展,我们构建了一个尽可能忠实衡量模型对软件开发者有用性的评估。我们的基准Cursor Bench由Cursor工程师和研究人员的真实agent请求组成,以及这些请求的手工策划最优解决方案。最终的评估不仅衡量agent的正确性,还衡量它对代码库现有抽象和软件工程实践的遵守程度。

Reinforcement learning允许我们主动专门化模型以实现有效的软件工程。由于响应速度是交互式开发的关键组成部分,我们激励模型在工具使用中做出高效选择,并尽可能最大化并行性。此外,我们通过最小化不必要的响应和没有证据的主张来训练模型成为一个有用的助手。我们还发现在RL过程中,模型自己学会了有用的行为,如执行复杂搜索、修复linter错误,以及编写和执行unit tests。

高效训练大型MoE模型需要大量投入基础设施建设和系统研究。我们构建了利用PyTorch和Ray的自定义训练基础设施,为大规模asynchronous reinforcement learning提供动力。我们通过结合MXFP8 MoE kernels与expert parallelism和hybrid sharded data parallelism,在低精度下原生训练我们的模型,允许我们将训练扩展到数千个NVIDIA GPU,通信成本最小。此外,使用MXFP8训练允许我们在不需要post-training quantization的情况下提供更快的推理速度。

在RL过程中,我们希望我们的模型能够调用Cursor Agent harness中的任何工具。这些工具允许编辑代码、使用semantic search、grepping strings和运行terminal commands。在我们的规模上,教导模型有效调用这些工具需要在云中运行数十万个并发sandboxed coding environments。为了支持这种工作负载,我们调整了为Background Agents构建的现有基础设施,重写我们的virtual machine scheduler以支持训练运行的burst性质和规模。这实现了RL环境与生产环境的无缝统一。

Cursor构建软件工程工具,我们大量使用我们开发的工具。Composer开发的一个动机一直是开发一个我们在自己工作中会使用的agent。最近几周,我们发现许多同事在他们的日常软件开发中使用Composer。通过这个版本,我们希望你也发现它是一个有价值的工具。

¹ 在Cursor工具框架的内部基准测试中进行了评估。我们根据分数将模型分组,并报告每个类别中的最佳模型。"Fast Frontier"包括为高效推理而设计的模型,如Haiku 4.5和Gemini Flash 2.5。"Best Open"包括最近的开放权重模型发布,如Qwen Coder和GLM 4.6。"Frontier 7/2025"是2025年7月可用的最佳模。"Best Frontier"包括GPT-5和Sonnet 4.5,这两者都优于Composer。对于每秒Token数计算,tokens根据最新的Anthropic分词器在模型间进行标准化。

相关推荐
一缕82年的清风1 天前
从Cursor杀向命令行:当AI接管终端,为什么资深架构师反而很少开IDE了?
claude·cursor·gemini
网络毒刘2 天前
把个人 Prompt 库迁到 AtomGit:版本化、评审与在 Cursor 中通过 @ 引用
prompt·cursor·atomgit·版本化·工具实践
网络毒刘2 天前
Rules 冲突排查:多条规则互相打架时如何用优先级、范围与示例消歧
agent·ai编程·cursor·rules
网络毒刘2 天前
端到端:用 Cursor Agent 完成「小功能 + 单测 + PR 描述」并附人工验收清单
单元测试·agent·ai编程·cursor·工具实践
一缕82年的清风2 天前
别只拿 Claude 当聊天窗口!Projects 专属大脑与 Artifacts 高阶玩法实测
claude·cursor
用户539418729073 天前
.cursorrules 写了等于没写?我把“让 Cursor 读懂你项目”的规则和上下文整理成一套模板
ai编程·cursor
网络毒刘3 天前
Cursor 排障剧本:卡住、乱改、漏测三类故障的复现提问与上下文裁剪法
agent·cursor·上下文·排障·工具实践
网络毒刘3 天前
开源 Aider 工作流实战:Git 提交驱动的 AI 结对,与 Cursor 何时互补
git·ai编程·cursor·aider
Maynor9964 天前
让 AI 编程助手学会做视频、做 PPT:Agent Skills 入门与安装全指南
人工智能·aigc·ai编程·效率工具·cursor·claude code
网络毒刘5 天前
Token 用量观测实战:从会话结构拆前缀/工具/生成,建立个人降本仪表盘
人工智能·性能优化·token·cursor