Czy AlphaCode (i podobne narzędzia) "pozamiatają" rynek LowCode czy raczej tradycyjnego IT?

Kategoria II
Czy AlphaCode (i podobne narzędzia)

Wizja przyszłości

Rok 203x. Grupą zawodową, wśród której panuje największe bezrobocie są obecnie byli programiści i testerzy. Przez całe lata korzystali oni z cyfrowej transformacji, aż w końcu, około roku 2031 zostali przez nią zmieceni. A wszystko zaczęło się na przełomie 2021/2022 r.

Stan obecny

Media obiegła informacja, że firma DeepMind (będąca obecnie własnością Google), która od samego początku działania zajmująca się budową rozwiązań z zakresu sztucznej inteligencji (artificial intelligence), stworzyła silnik generujący całkowicie automatyczny (i inteligentny) kod.

Silnik ten nazywa się AlphaCode. Zgodnie z przekazanymi przez firmę informacjami - jej zdaniem - efekty jego pracy (czyli tworzony kod) przewyższa jakością prace wielu programistów.

Wydajność kodu została oceniona za pomocą dziesięciu wyzwań, które są udostępniane na platformie Codeforces. Jest to platforma umożliwiająca rywalizowanie między sobą programistów w rozwiązywaniu specjalistycznych problemów. Zazwyczaj wymagają one kreatywnego myślenia i mogą być potraktowane jako "papierek lakmusowy" umiejętności danego programisty. Kod dostarczany przez AlphaCode pozwolił się uplasować temu rozwiązaniu wśród 54,3% najlepszych ludzi-programistów.

Jak zauważył Mike Mirzayanov (założyciel Codeforces): "mogę śmiało powiedzieć, że wyniki AlphaCode przerosły moje oczekiwania. Byłem sceptycznie nastawiony, ponieważ nawet w prostych problemach konkurencyjnych często wymagane jest nie tylko zaimplementowanie algorytmu, ale także (i to jest najtrudniejsza część) jego wymyślenie. AlphaCode zdołał osiągnąć poziom obiecującego nowego konkurenta".

A jak jest to widziane z perspektywy pracowników AlphaCode? Algorytm tworzy ogromną liczbę programów w językach C++ i Python dla każdego problemu. Następnie są one filtrowane, grupowane i ponownie klasyfikowane do małego zestawu 10 programów kandydujących, które przesyłamy do oceny zewnętrznej. Ten zautomatyzowany system zastępuje proces prób i błędów konkurencji polegający na debugowaniu, kompilacji, przejściu testów i ostatecznie przesłaniu (czyli jest to trochę metoda brutal-force - przypis AS). Czyli finalnie może okazać się, że tak jak w grze w go realizowanej przez sztuczną inteligencję, tak i tutaj mogą być tworzone programy działające w sposób co najmniej zaskakującym lub wręcz niezrozumiały dla człowieka.

AlphaCode - zanim został wystawiony do konkursu - przeszedł "szkolenie" na dużej puli kodu open source z GitHub. Następnie model, będący kluczowym elementem stworzonego rozwiązania - został dostrojony z wykorzystaniem danych zebranych z różnego rodzaju konkursów programistycznych. Zdaniem twórców działanie to było kluczowe dla uzyskania odpowiedniej wydajności i jakości generowanego kodu.

Całą procedurę przygotowania AlphaCode przedstawia rysunek poniżej.

Kod

Rysunek 1. Zasada działania AlhpaCode.
Źródło:AlhpaCode

Sposób generowania kodu dla przykładowego zadania prezentuje poniższy film.

Algorytmy AlphaCode zostały przygotowane wzorem architektur używanych do przetwarzania języka naturalnego lub rozpoznawania obrazów - to pozwala na dalszy jego rozwój. Proszę zobaczyć, co stało się z flagowym rozwiązaniem DeepMind, programem do gry w szachy - jak szybko się rozwinął i jakie są obecnie jego możliwości, w stosunku do pierwszej wersji,. Ciekawostką jest to, że przy tworzeniu AlphaCode wykorzystano wcześniejsze doświadczenia; zostało to opisane w artykule: "Acquisition of Chess Knowledge in AlphaZero".

Podsumowanie

Oczywiście jesteśmy na początku drogi (de-facto trwa ona już dłuższy czas), której stanem końcowym będą "samopiszące" się programy.

Google nie jest jedyną firmą pracującą nad rozwiązaniami w tym obszarze. OpenAI uruchomiło zbliżoną inicjatywę opracowania narzędzia do kodowania w oparciu o opis w języku naturalnym Codex (jest ona używana w ramach GitHub Copilot). Również Microsoft podejmuje prace w tym obszarze, wykorzystując model GPT-3.

Na pewno upowszechnienie się takich rozwiązań zajmie dłuższy czas, ale sądzę, że część programistów (i testerów) już powinna myśleć, co będzie robić za 15 lat... Paradoksalnie - im więcej będzie powstawać rozwiązań w nowoczesnej architekturze microservices, tym łatwiej będzie zastąpić/zintegrować je z rozwiązaniami generowanymi przez sztuczną inteligencję. Można więc powiedzieć, że obecnie IT kręci sama na siebie bicz... Być może tej klasy produkty staną się przyszłością narzędzi LowCode/NoCode.