– AWS padło dwukrotnie z powodu kodu LLM, a problemem – kolejnym problemem – jest to, że organizacje aktywnie zachęcają osoby niebędące koderami do korzystania z nich [modeli językowych]. Rozmawiałem z wieloma osobami w Meta, które potwierdzają, że tony kodu są wysyłane przez osoby niebędące programistami. Organizacją zarządzają idioci, biznesowi idioci – powiedział niedawno Ed Zitron w podcaście „Broken Silicon” prowadzonym przez Toma z kanału Moore’s Law is Dead. Nadeszła nowa era programowania… i wszystkich rozczarowała!
Ed Zitron to analityk branży technologicznej, autor newslettera oraz podcaster, który koncentruje się na krytycznej analizie sektora tech, finansów i zjawiska sztucznej inteligencji. Zitron znany jest z ostrej krytyki obecnej mody na sztuczną inteligencję, w tym na programowanie z użyciem sztucznej inteligencji, w których widzi przede wszystkim napędzany przez media i kadrę zarządzającą sztuczny „hype”. Jednak niezależnie od tego, jak bardzo kontrowersyjny bywa Ed, jego wypowiedzi w najnowszym odcinku podcastu Broken Silicon z kanału Moore’s Law is Dead zmuszają wszystkich zainteresowanych branżą IT i programowaniem do zadania kluczowego dla rozwoju biznesów technologicznych pytania: czy naprawdę potrzebujemy sztucznej inteligencji do pisania kodu? Statystyki dowodzą, że nie.
Programowanie w AI sprawia, że firmy tracą fortunę
Jeszcze nigdy w historii firmy technologiczne nie traciły tyle pieniędzy na naprawianie źle napisanego kodu, a programiści-seniorzy nie marnowali czasu na poprawianie setek linii nadmiarowego oprogramowania. Wszystko za sprawą sztucznej inteligencji – narzędzia, które miało uczynić programistę z każdego z nas. Dlaczego to się nie udało?
Generowanie kodu z użyciem sztucznej inteligencji stało się szybkie, proste i dostępne dla każdego. Oznacza to jednak, że programowaniem zajęły się osoby, które nigdy w życiu samodzielnie nie napisały linijki oprogramowania. Co więcej, gdy kod stworzony przez AI nie działa, te osoby nie potrafią go zrozumieć i poprawić – zaprzęgają więc do tego narzędzia AI. A wpadnięcie w pętlę pisania i poprawiania za pomocą AI kosztuje fortunę.
Według danych z raportu CodeRabbit kod tworzony przez sztuczną inteligencję ma średnio 1,7 więcej błędów niż kod, który stworzył człowiek. Choć jednocześnie AI potrafi naprawdę przyspieszyć pracę programistów – według raportów przyspiesza powstawanie kodu – to czas wymagany na naprawianie błędów w tym kodzie dosłownie pożera zyski. W ten sposób firmy tracą – choć pozornie wydaje się, że programiści (zwłaszcza junior i mid) tworzą szybciej, to poprawianie oprogramowania i szukanie błędów w napisanym przez AI kodzie znacząco spowalnia efekt końcowy. A seniorzy, którzy muszą ten kod poprawiać, przekopują się przez setki linii nadmiarowego oprogramowania. Bo AI tworzy nie tylko szybko – tworzy też nadmiarowo. Dlaczego?
Sztuczna inteligencja przyspiesza pisanie kodu, ale ma to mroczne strony
Badania faktycznie dowodzą, że sztuczna inteligencja przyspiesza powstawanie kodu. Przykładowo według danych z badania Debt Behind the AI Boom: A Large-Scale Empirical Study of AI-Generated Code in the Wild wydajność pracowników korzystających z GitHub Copilot wzrosła aż o 55,8%. Ponadto AI potrafi wygenerować od 3 do 4 razy więcej kodu niż programista-człowiek.
Z perspektywy osób, które nie rozumieją programowania, te liczby brzmią jak ogromny skok wydajności i szybkości powstawania aplikacji! Co więcej, jak mówi Ed Zitron, dzięki AI programować mogą także osoby, które nigdy nie były programistami. I to nie jest problem małych firm, które próbują utrzymać się na rynku, a naprawdę dużych korporacji, jak choćby Meta:
– Organizacje aktywnie zachęcają osoby niebędące koderami do korzystania z nich [modeli językowych]. Rozmawiałem z wieloma osobami w Meta, które potwierdzają, że tony kodu są wysyłane [na produkcję] przez osoby niebędące programistami – powiedział Ed Zitron w cytowanym wcześniej podcaście.
Brzmi wspaniale? Tylko pozornie. Bo dobrze napisany kod nie musi koniecznie być długi.
Jak myśli AI? Jak sztuczna inteligencja programuje?
Pozorny brak logiki w powyżej cytowanych danych łatwiej zrozumieć, gdy się wie, jak sztuczna inteligencja „myśli” czy też „programuje”.
– […] nikt tak naprawdę nie wie, że [kod] został napisany bez intencji, ponieważ te modele nie myślą – tłumaczy Ed.
Chodzi o to, że każdy model LLM jest modelem językowym. Oraz, co ważniejsze, programem. Oznacza to, że tworzy treść – czy to tekst, czy opowiadanie, czy w końcu kod programu – na podstawie statystyki. W uproszczeniu: jeśli statystycznie po jednym słowie najczęściej występuje inne słowo, to właśnie to słowo AI wybierze. Ta statystyka okazała się na tyle dobra, że AI tworzy w nas wrażenie, że rozmawiamy z kimś, kto świadomie dobiera słowa.
Niestety, w praktyce kryje się za nim wyłącznie statystyka. Oznacza to też, że jeśli AI tworzy kod, to tworzy go właśnie na podstawie statystycznego występowania danych wyrazów po innych wyrazach. A co za tym idzie – AI nie pisze kodu zwięzłego i prostego, nastawionego na cel, łatwego do debugowania, a tworzy wiele linii kodu, które mogą realizować postawione przed aplikacją zadanie, ale są znacznie trudniejsze do analizy i do debugowania. Ludzie tracą czas na rozplątywanie złożonych składni i skomplikowanej logiki, zamiast skupić się na tym, co stanowi o clue ich pracy: na programowaniu.
Awarie w AWS i Meta spowodowane przez błędy w kodzie napisanym w AI
Głośne awarie, cytowane na początku artykułu, to tylko drobny przykład problemów, które wynikają z kodu nadmiarowego i zbyt skomplikowanego. Niedawno było głośno o innym problemie, który dotyczy każdej osoby korzystającej z agentów AI. „Eksperci do spraw cyberbezpieczeństwa wykryli krytyczną lukę w zabezpieczeniach tak zwanych agentów AI, z których korzystają już miliony ludzi na całym świecie” – pisał Dominik Kulig na łamach Dziennik.pl Takich luk w zabezpieczeniach będzie coraz więcej, bo problemy skalują. Osoby nietechniczne są zachęcane do pisania kodu z pomocą AI. AI pisze kod, który ma błędy. Następnie taka osoba używa AI do poprawienia tych błędów. Każde zapytanie wysłane do AI zużywa kredyty, czyli walutę, którą firma płaci za sztuczną inteligencję. Ostatecznie powstaje kod, który działa, a o którego lukach bezpieczeństwa nikt nic nie wie. A gdy już dochodzi do awarii profesjonalni programiści tracą czas na rozplątywanie węzła gordyjskiego.
Czy AI powinno pisać oprogramowanie?
Czy to oznacza, że sztuczna inteligencja nie powinna w ogóle „dotykać” programowania? Oczywiście, że nie. Sztuczna inteligencja jest narzędziem i tak jak młotek nadaje się do wbijania gwoździ, ale niekoniecznie do wbijania komuś wiedzy do głowy, tak AI potrafi być naprawdę świetnym asystentem programisty, który rozumie, jak to narzędzie działa i w czym naprawdę potrafi pomóc.
– Jeśli jesteś naprawdę, naprawdę, naprawdę dobry w swojej pracy, w pełni rozumiesz kod i proces, który wykonujesz, AI (…) może faktycznie podwoić twoją produktywność, jeśli jesteś taką osobą, ponieważ zawsze dostrzeżesz błąd lub będziesz wiedział, jak użyć AI, aby go uniknąć – podkreśla Ed, choć nie powstrzymuje się też przed krytyką związaną z realnym kosztem pracy sztucznej inteligencji.
Sztuczna inteligencja potrafi wspomóc pracę programistów. Ale najpierw trzeba sobie zasłużyć na ten tytuł.
Źródło zdjęcia: Wikipedia, CC BY 2.0 + AI Firefly

