StartseiteArtikel

Das Team von LeCun hat das erste Code-Weltmodell Open-Source gemacht: Es kann Code generieren und sich selbst testen und reparieren. Traditionelle Programmier-Modelle sind über Nacht veraltet.

量子位2025-09-25 17:26
Schneller als Qwen und die Fähigkeiten nähern sich GPT-4 an.

Gerade jetzt hat Meta FAIR das Code World Model vorgestellt!

CWM (Code World Model), ein dichtes Sprachmodell mit 32 Milliarden Parametern und einer Kontextgröße von 131.000 Token, ein Forschungsmodell, das speziell für Codegenerierung und -inferenz entwickelt wurde.

Dies ist das weltweit erste Sprachmodell, das das Weltmodell systematisch in die Codegenerierung einführt.

Im Vergleich zu bestehenden großen Codemodellen unterscheidet sich CWM am stärksten dadurch, dass es nicht nur Code generieren und Semantik verstehen kann.

Das Wichtigste ist, dass es „versteht“, wie Code ausgeführt wird und den Zustandswechsel von Variablen und die Umgebungsrückmeldung während des Codeausführungsvorgangs simulieren kann, wodurch die Gesamtfähigkeiten in Bezug auf Codeverständnis, -debugging und -planung verbessert werden.

Das heißt, es verfügt über eine Denkfähigkeit, die der eines menschlichen Programmierers nahe kommt.

Bei mehreren Code- und Inferenztasks zeigt CWM eine hervorragende Leistung. Beispielsweise erzielte es bei SWE-bench Verified einen Score von 65,8 %, was es vor allen Open-Source-Modellen gleicher Größe platziert und fast das Niveau von GPT-4 erreicht.

Was noch wichtiger ist, hat Meta FAIR diesmal das Modellcode, die Trainingsdetails und die Gewichtsprüfpunkte mehrerer Phasen Open-Source gemacht, was sehr engagiert ist.

Jemand hat LeCun per Nachricht gefragt:

„Hast du doch immer gesagt, dass Sprachmodelle nur ein Nebenzweig auf dem Weg der KI sind (LLMs are an off ramp). Warum stellst du dann ein Weltmodell auf der Grundlage von Sprachmodellen vor?“

LeCun antwortete gelassen:

Ja, aber hier geht es um Programmierung, nicht um ASI.

Große Modelle dazu bringen, „dynamische Ausführung zu verstehen“

Die Entstehung von CWM zielt direkt auf ein großes Problem bei der Codegenerierung durch aktuelle große Modelle ab:

Obwohl bestehende große Modelle bereits die Fähigkeit haben, Code zu schreiben, ist die Codeausführungseffektivität instabil, die generierten Inhalte sind schwer zu debuggen, nicht ausführbar und enthalten sogar versteckte logische Fehler.

Das FAIR-Team ist der Meinung, dass die Wurzel dieses Problems darin liegt, dass große Modelle Code lediglich als Text vorhersagen.

Sie verstehen nicht, wie Code ausgeführt wird und haben nur eine vage Vorstellung (oder gar keine) von den Zustandsänderungen von Variablen und den Nebeneffekten von Funktionsaufrufen.

Nach Ansicht des FAIR-Teams:

Wenn man möchte, dass ein Modell wie ein Programmierer denkt, muss man es unterrichten, wie sich der „Weltzustand“ während der Codeausführung ändert.

Daher führte CWM erstmals während des Trainingsvorgangs das Konzept des Code World Modeling (Codeweltmodellierung) ein, um das Modell explizit zu trainieren, wie sich der Programmzustand während des Codeausführungsvorgangs entwickelt.

Das bedeutet, dass die Verständnisebene von CWM von statischem Text zu dynamischer Ausführung gewechselt hat.

Gabriel Synnaeve, ein erfahrener Forscherwissenschaftler von Meta FAIR, der sich auf KI und Codegenerierung spezialisiert hat und auch ein wichtiger Kernbeitragender von CWM ist, hat auf 𝕏 ein Beispiel für den Code geteilt, mit dem CWM die Anzahl der „r“ in „strawberry“ während der Ausführung berechnet:

Sie können sich das als ein neuronales „pdb“ vorstellen, das auf jeden Anfangszustand eingestellt werden kann. Die Inferenz kann als Werkzeug im Tokenraum abgefragt werden.

Im Vergleich zur statischen Vorhersage von Token für Token durch traditionelle große Codemodelle hat CWM in drei Fähigkeiten eine Verbesserung erfahren:

Erstens, Codeausführungssimulation.

CWM kann den Codeausführungsvorgang Zeile für Zeile simulieren, vorhersagen, wie jede Codezeile den Variablenzustand beeinflusst und sogar potenzielle Fehler während der Ausführung im Voraus erkennen.

Diese Fähigkeit macht es möglich, einen „neuronalen Debugger“ zu entwickeln.

Während des Inferenzvorgangs von CWM kann der Variablenzustand mit der Codeausführung ständig aktualisiert werden.

Es kann sogar Abbruchbedingungen, Schleifenentfaltung und Randbedingungen simulieren, um die Programmlogik genauer zu verstehen.

Zweitens, Selbstdebugging und -reparatur.

Nicht nur kann CWM Code schreiben, sondern es kann sich auch selbst testen und Fehler beheben.

Es kann nach der Codegenerierung automatisch Testfälle erstellen und nach dem Scheitern des Codes verschiedene Korrekturwege ausprobieren, um sich selbst zu reparieren.

Der gesamte Prozess simuliert den üblichen Entwicklungsschleife eines menschlichen Programmierers: Schreiben → Testen → Ändern → Wiederholtes Testen.

Drittens, Inferenz- und Planungsfähigkeit.

Bei komplexen Problemen kann CWM auch inferieren und planen.

Beispielsweise kann es bei Programmierwettbewerben oder mathematischen Aufgaben anhand der Problembeschreibung die Schritte analysieren, die Funktionsstruktur planen und dann Schritt für Schritt Code generieren und validieren, was seine Fähigkeit zur mehrfachen logischen Inferenz zeigt.

Informationen über das CWM-Modell: Parameter, Architektur und Leistung auf einen Blick

Die Modellarchitektur von CWM basiert auf einem 64-schichtigen Decoder-only Transformer mit einer Parametergröße von 32 Milliarden.

Es unterstützt eine lange Kontext-Eingabe von 131.000 Token – dies erweitert erheblich die Verarbeitungsfähigkeit für komplexe Projekte, mehrdateigen Code und Dokumentkontexte.

Entsprechend verwendet die Attention-Struktur einen alternierenden Mechanismus aus lokalem und globalem Attention, um sowohl Effizienz als auch Kontextabdeckung zu gewährleisten.

FAIR bietet die folgenden 3 Prüfpunkte für Forscher an:

  • CWM-Vorausbildungsmodel: Beispielsweise für neue Nachausbildungsmethoden.
  • CWM SFT: Beispielsweise für Forschungsarbeiten zur Verstärkungslernen.
  • CWM: Beispielsweise für die Erweiterung der Inferenzzeit.

Im Vergleich mit mehreren Spitzenmodellen erzielte CWM die folgenden Ergebnisse:

  • SWE-bench Verified

Score von 65,8 %, vor allen Open-Source-Modellen gleicher Größe und nahe am Niveau von GPT-4;

  • LiveCodeBench v5

Score von 68,6 %, was die Genauigkeit bei hochkomplexen Programmiertasks zeigt;

  • Math-500

Score von 96,6 %, bei den AIME 2024 Simulationsaufgaben 76,0 %;

  • Terminal-Bench

Score von 26,3 %, höher als Gemini 2.5 Pro;

  • Aider Polyglot (Mehrsprachige Codegenerierung) erzielte einen Score von 35,1 %, was dem von Qwen3-32B ähnlich ist.

Insgesamt zeigt CWM in mehreren Aspekten wie Verständnis, Generierung, Validierung und Reparatur eine beachtliche Leistung.

Das FAIR-Team behauptet, dass CWM den Wert der „Codeweltmodellierung“ für die Verbesserung von Inferenz und Codegenerierung bestätigt hat.

Gabriel Synnaeve sagte:

Ich bin unglaublich stolz auf die Arbeit meines CodeGen-Teams! Dieses Team besteht aus Doktoranden und erfahrenen Fachkräften. Wir alle arbeiten zusammen, geben uns 100 % und geben keine Probleme auf andere ab. Die gesamte Meta AI-Community hat gemeinsam daran gearbeitet. Vielen Dank für die ständige Unterstützung der gesamten Leitung.

Drei-Phasen-Trainingsablauf und Datensatzaufbau

CWM wird in drei Phasen trainiert:

Erste Phase, Vorausbildungsphase (Pretrain).

In dieser Phase wurde CWM mit 8 T Token Daten für die allgemeine Sprach- und Code-Modellierung trainiert.

Etwa 30 % der Daten sind Code, und die Kontextlänge beträgt 8.000 Token.

Zweite Phase, Mittleres Trainingsstadium (Mid-train), dies ist auch der markanteste Schritt von CWM.

In dieser Phase führte das Modell 5 T Token Weltmodellierungsdaten ein, um das Modell zu trainieren, zu erkennen, wie sich der Programmzustand während der Codeausführung ändert.

Die Kern-Datentypen in diesem Abschnitt umfassen:

  • Python-Ausführungsverlaufsdaten

Von Hunderten von Millionen von Funktionsaufrufen und Codecommits, die aufzeichnen, wie sich die Werte von Variablen bei der Ausführung jeder Codezeile ändern;

  • ForagerAgent-Daten

Der modellgetriebene Agent führt Code in einer echten Docker-Umgebung aus, behebt Bugs, führt Aufgaben aus und generiert echte Interaktionsverläufe (insgesamt 3 Millionen);

  • Natürliche Sprachbeschreibungsversion

Der Ausführungsvorgang wird in natürliche Sprache umgewandelt, um die Generalisierung und Migration zu erleichtern.

Auch in dieser Phase wurde die Kontextfähigkeit von CWM auf 131.000 Token erweitert, um die vollständige Modellierung großer Projekte und Codeabläufe zu unterstützen.

Dritte Phase, Nach-Trainingsstadium (SFT + Mehrfachaufgaben-RL).

Schließlich wurde CWM mit 100 M Token Daten für die überwachte Feinabstimmungstraining (SFT) und 172 M Token Daten für das Mehrfachaufgaben-Verstärkungslernen (RL) trainiert