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

相关推荐
玄同7653 小时前
Trae国际版与国内版深度测评:AI原生IDE的双生花
ide·人工智能·ai编程·cursor·ai-native·trae
棒子陈1 天前
使用cursor移植单片机的串口驱动(DMA+队列式串口驱动,APM32F103移植到PY32F071)
单片机·嵌入式硬件·cursor·py32f071
roamingcode1 天前
Cursor-memory-cli 自动化记忆提取的完整实现
运维·自动化·agent·memory·cursor·持久化记忆
玄同7652 天前
TRAE Rules 高效使用指南:让 AI 更听话的秘密
ide·人工智能·ai编程·claude·cursor·trae
roamingcode2 天前
Cursor Memory 实战:如何终结 AI 助手的“金鱼记忆”
人工智能·agent·memory·cursor·会话记忆提取
中草药z3 天前
【Vibe Coding】初步认识LangChain&LangGraph
前端·langchain·html·agent·cursor·langgraph·vibe
警醒与鞭策5 天前
Cursor Agent Skill 原理及LLM , Agent, MCP ,Skill区别
android·unity·ai·cursor
爱吃泡芙的小白白6 天前
使用Cursor来进行连接SSH远程主机中出现的问题(自用)
服务器·学习·ssh·cursor
白鳯10 天前
分形世界:React实现交互式分形图绘制与导出
react.js·前端框架·cursor·分形·vibe coding·分形绘制·数学之美
吴秋霖12 天前
某网站x-s补环境(Cursor版)
算法·js逆向·cursor·补环境