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

⛔ Potrzebujesz wsparcia? Oceny CV? A może Code Review? ✅ Dołącz do naszej społeczności na Discordzie!

Narzędzia AI w pracy programisty: ChatGPT, GitHub Copilot, Midjourney i inne – część 2

Jak ułatwić i przyspieszyć sobie pracę

Karol Horosin, Software Engineering Manager, bloger oraz founder w sentimatic.io mówi m.in. o wyzwaniach, jakie czekają programistów w związku z rozwojem sztucznej inteligencji, wykorzystaniu narzędzi w konkretnych przypadkach oraz możliwych zmianach na rynku pracy. Poruszamy też temat trendów w AI i przyszłości programistów (w tym juniorów).

Chcesz najpierw odsłuchać pierwszą część? Zapraszam: „Narzędzia AI w pracy programisty: ChatGPT, GitHub Copilot, Midjourney i inne – część 1”.

Poruszane tematy

AI tworzące od podstaw całą aplikację
Mówiliśmy teraz o pomocy sztucznej inteligencji w poszczególnych zadaniach. A czy AI może zbudować nam cały program?

Bezpieczeństwo aplikacji w dobie rozwoju sztucznej inteligencji
Jak wykorzystanie AI ma się do bezpieczeństwa aplikacji?

Wyzwania dla programistów związane z rozwojem narzędzi AI
Z czym programistom przyjdzie się mierzyć w najbliższym czasie w związku z tak dynamicznym rozwojem narzędzi AI? Powiedzmy też o juniorach – czy będzie im łatwiej, czy trudniej. A może juniorzy znikną?

Czego nie delegujemy narzędziom AI
Jakich elementów naszej pracy lub umiejętności nie da się „delegować” narzędziom? Może warto rozwijać się na tych polach, aby być bardziej konkurencyjnym na przyszłym rynku pracy?

Budowanie marki osobistej przy użyciu sztucznej inteligencji
Jak wykorzystać sztuczną inteligencję do budowania marki osobistej albo marki nowego produktu, np. aplikacji? W jaki sposób te narzędzia ułatwią i przyśpieszą nam pracę?

Narzędzia AI, których warto spróbować
Z jakich narzędzi AI Ty korzystasz? Jak zmieniły one Twój sposób pracy? Może chciałbyś polecić jakieś zastosowanie, które świetnie się u Ciebie sprawdza?

Narzędzia AI lokalnie, czyli sztuczna inteligencja na naszym komputerze
Narzędzia AI kojarzą nam się teraz głównie z dostępem online i subskrypcją, ale pewnie są też narzędzia, które możemy uruchomić lokalnie, lub zrobić coś niestandardowo, prawda?

Koszt inwestycji w narzędzia AI
Ile to wszystko kosztuje? Czy ta inwestycja się zwraca?

Optymalizacja doboru narzędzi AI
Jak optymalizować dobór narzędzi? Niektóre z nich są tak rozbudowane, że ich funkcje mogą się powielać. Trochę szkoda płacić za kombajny, gdy można mieć kilka małych narzędzi do zadań specjalnych. Jak do tego podchodzisz?

Zatrudnienie w IT a sztuczna inteligencja
Co polecasz osobom, które w najbliższym czasie będą szukać zatrudnienia w IT? A może sztuczna inteligencja nie jest jeszcze tak popularna w większości firm i nie trzeba się spieszyć ze zdobywaniem nowych kompetencji?

Źródła wiedzy o AI
Jaką książkę polecisz osobie, która chce wdrożyć w swojej pracy narzędzia AI?

Karol Horosin – kontakt
Gdzie możemy Cię znaleźć w sieci?

Polecane źródła wiedzy o AI

➡ Andrej Karpathy: twitter.com/karpathy

➡ Sam Altman: twitter.com/sama

Kontakt do gościa

➡ Twitter: twitter.com/horosin

➡ LinkedIn: linkedin.com/in/horosin

➡ Strona: horosin.com

Transkrypcja

Jest to druga i zarazem ostatnia część rozmowy o wykorzystaniu narzędzi w pracy programisty. Moim gościem jest Karol Horosin, Software Engineering Manager, bloger oraz founder w sentimatic.io. W poprzednim odcinku rozmawialiśmy m.in. o wykorzystaniu ChatGPT czy GitHub Copilota w tworzeniu kodu, dokumentacji oraz testów. Poruszyliśmy również temat generowania grafik przez sztuczną inteligencję.

No dobrze. To teraz pytanie o programistów: czy mogą spać spokojnie? Czy sztuczna inteligencja jest w stanie wygenerować cały kod? Powiedzieliśmy o części elementów i w zasadzie wychodziło na to, że możemy. To pytanie: czy możemy wygenerować też cały program?

W tej chwili nie ma żadnego narzędzia, gdzie wejdziemy sobie na stronę internetową i powiemy: „zrób mi w Reakcie aplikację, która robi to, to i to. Chociaż są pewne demonstracje. Nie wiem, może szukałeś, może na coś się natknąłeś, ale nie znam nikogo, kto korzysta z takiego narzędzia na produkcji i używa tego w codziennej pracy. Możemy poprosić ChatGPT o wygenerowanie prostej aplikacji i wtedy dostaniemy listę plików. Możemy poprosić o wygenerowanie tych wszystkich plików. Ewentualnie dostaniemy je jeden pod drugim i możemy je przekopiować.

Tylko, tak jak rozmawialiśmy wcześniej, ta długość kontekstu, na który może patrzeć i który może generować ChatGPT, jest ograniczona, więc nie wygenerujemy całego wielkiego projektu. Możemy poprosić ChatGPT o pociągnięcie całego procesu tworzenia takiej aplikacji, tylko wciąż potrzebujemy nas jako wykonawców.

Ktoś musi tworzyć te pliki, ktoś musi kopiować tamten tekst, więc tak to możemy zastosować. Ja bym zalecał zrobić coś takiego: jeśli chcemy testowo zrobić cały projekt, opiszmy projekt i najpierw poprośmy: „zrób plan stworzenia takiego projektu, gdybyś był programistą”. Dostaniemy kroki, które trzeba wykonać, oraz pliki, które trzeba stworzyć. Następnie dopytujemy o kolejne kroki w tworzeniu takiej aplikacji. Myślę, że jesteśmy w stanie zajść bardzo daleko. Dla mnie to nie jest idealne, bo nie lubię kopiować zbyt wielu rzeczy.

Myślę, że takie narzędzia się pojawią i jeśli jesteśmy zainteresowani, możemy już takie narzędzie stworzyć samemu. Są biblioteki w JavaScripcie. W Pythonie taką najpopularniejszą, jaka istnieje, jest LangChain do skryptowania tego, co mają robić duże modele językowe. Za pomocą takiej biblioteki możemy powiedzieć modelowi językowemu, że może tworzyć pliki, jeśli użyje takiej komendy, i może wkładać do nich preset, jeśli użyje innej komendy. Może też odpalać ten projekt, jeśli skorzysta z tej komendy. Dajemy AI tak naprawdę dostęp do naszej konsoli. Jeśli coś takiego zrobimy możemy zajść daleko w stworzeniu programu. Ale wciąż to ograniczenie w pamięci krótkoterminowej modelu, czyli w kontekście, sprawia, że nie dostaniemy całego w pełni działającego projektu.

Zdaję sobie jednak sprawę, że te ograniczenia, które tutaj rysuję, są raczej inżynieryjne. To są ograniczenia w spięciu tych wszystkich narzędzi ze sobą. Pewnie więc niedługo dostaniemy narzędzia, które są w stanie pracować na całych projektach czy opisywać całe projekty, czy generować całe projekty. Jestem ciekawy, jak dobre będą kawałki funkcjonalności, ale myślę, że jesteśmy jeszcze daleko co do AI zastępującego zespół programistów, designerów i innych.

Jeśli ktoś jest zainteresowany takimi agentami, czyli samodziałającymi modelami językowymi, to jest np. coś takiego jak AutoGPT czy inne inicjatywy, które odpalają modele językowe w pętli. Proszą je, żeby kontynuowały pracę. Takie zapytanie do modelu zaczyna się od „zrób plan”. I kolejne zapytania to są: „Zrób punkt pierwszy z tego planu. Sprawdź to, co zrobiłeś. Czy jesteś zadowolony z tego, co zrobiłeś? Czy jesteś w stanie poprawić to w jakiś sposób? Czy jesteś gotowy do przejścia do kolejnego punktu?”. Są takie inicjatywy, są takie projekty. Jeszcze tak naprawdę nie wiemy, jak dobre efekty możemy uzyskać z takich silników.

Jak zacząłeś opowiadać o tym, że wystarczy dać sztucznej inteligencji dostęp do niektórych narzędzi (akurat to wspominałeś pewnie o terminalu), to tak sobie pomyślałem: na ile tak to będzie wyglądać, jeżeli wymyślimy interfejs do naszego umysłu? Co za problem przekazać możliwość sterowania naszym umysłem albo rękami i nogami właśnie takiej sztucznej inteligencji?

Może to się wydawać dziwne i bardzo odległe, ale jak tak o tym mówiłeś, to wcale nie wydawało mi się to jakoś bardzo daleko.

Już książki sprawdziły te pomysły za nas i być może kiedyś będziesz mógł powiedzieć do swojego wewnętrznego ChatGPT: „Chcę posłuchać podcastu. Czy możesz za mnie umyć naczynia moimi rękoma?”. I on to za Ciebie zrobi. Mycie patelni jest zdecydowanie czymś, czego nie jestem fanem, ale robię to codziennie, bo kocham jajecznicę. Wolałbym jednak, żeby rękami czasem sterował ktoś inny w tym momencie.

„ChatGPT, włącz tryb turbo”.

Tak, i od razu te wszystkie prace domowe idą szybciej.

Tak jest. OK, to zejdźmy trochę na ziemię.

 

Pytanie do Ciebie jako do specjalisty: jak wykorzystać AI w celu zabezpieczenia swojej aplikacji albo ogólnie bezpieczeństwa aplikacji?

Zabezpieczenie aplikacji to też testy, które mają na celu znalezienie dziury, jeśli mówimy o etycznych zastosowaniach. Ale ja myślę, że samo wykorzystanie modeli językowych do sprawdzania błędów ma duży potencjał. Myślę, że możemy, jeśli chcemy tworzyć lepsze aplikacje, brać kawałki kodu, które są newralgiczne i które mogą sprawić potencjalne problemy, i pytać ChatGPT o review takiego kodu pod kątem bezpieczeństwa. ChatGPT widział bardzo dużo kawałków kodu. Wie, co zostało przewidziane w podobnych implementacjach. Widział schematy, więc może nam wskazać błędy, które najczęściej występują, błędy, których nie zauważyliśmy.

Jest też oczywiście, tak jak mówiliśmy, testowanie kodu. Myślę, że jest pewna wartość w wygenerowanych przez AI testach. Ale jest też cała druga strona, ponieważ my możemy wziąć nasz kawałek kodu i zapytać ChatGPT lub inny model językowy o to, jakie są dziury w tym kodzie. Tak samo ktoś, kto ma złe zamiary, może wziąć open-source’owy projekt, z którego korzysta wiele osób, i zapytać, jakie są dziury w tym kodzie i jak może je wykorzystać, żeby uzyskać kontrolę nad kimś używającym tego oprogramowania. Mamy więc swego rodzaju sytuację, w której obydwie strony mogą na tym skorzystać. I pytanie, która skorzysta pierwsza.

Poza tym jest jeszcze inne zagrożenie. Nie wiem, czy kojarzysz: był taki cały krytykowany movement. Mówiło się na to script kiddies, czyli ludzie, którzy kopiują skrypty z internetu, żeby atakować jakieś krytyczne elementy infrastruktury. Wystarczyło czasem skopiować mały kod wirusa albo kod, który wykorzystuje jakiś błąd w implementacji interfejsów sieciowych, i można było dostać dostęp do naprawdę wielu systemów. AI pełni teraz podobną funkcję. Możemy zapytać ChatGPT, jak złamać jakieś zabezpieczenia czy jak uzyskać dostęp do czyjegoś konta – co oczywiście zwykle nie jest możliwe bez phishingu, podstawiania formularzy, gdzie sami się podzielimy swoim hasłem.

Są jednak ludzie, którzy korzystają z ChatGPT choćby do pisania botów, które kupią za nich karty graficzne albo będą licytować za nich buty, które potem sprzedadzą dziesięć razy drożej. Jest to więc taka dziura, gdzie daliśmy wielu osobom, które wcześniej nie umiały za dobrze programować, możliwość wygenerowania kodu, który działa i który będzie bardzo uciążliwy dla wielu firm.

Myślę też, że przez to, że mamy dobre modele językowe będące w stanie generować content, który przypomina ludzi, atakujący mogą tworzyć boty tak przypominające w swoim zachowaniu na stronach internetowych ludzi, że będą bardzo ciężkie do odróżnienia przez systemy obronne.

Tak jak mówisz, Google próbuje wykluczać blogi, które są pisane przez AI. Ale ja jestem pewien, że są teksty, których nie są w stanie odróżnić, bo tekst ma ograniczoną liczbę sposobów, na jakie możemy powiedzieć pewne rzeczy. Nie wszystkie będą brzmiały jak AI. Można też ulepszyć AI, żeby brzmiało coraz bardziej naturalnie.

No i tak samo, jeśli będziemy mieli użytkowników, którzy będą szukali dziur w stronach internetowych, ale przy okazji będą komentowali, postowali i tworzyli content, który wygląda zupełnie autentycznie, to takiego użytkownika będzie bardzo ciężko rozwiązać.

Poza tym są też kwestie tych wszystkich mutujących ataków AI i jest trend, który działa w drugą stronę, czyli defensywne AI. Myślę, że będziemy mieli do czynienia z nowym wyścigiem zbrojeń w tej branży. I ja osobiście się cieszę, bo pracując w firmie, która dostarcza takie rozwiązania, mamy cały wachlarz nowych funkcjonalności, które możemy zaimplementować, i nowych miejsc, gdzie będziemy przydatni.

Ostatnim aspektem, który tu widzę i o którym rozmawiałem z wieloma osobami w branży, jest coś takiego jak prompt injection. Modele językowe są wkładane w coraz to więcej miejsc. Mamy wyszukiwarki Bing, mamy Barda od Google’a, mamy ChatGPT. Ale mamy też firmy, które wkładają ten interfejs chatowy choćby na swoje strony z dokumentacją czy dają dostęp do swoich narzędzi lub baz wiedzy z pomocą tych dużych modeli językowych. I czasem się zdarzy, że przypadkiem dadzą tym modelom językowym informacje, których dać nie powinni. Czasem się zdarzy, że taki bot dostanie klucz do API, które dostarcza choćby dane do odpowiadania użytkownikom na ich pytania. I taki użytkownik mógłby uzyskać klucz, nawet jeśli modelowi w instrukcji damy, że nie powinien się dzielić takim kluczem z użytkownikiem.

Jest taka fajna gra, która została opublikowana w internecie, gdzie możemy próbować przekonać AI do przekazania nam sekretnych informacji. I ludzie już to robią. Nazywamy ten nowy trend właśnie prompt injection. Tak jak kiedyś mieliśmy SQL injection, czyli sposób zmuszenia takiego modelu językowego do zrobienia rzeczy, których nie powinien zrobić albo jego projektanci nie chcieli, żeby robił.

Jest więc bardzo dużo nowych zastosowań. Myślę, że jeśli ktoś chciałby pójść drogą cyberbezpieczeństwa, to jest ciekawy czas, żeby zostać ekspertem od takiego obronnego AI czy od zapobiegania katastrofom bezpieczeństwa przy użyciu modeli językowych.

Bardzo ciekawy temat. To może jeszcze kiedyś nagramy o tym osobny odcinek.

Tak, to jest bardzo ciekawe, co ludzie robią, i my codziennie badamy nowe zastosowania, nowe sposoby, w jakie ktoś wykorzystał model językowy. Niektóre są bardzo zabawne albo ich efekty są bardzo zabawne, więc to zdecydowanie szeroki temat.

No dobrze, to będziemy musieli się umówić na inny termin. A teraz chciałbym jeszcze podpytać o programistów. Powiedz nam, proszę, z czym Twoim zdaniem przyjdzie im się mierzyć przy tak dynamicznym rozwoju AI. Powiedzmy też trochę o juniorach, którzy obawiają się, czy w ogóle warto wchodzić w temat programowania, bo może nie będą potrzebni na rynku pracy.

Tego bym na pewno nie powiedział, ponieważ żebyśmy mieli seniorów na rynku, potrzebujemy juniorów, którzy najpierw nauczą się tych wszystkich umiejętności programistycznych i będą w stanie pracować z modelami językowymi oraz tworzyć nowy kod.

Ja myślę, że będą różne aspekty tej zmiany, która zajdzie. I ta praca raczej będzie inna. Nie jestem w stanie powiedzieć Ci dokładnie, w jaki sposób, ponieważ jesteśmy na początku: dostaliśmy do naszych rąk ChatGPT zaledwie parę miesięcy temu i widzimy dopiero teraz, do czego można tego użyć. Jest wiele osób, które korzystają w pracy z tego narzędzia. Wielu osobom pomaga pracować mniej, ale są też osoby, które o nim nie słyszały albo z niego nie korzystają. Zapytałem znajomych, czy w zespołach programistycznych rozmawiają otwarcie o użyciu ChatGPT i temat nie pada – albo dlatego, że ludzie nie chcą mówić, że z niego korzystają, albo nawet nie próbują tego zastosować w swojej codziennej pracy.

Jesteśmy więc na bardzo wczesnych etapach. Ja myślę, że jeśli już pracujemy w IT, jeśli jesteśmy programistami, jesteśmy w swego rodzaju złotym okresie, ponieważ ten rok (i kolejny na pewno też) to będzie jeszcze moment, kiedy firmy nie zaadoptują tych narzędzi AI na takie sposoby, jak tutaj konceptualizowaliśmy. Nie będziemy mieli narzędzi, które same piszą dokumentacje, które same piszą testy, więc jeśli zastosujemy takie narzędzie w naszej codziennej pracy, jesteśmy w stanie poruszać się dziesięć razy szybciej niezależnie od tego, na jakim etapie jesteśmy. Z punktu widzenia jednostki ta praca staje się w wielu aspektach (jeśli nie robimy bardzo skomplikowanych rozwiązań) dużo prostsza.

To jest też pułapka. Tak samo jak robienie tego samego w pracy cały czas. Bo jeśli nie będziemy pisać kodu, jeśli będziemy się wyręczać AI do pisania dokumentacji i testów, to sami zapomnimy, jak to się robi. Nie nauczymy się tego robić lepiej, nie wskoczymy w te nawyki. A mimo wszystko potrzebujemy tej świadomości nawet do efektywnego sterowania narzędziami.

Z punktu widzenia kogoś, kto zaczyna, myślę, że nauka programowania staje się dużo łatwiejsza. Powiedzieliśmy o zastosowaniach takich jak tłumaczenie kodu czy praca z legacy code’em i próbach zrozumienia całych projektów. To będzie bardzo, bardzo istotne.

Ale z powodu łatwości tego, jak można wygenerować kod z pomocą dużych modeli językowych, samo pisanie kodu (a przynajmniej części kodu, który jest teraz pisany) będzie miało mniejszą wartość. Nie mam jednak wątpliwości, że ogromną wartość będzie miała umiejętność oceniania tego kodu, czyli tak jak wspominaliśmy, kreatywność w wymyślaniu nowych rozwiązań; promptowania modeli sztucznej inteligencji w celu tworzenia nowych rozwiązań; umiejętność poprawiania tego kodu. Duża ilość kodu, który jest generowany przez te modele językowe, po prostu nie działa, rzuca błędy, które musimy umieć zidentyfikować.

Jest też takie podejście jak intuicja. My czasem jako programiści, którzy widzieli bardzo dużo rozwiązań, jesteśmy w stanie, patrząc na kod, intuicyjnie powiedzieć: „To może być szybsze. To może tworzyć problemy na produkcji. Tutaj mamy jakieś side effecty które mogą potencjalnie robić problemy”. Tego wciąż sztuczna inteligencja nie jest w stanie robić bardzo dobrze.

Myślę, że jeszcze bardziej wzrośnie – tak jak już przez ostatnie lata rosła – wartość podejścia projektowego, zrozumienia klienta, tych wszystkich umiejętności miękkich IT, które (nie wiem czy zauważyłeś) chyba z roku na rok są coraz bardziej istotne. Nie jest już tak, że jako aspołeczni programiści jesteśmy w stanie dostać dobrą pracę.

W tej chwili firmy chętniej zatrudnią kogoś, kto dobrze pracuje w zespole, niż kogoś, kto jest świetny technicznie, ale nie umie się z nikim dogadać. Te umiejętności miękkie, nad którymi tak ciężko pracować, czasem są więc bardzo istotne.

Z punktu widzenia juniora… Ja zrobiłem też test. Zostałem poproszony wczoraj o code review i stwierdziłem, że przed podcastem sprawdzę, jak ChatGPT radzi sobie z code review w porównaniu do mnie. Wypisałem najpierw wszystkie uwagi do kodu, które bym dał, i ten sam kod wrzuciłem do ChatGPT. Poprosiłem, żeby ocenił działanie. Muszę powiedzieć, że ChatGPT zwrócił uwagę na wszystko, na co zwróciłem uwagę ja. I do tego był jeszcze bardziej złośliwy, ponieważ wytykał rzeczy, których ja bym nie wytknął. To było już czepianie się, więc musimy mieć ograniczone zaufanie do takich modeli.

To ja tylko dopytam: jak wyglądał ten kod? Czy to był taki projekt z wieloma plikami, czy to raczej był jeden plik z zawartością? Myślę, że to też może być istotne.

No i właśnie, co było w tym komfortowe, to to, że to był nowy pik. To był pull request, który miał w sobie dwanaście plików. Oceniłem kilka sam, szczególnie tych, które miały dużo zmian względem starych, ale mój kolega stworzył nowy komponent w Reakcie. Wziąłem taki komponent i najpierw oceniłem go sam. Tylko że to był nowy komponent. To nie były zmiany w plikach. To był świeży komponent, który mieści się w kontekście sztucznej inteligencji. Raczej więc małe kawałki kodu, nie wielkie projekty. Ale możemy poprosić AI o sprawdzenie czegoś takiego.

Warto, jak zawsze, pamiętać, że to nie jest osoba, która bierze odpowiedzialność za to, co mówi, więc efekt, który dostaniemy, może być różny. Nie powinniśmy mu ufać w stu procentach, ale jeśli jesteśmy w sytuacji, kiedy naprawdę nie mamy kogo zapytać, nie mamy grupy, z którą się uczymy (myślę, że ogromną wartością wszelkich kursów czy programów treningowych jest to, że ma się grupę ludzi, z którymi się pracuje), można pytać o pomoc, można odbijać pomysły, rozwiązywania problemów. To wciąż jednak nie jest taka wartość. ChatGPT może nam dać niektóre sugestie, ale nie możemy mu ufać w stu procentach. Wciąż jest wymagana od nas krytyczność. Pamiętajmy o tym, jeśli korzystamy z tych narzędzi. Nikt nie bierze za nie odpowiedzialności, to my bierzemy odpowiedzialność za output. Ale efekty są świetne, więc jeśli ktoś naprawdę nie ma dostępu do takich rzeczy, AI może być drogą do szybszej nauki.

 

No dobrze, to teraz chciałbym się od Ciebie dowiedzieć, czy są jakieś elementy, których nie da się oddelegować narzędziom. Co prawda już częściowo o tym wspomniałeś, ale może chciałbyś jakoś ten temat rozwinąć.

Trzeba rozgraniczyć, co jest w tej chwili, a co potencjalnie jest do zastąpienia. W tej chwili nie możemy zastąpić tej odpowiedzialności, gustu, kreatywności. AI nie ma tendencji, nie ma doświadczenia. W tej chwili pomaga nam zrozumieć niektóre rzeczy, ale nie podejmie tych ostatecznych decyzji za nas. Czyli intuicja i to, że wiemy, jaki kod może działać, zostaje po naszej stronie.

Poza tym wszelkie rzeczy poza kodowaniem, poza pisaniem samego kodu aplikacji – czyli kontakt z klientem, wymyślanie algorytmów, wymyślanie tego, co rzeczywiście trzeba zrobić – to stoi po naszej stronie. W tej chwili to jest niezastąpione. I tak jak Ty, wiele osób, które uczą programowania, wspomina, że tworzenie kodu to jest część programowania – wiedza, która jest pod spodem, świadomość tego, co jest ważne, jest równie istotna.

Nie chcę tworzyć tutaj predykcji, które zostaną mi później wytknięte, więc powiedziałbym, że nie przywiązywałbym się do żadnej strefy tworzenia oprogramowania, której nie mogłyby zastąpić narzędzia, bo to jest jak choćby tworzenie grafik: w tej chwili sfera tworzenia obrazów, kreatywności jest zdominowana przez AI. Są zdjęcia wygenerowane przez czystą inteligencję, które wygrywają prestiżowe konkursy. Mając to na uwadze, jestem ostrożny w tych predykcjach. Ale też myślę, że w sferach, co do których wydaje nam się, że AI nas zastąpi, niekoniecznie akurat będzie w stanie nas zdominować.

Rozmawialiśmy chwilę wcześniej. Wspominałeś o znajomym copywriterze, który mówił, że narzędzia AI sprawiają, że on się czuje pewnie, ponieważ nie są w stanie tworzyć contentu kreatywnie. Są w stanie przyspieszyć mu czasem pracę, ale on wciąż widzi zalety pisania rzeczy samemu. Ja widzę to samo. Kiedy napotykam na LinkedInie posty wygenerowane przez AI, zwykle to wiem, bo nie pasuje stylem do tego, co ktoś wcześniej pisał. Zwykle te teksty są bardzo oficjalne. Uważajmy więc na to, co wrzucamy.

Nie bałbym się jakoś szczególnie. Straszenie jest dla dziennikarzy, którzy muszą robić sensacyjne nagłówki. Ja myślę, że w tej chwili możemy oddelegować dużo, ale to my podejmujemy decyzje, kreatywność i gust są po naszej stronie. Myślę, że wciąż będzie dużo miejsca dla ludzi. A jak nie, to nasze zajęcie się trochę zmieni, ale na pewno będzie ciekawe.

To, o czym musimy pamiętać, to że narzędzia AI w tej chwili są najgorsze, jakie będą w historii. Będą tylko lepsze, więc myślę, że warto być na bieżąco, obserwować, co się dzieje, eksperymentować, bawić się i uczyć razem z tym, jak rozwija się AI.

 

To teraz chciałbym Cię zapytać o trochę inny temat, w zasadzie miękki, ale myślę, że też mocno związany z programowaniem, bo moim zdaniem budowanie marki osobistej programisty też jest istotne. Czy możemy sztuczną inteligencję wykorzystać do tego, żeby budować swoją markę osobistą albo markę produktu, np. aplikacji? W jaki sposób narzędzia AI mogą nam ułatwić albo przyspieszyć pracę?

To jest zdecydowanie ciekawy temat. Warto może najpierw zastanowić się, czym jest marka programisty (może niezbyt szeroko): na pewno możemy dzielić się wiedzą, którą mamy, czyli pisać jakieś artykuły. Ale też każdy kod, który wrzucamy na GitHuba, każdy content, który gdzieś tam powstaje, jest naszą marką osobistą.

Myślę, że nie ma co traktować swojej marki osobistej jako czegoś, co nam się z tym kojarzy: super aktywności w social mediach, bycia wszędzie, pisania dużo. Naszą marką osobistą jest już to, że jeśli wpisze się nasze imię i nazwisko, wyskakuje jakaś nasza personalna strona lub profil na GitHubie. Jesteśmy zadowoleni z tego, co widzi osoba, która to wyświetla – czy to jest dobrze skonstruowany profil na LinkedInie, czy to jest właśnie dobrze opisany profil na GitHubie.

Powiedziałbym, że ChatGPT może nam bardzo pomóc, szczególnie jeśli poprosimy też o uwzględnienie takich rzeczy jak optymalizacja do silników wyszukiwania SEO. Bardzo duża część contentu w internecie została stworzona w taki sposób, żeby była dobrze wyszukiwana. Więc jeśli poprosimy ChatGPT o zoptymalizowania tekstu pod takim kątem, dostaniemy to.

Z tym że kwestia pomysłów na teksty jest dość interesująca. Myślę, że zostawianie AI wymyślania tego, co ma się pojawić na naszych social mediach, jest ślepą uliczką, ponieważ chcemy, żeby to, o czym mówimy w naszych social mediach, na naszych stronach internetowych raczej odzwierciedlało nasze opinie i to, czym się obecnie zajmujemy.

Możemy więc wygenerować dużo contentu, który napędzi nam trochę ruchu na stronę internetową choćby z wyszukiwania w Google, chyba że tak jak wspominaliśmy wcześniej w naszej rozmowie, Google ponoć zaczyna chodzić po stronach internetowych i oceniać, czy są generowane przez AI.

Możemy więc potencjalnie wskoczyć na minę, generując taki content. Ale po za tym czy chcemy być kojarzeni z tematami, o których nie jesteśmy w stanie napisać tekstu? Niekoniecznie tak jest, więc na początku na pewno polecałbym popracować z takim modelem językowym nad jakimiś krótkimi opisami, co bardzo dobrze działa na Linkedin. Jest to choćby opisanie, czym konkretnie zajmowaliśmy się w poprzednich pracach, albo jeszcze lepiej: co się osiągnęło w tych konkretnych pracach. Jeśli więc nie jesteśmy pewni, jak to powinno wyglądać językowo, nie czujemy się aż tak świetni w danym języku, w którym chcemy to opisać, ChatGPT zdecydowanie może nam pomóc.

Myślę, że jest jeszcze aspekt wymyślania całych biznesów i konkretnych brandingowych rzeczy. Ja sam, prototypując niektóre pomysły, korzystałem z ChatGPT jako swego rodzaju generatora. Zajmowałem się na boku pisaniem takiej małej aplikacji i nie miałem pomysłu na nazwę. Miałem kilka słów. Miałem kilka pomysłów na to, o czym ta nazwa powinna być, ale nic, co wymyśliłem, nie wpadło mi w ucho. Poprosiłem więc ChatGPT o wygenerowanie pięćdziesięciu wariantów takiej nazwy – pięćdziesięciu zlepków słów, pięćdziesięciu pomysłów czy nawet więcej. Patrząc na te pomysły, wybierałem te, które najbardziej mi się podobały. Poprosiłem o wygenerowanie jeszcze większej liczby wariantów. Zostajemy więc swego rodzaju kuratorem pomysłów. To samo możemy zrobić z opisami tego, co robimy. Możemy prosić ChatGPT o generowanie kolejnych wariantów takich opisów ze zmianami stylistycznymi, aż nie dostaniemy to, co nam się spodoba i co brzmi jak my.

Osobiście wykorzystałem to jeszcze do generowania pomysłów na domeny. Nie wiem, czy spotkałeś się z tym, Mateusz, czy nasi słuchacze się spotkali, ale za każdym razem, gdy chce się stworzyć coś w internecie, stworzyć nazwę użytkownika, zwykle się okazuje, że ktoś ją już zajął. I jak się okazało, ku mojemu zdziwieniu, jak poprosiłem ChatGPT o wygenerowanie pomysłów na domeny, to wiele z tych domen było wolnych. Możemy skopiować wszystkie otrzymane domeny, wkleić do narzędzia, które masowo sprawdza dostępność domen, i zarezerwować to, co nam pasuje.

To był duży problem, muszę przyznać. Może powiem od drugiej strony: pamiętajcie, że jak będziecie mieli fajną nazwę, to trzeba ją od razu zarezerwować. Nie wiem, czy to prawda, ale część tych narzędzi, które sprawdzają dostępność domeny, od razu te fajne rezerwuje. Trzeba więc od razu kupować.

Wydaje mi się, że może się tak dziać. Zdarzało mi się w przeszłości szukać nazwy domeny. Znalazłem coś, co działa, ale zostawiłem to na chwilę. Sprawdziłem to dwa tygodnie, miesiąc później i tej domeny już nie było. Nie jestem osobą, która szuka teorii spiskowych, ale też wiem, jakie taktyki czasem stosują biznesy, więc mogło być i tak.

Czy chciałbyś coś jeszcze dopowiedzieć do tej marki osobistej?

Nie. Wiesz co, ja osobiście tworzę trochę contentu online, piszę też blog, piszę rzeczy na social media. Próbowałem stosować ChatGPT na różne sposoby. Próbowałem np. wykorzystać go do rozwinięcia niektórych tematów, które wspominam na blogu, z tym że wyniki takiego generowania tekstu są różne i bardzo zależą od inputu.

Najwięcej sukcesów miałem przy tworzeniu tekstów w taki sposób, że wklejam przykład mojego innego artykułu z bloga, który bardzo dobrze odzwierciedla mój styl. Następnie wklejam w punktach to, o czym chciałbym powiedzieć, i proszę ChatGPT o rozwinięcie tego w ładnie brzmiący, poprawny gramatycznie tekst. W takich zastosowaniach działa to super. Można uzyskać coś, co rzeczywiście brzmi jak Ty.

Dzięki temu dużo contentu można wypuścić szybciej i np. nawet podyktować treść czegoś takiego. Z tym że tak jak mówię: byłbym ostrożny z czymś takim, bo nie chcemy, żeby AI pisało rzeczy za nas. Jeśli tworzymy personalną stronę, chcemy, żeby to był nasz głos. Tak więc o ile to, co dostajemy, nie brzmi jak coś, co sami byśmy powiedzieli, to ostrożnie bym korzystał z takich taktyk.

Ludzie przez ostatnie miesiące zaobserwowali bardzo dużo contentu wygenerowanego przez AI i powoli stają się wyczuleni na zbyt mało autentyczne rzeczy. Teraz raczej zalecałbym skorzystać z AI jako asystenta, popracować nad tworzeniem tekstów, może odbić jakieś pomysły od takiego modelu językowego, ale nie polegać na nim kompletnie. Moim zdaniem pisanie, dzielenie się wiedzą, wymyślanie takiego contentu jest przyjemne samo w sobie. Nikt nam nie każe tego robić. To nie jest obowiązek. Nie musimy wygenerować stu artykułów na blog, żeby się pokazać i żeby zrobić markę osobistą.

Jeśli wolimy pisać kod, piszmy kod i załączajmy krótkie opisy. To też się nam przyda. Odradzam masowe generowanie contentu tylko dlatego, że jest taka możliwość, ponieważ pod tym contentem podpisujemy się własnym nazwiskiem. Pamiętajmy, że ktoś potem może zobaczyć kawałek tekstu, który nie do końca odzwierciedla nasze poglądy, a my zostaniemy z tym skonfrontowani. Myślę, że narzędzie jest przydatne, ale jak z każdym narzędziem: odpowiadamy za jego wykorzystanie.

 

A z jakich narzędzi Ty korzystasz? Czy coś zmieniły w Twojej pracy? Może polecisz jakieś zastosowania? Co tak naprawdę się u Ciebie sprawdziło?

To jest bardzo dobre pytanie, bo nie byłbym tutaj i nie mówił o tych narzędziach, gdybym bardzo mocno z nich nie korzystał. Dzięki temu znam ograniczenia, ale mogę też podzielić się paroma zastosowaniami, które nie są zbyt oczywiste. Bo o ile rozmawialiśmy o tym, jak ChatGPT i inne narzędzia zmieniają życie juniorów, to to, jak wpływają na życie seniorów, jest równie interesujące.

Gdy ktoś, kto programuje już w jednej technologii, próbuje się nauczyć nowego języka programowania, pewnie zajmuje mu to dużo mniej, ponieważ zna schematy, wie, jak to wszystko działa. Ale czasem rozpoczęcie takiej pracy jest ciężkie, bo materiały, które są dostępne, są zwykle dla ludzi, którzy zaczynają. Musimy wskoczyć w taką ciężką dokumentację, obejrzeć na przyspieszeniu jakiś crash course na YouTubie. To jest dużo łatwiejsze, jeśli popracujemy z ChatGPT.

Mój personalny przypadek jest taki, że będąc trzy tygodnie temu w Manchesterze w firmie Netacea, z którą pracuję, miałem pewien pomysł. Wdzwaniam się na dużo spotkań i męczy mnie robienie notatek z tych spotkań. Męczy mnie pisanie action pointów, wolę w trakcie tego spotkania skupić się na tym, o czym rzeczywiście rozmawiam z ludźmi, i chciałbym, żeby ktoś to notował za mnie. Z drugiej strony, gdy często rozmawiałem ze sprzedawcami korzystającymi z botów, które wdzwaniają się na spotkanie za mnie, ja czułem się niekomfortowo, że ktoś mnie nagrywa. Widziałem tę miniaturkę w tle i nie zawsze miało to dobry wydźwięk.

Pomyślałem więc (co prawda oczywiście na spotkaniach, gdzie ktoś wyrazi na to zgodę): „a co, jeśli miałbym taki program, który robi te notatki za mnie?”. Nawet nie zapisuje nigdzie tych nagrań. Potem robi podsumowania – prosi modele językowe o zrobienie podsumowania takiego spotkania – i do tego jeszcze np. wyciąga action pointy, wyciąga rzeczy, o których powinienem doczytać i o których powinienem pamiętać.

Stwierdziłem, że OK, chciałbym, żeby taka aplikacja istniała. Nie widzę nic takiego na rynku. Pod względem prywatności nie ufam nikomu, kto zrobił to do tej pory. Może więc zrobię takie narzędzie sam? I, Mateusz, wyobraź sobie, że siadłem w piątek wieczorem przed ChatGPT i mówię: „Hej, ChatGPT, nie mam pojęcia jak robić aplikacje na macOS-a w Swifcie. Jak powinienem się do tego zabrać?”.

Dostałem dokładną listę, co jest w Swifcie w porównaniu do innych technologii i na czym polega zestaw funkcji – biblioteka do robienia UI na macOS-ie: Swift UI. Potem przeszliśmy dalej przez wygenerowanie boilerplate’a do takiej aplikacji. Zainstalowałem sobie Xcode’a, odpaliłem tę aplikację, zobaczyłem, co tam jest dostępne.

Poprotypowaliśmy razem tę aplikację i w przeciągu paru godzin miałem UI, który działa. Było to dla mnie super odświeżające – że byłem w stanie w ciągu dwóch-trzech godzin nauczyć się podstaw Swifta, umieć potem modyfikować ten kod sam ze sobą i mieć funkcjonującą aplikację. Potem dodałem do tego transkrypcję, dodałem do tego te funkcje AI do sumaryzacji tekstu i mam aplikację, z którą właśnie się bawię. Próbuję używać do spotkań. Mam nawet plan może opublikować tę aplikację, może nawet jako open source. Myślę, że wielu osobom może się przydać.

Moim sztandarowym celem tej aplikacji była prywatność. Chciałem, żeby wszystko działało lokalnie. Potrzebowałem to napisać. Napisałem. Nigdy wcześniej nie pisałem w Swifcie. Nigdy wcześniej tak naprawdę nie pisałem aplikacji desktopowych w pracy. I zrobiłem coś, co funkcjonuje. Więc kwestia edukacyjna, o której mówiłem wcześniej, to nie jest fikcja. Każdy może z tego w ten sposób skorzystać. Ja byłem przeszczęśliwy. Myślę, że wielu seniorów, którzy chcą szybko wskakiwać w nowe technologie, skorzysta z ChatGPT w taki sposób.

Tak zaglądam do naszych notatek, które przed spotkaniem przygotowaliśmy, i widzę tutaj nazwę domeny. Podejrzewam, że to jest nazwa tego projektu, więc po pierwsze: czy chcesz się tym podzielić? A po drugie: czy wyszukałeś ją właśnie przy pomocy ChatGPT?

Wyszukałem ją przy pomocy ChatGPT i przeszedłem przez całe copy, które jest na tej stronie, razem z ChatGPT. Jako taką demonstrację tego, co jest możliwe, możemy podesłać to narzędzie ludziom. Nie obiecuję, że ono zostanie stworzone i wypuszczone do obrotu publicznego, ale mamy taki prototyp. Domena to meetingfusion.com. Myślę, że to dobra demonstracja tego, co można zrobić z takimi narzędziami.

Super, że akurat wyszło to przed naszym spotkaniem, więc wszyscy słyszą i mogą zobaczyć, że faktycznie się da. Ciekawa sprawa.

Tak. Myślę, że tak jak wspominałem wcześniej, sama inspiracja z korzystania z narzędzi jest równie wartościowa, co ich output – czyli zastanawianie się nad tym, co możemy przy ich użyciu zrobić.

Ale poza robieniem takich kompletnych aplikacji i side projectów, zastosowanie AI w codziennej pracy jest czymś, co mnie mocno interesuje, więc ja osobiście od wielu lat korzystam z GitHub Copilota i polecam wszystkim się zainteresować. Tak jak mówiliśmy: ma to swoje ograniczenia, ale pomaga szybciej i lepiej pisać kod.

No i mamy też tę wersję beta: Copilot X czy tam Copilot Chat. To narzędzie jest płatne, ale darmowe dla studentów uczelni wyższych. Można też ewentualnie w paru miejscach zarequestować dostęp do takiego narzędzia. No i mamy tę alternatywę od AWS-a, czyli CodeWhisperer.

Ja sam korzystam też z ChatGPT, tak jak wspomniałem przy tym, kiedy mówiliśmy o budowaniu marki osobistej. Rozwijanie punktów w teksty na blogu czy skracanie tekstu, prototypowanie postów na LinkedIna, poprawa pisowni.

Co mnie bardzo rozbawiło, ostatnio mojemu mentorowi (z którym rozmawiam od wielu lat tydzień w tydzień) wysłałem propozycję szkolenia dla mentorów z programowania, które robiłem wewnętrznie w firmie. Uruchomiliśmy program mentoringowy, gdzie sparowałem bardziej doświadczonych pracowników – i z takiej sfery biznesowej, i programistycznej – z młodszymi pracownikami. Przygotowałem skrypt szkolenia, wysłałem go mojemu znajomemu i dodałem taką notatkę, że ChatGPT nawet tego nie widział, wszystko powstało we współpracy mnie z moją asystentką Anią. Jego pierwszy komentarz był taki: „widzę, że nie z ChatGPT, bo popełniłeś błędy gramatyczne”. I wypisał mi dokładnie, jakie błędy popełniłem. Teraz więc, gdy napiszę jakiś tekst, staram się nie generować czegoś nowego, tylko proszę o sprawdzenie tego lub nawet korzystam z edytora, w którym mam Grammarly. To jest bardzo przydatne.

Jeśli chodzi o tę aplikację MeetingFusion, o której wspomniałem, to ikonę aplikacji też wygenerowałem z użyciem Midjourney. Generowanie obrazków też mi się więc przydało.

Dla generowania obrazów mam jeszcze jedno bardzo ciekawe zastosowanie. Ostatnio zostałem poproszony o namalowanie dla kogoś obrazu na urodziny. Od razu mówię, że nie jestem wielkim artystą. Namalowałem cztery obrazy w życiu, ale były coraz lepsze. Byłem w stanie namalować coś, co przypomina rzeczywiście to, co miało przypominać. Ktoś poprosił mnie o namalowanie akrylami na płótnie jadącej samochodem alpaki, która ma koronę na głowie. Mój problem był taki, że jestem w stanie sobie wyobrazić taką scenę, ale nie jestem w stanie zaprojektować takiego obrazu, który byłbym w stanie namalować.

Pracowałem więc z Bing Image Creator i z Midjourney nad wygenerowaniem dwudziestu-trzydziestu propozycji takich obrazów. Poskładałem sobie pomysły z dwóch obrazów, zrobiłem swój szkic i potem namalowałem prosty obraz na prezent. Namalowanie obrazu zajęło dwie godziny. Jak mówię, nie jestem artystą. Obraz zawierał bardzo humorystyczne elementy nawiązujące do tej osoby, ale sam proces konceptualizacji obrazu z takimi narzędziami był jak najbardziej możliwy, więc jeśli ktoś ma bardziej artystyczne zacięcie, to polecam prototypować.

Chciałem Cię poprosić o pokazanie tego obrazu, ale pewnie już wręczyłeś, więc go nie masz.

Jest wręczony.

Jeżeli jest dedykowany dla danej osoby i zawiera elementy humorystyczne, to może ta druga strona nie chciałaby, aby był pokazany, więc nie będę prosił.

 

Chciałbym Cię jeszcze zapytać o takie lokalne wersje sztucznej inteligencji. Na razie korzystamy z ChatGPT, są to rozwiązania dostępne online, ale czy coś możemy uruchomić na swoim sprzęcie i czy w ogóle da się to zrobić na normalnym sprzęcie domowym?

Co ciekawe, bardzo dużo rzeczy da się uruchomić lokalnie. Nie wszystkie, ale powstaje coraz więcej narzędzi, które nam na to pozwalają. Jest to głównie zaleta i efekt tego, że społeczność wokół rozwoju tych dużych modeli językowych jest bardzo skupiona na ich demokratyzacji. Z jednej strony mamy wielkie korporacje, które robią wielkie modele językowe, a z drugiej strony mamy ludzi, którzy chcą korzystać z tej technologii, niekoniecznie płacąc duże pieniądze.

Obecnie możemy odpalić sobie lokalnie mniejsze niż oferowane przez duże korporacje modele językowe. Jedną z rzeczy, którą ja testowałem, jest inicjatywa GPT4All. Jeśli wejdziemy na stronę tego projektu, możemy ściągnąć UI, które przypomina ChatGPT. W tle ma działający model językowy, który jest dużo mniejszy, bo ma siedem miliardów lub jedenaście miliardów parametrów (ChatGPT 3.5 ma sto miliardów parametrów), ale do takich kwestii jak generowanie prostego kodu, generowanie tekstów ten model działa bardzo, bardzo dobrze. Został też dotrenowany na rozmowach z ChatGPT, które udostępnili ludzie korzystający z tego narzędzia. Dostarcza więc podstawową funkcjonalność lokalnie, całkowicie prywatnie. Co najlepsze, możemy ten projekt odpalić też jako REST-owe API i w naszej aplikacji korzystać choćby z modelu językowego.

Jeśli chodzi o to, jakiego sprzętu potrzeba, żeby korzystać z takiego modelu, to całe community włożyło bardzo dużo wysiłku, żeby to działało na procesorach, ewentualnie na wbudowanych kartach graficznych. Moim laptopem, czyli MacBookiem Air z procesorem M1, mogę uruchomić taki model. Taki laptop kosztuje od czterech i pół tysiąca złotych. Ewentualnie, jak potrzebujemy choćby Maca Mini, to jest to poniżej trzech tysięcy złotych. Jestem pewien, że na laptopach z Windowsem również jesteśmy w stanie odpalić te modele. Zwykle Intel ma trochę mniej przyspieszeń do takich obliczeń albo społeczeństwo się mniej tym w tej chwili zainteresowało, ale myślę, że możemy odpalić taki model – czy do eksperymentów, czy do robienia prywatnych rzeczy.

Poza tym mamy też dostępne inne narzędzia, które działają dobrze. Nie idziemy na żadne kompromisy. Czyli jeśli np. nie chcemy wydawać pieniędzy na ChatGPT, który ma dostęp do internetu, albo do różnego typu pluginow, możemy skorzystać z Bing Chatu. Bing Chat to ChatGPT, który został zrebrandowany przez Microsoft i ma dostęp do wyników wyszukiwania.

Tak samo Bing Image Creator też jest dostępny. Mamy dostęp do Barda od Google, który obecnie jest darmowy. Mamy dostęp do czegoś takiego jak Google Colab. To jest może temat trochę szerszy i nie jest to narzędzie AI, ale pozwala nam odpalać notebooki w Pythonie za darmo na dość dużych kartach graficznych. Jeśli więc widzimy projekt AI-owy, które chcemy odpalić sami za pomocą Pythona, to Google Colab dostarczy nam w ograniczonym zakresie dostęp do większych kart graficznych.

Takim ostatnim narzędziem, które możemy odpalić lokalnie i z którego ja korzystałem zanim zacząłem tworzyć tę aplikację, o której wspominałem, jest OpenAI Whisper. Whisper jest silnikiem transkrypcji, który dostarczyło nam OpenAI. Możemy wczytać każdy film, każde nagranie audio i wygenerować napisy, transkrypcję.

Jest więc dużo rzeczy, które działają lokalnie. W tej chwili mamy, tak jak mówię, z największych inicjatyw: GPT4All i OpenAI Whisper, a poza tym możemy skorzystać z darmowych narzędzi dostępnych online.

A ten Whisper, o którym wspominasz, działa tylko w języku angielskim, czy w innych też?

Właśnie, co jest ciekawe, Whisper działa świetnie w kilkudziesięciu językach, jeśli skorzystamy z jego największej wersji. To jest coś, co znacznie wpłynęło na środowisko tego typu oprogramowania. Start-up, którym się zajmuję po godzinach – Sentimatic – wykorzystuje właśnie transkrypcje z Whispera, którego dotrenowaliśmy na polskich nazwach własnych, bo brakowało tam tylko trochę funkcjonalności. I działa to świetnie. Więc polski, angielski… Korzystałem z niego także na języku niemieckim. Te języki działają bardzo dobrze i liczba błędów, które ten model robi w języku polskim, jest bardzo mała, mniejsza nawet od tego, co dostaniemy od Google’a czy od innych narzędzi. Polecam, bo jest dostępny darmowo i jakość naprawdę robi wrażenie.

 

No dobrze, to teraz ważne pytanie. Ile to wszystko kosztuje? Czy ta inwestycja w ogóle się zwraca?

Ojej. To jest dobre pytanie, bo dużo z tych modeli to są pewnie zabawki, szczególnie te do generowania grafik, tak jak wspomniałem. Mogę podzielić się z doświadczenia: ja obecnie za te wszystkie narzędzia płacę całkiem sporo. Podsumowałem sobie subskrypcje, za które obecnie płacę jeśli chodzi o AI, i łącznie w tej chwili jest to dwieście pięćdziesiąt złotych miesięcznie. W zasadzie nie wiem, jakie jest konkretnie przełożenie z dolarów na złote, ale to jest pięćdziesiąt pięć dolarów, czyli pewnie dwieście pięćdziesiąt złotych. Jest to dużo pieniędzy jak za subskrypcje, ale ja widzę tyle korzyści w mojej codziennej pracy, że jestem w stanie to uzasadnić. To, jak moja praca jest łatwiejsza, ewentualnie jak jest przyjemniejsza przez to, że mogę współpracować z takimi narzędziami, według mnie uzasadnia ten koszt.

Na przykład ChatGPT jest darmowy, ale jeśli chcemy korzystać z tego najnowszego, najbardziej zaawansowanego modelu, musimy zapłacić dwadzieścia dolarów miesięcznie. Tak samo wspominałem o narzędziu Google Colab, które pozwala nam odpalać narzędzia w Pythonie. Ono samo kosztuje około dwunastu-trzynastu dolarów z podatkiem, jeśli chcemy korzystać z wersji pro i większych kart graficznych. Ja chciałem korzystać z większych kart graficznych, żeby przetestować niektóre rzeczy, o których tutaj mówimy.

Generowanie obrazków z Midjourney to też dziesięć dolarów plus podatek VAT: dwanaście-trzydzieści dolarów. Kolejny koszt. To narzędzie nie jest dostępne w darmowej wersji. I ostatnim, za które płacę, jest GitHub Copilot. To jest dziesięć dolarów miesięcznie.

Suma składa się całkiem spora, ale nie płaciłbym za te subskrypcje, gdyby nie były mi przydatne. Myślę, że w wielu przypadkach warto, ale większość tych narzędzi ma darmowe wersje i te darmowe wersje dadzą nam osiemdziesiąt procent efektu. Jeśli potrzebujemy więcej, jeśli jesteśmy w stanie uzasadnić taki wydatek przed samym sobą, to myślę, że warto, bo mamy wtedy dostęp do najlepszych, najświeższych narzędzi.

 

A jak Twoim zdaniem najlepiej optymalizować dobór takich narzędzi, żeby nie przepłacać?

Na pewno testujmy i jak ze wszystkimi subskrypcjami – wszystkiego możemy spróbować na miesiąc. Zwykle ten miesiąc gdzieś tam nas nie zabija pod względem kosztu, ale musimy uważać, żeby wyłączyć taką subskrypcję, jeśli przestaniemy z niej korzystać. Zachęcam też (myślę, że każdy z nas to zrobi) najpierw skorzystać z tej darmowej wersji.

Unikajmy też takich duplikujących się funkcjonalności. Nie płaćmy za kilka narzędzi do czatów, bo zwykle one się mogą pokrywać. Zastanówmy się nad tym, co jest dla nas ważne, i zdecydowanie – jeśli ktoś posłuchał tego podcastu i myśli, że żeby być efektywnym programistą, musi kupić te narzędzia – to powiedziałbym, że absolutnie nie. Ta darmowa wersja choćby ChatGPT jest całkowicie wystarczająca, ale jeśli chcesz się z tym bawić, więcej eksperymentować, testować, to oczywiście warto mieć dostęp do najświeższych narzędzi.

Ja na przykład, chcąc mówić o tych narzędziach, musiałem je przetestować, ale myślę, że wiele osób znajdzie większość efektów w tych darmowych opcjach.

 

No dobrze, a co byś polecił osobom, które myślą o zatrudnieniu w IT i są w trakcie nauki? Czy informacja o sztucznej inteligencji, wykorzystywanie tych narzędzi będzie dla nich istotne, żeby wejść do branży IT?

Myślę, że nie zostaniemy zapytani o sztuczną inteligencję na żadnej rozmowie rekrutacyjnej. Pytania będą takie, jak wcześniej, czyli o umiejętności programistyczne, umiejętności miękkie. Te rekrutacje będą wyglądały w bardzo podobny sposób. Myślę, że w takim krótkim horyzoncie czasowym nie będzie ofert pracy, które będą nam mówić wprost, że musimy znać takie narzędzia. Raczej będzie to część takiego small talku w trakcie rozmowy rekrutacyjnej – ktoś nas zapyta, czy korzystaliśmy z GitHub Copilota, co tym sądzimy, ale raczej w kwestii dzielenia się wiedzą jako programista do programisty. Nie bałbym się więc kompletnie w tej chwili, że nie wiedząc czegoś o narzędziach wykorzystujących AI, zostaniemy z tyłu.

Ale przeszliśmy przez tą naszą rozmowę przez tyle zastosowań tych narzędzi, że część z nich na pewno stanie się codziennością pracy programisty. Postarałbym się więc być na bieżąco, nie zapominać o tym, że ten aspekt istnieje i wykorzystywać jak najwięcej tych narzędzi do bycia lepszymi programistami, do bycia lepszymi ludźmi, którzy tworzą oprogramowanie (specjalnie nie „programistami”, tylko wszystkimi naokoło), ponieważ możemy poprototypować, potworzyć, poodbijać pomysły od takiego modelu AI. Zastąpi nam to pewnie część doświadczenia z pracy. Polecam więc korzystać i sprawdzać, co AI sądzi o naszym kodzie, i uczyć się z feedbacku, który dostaniemy.

To może ja jeszcze opowiem o jednym zastosowaniu, o którym nie mówiliśmy. Ci, co dotrwali do końca, może docenią. Ja np. bardzo nie lubię, jak rekrutacji są takie testy: „masz trzydzieści minut, piętnaście pytań i odpowiadaj”, bo nie uważam, żeby one sprawdzały wiedzę i umiejętności programistyczne. Myślę, że to się bardzo zmieni, bo teraz, mając pod ręką ChatGPT, odpowiesz w tym czasie na każde pytanie i będziesz mieć sto procent. To się zmieni. Firmy przestaną podchodzić do rekrutacji właśnie w ten sposób.

Też tak myślę. Na pewno takie zadania, które dostajemy asynchronicznie, każdy jest w stanie zrobić na sto procent bez żadnego naszego inputu. Myślę więc, że do rekrutacji wejdzie trochę normalności i będziemy rzeczywiście patrzeć na pair programming, rozwiązywanie problemów, bo to będzie istotne.

Gdy rekrutujemy ludzi do firmy Netacea, mamy zadanie z programowania w parach, w którym ktoś może korzystać z Google’a, może korzystać z zewnętrznych narzędzi, bo nie zależy nam na tym, żeby ktoś miał wiedzę, którą może wziąć właśnie z narzędzia AI czy z Google’a, bo to jest bez sensu. Sami nie pamiętamy funkcji, których trzeba użyć, albo wszystkich zastosowań kodu, które mamy. Zależy nam na tym, żeby ktoś umiał zdefiniować problem i znaleźć rozwiązanie. A to, czy zna konkretne nazwy funkcji nie ma żadnego znaczenia. Myślę więc, że ChatGPT wyeliminuje też kolejną falę takich pytań, które nie mają sensu, i robienia zadań – bo po prostu nie będzie możliwości sprawdzenia, kto je zrobił.

 

No dobrze, to teraz lżejsze pytanie: jaką książkę polecisz osobie, która chce wdrożyć w swojej pracy narzędzia AI?

Ciekawe pytanie, ponieważ nie wiem, czy jest aspekt w programowaniu, w którym poleciłbym książkę, chociaż pewnie część z takich podstaw zdecydowanie by się znalazło. Najświeższą wiedzę jednak znajdziemy w internecie i u ludzi, którzy mówią o tych tematach i którzy prototypują te tematy. Tutaj odesłałbym więc raczej do social mediów, do czytania prasy branżowej, do śledzenia podcastów takich jak Twój, bo w tej chwili branża narzędzi AI tak szybko się zmienia, że książki – nawet jeśli zostaną wydane teraz – pewnie staną się zdezaktualizowane bardzo szybko.

Jeśli chcemy nauczyć się podstaw tego, jak działa sztuczna inteligencja, chcemy zostać data scientistem, to jest kilka dobrych książek, ale jeśli interesują nas narzędzia, poleciłbym Twittera, followował odpowiednich ludzi na YouTubie – może właśnie tych zaangażowanych w tworzenie tych modeli, jak np. liderów OpenAI. Myślę, że możemy podlinkować np. Twittera Sama Altmana (CEO OpenAI) albo głównego data scientista, czyli Karpathy’ego, który wcześniej dowodził inicjatywą AI w Tesli. Oni publikują bardzo dużo contentu edukacyjnego i mówią o nowych rzeczach, które się dzieją. Z tego co widzę, ten content jest dość autentyczny – oni nie promują głupio swojego narzędzia. Oczywiście mają swoją agendę, ale jest tam bardzo dużo edukacyjnych elementów.

Czyli raczej miałbym oczy szeroko otwarte, śledził influencerów, ludzi, którzy są ważni w tej branży, i czytał, interesował się. A być może, gdy dojdziemy do stabilności w tych narzędziach, jakieś książki będą aktualne.

 

To ostatnia rzecz na dzisiaj. Gdzie możemy Cię znaleźć w sieci?

Jeśli chodzi o mnie, to ja publikuję posty na swoim blogu horosin.com. To są posty w języku angielskim, ponieważ najbardziej komfortowo czuję się, pisząc w tej tematyce po angielsku, i pracuję głównie z zagranicznymi firmami. Jest tam też w tej chwili trochę contentu właśnie o wykorzystaniu modeli językowych i tych narzędzi AI, więc zapraszam serdecznie.

Jeśli jesteście zainteresowani wejściem w jakąś rozmowę ze mną, no to jestem na Twitterze i na LinkedInie. Moja nazwa użytkownika to też moje nazwisko, czyli Horosin, więc zapraszam. Zawsze możemy porozmawiać na jakiś ciekawy temat.

Tak że piszcie do Karola, jeżeli macie jakieś tematy.

Ja, Karolu, dziękuję Ci bardzo za rozmowę i podzielenie się z nimi wszystkimi informacjami.

Dzięki, Mateusz. To był bardzo interesujący temat. Byłem zmuszony zadać sobie sporo pytań na temat tego, gdzie te narzędzia pójdą w przyszłości, i bardzo dobrze się bawiłem, prowadząc tę rozmowę.

Ja również, dzięki jeszcze raz.

Dzięki.

Słuchaj także na:

Udostępnij ten artykuł:

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ę.

Mam coś dla Ciebie!

W każdy piątek rozsyłam motywujący do nauki programowania newsletter!

Dodatkowo od razu otrzymasz ode mnie e-book o wartości 39 zł. To ponad 40 stron konkretów o nauce programowania i pracy w IT.

PS Zazwyczaj wysyłam 1-2 wiadomości na tydzień. Nikomu nie będę udostępniał Twojego adresu e-mail.