Droga, którą przebyła sztuczna inteligencja, jest naprawdę imponująca. Narodziła się jako koncept, by następnie zostać przedstawioną w popkulturze jako coś przerażającego – wszak już pierwsza prezentacja AI w filmie (Metropolis, 1927) miała miejsce w dystopijnej wizji przyszłości, zaś wielu z nas pamięta czym skończyło się obdarzenie superkomputera HAL9000 nadmiernym zaufaniem.
W ostatnich latach rozwój sztucznej inteligencji przyspieszył. Przestała być wytworem wyobraźni, dziś jest obecna w wielu aspektach naszego życia. Dopóki jednak jej użyteczność sprowadzała się do reagowania na proste komendy wypowiadane w stronę wirtualnych asystentów, jak Siri czy Alexa, zdawaliśmy się zapominać o jej istnieniu i nie doceniać możliwości. Rozwijała się w ciszy, aż nagle w 2022 roku OpenAI udostępniło usługę ChatGPT i dla niektórych świat się zatrzymał.
Rozbudowany algorytm karmiony ogromną ilością książek, prac naukowych i losowych treści spotkanych w Internecie nauczył się nie tylko odpowiadać na proste pytania, ale też pisać bajki czy eseje. Co jednak najważniejsze, GPT 3 to wedle niektórych drugi model językowy, który przeszedł Test Turinga. Oznacza to, że da się z nim “rozmawiać” jak z człowiekiem.
W marcu 2023 roku uruchomiono GPT w wersji 4, cechującej się jeszcze szybszym działaniem i jeszcze bardziej trafionymi odpowiedziami. Większą ilością informacji w bazie danych. Czy tak potężne narzędzie będzie w stanie zagrozić pozycji programistów na rynku pracy?
AI uczy się szybciej niż ludzie
Przynajmniej w kontekście samego przyswajania danych i umiejętności przywoływania ich w niezmienionej formie, gdy zostanie wydane odpowiednie polecenie. Aby sztuczna inteligencja „nauczyła się” jednego z popularnych języków programowania, wystarczy „nakarmić” ją za pomocą dokumentacji. Poznawanie kolejnych frameworków zajmuje kilka chwil. Z tego powodu już teraz ChatGPT nie ma problemu z napisaniem prostych programów, na przykład w JavaScript. Co więcej, w przeciwieństwie do ludzi, algorytm AI nie wprowadza pojedynczych znaków tylko całe wiersze kodu, co jest zwyczajnie szybsze.
Sztuczna inteligencja nie jest kreatywna
Wedle materiałów prasowych z ChatGPT można rozmawiać praktycznie tak samo jak z człowiekiem. Liczba tekstów, które wykorzystano by nauczyć algorytm różnych języków w stopniu komunikatywnym, jest przeogromna, ale nadal to tylko suche dane. GPT 4 może je wykorzystać, aby wytłumaczyć, czemu Albus Dumbledore w piątej części cyklu o Harrym Potterze zachowywał się w konkretny sposób, ale nie jest w stanie samodzielnie stworzyć unikalnej, spójnej i w pełni sensownej opowieści na podany temat.
Według wielu specjalistów (między innymi Lucjana Suskiego, CEO Surfera), właśnie ten brak kreatywności sprawia, że ChatGPT nie jest zagrożeniem dla programistów. Może być przydatnym narzędziem w rękach świadomego użytkownika i znacząco przyspieszyć jego pracę, ale niewiele poza tym. Napisze fragment kodu w konkretnej technologii, ale nie stworzy kompleksowego rozwiązania dla problemu, który nie pojawił się w danych wykorzystanych do nauki. Dodatkowo, mimo znajomości wielu języków programowania i frameworków, GPT 4 nie jest zbyt elastyczny w posługiwaniu się kilkoma z tych narzędzi jednocześnie.
ChatGPT ma ograniczony zasób wiedzy (a przynajmniej udaje, że tak jest)
Widać to najwyraźniej w chwili, gdy zapytamy algorytm o jakiś fenomen popkulturowy, na przykład fanatyka wędkarstwa lub piec podobny do bramy triumfalnej. ChatGPT „zrozumie” podany bezpośrednio tekst, ale nie zna szerszego kontekstu.
Z podobną sytuacją mogą spotkać się programiści, którzy postanowią wyręczyć się sztuczną inteligencją i zintegrować ją z używanymi obecnie systemami. Otóż, GPT 4 bez większego problemu dowie się, jakie zadania wykonuje konkretny kod, ale nic poza tym. Nie zna specyfiki środowiska, do jakiego został wpuszczony, zatem nie jest zatem w stanie zintegrować się z nim w łatwy sposób. Ostatecznie, to tylko model językowy, a nie architekt całej infrastruktury IT w danym miejscu. Jest wysoce prawdopodobne, że po poproszeniu o implementację konkretnych funkcjonalności próbowałby zrobić to w sposób, który w izolowanych warunkach byłby optymalny, ale przy rzeczywistym i działającym systemie nie miałby racji bytu.
Debugowanie i testy
Jak wspomniałem powyżej, ChatGPT jest w stanie napisać program o niewielkim stopniu skomplikowania. Na przykład grę w kółko i krzyżyk w języku Swift. Problem w tym, że nawet przy tak prostej (pozornie) aplikacji, potrafi popełniać błędy. Co więcej, nierzadko w odpowiedzi na identyczne żądanie prezentuje inny kod. Gdy zostanie poproszony o bardziej skomplikowane zadanie, mianowicie stworzenie konkretnego programu wraz z komentarzami, potrafi się zawiesić. Otrzymamy wówczas treść, która powoduje błędy podczas kompilacji.
Już sama niedoskonałość kodu prezentowanego przez ChatGPT sprawia, że nie może on być obecnie traktowany jako zagrożenie dla programistów. Skoro bowiem algorytm tworzy programy z istotnymi błędami, to znaczy, że ich nie wykrył. Jeśli natomiast powtórzenie żądania powoduje nie poprawienie kodu, lecz napisanie go od nowa, można wyciągnąć wniosek, że AI nie radzi sobie z debugowaniem. W przypadku niewielkich aplikacji można próbować napisać całość od początku wiele razy, dopóki nie dostaniemy akceptowalnego rezultatu – ale przy pracy nad wielkimi systemami nie można sobie na to pozwolić. Kod musi działać w określonym środowisku, a w przypadku jakiegokolwiek błędu należy dokonywać poprawek i próbować ponownie. Co więcej, w dalszym ciągu warstwa front-end musi być dopasowana do obsługi przez realnych ludzi na konkretnych maszynach. W związku z tym obecność człowieka, który zadba o odpowiedni projekt interfejsu i o to, by był on dostępny dla przeciętnego użytkownika, nadal jest niezbędna.
ChatGPT 4 tak naprawdę nie wie, co do niego mówimy
Można odnieść wrażenie, że algorytm albo nie do końca rozumie generowany przez siebie kod, albo w dalszym ciągu ma problem z interpretacją żądań użytkownika. Problem ten został opisany już w 1980 roku przez Johna Searle’s w tzw. Argumencie Chińskiego Pokoju. Wynika z niego, że choć ChatGPT 4 z łatwością przejdzie Test Turinga dzięki świetnej znajomości zasad lingwistyki i generowaniu odpowiedzi w czasie rzeczywistym, to nadal nie posiada realnego zrozumienia dla zapytań, które są do niego wprowadzane. Jest jedynie zwinnym manipulatorem potrafiącym dopasować jedne symbole i słowa do innych. Można się o tym przekonać w sytuacji, gdy zażądamy wygenerowania kodu dla jakiegoś algorytmu opierającego się na wielu warunkach, albo choćby poprosimy o wykonanie kilku następujących po sobie działań w ramach pojedynczego zapytania.
W rezultacie operator nie może po prostu wpisać, czego oczekuje, a potem przekopiować program do IDE i skompilować. Konieczne jest dzielenie większego zadania na małe porcje, a następnie samodzielne łączenie ich w jedną całość. Aby jednak taki sposób pracy dał zadowalające efekty, osoba korzystająca z ChatGPT sama musi znać język programowania i framework, w którym algorytm pisze kod. Zwłaszcza że AI samo nie do końca wie, co właściwie wyświetla. Wystarczy poprosić o objaśnienie pokazanego przed chwilą kodu i z każdą chwilą na wizerunku idealnie mądrego algorytmu pojawia się coraz więcej rys.
Czy ChatGPT 4 zabierze pracę programistom?
Nie. Biorąc pod uwagę mnogość wiedzy i umiejętności wymaganych u współczesnych programistów, algorytm w najbliższym czasie nie będzie w stanie ich zastąpić, a jedynie może posłużyć jako łatwe w obsłudze i szybkie narzędzie. Nie znaczy to jednak, że kolejne wersje ChatGPT, albo inny chatbot zorientowany na tworzenie kodu źródłowego, nie dorównają rzeczywistym zespołom deweloperów w nieodległej przyszłości.
Źródła: