Jak AI zmienia świat pracy inżyniera – rozmowa z Kacprem Kalińskim

Jakub NorkiewiczJakub Norkiewicz
03/10/2024 13:5610 min czytania

Poznaj doświadczenia Kacpra Kalińskiego, inżyniera oprogramowania, który opowiada o tym, jak AI zmienia sposób pracy, oszczędza czas i rozwiązuje wyzwania w projektach.

Featured image

Rozmowy z gośćmi – Kacper Kaliński

Kacper Kaliński to jeden z naszych stałych bywalców na serwerze horyzont.ai na Discordzie, gdzie zyskał status naszego eksperta od AI. Na co dzień pracuje jako inżynier oprogramowania i ma ogromne doświadczenie w tworzeniu projektów związanych ze sztuczną inteligencją. Oprócz tego jest prawdziwym entuzjastą technologii, który zawsze chętnie dzieli się swoją wiedzą. Jeśli chcesz dowiedzieć się więcej o tym, jak pracuje z AI i jakie narzędzia najbardziej go fascynują, zapraszam do przeczytania krótkiego wywiadu z Kacprem!

Opowiedz proszę krótko o sobie, czym się zajmujesz, jaki projekt tworzysz?

Jestem inżynierem oprogramowania z zamiłowania. Pracuję od ponad 7 lat w Miquido, polskim software house – w skrócie: firma pisząca programy na zamówienie. Dzięki temu się nie nudzę, bo realizuję zróżnicowane projekty w różnych branżach. Aktualnie pracuję w dziale AI, który cieszy się obecnie sporym zainteresowaniem. Pracowałem już przy chatbotach, bazach wiedzy, ekstrakcji danych, generowaniu treści – spory przekrój zastosowań AI. Ponadto jestem autorem biblioteki programistycznej, która przyspiesza i ułatwia budowanie aplikacji opartych na generatywnej sztucznej inteligencji. Hobbystycznie zajmuję się też projektowaniem gier, co w ostatnim czasie, dzięki możliwości redagowania tekstów czy generowania grafik z użyciem AI, staje się dużo łatwiejsze.

Jakie konkretnie narzędzia i technologie AI wykorzystujesz w swojej pracy?

Ja sam korzystam w zasadzie tylko z Claude chat. Używam go głównie jako narzędzia do brainstormingu, redakcji tekstu (w tym promptów), czasem jako słownik, sporadycznie do code review czy tworzenia kodu. Natomiast jeśli chodzi o to, z czego buduję aplikacje, to tu znajduje się już więcej elementów. Korzystam z API OpenAI, Anthropic, Mistral, Google, sprawdzam też modele lokalnie przy użyciu Ollama. Tu lista modeli robi się naprawdę długa, chcąc być na bieżąco, staram się sprawdzać możliwości ciekawych i dobrze rokujących nowości. Buduję też narzędzia na potrzeby realizowanych projektów.

Ile czasu mniej więcej jesteś w stanie zaoszczędzić dzięki zastosowaniu tych narzędzi?

To trudne pytanie, nie używam narzędzi, które same za mnie piszą kod czy generują treści (z wyjątkiem grafik na potrzeby hobbystyczne). Brainstorming czy code review ciężko określić w kategoriach oszczędności – to raczej poprawa jakości. Powiedziałbym, że w tej kategorii szewc bez butów chodzi. Jest natomiast jeden element projektów, który zaoszczędza sporo czasu – ewaluatory. Chcąc zweryfikować, czy model AI działa tak, jakbyśmy chcieli, trzeba napisać prompt i… testować. Trwa to długo, a po każdej modyfikacji trzeba wszystko sprawdzić jeszcze raz (nie wiadomo, czy czegoś nie popsuliśmy). Tu automatyzacja, w szczególności przez samą AI, jest nieoceniona i oszczędza czasem całe dni.

Jakie są największe wyzwania, z którymi spotkałeś się przy implementacji AI w swoich projektach?

Generatywna AI to „maszynka losująca”, daje bardzo imponujące wyniki, ale jednak opiera się na prawdopodobieństwach i zawiera element losowy. Najtrudniejszym wyzwaniem dla mnie jako programisty jest niemożność udowodnienia, że program działa. Pisząc zwykłe programy, mamy różne możliwości weryfikacji poprawności czy ich odporności na błędy. Przy AI, dwa użycia jedno po drugim generują już różne wyniki, czasem nawet jeden jest poprawny, a drugi nie. Sporo czasu zajęło mi zrozumienie, jak się tym posługiwać i jak poruszać się w świecie, który, w przeciwieństwie do typowego programowania, nie jest deterministyczny i trudno sprawdzić, czy w ogóle działa. Tu z pomocą przychodzą wspomniane już ewaluatory. Jest to temat aktualnie bardzo mocno eksplorowany i dynamicznie rozwijający się, ale też bardzo potrzebny.

Jakie algorytmy lub metody AI uważasz za najbardziej efektywne w kontekście swoich projektów?

O algorytmach ciężko mówić, gdy spora część aplikacji to wywołanie modelu AI. Jeśli chodzi o metody, to jest kilka enigmatycznych nazw, które kryją często dość powszechnie stosowane techniki. RAG – to w uproszczeniu dostarczanie kontekstowych informacji modelowi, żeby otrzymać lepsze wyniki. Mogą to być artykuły i inne treści, ale mogą to być też proste rzeczy, jak aktualna godzina. Następnym istotnym elementem, zyskującym teraz popularność po ostatniej premierze OpenAI, jest CoT – metoda, która pozwala modelom wygenerować dodatkowe treści w celu poprawy wyników. Niektórzy nazywają to „myśleniem”, ja wolę określenie, że model musi się „wygadać”. To bardzo ciekawy aspekt działania modeli generatywnych i, wbrew pozorom, obie te techniki mają ze sobą dużo wspólnego. Obie te techniki wydają się być obecnym standardem i trudno jest skutecznie realizować projekty bez nich.

Czy widzisz jakieś konkretne ograniczenia obecnych modeli generatywnych, które utrudniają rozwój aplikacji opartych na AI? Jakie obszary wymagają, według Ciebie, największych ulepszeń?

Generatywna sztuczna inteligencja na pewno jest przełomem i ma ogromne możliwości, ale ma też mnóstwo ograniczeń. Przede wszystkim – nadal odkrywamy, jak jej używać i w czym dobrze się sprawdza. To spore ograniczenie, bo często nawet sami autorzy modeli nie są w pełni świadomi ich możliwości i zagrożeń. To nie jest kolejna aplikacja czy urządzenie, którego każdy element został zaprojektowany i zbudowany przez twórców, którzy wiedzą, co potrafi, a czego nie. Generatywna AI to taka trochę czarna skrzynka (choć nie do końca, bo mamy wgląd, co tam się dzieje i są metody analizowania tego), której możliwości poznajemy dopiero w praktyce. Media wieściły już niejednokrotnie zastępowanie pracowników czy artystów sztuczną inteligencją, jednak wygląda na to, że kolejnym istotnym problemem jest ograniczona możliwość rozumowania i tworzenia. Choć ten aspekt jest obecnie mocno rozwijany, to w wielu dziedzinach AI radzi sobie świetnie z problemami i tworzeniem treści, jednak nadal nie „rozumie” wielu zależności naszego świata i nie potrafi łączyć faktów. Za to niesamowicie dobrze radzi sobie z odtwarzaniem znanych już jej informacji. To taka maszyna losująca do permutacji – ze znanych sobie elementów kreuje nowe, ale w ramach swojego zbioru informacji. Czy rozwiąże wielkie problemy naukowe? Pewnie nie, o ile ich rozwiązania nie istnieją już ukryte przed naszym wzrokiem. W obecnej formie widzę ją jako narzędzie do usprawniania pracy i kreatywności, nie całkowitego przejmowania jej, choć niewątpliwie niektóre zawody mogą przez nią stać się mniej potrzebne lub wymagać mniejszego zaangażowania osób. Czego mi najbardziej brakuje? Czasu, żeby sprawdzić wszystkie nowości, bo tempo rozwoju jest naprawdę imponujące.

Jakie technologie lub narzędzia planujesz wdrożyć w przyszłości, aby jeszcze bardziej usprawnić swoją pracę nad projektami AI?

Odpowiem, trochę zahaczając o ograniczenia – obecnie używam chatu jako głównego interfejsu do interakcji z AI. Nie jest to idealne rozwiązanie i ma sporo ograniczeń, zwłaszcza w moich zastosowaniach. Chętnie skorzystałbym (a nawet zbudował, jeśli tylko znajdę czas) z jakiegoś interfejsu bardziej adekwatnego do projektowania i brainstormingu. Na razie nie znam takiego i radzę sobie z chatem, jak się da (i umiem). Z niecierpliwością czekam też na kolejną generację modeli AI, dającą możliwość pracy wielomodalnej, tj. generującej nie tylko tekst, ale i np. obraz w ramach tego samego modelu. Oczywiście można do pewnego stopnia już teraz coś takiego osiągnąć, ale tylko poprzez sklejanie wyników z różnych modeli. Taki model umiejący i rozumiejący wszystko naraz to byłoby coś!

Jakie znaczenie ma dla Ciebie etyka w pracy z AI, szczególnie w kontekście generowania treści czy tworzenia chatbotów? Czy napotkałeś sytuacje, które zmusiły Cię do przemyślenia zasad etycznych?

To ciekawe pytanie, zwłaszcza na fali hype’u, który aktualnie można spotkać w wielu środowiskach zainteresowanych tą technologią. Mam wrażenie, że mało kto się nad tym zastanawia, dopóki ktoś nie wynajmie działu prawników ?. Duże firmy tworzące modele AI na wszystkie strony odmieniają etykę, poszanowanie prawa itp. Nie ma co jednak mieć złudzeń – robią to, co im się opłaca, a wiele aspektów prawnych jest nadal dość mglistych lub nieuregulowanych. Czy powinniśmy się zgodzić na bezpłatne używanie naszych danych? Nie ma łatwej odpowiedzi. Duże firmy i tak je już mają (a jeśli nie, to pewnie i tak po nie sięgną), małe bez tych danych nigdy nie będą konkurencyjne. Myślę, że potrzebna jest społeczna dyskusja, co może być używane do uczenia modeli, a co nie, gdzie generowane treści są dozwolone, a gdzie nie (nie wyobrażam sobie np. startować w konkursie fotograficznym, używając wygenerowanej grafiki). To wszystko trudne tematy, wymagające ogromnej wiedzy technicznej i prawnej. Dodatkowo trudne do realnego zaistnienia – sporo osób nadal nie wie, czym tak naprawdę jest AI i jak działa. Z drugiej strony pojawia się mnóstwo tematów związanych z tym, jak ludzie korzystają z internetu oraz jakie informacje uznają za prawdziwe. Generatywna sztuczna inteligencja pozwala na generowanie dowolnych treści i szybkie rozprzestrzenianie ich. Ludzie już wcześniej nie radzili sobie z dezinformacją, a to, co nas czeka, wygląda pod tym względem dość strasznie. Myślę, że można, a nawet trzeba tę technologię rozważać w kategoriach militarnych i społecznych. Ten problem już mamy, będzie tylko większy i trzeba zacząć się nim zajmować, żeby nie obudzić się za późno z ogromnym problemem.

Jakie rady dałbyś innym inżynierom oprogramowania, którzy chcą zacząć pracować z generatywną AI, ale nie wiedzą, od czego zacząć? Jakie kroki powinni podjąć, by skutecznie wdrożyć się w ten obszar?

Myślę, że rada jest tylko jedna – zacząć używać. Najlepiej w domenie, którą dobrze znamy i potrafimy weryfikować, czy to, co AI nam zaserwuje, jest poprawne. ChatGPT czy Claude są dostępne w darmowych wersjach, można też używać modeli uruchamianych na własnym sprzęcie, a nawet znaleźć dostawców API z darmowymi limitami. Dostępność nie jest problemem, trzeba jednak sporo praktyki, i to świadomej, żeby poznać ograniczenia i wiedzieć, gdzie lepiej AI nie używać, a gdzie lepiej sprawdzić jej wyniki. Na pewno trudno jest zweryfikować coś, w czym sami nie jesteśmy dobrzy, dlatego stosowałbym metodę ograniczonego zaufania, w szczególności co do generowanego kodu. Niemniej jednak może to być świetne narzędzie do nauki, jeśli poprosimy o code review czy wytłumaczenie jakiegoś fragmentu kodu. Wystarczy skopiować jakiś fragment kodu i napisać „wytłumacz, o co chodzi”. Myślę, że to dobry i w miarę bezpieczny start, w którym sami się rozwijamy i poprawiamy jakość naszej pracy, unikając ślepego akceptowania treści, które tylko dostaniemy w podpowiedzi. Wygenerowanie naszej pracy 10 razy szybciej jest kuszące, ale to prosta droga, żeby przestać rozumieć to, pod czym potem się podpisujemy i przestać się rozwijać.

Co według Ciebie stoi na przeszkodzie, by Polska stała się centrum innowacji w dziedzinie AI? Czy to kwestia finansowania, braku odpowiedniej infrastruktury, czy może braku współpracy między biznesem a akademią?

To trudne pytanie, na pewno niskie budżety zarówno w biznesie, jak i na uczelniach powodują, że wiele projektów związanych z LLM będzie poza naszym zasięgiem. Mówiąc „niskie”, mam na myśli koszty stworzenia np. Llama 3 przez Meta – to ogromne koszta, a mówimy tu tylko o wytrenowaniu modelu. O współpracy biznesu i uczelni można by rozmawiać długo, ale nasz system edukacji, na ile wiem, raczej nie sprzyja innowacyjności. Finalnie, trzeba być jednak patriotą, bo stawki u najlepszych graczy na rynku są bez porównania wyższe niż u nas w kraju, a i budżety na rozwój wielokrotnie większe. Jedyne, czego nam nie brakuje, to ludzie, którzy byliby w stanie działać.

Czy Polska jest gotowa na rewolucję AI? Jakie kroki powinniśmy podjąć jako społeczeństwo, żeby lepiej przygotować się na nadchodzące zmiany, zarówno te pozytywne, jak i te budzące obawy?

Polska gotowa nie jest, ale myślę, że nie tylko Polska. Wiele wskazuje na to, że stoimy u progu niemałej rewolucji. W niektórych dziedzinach już zaczynamy widzieć skutki tych wszystkich nowości, w innych przyjdzie nam jeszcze poczekać, ale jedno jest pewne – wiele dziedzin powiązanych z przetwarzaniem informacji zmieni się w najbliższym czasie. Trudno się na to przygotować, zwłaszcza gdy największe firmy tworzące modele sztucznej inteligencji serwują nam duże skoki jakościowe co kilka miesięcy, przesuwając granice tego, co możliwe. Trzeba mieć jednak na uwadze to, że wiele osób zupełnie nie jest świadomych dziejących się właśnie przemian. To zaś może zrodzić okoliczności, w których małe firmy mają okazję wybić się, a te duże, które przegapią lub nie zauważą zmian, może czekać niemiła niespodzianka. Czy to już całkiem rewolucja? Czy czekają nas jakieś większe zmiany na rynku? Tego nie wiem, ale jest tu spory potencjał, który można zagospodarować i warto by było dostać kawałek tego tortu. Muszę przy tej okazji wspomnieć jeszcze o jednym istotnym aspekcie – mediach społecznościowych i środkach masowego przekazu. Już dotychczas wiele osób nie radziło sobie z rozróżnianiem informacji prawdziwych od nieprawdziwych. O ile preparowanie materiałów czy próba wpływania na opinię publiczną wymagała pewnych środków, by być skuteczną, o tyle teraz staje się wręcz trywialna. Wojna informacyjna będzie coraz bardziej palącym problemem i myślę, że jeszcze dużo czasu upłynie, zanim nauczymy się radzić sobie w tym coraz bardziej nieprzyjaznym środowisku informacyjnym.