Composer: Ein schnelles Frontier-Modell mit RL entwickeln

von Cursor Team in Forschung

Composer ist unser neues Agent-Modell, das für Software-Engineering-Intelligenz und -Geschwindigkeit entwickelt wurde. In unseren Benchmarks erzielt das Modell führende Coding-Ergebnisse bei einer Generierungsgeschwindigkeit, die viermal höher ist als bei ähnlichen Modellen.

Wir erreichen diese Ergebnisse, indem wir das Modell darauf trainieren, reale Software-Engineering-Herausforderungen in großen Codebasen zu lösen. Während des Trainings erhält Composer Zugriff auf eine Reihe von produktiven Such- und Bearbeitungstools für Produktionsumgebungen und wird damit beauftragt, eine Vielzahl schwieriger Probleme effizient zu lösen. Das Endergebnis ist ein großskaliges Modell, das für den Hochgeschwindigkeits-Einsatz als Agent in Cursor optimiert ist.

Unsere Motivation stammt aus unserer Erfahrung mit der Entwicklung von Cursor Tab, unserem eigenen Completion-Modell. Wir haben festgestellt, dass Entwickler:innen häufig das intelligenteste Modell wollen, das interaktive Nutzung unterstützt und sie im Flow beim Programmieren hält. In unserem Entwicklungsprozess haben wir mit einem Agent-Prototypen mit dem Codenamen Cheetah experimentiert, um den Einfluss schnellerer Agent-Modelle besser zu verstehen. Composer ist eine intelligentere Version dieses Modells, die Programmieren weiterhin angenehm macht, indem es schnell genug für eine interaktive Nutzung ist.

Composer ist ein Mixture-of-Experts-Sprachmodell (MoE), das die Generierung und das Verständnis von langen Kontexten unterstützt. Es ist durch Reinforcement Learning (RL) in einer Vielzahl von Entwicklungsumgebungen auf Software Engineering spezialisiert. In jeder Trainingsiteration erhält das Modell eine Problembeschreibung und die Anweisung, die bestmögliche Antwort zu erzeugen – sei es ein Code-Edit, ein Plan oder eine informative Antwort. Das Modell hat Zugriff auf einfache Tools wie das Lesen und Bearbeiten von Dateien sowie auf leistungsfähigere Werkzeuge wie Terminalbefehle und semantische Suchen über die gesamte Codebasis.

Um den Fortschritt zu messen, haben wir eine Evaluation entwickelt, die den Nutzen eines Modells für Softwareentwickler:innen so realitätsnah wie möglich abbildet. Unser Benchmark, Cursor Bench, besteht aus realen Agent-Anfragen von Entwickler:innen und Forscher:innen bei Cursor, zusammen mit von Hand kuratierten optimalen Lösungen zu diesen Anfragen. Die resultierende Evaluation misst nicht nur die Korrektheit des Agents, sondern auch seine Einhaltung der bestehenden Abstraktionen und Software-Engineering-Praktiken einer Codebasis.

Reinforcement Learning ermöglicht es uns, das Modell aktiv für effektives Software Engineering zu spezialisieren. Da Antwortgeschwindigkeit ein entscheidender Faktor für interaktive Entwicklung ist, geben wir dem Modell gezielt Anreize, effiziente Entscheidungen bei der Tool-Nutzung zu treffen und Parallelität, wo immer möglich, zu maximieren. Zusätzlich trainieren wir das Modell darauf, ein hilfreicher Assistent zu sein, indem wir unnötige Antworten und unbelegte Behauptungen minimieren. Wir beobachten außerdem, dass das Modell während des RL von selbst nützliche Verhaltensweisen lernt, wie das Durchführen komplexer Suchen, das Beheben von Linter-Fehlern sowie das Schreiben und Ausführen von Unit-Tests.

Effizientes Training großer MoE-Modelle erfordert erhebliche Investitionen in Infrastruktur und Systemforschung. Wir haben eine eigene Trainingsinfrastruktur aufgebaut, die auf PyTorch und Ray basiert, um asynchrones Reinforcement Learning im großen Maßstab zu ermöglichen. Wir trainieren unsere Modelle nativ mit niedriger Präzision, indem wir unsere MXFP8-MoE-Kernels mit Expert Parallelism und hybridem Sharded Data Parallelism kombinieren. So können wir das Training auf Tausende von NVIDIA-GPUs mit minimalen Kommunikationskosten skalieren. Darüber hinaus ermöglicht das Training mit MXFP8, dass wir schnellere Inferenz liefern können, ohne nachträgliche Quantisierung zu benötigen.

Während des RL-Trainings möchten wir, dass unser Modell jedes Tool im Cursor Agent-Harness aufrufen kann. Diese Tools ermöglichen das Bearbeiten von Code, die Nutzung semantischer Suche, das Greppen von Strings und das Ausführen von Terminalbefehlen. Bei unserem Scale erfordert es, um das Modell effektiv für die Nutzung dieser Tools anzulernen, Hunderttausende gleichzeitiger, sandboxed Coding-Umgebungen in der Cloud zu betreiben. Um diese Arbeitslast zu unterstützen, haben wir bestehende Infrastruktur angepasst, die wir für Background Agents gebaut haben, und unseren Scheduler für virtuelle Maschinen neu geschrieben, um der burstartigen Natur und dem Umfang der Trainingsläufe gerecht zu werden. Dadurch konnten wir RL-Umgebungen nahtlos mit Produktionsumgebungen vereinheitlichen.

Cursor entwickelt Tools für Software Engineering, und wir setzen die von uns entwickelten Tools intern intensiv ein. Eine Motivation der Entwicklung von Composer war es, einen Agent zu bauen, zu dem wir in unserer eigenen Arbeit greifen würden. In den letzten Wochen haben wir festgestellt, dass viele unserer Kolleginnen und Kollegen Composer für ihre tägliche Softwareentwicklung genutzt haben. Mit diesem Release hoffen wir, dass auch Sie es als ein wertvolles Tool empfinden.

¹ Gemessen anhand eines internen Benchmarks im Cursor Agent-Harness. Wir gruppieren Modelle basierend auf ihrer Punktzahl in Klassen und berichten das jeweils beste Modell in jeder Klasse. „Fast Frontier“ umfasst Modelle, die für effiziente Inferenz entwickelt wurden, wie Haiku 4.5 und Gemini Flash 2.5. „Best Open“ umfasst aktuelle Open-Weight-Modell-Releases wie Qwen Coder und GLM 4.6. „Frontier 7/2025“ ist das beste im Juli dieses Jahres verfügbare Modell. „Best Frontier“ umfasst GPT-5 und Sonnet 4.5, die beide Composer übertreffen. Für die Berechnung von „Tokens per Second“ werden Tokens modellübergreifend anhand des neuesten Anthropic-Tokenizers standardisiert.

Kategorisiert unter: Forschung

Autor: Cursor Team

Composer: Ein schnelles Frontier-Modell mit RL entwickeln · Cursor