AlphaCode 2 - koduje lepiej niż 85% programistów
AlphaCode 2 to system AI stworzony do rozwiązywania problemów programistycznych. Jest oparty o najnowszy LLM od DeepMind - Gemini Pro. System ten uzyskał wynik lepszy od 85% programistów, którzy brali udział w rozwiązywaniu takich samych problemów koderskich. Dlatego można powiedzieć, że AlphaCode 2 jest lepszy w kodowaniu ode mnie i być może też od Ciebie.
Ale zanim zaczniemy śpiewkę o zastąpieniu programistów przez AI przyjrzyjmy się jak AlphaCode 2 działa i co to faktycznie może dla nas oznaczać.
Jak działa AlphaCode 2?
Przede wszystkim AlphaCode 2 to system AI, a nie model AI. Co prawda jego podstawą są zmodyfikowane wersje Gemini Pro (czyli modelu możliwościach mniej więcej na poziomie GPT 3.5), trenowane na 30 milionach próbkach kodu i 15 tysiącach problemów, ale to tylko część układanki. Cały system wygląda mniej więc tak:
(źródło: AlphaCode tech report)
A działanie można opisać skrótowo w dość prosty sposób.
Dla każdego zadanego problemu system generuje nawet milion różnorodnych próbek kodu, z których oczywiście większość będzie bezwartościowa. Te próbki zostają potem odfiltrowane przez uruchomienie ich i przetestowanie, w ten sposób odpada 95% próbek. Potencjalnie poprawne próbki są łączone w klastry, które mają połączyć podobne rozwiązania, tak by na końcu mieć 10 propozycji kodu do wyboru. Następnie każda z propozycji jest oceniana przez model bazujący na Gemini Pro i najlepsza propozycja jest przedstawiana jako rozwiązanie.
AlphaCode 2 deklasuje programistów
System został stworzony by rozwiązywać skomplikowane problemy programistyczne na Codeforces i dał radę rozwiązać 43% problemów. To lepszy wynik niż 85% programistów, którzy wzięli udział w tych samych wyzwaniach. To oznacza, że jest na poziomie naprawdę przyzwoitego programisty.
Zwróć uwagę, że pod spodem AlphaCode 2 wykorzystuje Gemini Pro, czyli nawet nie jest to najmocniejszy model, jakim dysponuje Google. Ciekawe jest też to, że DeepMind skupił się na rozwiązywaniu nowych problemów z Codeforces, by uniknąć false positive znanego z GPT 4 - który potrafił rozwiązać część problemów, o ile zostały opublikowane przed 2021 (kiedy zakończył się pierwotnie trening). Dla problemów, których nie znał z treningu, jego wynik wyniósł 0%. To pokazuje, że AlphaCode 2 jest naprawdę niezłe w te klocki.
Czyli co? Możemy już pisać, że AI zastąpi programistów?
Nikomu nie zabronię, ale warto najpierw zrozumieć pewne ograniczenia, które ma AlphaCode 2.
Problemy z AlphaCode 2
Problem pierwszy jest taki, że DeepMind próbowało stworzyć wersję AlphaCode 2, która będzie rozwiązywać problemy w Pythonie. Natomiast okazało się, że wyniki generowania rozwiązań nie są jakieś rewelacyjne, więc zostali tylko przy wersji z C++.
Kolejna rzecz wynika z tego, że to jest jednak system, w którym prawie cała para idzie w gwizdek. Generowanie miliona różnorodnych próbek kodu wymaga masę mocy obliczeniowej. Każda z tych próbek wymaga następnie przeanalizowania i dalszej obróbki.
Cały schemat działania jest bardzo podobny jak w pracy “Let’s verify step by step”, opracowenej w OpenAI. Taka technika jest skuteczna, jednak trzeba powiedzieć wprost, że jest to podejście brute-force i jego zastosowanie zależy od dostępności zasobów, bo koszt wyprodukowania niewielkiego kawałka kodu może być paradoksalnie nawet wyższy niż zatrudnienie programisty. Przynajmniej na razie.
To też sprawia, że AlphaCode 2 prawdopodobnie nie zostanie szerzej udostępniony.
Trzeba też pamiętać, że AlphaCode 2 został stworzony do rozwiązywania małych, ale skomplikowanych problemów. Natomiast z mojego doświadczenia wynika, że większość problemów w codziennej pracy programisty to problemy duże, ale raczej proste. Mam tu na mysli to, że wyzwaniem jest raczej rozwiązanie problemu w całej objętości systemu, a nie samo wymyślenie rozwiązania. Weryfikacja rozwiązania jest też o wiele bardziej czasochłonna, ze względu na konieczność wykonania bardziej rozległych testów testów, więc w komercyjnych systemach ma w tym momencie małe szanse na zastosowanie.
Nie oznacza to jednak, że techniki bazujące na takim podejściu nie staną się w przyszłości lepsze i bardziej efektywne. Może nawet na tyle, że staną się realnie opłacalne.
AlphaCode 2 to początek
System od DeepMind pokazuje, że sam model LLM to tylko jeden z komponentów, jednostka, która może pełnić ważną rolę w większej całości. Efekty uzyskane przez AlphaCode 2 są bardzo interesujące, ale w tym momencie jeszcze nie zmieniają naszej rzeczywistości, nawet jeżeli system sprawuje się lepiej, niż większość programistów.
Wraz z coraz dokładniejszym badaniem modeli LLM spodziewam się, że odkryjemy jeszcze conajmniej kilka technik, które zwiększają jakość generowanych przez nie odpowiedzi. Może nawet znajdzie się kilka takich, które nie marnuje 95% wygenerowanych odpowiedzi.
Przeczytaj także:
- AWS goni OpenAI, ogłaszając Titana i nie tylko
- AI Alliance, czyli IBM, Meta i kumple walczą o honor w świecie AI
- Przełomowe zapowiedzi od GitHuba. Nadchodzi GitHub Workspace
- Wysyp nowości do OpenAI: GPT-4 Turbo, GPTs i API Asystentów
- Czy Polska jest w czołówce open-source na świecie?
- Użytkownicy GitHuba buntują się przeciw zmianie feeda
- Afera po wyrzuceniu TypeScriptu z projektu open-source