Uwaga! Trwają prace nad nową wersją serwisu. Mogą występować przejściowe problemy z jego funkcjonowaniem. Przepraszam za niedogodności!

⛔ Masz dość walki z kodem i samym sobą? 🔄 Czas na RESET! ✅ Dołącz do bezpłatnego wyzwania!

Chcesz być (lepszym) programistą i lepiej zarabiać? Umów się na rozmowę - powiem Ci jak to zrobić!

Kiedy AI zastąpi programistów?

Dr Jakub Strychowski, wieloletni CTO z doktoratem z AI, opowiada o tym, jak sztuczna inteligencja realnie zmienia rynek IT. Rozmawiamy m.in. o tym, czy juniorzy faktycznie muszą bać się o pracę, kiedy klienci zaczną sami 'promptować' działające aplikacje i dlaczego masowo generowany kod może stać się naszym największym koszmarem.

Poruszane tematy

Gość: Jakub Strychowski – kim jest i czym się zajmuje
Czy możesz się przedstawić i powiedzieć, co łączy Cię z branżą IT?

Dlaczego bańka na AI jest tak wielka?
Dlaczego obecnie mamy tak wielką bańkę na AI, skoro pierwsze wzmianki o tej technologii sięgają lat 50 (Turing, McCarthy)?

Dlaczego LLM-y radzą sobie tak dobrze z kodowaniem?
Dlaczego LLM-y tak dobrze radzą sobie z kodowaniem, skoro to "tylko" przewidywanie kolejnego słowa?

Gdzie kończy się uczenie maszynowe, a zaczyna Deep Learning w kontekście pisania kodu?
Gdzie kończy się uczenie maszynowe (ML), a zaczyna Deep Learning w kontekście pisania kodu?

Czym są "halucynacje" w kodzie i czy da się je całkowicie wyeliminować?
Czym są "halucynacje" w kodzie i czy da się je całkowicie wyeliminować?

Jak AI wpływa na tworzenie ogromnego długu technicznego w przyszłości?
Czy AI doprowadzi do powstania ogromnego długu technicznego w przyszłości?

Jaka jest przyszłość Juniorów w branży IT?
Jaka jest przyszłość dla Juniorów, biorąc pod uwagę fakt, że bez nich za parę lat nie będzie Seniorów?

Czy programiści no/low-code są bardziej czy mniej zagrożeni?
Co z programistami no/low-code? Czy oni są bardziej zagrożeni czy mniej?

Jakub Strychowski – kontakt
Gdzie możemy Cię znaleźć w sieci?

Polecana książka

➡ Maxime Labonne, Kurs LLM

Kontakt do gościa

➡ WWW firmowe: 3Qcode.com

➡ LinkedIn firmowy: www.linkedin.com/company/3qcode/

➡ Instagram firmowy: www.facebook.com/people/3Qcode/100074267426784/

➡ LinkedIn gościa: www.linkedin.com/in/jakubstrychowski/

➡ GitHub gościa: github.com/Neurpheus

Transkrypcja

Dziś moim gościem jest dr Jakub Stryhowski. Jakub pomoże nam oddzielić fakty od mitów związanych ze sztuczną inteligencją. Dzięki niemu spojrzymy na rynek IT okiem człowieka, który zjadł zęby na AI i wytwarzaniu oprogramowania, a obecnie pełni rolę CTO w firmie 3Qcode. Kubo, dziękuję, że przyjąłeś moje zaproszenie na rozmowę!

Dziękuję bardzo za zaproszenie. Bardzo mi miło, że mogę u Ciebie gościć i porozmawiać na tematy związane z AI.

Zacznijmy od Twojej historii. Czy możesz powiedzieć, co łączy Cię z branżą IT?

Tworzenie oprogramowania to moje hobby od dziecka, a zawodowo pracuję w tej branży już od prawie 30 lat. Pierwsze zlecenia jako programista brałem jeszcze w szkole średniej. Podczas studiów we Wrocławiu pracowałem w Techlandzie, gdzie rozwijałem programy tłumaczące i tam po raz pierwszy zetknąłem się z problemami przetwarzania języka naturalnego (NLP).

Po studiach brałem udział w projektach komercyjnych i badawczych, pełniąc role od programistycznych po analityczne. W pewnym momencie zrozumiałem, że mogę osiągnąć więcej, zarządzając ludźmi, więc poszedłem w tym kierunku, choć nigdy do końca nie porzuciłem kodowania. Pełniłem też rolę dyrektora IT, co świetnie pozwoliło mi zrozumieć projekty od strony biznesowej.

Zawsze uważałem, że największe wyzwania informatyczne wymagają technik AI, dlatego hobbystycznie trenowałem sieci neuronowe w zadaniach przetwarzania języka i eksternistycznie zrobiłem z tego doktorat. W 2009 roku obroniłem tezę, że sztuczne sieci neuronowe mogą zwiększyć jakość przetwarzania języka naturalnego. Pamiętam, że na konferencjach naukowych niektórzy zarzucali mi, że to tylko "zgadywacz" i tak się nie robi NLP. Cóż, chyba po latach wyszło na moje – dzisiaj te same osoby trenują sieci w polskich LLM-ach.

Obecnie całą tę wiedzę wykorzystuję we własnej spółce 3Qcode, świadczącej usługi rozwoju oprogramowania. Jako CTO, wraz ze wspólnikiem, eksplorujemy nowe trendy, takie jak Low-Code i AI, nie zapominając przy tym o tradycyjnym programowaniu. Zatrudniamy programistów o różnym poziomie kwalifikacji – dla nas liczą się przede wszystkim kompetencje i potencjał ludzi.

To niesamowite doświadczenie. Przejdźmy zatem do obecnej sytuacji. Dlaczego dzisiaj mamy tak wielką bańkę na AI, skoro pierwsze wzmianki o tej technologii, autorstwa Turinga czy McCarthy'ego, sięgają lat 50.?

To prawda, prace nad AI trwają od lat 50., ale to w ostatnich latach osiągnęliśmy technologiczny przełom. Historia sztucznej inteligencji pełna jest wzlotów i upadków – od maszyn logicznych, przez algorytmy decyzyjne, heurystyczne, pierwsze zastosowania NLP i wczesne sieci neuronowe, aż po maszyny szachowe i dzisiejszy Deep Learning czy LLM-y.

Obecna bańka jest uzasadniona tym, że AI realnie osiągnęło poziom ekspercki w wielu zadaniach i już zaczyna zmieniać gospodarkę. Każdy chce się załapać na te wzrosty, niekoniecznie trzeźwo oceniając szanse na zwrot z inwestycji. Warto zauważyć, że dzisiejsze subskrypcje często nie pokrywają jeszcze ogromnych kosztów utrzymania LLM-ów, a inwestorzy po prostu kupują przyszłość i udział w rynku.

Widzimy też ryzyko spirali inwestycyjnej – giganci ładują pieniądze w firmy AI, jednocześnie sprzedając im centra danych. NVIDIA jest tu świetnym przykładem, inwestując w startupy AI i zarabiając na sprzęcie dla nich, co wygląda trochę jak perpetuum mobile. Zdecydowanie są dziś wielkim wygranym, ale z czasem inni też dołączą do tego wyścigu. Niezależnie od sytuacji na giełdzie, AI przetrwa i będzie się rozwijać, w dużej mierze dzięki społeczności open-source. Myślę, że w dłuższej perspektywie AI trafi z wielkich centrów danych pod strzechy, podobnie jak kiedyś komputery klasy PC.

Często słyszy się zarzut, że LLM-y to "tylko" przewidywanie kolejnego słowa. Dlaczego w takim razie tak doskonale radzą sobie z kodowaniem?

Z tym przewidywaniem słowa to ogromne uproszczenie. Analogicznie można powiedzieć, że mózg to "tylko impulsy elektryczne", muzyka to "tylko drgania powietrza", a internet to "tylko zera i jedynki". Taka matematyczna definicja transformera jest prawdziwa, ale fizycy lubią uogólniać świat, co nie zawsze oddaje całą jego złożoność. Głęboka sieć neuronowa z miliardami parametrów to coś znacznie więcej niż prosta funkcja prognostyczna.

Prawdziwa magia dzieje się w wewnętrznych warstwach sieci. Tokeny są reprezentowane w wielowymiarowej przestrzeni wektorowej, co sprawia, że słowa mające ze sobą związki językowe lub pojęciowe znajdują się blisko siebie. W LLM-ach kluczowy jest też mechanizm uwagi (attention), który tworzy relacje między danymi. Sieć uczy się rozpoznawać związki semantyczne i tworzy bardzo skomplikowane wzorce logiki, a nie tylko uczy się rzeczy na pamięć.

W kontekście kodowania – języki programowania są po prostu znacznie prostsze i bardziej logiczne niż język naturalny, więc nic dziwnego, że LLM-y tak dobrze sobie z nimi radzą. Dużo gorzej idzie im zrozumienie całego systemu informatycznego czy szerszego otoczenia biznesowego.

A gdzie na tej mapie kończy się tradycyjne uczenie maszynowe (ML), a zaczyna Deep Learning w kontekście pisania kodu?

Starsze techniki ML, takie jak drzewa decyzyjne, systemy ekspertowe czy regresja, wciąż są bardzo intensywnie używane. Korzystamy z nich codziennie, na przykład przy rekomendacjach filmów, ocenie zdolności kredytowej, wykrywaniu spamu czy w diagnostyce medycznej.

Deep Learning to jednak zupełnie inna skala. Różni się tym, że do uczenia od zera wymaga gigantycznych centrów danych i ogromnych zbiorów informacji. Poza samą mocą obliczeniową i pochłanianą energią, "szlifowanie" takich modeli wymaga pracy setek ludzi do uczenia pod nadzorem. W przypadku programowania mamy gotowe potężne biblioteki dla Deep Learningu, takie jak PyTorch czy TensorFlow, ale to już infrastrukturalnie zupełnie inny ciężar gatunkowy niż proste klasyfikatory tekstowe.

Co w takim razie jest dzisiaj największym wąskim gardłem AI? Brak odpowiednich danych, moc obliczeniowa, czy sama architektura modeli?

W kontekście zastosowania biznesowego głównym problemem jest często brak danych do procesu fine-tuningu – i tutaj firmy mogą świetnie zarobić, oferując podłączenie zasobów organizacji do modeli. Problemem jest też moc obliczeniowa, bo dziś nie da się tanio uruchomić dużego LLM-a lokalnie. Architektura również ma swoje limity, chociażby w postaci okna kontekstowego, przez co sieć nie "pamięta" całego naszego kodu.

Jeśli natomiast spojrzymy na rozwój AI jako dziedziny, to brakuje nam danych z prawdziwego świata. Świat opisany w internecie i książkach bywa przerysowany, skupia się na trudnych tematach i nie odzwierciedla w stu procentach rzeczywistości. Modelom brakuje też interaktywnego uczenia w rozmowie z konkretnym człowiekiem na bieżąco – na razie modele wychodzą co kilka miesięcy jako zamknięte pakiety.

Skoro mowa o problemach – czym tak naprawdę są "halucynacje" w wygenerowanym kodzie i czy jesteśmy w stanie je całkowicie wyeliminować?

Halucynacje w kodzie są niestety powszechne. Czasem przez nie praca zwalnia, bo szybciej napisałbyś to sam, zerkając do dokumentacji, niż poprawiał po modelu. Model po prostu zachowuje się jak nieprzygotowany student na egzaminie – "szyje" odpowiedź, byle coś powiedzieć. Wynika to z tego, że w procesie uczenia był nagradzany za dostarczenie odpowiedzi, a nie za przyznanie się "nie wiem". Generuje kod tak, jak on sam zaprojektowałby dane API, a niekoniecznie tak, jak ono wygląda w rzeczywistości.

Całkowite ich wyeliminowanie jest raczej niemożliwe. Być może w przyszłości uda się zastosować rozwiązania, które będą sygnalizować poziom ufności modelu do wygenerowanej odpowiedzi. Na razie musimy po prostu łączyć modele z architekturą RAG (Retrieval-Augmented Generation) i przeszukiwać dokumentację.

Złota zasada jest jedna: zawsze testuj i rozumiej to, co wygeneruje AI. Sprawdzaj nazwy funkcji, upewnij się, że rozumiesz algorytm. A jeśli generuje kompletne bzdury, nie walcz z nim – po prostu napisz to sam, zaoszczędzisz czas.

Pojawia się też wątpliwość, czy AI w ogóle rozumie "dlaczego" coś budujemy, czy po prostu sprawnie zgaduje "jak" to napisać?

Samo z siebie AI nie zrozumie, "dlaczego" budujemy dany system. Może co najwyżej zgadywać na podstawie swoich wewnętrznych wzorców, co często prowadzi do błędnych założeń. Aby uzyskać świetne wyniki, musimy dostarczyć mu obszerny kontekst biznesowy i wyjaśnić nasze cele. Świetnym trickiem jest poproszenie AI na samym początku, aby to ono zadało nam pytania doprecyzowujące nasze potrzeby.

Wspomniałeś wcześniej o oknie kontekstowym, czyli "pamięci" podręcznej AI. Jak jego ograniczenia wpływają na pracę nad naprawdę dużymi, korporacyjnymi projektami?

To dziś jeden z zasadniczych problemów w dużych wdrożeniach. Z pustego i Salomon nie naleje – jeśli model nie ma dostępu do całej bazy wiedzy, będzie generował słabe wyniki. Z kolei większe okno kontekstu oznacza wolniejsze przetwarzanie, bo złożoność obliczeniowa drastycznie rośnie. W dużych korporacjach mamy setki zintegrowanych systemów i modułów, więc nie można dzisiaj tego w całości "wrzucić" do okna czatu.

Rozwiązaniem jest generowanie dobrej dokumentacji modułów (często też przy pomocy AI), stosowanie RAG, a w przypadku największych graczy – fine-tuning na własnych, firmowych modelach.

Czy to nie sprawi, że za kilka lat obudzimy się z gigantycznym długiem technicznym, wygenerowanym masowo przez sztuczną inteligencję?

To będzie zależało od ludzi. Będą programiści, którzy wygenerują ten dług i szybko zmienią pracę, i tacy, którzy będą ten dług eliminować, podnosząc swoje kompetencje na błędach innych.

Samo AI przy odpowiednim użyciu może nam pomóc usuwać stary dług – na przykład automatycznie upgradować biblioteki czy wyłapywać luki bezpieczeństwa. Prawdziwym problemem może być sytuacja, w której AI nie potrafi naprawić "swojego" kodu, a programista, który bezmyślnie go przekleił, w ogóle go nie rozumie. Ale to nie tyle problem samej technologii, co braku wiedzy w zespole.

Zastanawiam się, czego AI nadal nie potrafi i pewnie nie nauczy się przez najbliższe dziesięć lat?

Z powodów czysto kosztowych, AI szybko nie nauczy się trenowania na bieżąco, by ewoluować sekunda po sekundzie wraz z wymaganiami klienta. AI nie zrozumie w pełni niuansów procesów biznesowych i niejawnych międzyludzkich zależności w firmach – a wiemy, że procedury na papierze to jedno, a biurowa polityka to drugie. Nie weźmie też odpowiedzialności za swoje decyzje projektowe i będzie brakowało mu tego bezpośredniego, operacyjnego feedbacku z prawdziwego świata. I, co dla biznesu kluczowe, AI nadal nie podpisuje ofert i umów.

Słyszymy głosy, że AI całkowicie zastąpi programistów. Czy do tego konieczne jest osiągnięcie tzw. AGI (sztucznej inteligencji ogólnej)?

Na ten moment AI potężnie zwiększa efektywność pojedynczego programisty, co oznacza, że mniejszy zespół może dowieźć ten sam projekt. Z drugiej strony, ten zaoszczędzony czas często idzie w poprawę jakości – programiści mają w końcu czas na pisanie porządnych testów i dokumentacji. Spadek kosztów wytwarzania sprawia też, że na systemy IT mogą pozwolić sobie mniejsze firmy, co nakręca zapotrzebowanie na ludzi potrafiących korzystać z AI.

Zastąpienie programisty w pełni wymagałoby interaktywnego agenta – kogoś w roli analityka biznesowego, kto pójdzie do klienta, poprowadzi warsztaty, wyciągnie z niego wymagania i rozpisze architekturę. A klienci na ogół nie chcą dyskutować o swoich rozmytych potrzebach z maszyną.

To kiedy klient o zerowej wiedzy technicznej sam "wypromptuje" sobie działającą aplikację? I jak to się ma do platform Low-Code, o których wspomniałeś na początku?

Trudno przewidzieć konkretny moment, ale jako prototyp (Proof of Concept) takie rzeczy można tworzyć już dzisiaj. Nikt rozsądny nie wpuści jednak tego na produkcję bez sprawdzenia przez specjalistów.

Natomiast w 3Qcode mocno działamy na platformach Low-Code/No-Code. Pozwalają one na bardzo szybkie budowanie aplikacji np. przez analityków, a nacisk na wsparcie AI w tych narzędziach jest gigantyczny. Ostatecznym problemem i tak pozostaje fakt, że klient rzadko potrafi precyzyjnie sformułować swoje wymagania.

Wiele osób obawia się, co stanie się z Juniorami. Skoro AI rozwiązuje proste zadania, czy Juniorzy w ogóle będą potrzebni? Przecież bez nich nie będzie kiedyś Seniorów.

Popularne jest powiedzenie: "Firma, która nie szkoli juniorów, szkoli konkurencję". Juniorzy to nasza przyszłość, a dzięki sztucznej inteligencji mogą po prostu stać się pełnoprawnymi Midami czy Seniorami znacznie szybciej. Oczywiście, muszą z tych narzędzi umiejętnie korzystać, by faktycznie poszerzać swoją wiedzę, a nie tylko kopiować.

Pamiętajmy, że zawody w historii znikały i ewoluowały. Kiedyś był maszynista parowozu czy człowiek pełniący funkcję "komputera" obliczeniowego. Rola w IT ulegnie zmianie, ale zawsze będziemy potrzebować pojętnych ludzi, którzy potrafią nadążyć za nową technologią. Zastępowanie całych struktur przez korporacje tnące koszty może być bardzo ryzykowne społecznie i gospodarczo.

A co z programistami specjalizującymi się wyłącznie w No-Code i Low-Code? Są zagrożeni, czy wręcz przeciwnie?

Są w bardzo dobrej pozycji. Platformy Low-Code działają na znacznie wyższym poziomie abstrakcji, więc dużo prościej integruje się tam rozwiązania AI. Taki programista będzie ewoluował w kierunku Inżyniera czy Analityka Low-Code – osoby, która w bezpośredniej rozmowie z biznesem potrafi błyskawicznie "wyklikać" i ułożyć rozwiązanie. Dla klientów to często dużo tańsza opcja.

Na koniec zapytam o nasze rodzime podwórko. Jak wygląda obecnie rozwój sztucznej inteligencji w Polsce?

Na poziomie naukowym Polacy radzą sobie rewelacyjnie, m.in. z uwagi na trudną specyfikę naszego języka. Ponieważ w Polsce brakuje silnych firm typowo badawczych, nasi najzdolniejsi ludzie realizują się w globalnych korporacjach. Wojciech Zaręba współtworzył OpenAI, a Jakub Pachocki, zresztą pochodzący z Gdyni, jest tam głównym naukowcem i tworzył GPT-4. Mamy też Piotra Dollara w Meta, czy Tomasza Czajkę, który pracował nad algorytmami dla SpaceX.

W Polsce w badania i rozwój inwestuje się wciąż za mało, z chlubnym wyjątkiem gamedevu, no i pewnych inicjatyw wojskowych. Brakuje mocnego wsparcia dla świetnych oddolnych inicjatyw, takich jak projekt Bielik czy PLLuM. Bielik jest świetnym modelem do pracy z językiem polskim, a przy tym bardzo tanim w obsłudze – można go uruchomić on-premises nawet na standardowej karcie graficznej. To daje gigantyczny potencjał dla polskich firm.

Kubo, gdzie słuchacze mogą Cię znaleźć w sieci, jeśli będą mieli pytania?

Nie ukrywam, że nie jestem typem influencera, na co dzień pochłaniają mnie projekty i praca. Najlepiej złapać mnie po prostu na LinkedInie: pod adresem linkedin.com/in/jakubstrychowski. Zapraszam do kontaktu.

Bardzo Ci dziękuję za ogromną dawkę wiedzy i trzeźwe spojrzenie na ten dynamiczny rynek.

Dziękuję i pozdrawiam wszystkich słuchaczy!

Mentoring to efektywna nauka pod okiem doświadczonej osoby, która:

  • przekazuje Ci swoją wiedzę i nadzoruje Twoje postępy w zdobywaniu umiejętności,
  • uczy Cię dobrych praktyk i wyłapuje złe nawyki,
  • wspiera Twój rozwój i zwiększa zaangażowanie w naukę.

Chcesz zostać (lepszym) programistą i lepiej zarabiać? 

🚀 Porozmawiajmy o nauce programowania, poszukiwaniu pracy, o rozwoju kariery lub przyszłości branży IT!

Umów się na ✅ bezpłatną i niezobowiązującą rozmowę ze mną.

Chętnie porozmawiam o Twojej przyszłości i pomogę Ci osiągnąć Twoje cele! 🎯