DiffuCoder: Apple otwiera nowy rozdział w generowaniu kodu przez AI
Współczesne modele językowe (LLM), które zrewolucjonizowały przetwarzanie języka naturalnego, stają się coraz bardziej wszechstronne, wkraczając również w obszar generowania kodu. Jednakże, podczas gdy modele autoregresywne dominują, nowe podejście bazujące na modelach dyfuzyjnych, takie jak LLaDA czy Dream, zyskuje na znaczeniu. Te nowatorskie systemy oferują unikalną zdolność do równoległego udoskonalania całej sekwencji, co jest szczególnie korzystne w programowaniu, gdzie kod często wymaga nieliniowego, iteracyjnego dopracowywania.
Apple, we współpracy z badaczami z Uniwersytetu w Hongkongu, zaprezentowało DiffuCodera, 7-miliardowy model dyfuzyjny maskowy, który ma ambicję stać się przełomem w generowaniu kodu. Model ten, trenowany na imponujących 130 miliardach efektywnych tokenów, stanowi cenną platformę do analizy zachowań modeli dyfuzyjnych oraz rozwijania metod post-treninowych. Jednym z kluczowych aspektów, na który zwrócili uwagę twórcy, jest elastyczność DiffuCodera w zakresie kolejności generowania tokenów. W przeciwieństwie do tradycyjnych modeli autoregresywnych, które narzucają ścisłą sekwencję od lewej do prawej, DiffuCoder, wraz ze wzrostem temperatury próbkowania, staje się mniej zależny od tej reguły, osiągając jednocześnie wyższą dokładność (pass@10).
Ewolucja i wyzwania w modelach dyfuzyjnych
Modele dyfuzyjne, początkowo skoncentrowane na generowaniu tekstu, takich jak maskowe modele dyfuzyjne, ewoluowały w kierunku bardziej zaawansowanych systemów LLM, m.in. DiffuLLaMA. W dziedzinie generowania kodu pionierem był CodeFusion, jednak jego ograniczenia dotyczyły skalowalności i złożoności zadań. Najnowsze komercyjne modele dyfuzyjne, takie jak Mercury i Gemini, wykazują już porównywalne wyniki z wiodącymi modelami autoregresywnymi. Niemniej jednak, wciąż pozostaje pytanie o to, jak modele dyfuzyjne o otwartym źródle radzą sobie z zadaniami kodowymi, gdyż dotychczasowe wysiłki w post-trenowaniu przynosiły jedynie marginalne korzyści lub opierały się na pół-autoregresywnym dekodowaniu, co odbiega od pierwotnej idei globalnego planowania.
Innowacyjny proces treningu DiffuCodera
Badacze zastosowali unikalny czterostopniowy proces treningowy. Punktem wyjścia był Qwen-2.5-Coder. Następnie model poddano ciągłemu wstępnemu trenowaniu, wykorzystując 400 miliardów tokenów kodu ze zbiorów RefineCode i Stackv2. Kolejne etapy obejmowały pre-trening adaptacyjny, trening pośredni z 16 miliardami tokenów, strojenie instrukcji z 436 tysiącami próbek SFT, a także post-trening z użyciem nowatorskiego algorytmu coupled-GRPO, bazującego na 21 tysiącach trudnych próbek z Acecoder-87K. Skuteczność tego algorytmu okazała się kluczowa dla stabilności uczenia się nagród, w przeciwieństwie do niestabilnych wyników wariantów bazowych.
Ocena i przyszłość coupled-GRPO
Testy porównawcze, przeprowadzone na zestawach danych HumanEval, MBPP i EvalPlus, wykazały, że DiffuCoder trenowany na 130 miliardach tokenów osiąga wydajność zbliżoną do Qwen2.5-Coder i OpenCodera. Co istotne, trening coupled-GRPO znacząco poprawił wyniki DiffuCodera, dowodząc skuteczności metod uczenia ze wzmocnieniem, które są zgodne z zasadami dyfuzji. Wzrost optymalnej temperatury próbkowania podczas ewaluacji, dzięki RL fine-tuningowi, sugeruje, że trening wyostrza rozkład prawdopodobieństwa dla poszczególnych tokenów, zmniejszając zależność modelu od ścisłego dekodowania autoregresywnego. To umożliwia modelowi lepsze generowanie tokenów równolegle. Praca nad DiffuCoderem i algorytmem coupled-GRPO otwiera nowe perspektywy dla dalszych badań nad modelami dyfuzyjnymi w złożonych zadaniach rozumowania i generowania tekstu, stanowiąc solidny fundament dla przyszłych zastosowań w dziedzinie AI.
