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分词器在模型间进行标准化。

相关推荐
weixin_4624462317 小时前
Kali/ubuntu Linux 中彻底删除 Cursor 编辑器(含 dpkg 非空目录警告解决)
linux·ubuntu·cursor
面壁的熊猫2 天前
cursor+cline+MCP(论文agent)
vscode·agent·cursor·mcp
程序员辉哥3 天前
到底是该选Vibe Coding还是Spec Coding?
claude·cursor
SakuraOnTheWay5 天前
React Grab实践 | 记一次与Cursor的有趣对话
前端·cursor
fxshy5 天前
Cursor 前端Global Cursor Rules
前端·cursor
WindStormrage5 天前
umi3 → umi4 升级:踩坑与解决方案
前端·react.js·cursor
cooldream20096 天前
深入理解 Cursor 规则体系
人工智能·cursor
阿杰学AI6 天前
AI核心知识42——大语言模型之AI Coding(简洁且通俗易懂版)
人工智能·ai·语言模型·aigc·ai编程·cursor·ai coding
boonya8 天前
详细分析Cursor和LingMa IDE究竟该如何选择
cursor·lingma
极客密码8 天前
给你的AI编辑器插上翅膀!接入最强上下文引擎 - ACE(Augment Context Engine)
ai编程·claude·cursor