跳至内容

Composer:用强化学习打造高效前沿模型

作者: Cursor Team归入研究

Composer 是我们全新的代理模型,专为软件工程场景下的智能与高效而打造。在我们的基准测试中,该模型在编码方面达到业界前沿水平,生成速度比同类模型快四倍。

我们通过在大型代码库中训练模型完成真实的软件工程任务来取得这些结果。在训练过程中,Composer 可使用一套生产级的搜索与编辑工具,并被要求高效解决各类棘手问题。最终,我们得到的是一款为在 Cursor 中作为智能代理高速运行而优化的大规模模型。

我们的动力源自开发 Cursor Tab(我们的自定义补全模型)的实践经验。我们发现,开发者往往需要既足够智能又能支持交互式使用的模型,以便保持编码的心流。在研发过程中,我们尝试了一个代号为 Cheetah 的原型代理模型,以更好地理解更高速代理模型的效果。Composer 是该模型的更智能版本,凭借足够的速度支撑交互式体验,让编码保持愉悦顺畅。

Composer 是一种混合专家(MoE)语言模型,支持长上下文的生成与理解。它通过在多样化的开发环境中进行强化学习(RL),专门面向软件工程进行优化。训练的每个迭代中,模型会接收问题描述,并被指示产出最佳响应,无论是代码修改、方案规划,还是信息性回答。模型既可使用读取与编辑文件等简单工具,也可调用更强大的能力,例如终端命令和面向整个代码库的语义搜索。

为衡量进展,我们设计了一套尽可能贴近软件开发者实际使用场景的评估,用于衡量模型的实用性。我们的基准测试 Cursor Bench 由 Cursor 的工程师和研究人员提交的真实代理请求组成,并配有人工精心整理的最优解决方案。该评估不仅关注代理的正确性,还考察其对现有代码库抽象及软件工程实践的遵循程度。

强化学习使我们能够主动让模型针对高效的软件工程进行专项优化。鉴于响应速度是交互式开发的关键因素,我们激励模型在工具使用上做出高效选择,并在可能时最大化并行处理。此外,我们通过减少不必要的回复以及避免无依据的断言,来训练模型成为更有帮助的助手。我们还发现,在 RL 过程中,模型会自发学会一些有用的行为,例如执行复杂搜索、修复 linter 错误,以及编写并运行单元测试。

要高效训练大型 MoE 模型,需要在基础设施与系统研究上进行大量投入。我们基于 PyTorch 和 Ray 构建了定制化训练基础设施,以规模化支持异步强化学习。我们将MXFP8 MoE kernels与专家并行(expert parallelism)和混合分片数据并行(hybrid sharded data parallelism)相结合,在原生低精度下进行训练,使我们能以极低的通信开销将训练扩展到成千上万块 NVIDIA GPU。此外,基于 MXFP8 的训练使我们无需进行训练后量化即可实现更快的推理速度。

在进行 RL 时,我们希望模型能够调用 Cursor Agent 框架中的任意工具。这些工具可用于编辑代码、进行语义搜索、grep 字符串以及运行终端命令。以我们的规模,要让模型学会高效调用这些工具,需要在云端同时运行数十万份隔离的沙盒化编码环境。为支持这一工作负载,我们对为 Background Agents 构建的既有基础设施进行了改造,重写了虚拟机调度器,以适配训练任务的突发性与规模。这使得 RL 环境与生产环境得以无缝打通。

Cursor 致力于打造软件工程工具,我们自己也在内部大量使用这些工具。推动 Composer 开发的一大动因,是构建一个我们在日常工作中也会优先采用的智能体。近几周来,我们发现许多同事已在日常开发中使用 Composer。借此次发布,我们也希望你同样觉得它物有所值。

¹ 基于 Cursor 工具测试架构的内部基准测试。我们根据得分将模型分组为不同类别,并报告各类别中的最佳模型。“Fast Frontier”包含为高效推理而设计的模型,如 Haiku 4.5 和 Gemini Flash 2.5;“Best Open”包含近期开源权重模型的发布,如 Qwen Coder 和 GLM 4.6;“Frontier 7/2025”指今年 7 月可用的最强模型;“Best Frontier”包含 GPT-5 和 Sonnet 4.5,二者均优于 Composer。关于每秒 Token 数的计算,所有模型的 Token 均按最新的 Anthropic 分词器统一标准化。

归类于: 研究

作者: Cursor Team