Potężny algorytm od OpenAI potrafi już programować. Napisz mu, czego potrzebujesz, a on wypluje gotowy kod. Czy koderzy mają się czego bać?

GPT-3, młodszy brat osławionego GPT-2, podbija serca speców od sztucznej inteligencji. Gwoli przypomnienia – jest to model przetwarzania języka naturalnego stworzony przez OpenAI.

Metoda jego działania, w ogromnym uproszczeniu, polega na przewidywaniu kolejnego słowa w oparciu o krótki tekst przykładowy i ogromną sieć statystycznych powiązań określającą prawdopodobieństwo wystąpienia słów w jakimś kontekście.

Tu niewiele się zmieniło w stosunku do poprzednika. Zmieniła się za to skala. GPT-3 jest ponad 100 razy większy i może się pochwalić 175 miliardami parametrów, czyli połączeń między wirtualnymi neuronami. Te neurony zostały nakarmione gigantyczną bazą tekstów z internetu. Nie dysponujemy tu konkretnymi liczbami, ale jak donosi The Verge, angielska Wikipedia, zawierająca 6 milionów artykułów, stanowi ok. 0,6 procent całego zbioru treningowego.

Zaprezentowany w maju model, podobnie jak jego starszy o rok poprzednik, jest świetny w preparowaniu wiarygodnie brzmiących tekstów. Ale jego prawdziwy potencjał objawia się dopiero w rękach tłumu ekspertów i pasjonatów, którzy prześcigają się w wymyślaniu oryginalnych zastosowań algorytmu. W ciągu kilku tygodni od premiery już zaprzęgnęli mechanizm między innymi do odpowiadania na pytania dotyczące zdrowia, rozwiązywania językowych łamigłówek, a nawet komponowania tabulatur gitarowych.

Na pierwszy rzut oka niewiele się tu zmienia w porównaniu z poprzednikiem. Model GPT-2 po tak zwanym fine-tuningu, czyli doszkoleniu na odpowiednio dobranym korpusie tekstów odpowiadających konkretnemu zadaniu (np. teksty piosenek czy podręczniki medycyny), też mógł spełniać podobne zadania. Powstała nawet tekstowa gra RPG, w której GPT-2 pełnił rolę mistrza gry.

Różnica polega na tym, że by użyć GPT-3 do podobnych zastosowań, wcale nie potrzeba fine-tuningu. Jego objętość jest tak ogromna, że to wszystko już tam w środku jest i tylko czeka na wykorzystanie. Jedyne, czego wymaga, to tzw. few-shot learning, czyli pokazanie mu kilku przykładów tego, czego od niego oczekujemy.

Jednym z ciekawszych przykładów użycia takiego mechanizmu jest ten zaprezentowany przez Sharifa Shameema, założyciela start-upu debuild.co.

Shameem zalewie kilka dni po premierze GPT-3 pochwalił się na Twitterze prostą aplikacją, która tworzy kod na podstawie prostego opisu w języku angielskim.

Jeden z filmów, na których Sharif Shameem prezentuje możliwości programistyczne GPT-3

Użytkownik wpisuje zapytanie: „przycisk z napisem ‘rzuć kością’ i informacja o wyniku”. Efektem jest prościutka aplikacja, która robi dokładnie to, o co poprosił użytkownik. Na przycisku widnieje napis „rzuć kością”, a poniżej tekst z informacją o wyniku rzutu. Do tego kod działającej aplikacji, który można po prostu skopiować i wykorzystać.

Największe wrażenie robi to, że wartość rzutu jest ograniczona do zakresu od 1 do 6 – narzędzie sprawia wrażenie, jakby rozumiało intencje użytkownika. Podobnie napis pod przyciskiem, choć jego treść nie została wprost określona, ma sens.

Na innych filmach Shameem pokazuje, jak jego algorytm generuje elementy HTML ostylowane zgodnie z zapytaniami użytkownika czy prostą aplikację do śledzenia listy zadań. Za każdym razem algorytm zdaje się rozumieć zadanie i intencje użytkownika.

Oczywiście z rozumieniem nie ma to nic wspólnego – wśród terabajtów danych, które posłużyły do wyszkolenia modelu, były po prostu tysiące, jeśli nie miliony stron zawierających podręczniki programowania i fragmenty kodu wraz z opisem ich działania. Podobnie rzecz się ma z kością z pierwszego przytoczonego przykładu. Słowo „dice” występowało w setkach miejsc w pobliżu liczby 6 – ta zależność znalazła swoje odzwierciedlenie wśród miliardów parametrów modelu.

W sieci znajdziemy mnóstwo zachwytów nad GPT-3. Także zwolennicy rozwiązania zaprezentowanego przez Shameema wieszczą rychły koniec zawodu programisty. Z kolei krytycy nazywają algorytm „gloryfikowanym autouzupełnianiem” (glorified autocomplete), podkreślając, że dzieło OpenAI jest po prostu bardzo rozbudowanym modelem statystycznym.

Według mnie programiści na razie nie muszą się martwić o pracę. Pisanie kodu to tylko część roboty, jaką trzeba wykonać, by powstał sprawnie działający program. Ważne jest właściwe zaprojektowanie jego struktury, zoptymalizowanie pod kątem wymagań klienta i specyfiki zadania, uczynienie go przyjaznym użytkownikowi i tak dalej – w tym GPT-3 nie pomoże.

Nie zdziwię się natomiast, jeśli już wkrótce twórcy aplikacji typu IDE (integrated development environment), czyli programów do pisania programów, włączą rozwiązania oparte na GPT-3 do swoich systemów w roli wsparcia przy pisaniu kodu.

Sharif Shameem jest w tym względzie większym optymistą (lub – zależy, jak patrzeć – pesymistą). Start-up debuild.co, który założył kilka tygodni temu, ma stworzyć system SI, który może pisać oprogramowanie na poziomie porównywalnym z ludźmi. Firma już intensywnie szuka – o ironio – programistów.