Meta prezentuje Code World Model: Model językowy open-source z 32 miliardami parametrów, który ma zrewolucjonizować generowanie kodu
Meta zaprezentowało Code World Model (CWM) – model językowy o imponującej liczbie 32 miliardów parametrów. CWM, oparty na architekturze transformera, został wytrenowany nie tylko na statycznym kodzie źródłowym, ale również na danych z wykonania programów i interakcji agentów w środowisku. To podejście ma na celu głębsze zrozumienie semantyki i kontekstu kodu.
Jak to działa?
CWM uczy się, przewidując ścieżki wykonania kodu. Model jest trenowany na dwóch rodzajach danych: śladach interpretera Pythona, rejestrujących stany zmiennych po każdej wykonanej linii, oraz interakcjach agentów w środowiskach Docker, które rejestrują edycje, polecenia shella i informacje zwrotne z testów. Dzięki temu model uczy się, jak zmienia się stan programu w czasie rzeczywistym.
Kluczowym elementem jest tzw. ForagerAgent, agent inżynierii oprogramowania, który generuje wieloetapowe trajektorie na podstawie tysięcy projektów z GitHub. Meta udostępniła około 3 miliony trajektorii z około 10 tysięcy obrazów i 3,15 tysiąca repozytoriów.
Architektura i trening CWM
CWM to gęsty, dekoderowy Transformer z 64 warstwami, GQA, SwiGLU, RMSNorm i Scaled RoPE. Model wykorzystuje mechanizm uwagi, który naprzemiennie analizuje lokalne bloki o długości 8 tysięcy tokenów i globalne bloki o długości 131 tysięcy tokenów. Pozwala to na efektywne wykorzystanie kontekstu o długości 131 tysięcy tokenów. Proces treningowy składa się z trzech etapów: pre-treningu, mid-treningu i post-treningu.
- Pre-trening: 8 bilionów tokenów (głównie kod) przy kontekście 8k.
- Mid-trening: Dodatkowe 5 bilionów tokenów, długi kontekst (131k) z danymi wykonania Pythona, ForagerAgent, różnice z żądań pull request, dane z kompilatorów i kodu Triton.
- Post-trening: 100 miliardów tokenów SFT (Supervised Fine-Tuning) do instrukcji i rozumowania, a następnie wielozadaniowe RL (Reinforcement Learning) z użyciem algorytmu GRPO i minimalnego zestawu narzędzi (bash/edit/create/submit).
Wyniki i benchmarki
Zespół badawczy Meta FAIR przetestował CWM na różnych benchmarkach, osiągając obiecujące wyniki:
- SWE-bench Verified: 65.8% (z testowaniem w czasie wykonywania).
- LiveCodeBench-v5: 68.6%; LCB-v6: 63.5%.
- Math-500: 96.6%; AIME-24: 76.0%; AIME-25: 68.2%.
- CruxEval-Output: 94.3%.
Według twórców, CWM dorównuje konkurencyjnym modelom open-source o podobnej wielkości, a nawet przewyższa większe, zamknięte modele w benchmarku SWE-bench Verified.
Dlaczego modelowanie świata ma znaczenie dla kodu?
Meta FAIR podkreśla dwie kluczowe funkcjonalności CWM:
- Przewidywanie śladów wykonania: CWM potrafi przewidzieć stany zmiennych i wykonywaną linię kodu na każdym etapie, co może być wykorzystane jako „neuralny debugger” do rozumowania o kodzie bez jego fizycznego uruchamiania.
- Kodowanie agentowe: Model potrafi rozumować i korzystać z narzędzi w interakcji z repozytoriami, weryfikowane ukrytymi testami i nagrodami za podobieństwo poprawek. Uczy się lokalizować błędy i generować kompleksowe poprawki (git diff).
Szczegóły techniczne
CWM wykorzystuje tokenizer z rodziny Llama-3 z zarezerwowanymi tokenami kontrolnymi. Długi kontekst jest osiągany dzięki dużej wielkości partii tokenów, co stabilizuje gradienty. Skalowalność obliczeniowa jest dostosowana do obciążeń związanych z długim kontekstem.
Podsumowanie
Code World Model to ważny krok w kierunku generowania kodu opartego na głębokim rozumieniu kontekstu. Meta udostępnia model z otwartymi wagami, co umożliwia dalsze badania i rozwój w tej dziedzinie. Model objęty jest licencją FAIR Non-Commercial Research License, co oznacza, że może być wykorzystywany do celów badawczych.
CWM stanowi obiecującą platformę do eksperymentów z długim kontekstem i generowaniem kodu z uwzględnieniem danych wykonania, bez konieczności komercyjnego wdrażania. To cenny wkład w rozwój sztucznej inteligencji w dziedzinie programowania.
