乌鸦传媒

Przejd藕 do Tre艣ci
M臋zczyzna siedz膮cy przy komputerach. Programista.M臋zczyzna siedz膮cy przy komputerach. Programista.

Koduj膮c z AI: Ewolucja czy rewolucja programowania?

TechChatter – sezon 3 – odcinek 1.

Koduj膮c z AI: Ewolucja czy rewolucja programowania?

Czy AI naprawd臋 zast膮pi programist贸w, zmieniaj膮c rynek pracy raz na zawsze? A mo偶e zamiast tego stanie si臋 ich najcenniejszym narz臋dziem, kt贸re pozwoli tworzy膰 szybciej, lepiej i bardziej efektywnie? W tym odcinku przygl膮damy si臋, jak sztuczna inteligencja rewolucjonizuje bran偶臋 programistyczn膮 鈥 od eliminowania rutynowych zada艅 po wspieranie innowacji i rozw贸j kreatywnych rozwi膮za艅.

Zapraszamy do s艂uchania!

Tematy poruszane w odcinku:

  • Czy AI faktycznie wyeliminuje cz臋艣膰 programist贸w z rynku pracy?
  • Jakie zadania AI przejmuje, a jakie nadal wymagaj膮 ludzkiej kreatywno艣ci?
  • Praktyczne zastosowania narz臋dzi takich jak Copilot, SourceGraph czy SonarCube.
  • Dlaczego dobre prompty s膮 kluczowe w pracy z AI?
  • Jakie zagro偶enia i wyzwania wi膮偶膮 si臋 z u偶ywaniem sztucznej inteligencji w projektach?

Ekspert odcinka:

Senior Delivery Architect. Programista oraz Project Manager z ponad 17-letnim do艣wiadczeniem zawodowym, specjalizuj膮cy si臋 g艂贸wnie w technologiach Microsoftu. Jego pasj膮 s膮 Internet Rzeczy (IoT) oraz nowe technologie. Prywatnie anga偶uje si臋 w rozw贸j kilku innowacyjnych projekt贸w zwi膮zanych z elektronik膮 oraz sztuczn膮 inteligencj膮. Czerpie ogromn膮 satysfakcj臋 z tworzenia nowatorskich rozwi膮za艅, kt贸re 艂膮cz膮 te dwa 艣wiaty.

Artur Sm贸lka

Prowadz膮cy podcast:

Szymon G艂owania

Lider do spraw programowania w 乌鸦传媒. Specjalizuje si臋 w projektowaniu kokpit贸w mened偶erskich oraz automatyzacji proces贸w. Regularnie prowadzi szkolenia, dziel膮c si臋 swoj膮 wiedz膮 i umiej臋tno艣ciami. Pasjonuje si臋 uczeniem maszynowym, kt贸re rozwija w ramach projektu doktorskiego. W wolnym czasie realizuje swoje pasje, takie jak jazda konna, w臋dkarstwo, s艂uchanie muzyki oraz gra na instrumentach.

Linki do zagadnie艅 poruszanych w rozmowie:

GitHub Copilot:

Sourcegraph Cody: /

SonarQube:

Copilot Edits: /

Tabnine:

Vision for Copilot:

Data Analysis for Copilot: /

Podcast 乌鸦传媒 Polska

Artur Sm贸艂ka
Ka偶dego programist臋 zach臋cam, 偶eby spr贸bowa膰, 偶eby zapozna膰 si臋 z tymi narz臋dziami, bo cz臋艣膰 z nich uwa偶a, 偶e u偶ywanie Chatu GPT to jest tak jak boczne k贸艂ka przy rowerze. Ja w wieku 30 lat ju偶 nie chc臋 z bocznymi k贸艂kami przy rowerze je藕dzi膰, bo b臋d臋 co najmniej dziwnie wygl膮da艂 na ulicy. A to wcale nie tak. To raczej mo偶emy sobie przyr贸wna膰 do takiego przej艣cia z silnika parowego na silnik spalinowy, czyli ca艂kowicie konkretny game changer, czyli co艣, co bardzo mocno zmienia zasady gry.

Szymon G艂owania
S艂uchasz trzeciego sezonu podcastu TechChatter, audycji 乌鸦传媒 Polska, w kt贸rej zanurzymy si臋 w 艣wiecie technologii. Pos艂uchaj rozm贸w naszych ekspertek i ekspert贸w, odkryj projekty realizowane w Polsce i zobacz, jakie innowacje, kt贸re wsp贸艂tworzymy, kszta艂tuj膮 nasz膮 przysz艂o艣膰. Przekonajmy si臋, 偶e praca w sektorze IT mo偶e by膰 naprawd臋 pasjonuj膮ca. Gotowi? Zaczynamy!

Dzisiejszym go艣ciem naszego programu b臋dzie Artur Sm贸艂ka, kt贸ry jest deweloperem z d艂ugoletnim sta偶em w 乌鸦传媒. Obecnie dostarcza i opiekuje si臋 projektami z r贸偶nych dziedzin, g艂贸wnie dost臋pnych w technologiach Microsoftu. Opr贸cz tego, 偶e jest programist膮 i entuzjast膮 AI oraz stara si臋 zastosowa膰 wszystkie te mo偶liwe rozwi膮zania z AI u nas w firmie w codziennej pracy, interesuje si臋 IoT, czyli internetem rzeczy, czyli pewnie ca艂y dom b臋dzie nam 艣wieci艂 i wszystko b臋dzie sterowane z telefonu, no i ch臋tnie podzieli si臋 z nami tutaj t膮 wiedz膮.

Szymon G艂owania
Witam ci臋 Arturze.

Artur Sm贸艂ka
Cze艣膰, witaj Szymon. Dok艂adnie tak jak powiedzia艂e艣, przede wszystkim programowanie, p贸藕niej kwestie wi膮zane z zarz膮dzaniem projektami, ale programowanie to jest to, co najbardziej mnie interesuje, tak偶e my艣l臋, 偶e b臋dziemy mieli o czym rozmawia膰.

Szymon G艂owania
Temat programist贸w 30K ju偶 si臋 powoli wyczerpa艂 u nas na rynku. Natomiast bardzo kluczowym pytaniem wydaje si臋 obecnie to, czy AI zast膮pi programist贸w i zupe艂nie b臋dziemy mogli si臋 ich pozby膰, czy pozby膰 si臋 nas, bo w sumie programistami jeste艣my obydwoje.

Artur Sm贸艂ka
Widz臋, 偶e lecimy od razu z takim pytaniem, kt贸re nurtuje wi臋kszo艣膰 programist贸w. Odpowied藕 jest na to, 偶e tak, oczywi艣cie AI zast膮pi programist贸w, ale tylko tych s艂abych, tylko tych, kt贸rzy s膮 naprawd臋 po jakich艣 kursach, kt贸rzy nie maj膮 do艣wiadczenia, poniewa偶 w tym momencie rynek oczekuje od programisty nie tylko znajomo艣ci kodu. Znajomo艣膰 kodu, jak wiecie, mo偶e by膰 doskonale delegowana do AI. Tam kod pisany jest praktycznie od r臋ki w bardzo szybki spos贸b. Cz臋sto ten kod jest ca艂kiem dobrej jako艣ci. Natomiast to czego AI jeszcze nie potrafi i my艣l臋, 偶e przez d艂ugi czas nie b臋dzie potrafi膰, to jest wymy艣lanie algorytm贸w, wymy艣lanie rozwi膮za艅, taka bardzo kreatywna praca abstrakcyjna.
I tutaj programi艣ci czy architekci oprogramowania b臋d膮 zawsze, zawsze potrzebni my艣l臋, 偶e jeszcze przez d艂ugi, naprawd臋 d艂ugi czas. Tak偶e odpowiadaj膮c na twoje pytanie w skr贸cie zast膮pi klepaczy kodu. Zast膮pi te osoby, kt贸re maj膮 podstawow膮 znajomo艣膰 jakiego艣 j臋zyka programowania bez id膮cej za t膮 znajomo艣ci膮 wiedzy zwi膮zanej z architektur膮, zwi膮zanej z technologi膮 i bez wiedzy zwi膮zanej z rozwi膮zywaniem jakich艣 problem贸w. Tak偶e cz臋艣膰 programist贸w z pewno艣ci膮 mo偶e by膰 zaniepokojona, ale ci lepsi mog膮 by膰 spokojni.

Szymon G艂owania
Czyli jakby si艂膮 rzeczy zredukuje to cz臋艣膰 naszej pracy, mam nadziej臋, 偶e tej, kt贸rej nie lubimy na co dzie艅 robi膰, czyli po prostu jakie艣 zwyk艂e, nieciekawe elementy, kt贸re trzeba po prostu przeklepa膰, 偶eby one rzeczywi艣cie by艂y dost臋pne i nie s膮 szczytem naszych marze艅 do pisania programistycznych. Natomiast si艂膮 rzeczy tak czy inaczej musimy te偶 pewnie pami臋ta膰 o tym, 偶e 偶eby sta膰 si臋 tym dobrym programist膮, no to kiedy艣 trzeba by膰 tym s艂abym. Czyli ka偶dy z nas b臋dzie startowa艂 i uwa偶am, 偶e my te偶 kiedy艣 zaczynali艣my. Wtedy tych narz臋dzi AI, takich dost臋pnych, konwersacyjnych nie by艂o za du偶o. Uczy膰 trzeba by艂o si臋 raczej z dokumentacji, p贸藕niej dopiero ewentualnie z jakich艣 ksi膮偶ek i to raczej wszystko by艂o angloj臋zyczne.
Natomiast na chwil臋 obecn膮 jeste艣my w stanie si臋 uczy膰 z takich narz臋dzi, z kt贸rymi rozmawiamy i t膮 podstawow膮 wiedz臋 tam zdobywa膰. Czyli jest to zar贸wno u艂atwienie w pewnym stopniu, przynajmniej z mojej perspektywy, no bo mamy nauczyciela 24 godziny na dob臋 z danego j臋zyka, no ale te偶 utrudnienie, no bo ten pr贸g, czyli ta nasza wiedza musi by膰 wi臋ksza, 偶eby艣my byli w stanie z tego korzysta膰. Nie wiem jak z twojej perspektywy, ale u mnie wykorzystanie tych narz臋dzi AI to nie jest tak, 偶e ka偶dy mo偶e si膮艣膰 do tego toola i napisa膰 wszystko, tylko je艣li masz t膮 wiedz臋 rzeczywi艣cie programistyczn膮, no to jest du偶o 艂atwiejsze.
I tutaj te pytania s膮 ju偶 stricte zwi膮zane z kodem, a nie tylko z logik膮 biznesow膮. Jak u Ciebie to wygl膮da?聽

Artur Sm贸艂ka
Tak, dok艂adnie, masz pe艂n膮聽racj臋, ca艂kowicie si臋 z Tob膮 zgadzam. Generalnie na AI mo偶emy delegowa膰 to, co najmniej nas interesuje. Szczeg贸lnie je偶eli to s膮 takie bardzo d艂ugie instrukcje, dobrze nam znane, jakie艣 rozbudowane instrukcje warunkowe czy zapytania, AI doskonale sobie z tym poradzi. Natomiast to co pozostaje ca艂y czas na barkach programisty to jest wymy艣lenie rozwi膮zania i zasugerowanie AI jak ma dane rozwi膮zanie zaimplementowa膰. Musimy te偶 pami臋ta膰, 偶e u偶ywanie AI np. takie narz臋dzia jak CoPilot jest to taki swoisty game changer. To nie tak, 偶e on nam proponuje rozwi膮zanie i my musimy zawsze je zaakceptowa膰. Cz臋sto to pierwsze rozwi膮zanie, pierwsza wersja kodu, kt贸r膮 AI nam zasugeruje jest mo偶e nie tyle wadliwa, co nieoptymalna, lekko tak rzecz ujmuj膮c.
I wtedy jest rol膮 programisty czy w艂a艣nie architekta, aby dyskutowa膰, bo pami臋tajmy, 偶e te wszystkie dzisiejsze dodatki do 艣rodowisk programistycznych maj膮 gdzie艣 tam wbudowany chat w takiej albo innej wersji. I z regu艂y my musimy wsp贸lnie z AI doj艣膰 do tej najbardziej optymalnej wersji kodu, sugeruj膮c mu na przyk艂ad co powinien zmieni膰, czy co jednak pozostaje jeszcze do optymalizacji, bazuj膮c na naszej wiedzy i na naszym do艣wiadczeniu.

Szymon G艂owania
Czyli zwr贸ci w takim pierwszym kroku rozwi膮zanie, kt贸re jest mu naj艂atwiej zrobi膰, tak samo jak programi艣cie, ale pozostawia pewne pole do tego, 偶eby to p贸藕niej gdzie艣 do偶y艂owa膰 i ju偶 w pewnym momencie ta architektura by艂a optymalna i dostarczane by艂o to w takim czasie jak chcemy.聽

Artur Sm贸艂ka
Tak, dok艂adnie tak. I tu znowu widzisz, rozr贸偶niamy takich programist贸w, powiedzmy niedo艣wiadczonych, nie? Programist贸w, kt贸rzy si臋 zach艂ysn膮. O kurcze, ten AI naprawd臋 napisa艂 ca艂y ekran kodu, po kompilacji on dzia艂a, nawet test jednostkowy przeszed艂, czyli wydaje si臋, 偶e to jest fajnie, 偶e jest okej. I mam tak膮 obserwacj臋, 偶e cz臋艣膰 programist贸w niejako zach艂y艣nie si臋. Ojej, on zrobi tyle rzeczy za mnie, to id藕my t膮 drog膮. Podczas gdy bardziej do艣wiadczony deweloper zauwa偶y, 偶e to wcale tak nie dzia艂a, 偶e jednak ten kod co prawda jest napisany, cz臋sto spe艂ni wi臋kszo艣膰, o ile nie wszystkie testy jednostkowe, ale on nadal nie jest optymalny.
By膰 mo偶e nie jest te偶 sp贸jny z naszym stylem programowania, z tym jak mamy u艂o偶one jakie艣 klasy. Cz臋sto, tak jak powiedzia艂e艣, to rozwi膮zanie jest najbardziej oczywiste. Takie, kt贸re powiedzmy jaki艣 student te偶 by napisa艂 i by wpad艂, tylko tyle, 偶e AI zrobi to zdecydowanie szybciej, wr臋cz w mgnieniu oka nam ten kod wygeneruje.

Szymon G艂owania
Pierwszy wynik wyszukiwania na Stack Overflow, nie?

Artur Sm贸艂ka
Tak, natomiast dalej jest rol膮 programisty, 偶eby to zweryfikowa膰, zwalidowa膰 i niejako wsp贸lnie z AI doj艣膰 do optymalnego rozwi膮zania. I tu znowu jest ta ekspertyza programisty, ekspertyza dewelopera, kt贸ry ju偶 ma do艣wiadczenie, widzi ten kod, widzi jakie艣 tam patterny takie bardzo oczywiste w tym kodzie. No i wsp贸lnie z AI w艂a艣nie przez ten chat najcz臋艣ciej albo przez zwyk艂e takie ingerencje manualne w kod spr贸buje doj艣膰 do najbardziej optymalnej wersji. I cz臋sto ona jest zdecydowanie odmienna od tego prototypu czy tej wersji pierwotnej zaproponowanej przez AI. odr贸偶nia tych deweloper贸w pocz膮tkuj膮cych, kt贸rzy s膮 pod wielkim wra偶eniem tego AI od deweloper贸w bardziej zaawansowanych z do艣wiadczeniem, kt贸rzy cz臋sto podchodz膮 do AI z rezerw膮.
Bo jeszcze taka my艣l poboczna, kt贸r膮 chc臋 si臋 z wami podzieli膰 jest taka, 偶e ja generalnie jestem wielkim fanem AI, jestem wielkim fanem tych wszystkich mo偶emy sobie zaraz przez nie przej艣膰, bo niekt贸re z nich s膮 po prostu 艣wietne, a przy tym do艣膰 tanie, wi臋c tam warto艣膰 do ceny jest niesamowicie korzystna dla nas. Ale widzicie, ja zawsze zach臋cam w艂a艣cicieli projekt贸w, czy jakich艣 lider贸w technicznych, 偶eby艣my jednak u偶ywali tego AI. Oczywi艣cie mo偶emy sobie powiedzie膰 o wszelkich niebezpiecze艅stwach, kt贸re za tym id膮, no ale ja jednak zach臋cam. I cz臋sto pojawia si臋, wiecie, taki op贸r ze strony tych bardziej do艣wiadczonych programist贸w. Oni m贸wi膮, nie, AI to sugeruje tylko jakie艣 najprostsze rozwi膮zania, to jest plagiat, to jest stack overflow i tak dalej.
I jak kto艣 tak m贸wi, to od razu zapala mi si臋 taka lampka, aha, on chyba wcale tego AI-a tak naprawd臋 nie u偶ywa, a jak ju偶 go u偶ywa, to akceptuje t膮 pierwsz膮 odpowied藕. Czyli nie ma tego kroku takiego refine, tego kroku wyg艂adzania, optymalizacji tego kodu. Poniewa偶 je偶eli ten krok b臋dziemy zawsze uwzgl臋dnia膰 i mie膰 w naszym procesie wytwarzania programowania, to my艣l臋, 偶e ka偶dy b臋dzie z tego AI zadowolony, bo robi on naprawd臋 艣wietn膮 robot臋, tylko tak jak m贸wi臋, trzeba troszeczk臋 mie膰 wiedzy i do艣wiadczenia jak z tego najbardziej optymalnie skorzysta膰.

Szymon G艂owania
No jakby ten AI nie b臋dzie, my艣l臋, 偶e nie zniknie z naszej pracy, raczej b臋dzie wchodzi艂 coraz g艂臋biej i b臋dziemy mieli tych narz臋dzi, i potrzeb korzystania z nich coraz wi臋cej, wi臋c tutaj musimy si臋 tych narz臋dzi na pewno nauczy膰. Mi pojawi艂o si臋 w trakcie twojej wypowiedzi takie pytanie, czy zastanawia艂e艣 si臋, kiedy najcz臋艣ciej nie dzia艂a ci jaki艣 kod zwr贸cony przez AI?

Artur Sm贸艂ka
To jest bardzo dobre pytanie, bo w og贸le ten kod to zazwyczaj dzia艂a, tylko w sensie kompiluje si臋 i jest w stanie zwr贸ci膰 jaki艣 rezultat. To raczej rzadko si臋 zdarza, 偶eby ten kod by艂 ca艂kowicie wadliwy. Natomiast to, co si臋 dzieje, to jest to, 偶e ten kod nie spe艂nia wszystkich oczekiwa艅, czyli nie bierze pod uwag臋 wszystkich ogranicze艅 czy wszystkich wymaga艅, jakie my by艣my chcieli, aby on wzi膮艂 pod uwag臋. I najcz臋艣ciej, s艂uchajcie, odpowied藕 jest niestety do艣膰 smutna, mianowicie taka, 偶e deweloper nienale偶ycie starannie skonstruowa艂 prompt. Czyli nie poinformowa艂 tego AI o wszystkich ograniczeniach, o wszystkich wymaganiach, kryteriach, jakie chcemy, aby ten kod spe艂nia艂.
Ja w swojej obserwacji, swojego do艣wiadczenia mog臋 powiedzie膰, 偶e je偶eli dostatecznie du偶o uwagi i pracy w艂o偶ymy w napisanie promptu, dostarczymy mu dobry kontekst, czyli najcz臋艣ciej po prostu w CoPilocie przeci膮gniemy, powiemy mu, s艂uchaj, kontekst to jest ten plik, ten plik i ten plik. I on we藕mie pod uwag臋 ca艂y kontekst, nie tylko wycinek. Prompt jest dobrze skonstruowany, to z regu艂y odpowied藕 jest satysfakcjonuj膮ca. Wi臋c odpowiadaj膮c na swoje pytanie, nienale偶ycie skonstruowany prompt, AI nie ma wiedzy o wszystkich kryteriach i ograniczeniach, jakie chcemy, aby wzi膮艂 pod uwag臋.

Szymon G艂owania
Z mojej perspektywy pisania prompt贸w zazwyczaj podchodz臋 do niego jak do mojego sze艣cioletniego syna, czyli og贸lnie rzecz bior膮c jaka艣 znajomo艣膰 艣wiata jest, ale wszystkie szczeg贸艂y z dok艂adno艣ci膮 jakie kolejne po sobie zadania maj膮 zosta膰 wykonane, jest kluczowa do tego, 偶eby on zwr贸ci艂 jaki艣 wynik. Je艣li chodzi o kompilacj臋 kodu, u mnie wygl膮da to tak, 偶e najcz臋艣ciej je艣li si臋 nie kompiluje albo generuje jaki艣 b艂膮d, to jest zwi膮zane z nieaktualno艣ci膮 rozwi膮zania, kt贸re dostarczy艂, czyli pojawi艂a si臋 nowa wersja biblioteki i najcz臋艣ciej to jest przej艣cie z wersji tam 2 na 3, z 7 na 10, a nie tam wersj臋 ile艣 po przecinku i po prostu w nowej implementacji albo nie by艂a zachowana zgodno艣膰 wsteczna, no albo gdzie艣 po drodze kto艣, 偶e tak powiem, pope艂ni艂 b艂膮d i aktualnie zwracany kod jest po prostu niedost臋pny najnowszej wersji.
Natomiast tak je艣li chodzi o dodawanie tych szczeg贸艂贸w to jest to kluczowe. Jak ty zaczynasz w og贸le podchodzenie do takiej budowy takiego prompta czy masz jakie艣 okre艣lone kroki kt贸re zawsze zak艂adasz, 偶e wykonujesz czy starasz si臋 po prostu przej艣膰 na przyk艂ad z jak膮艣 dokumentacj膮.

Artur Sm贸艂ka
Przede wszystkim zale偶y to te偶 od narz臋dzia, z kt贸rego korzystam bo staram si臋 dostosowa膰 narz臋dzie do potrzeby, kt贸r膮 mam. Oczywi艣cie g艂贸wnie to jest CoPilot, kt贸ry rzeczywi艣cie jest takim standardowym ju偶 dzisiaj chyba dodatkiem do Visual Studio i wiem, 偶e wiele firm po prostu kupuj膮c Visual Studio od razu kupuje subskrypcj臋 na GitHub’a po to, aby tego CoPilota programistom swoim da膰. Natomiast bywa, 偶e korzystam te偶 z innych narz臋dzi. Mog臋 na przyk艂ad wspomnie膰 o narz臋dziu, kt贸rym jest SurfGraph, kt贸ry 艣wietnie radzi sobie z analiz膮 takiego du偶ego kodu. On bierze pod uwag臋 wszelkie zale偶no艣ci w kodzie, dostarcza tak膮 analiz臋 pe艂nej tej bazy kodu, czyli bierze pod uwag臋 wszelkie zale偶no艣ci.
Te偶 艣wietne narz臋dzie, je偶eli dostajemy jaki艣 kod, kt贸ry mamy po prostu rozpozna膰 i chcemy gdzie艣 dalej z nim pracowa膰. Wi臋c generalnie dostosowuj臋 do narz臋dzia. Bywa te偶, 偶e u偶ywam zwyk艂ego Chatu GPT czy Microsoft Copilot, zwyk艂y chat i wtedy ta praca wygl膮da troch臋 inaczej. Je偶eli natomiast chodzi o CoPilota, czyli to, co najcz臋艣ciej interesuje programist贸w, to zaczynam zawsze od ustalenia kontekstu. Czyli je偶eli na przyk艂ad, chyba nie z dzisiaj rana, mia艂em zmieni膰 do艣膰 istotnie wygl膮d wizualny pewnej formatki, pewnej strony w aplikacji klienta. I to od czego zaczynam, to kt贸re pliki prawdopodobnie b臋d臋 ja jako programista musia艂 dotkn膮膰, zmodyfikowa膰. Czyli pewnie arkusz styl贸w globalnych, arkusz styli danego komponentu, kod HTML danego komponentu i mo偶e TypeScript, bo to by艂 Angular, bo tam jeszcze jakie艣 pewne rzeczy by艂y ukryte.
Czyli ustali艂em, 偶e cztery pliki wchodz膮 w sk艂ad kontekstu i to przekaza艂em do CoPilota. M贸wi臋, s艂uchaj, prawdopodobnie analizuj膮c to, o co ja zaraz Ci臋 poprosz臋, b臋dziesz musia艂 wzi膮膰 pod uwag臋 zawarto艣膰 tych czterech plik贸w. I to jest kluczowe, bo je偶eli przeka偶emy mu tylko jeden plik, on spr贸buje zbudowa膰 rozwi膮zanie, jakby tu zmodyfikowa膰 ten jeden plik przekazany jako kontekst, aby osi膮gn膮膰 ten rezultat. Nie o to nam chodzi. My chcemy zrobi膰 to tak, jakby to robi艂 programista. Wi臋c ustalenie kontekstu, jaka by艂a rzecz kluczowa. A druga kwestia, dobre napisanie promptu. Czyli nie jedna linijka, bo wiemy, 偶e CoPilot nam zawsze zwr贸ci jak膮艣 odpowied藕, nawet je偶eli jedn膮 linijk膮 go tylko zapytamy.
Ale wtedy ta odpowied藕 b臋dzie co najmniej nietrafna. Tak偶e do艣膰 rozbudowany prompt wymagania, czyli m贸wi臋 co ma zrobi膰 i m贸wi臋 kiedy ja uznam, 偶e to co zrobi艂 jest OK, jest gotowe. Czyli chocia偶 takie kr贸tkie kryteria akceptacyjne. Oczywi艣cie to wymaga w艂o偶enia tych kilku minut, ale cz臋sto ju偶 po jednej, dw贸ch interakcjach ta odpowied藕 jest satysfakcjonuj膮ca i po prostu to dzia艂a i wr臋cz mog臋 to commitowa膰 do reprezentant贸w.

Szymon G艂owania
Wspomnia艂e艣 tutaj o r贸偶nych narz臋dziach, z kt贸rych mo偶emy korzysta膰 do tego, 偶eby 艂atwiej sobie z jakim艣 kodem radzi膰, tworzy膰 ten kod, tworzy膰 rozwi膮zania. Czy mogliby艣my przej艣膰 przez takie kategorie z uwzgl臋dnieniem tego co powiedzia艂e艣 i zobaczy膰 z czego warto przynajmniej z naszej perspektywy tutaj korzysta膰?

Artur Sm贸艂ka
艢wietnie, bardzo dobre pytanie, bo warto w艂a艣nie skorzysta膰 z tej okazji, 偶e rozmawiamy, 偶eby troch臋 tak, nazwijmy, poewangelizowa膰 deweloper贸w, bo ja wiem, 偶e niekt贸rzy nie maj膮, wiecie, takiej pe艂nej wiedzy i du偶o rzeczy po prostu im umyka, a mogliby skorzysta膰 i sobie po prostu pom贸c. I w艂a艣nie, pierwsza kategoria to s膮 narz臋dzia, kt贸re generuj膮 nam kod i automatyzuj膮 tworzenie tego kodu, wszelkiego typu u艂atwiacze. Przede wszystkim sztandarowy przyk艂ad to jest Copilot. Dalej mamy np. Tab9 czy Code Whisper od Amazonu. To s膮 takie do艣膰 znane, to s膮 akurat popularne narz臋dzia, cz臋sto jako dodatek do Visual Studio. Pomagaj膮 w tworzeniu kodu, maj膮 wybudowany chat, do艣膰 standardowe tool’e.
Ale to, co ju偶 mniej os贸b zna, to jest druga kategoria, czyli analiza du偶ego kodu. Za艂贸偶my, 偶e mamy zastan膮 aplikacj臋, zostajemy skierowani do nowego projektu, rozbudowanego, mn贸stwo kodu, mo偶e w j臋zyku, w kt贸rym nie jeste艣my ekspertem. Ja na przyk艂ad mia艂em ostatnio do czynienia z Visual Basic. Jestem g艂贸wnie C-Sharpowcem. M贸wili no ale Visual Basic to te偶 .NET to jako艣 si臋 odnajdziesz. No to wcale nie tak prosto wygl膮da. Ka偶dy kto widzia艂 Visual Basic wie, 偶e to wcale nie jest takie podobne do C-Sharpa. Wr臋cz momentami co najmniej zaskakuj膮ce. No ale takie zadanie gdzie艣 tam by艂o postawione i temat by艂 do艣膰 krytyczny, bo to by艂 taki core biznes aplikacji.
I wtedy z pomoc膮 przychodz膮 narz臋dzia do analizy kodu, typowo dedykowane, trenowane i uczone, 偶eby by艂y w tym dobre. I takim sztandarowym przyk艂adem jest w艂a艣nie Sourcegraph. On kosztuje kilkana艣cie dolar贸w w zastosowaniu komercyjnym. Jest te偶 darmowa licencja, ca艂kiem bogata. I on rzeczywi艣cie, tak jak powiedzia艂em, ten ca艂y codebase, czyli ca艂e repozytorium, ca艂y kod bierze pod uwag臋, pr贸buje znale藕膰 relacje, nawet je偶eli te relacje nie s膮 wprost podane. Je偶eli kto艣 u偶ywa CoPilota, proponuj臋 zainteresowa膰 si臋 now膮 funkcj膮 wprowadzon膮 nie tak dawno, jaki艣 miesi膮c temu, kt贸ra nazywa si臋 CoPilot Edit. Przeci膮gamy kilka plik贸w i m贸wimy, s艂uchaj CoPilot, te cztery pliki bierz pod uwag臋 i te cztery pliki prosz臋 ci臋 modyfikuj, tworz膮c rozwi膮zanie, CoPilot Edit, do sprawdzenia, do poszukania informacji.
Generalnie rekomenduj臋 na razie wersja preview, ale dzia艂a ca艂kiem p艂ynnie. Polecam. Kolejny zestaw narz臋dzi to debugowanie i testowanie. Te偶 do tego mamy 艣wietne toole. Przede wszystkim mam tutaj na my艣li Sonar Cube, kt贸ry wi臋kszo艣膰 programist贸w zna, szczeg贸lnie ze 艣wiata dotnetowego. Niedawno go wzbogacili o ca艂kiem fajne narz臋dzia AI i on dokonuje takiej statycznej analizy kodu. Szuka podatno艣ci, szuka starych bibliotek. Ale ten AI pomaga nam te偶 zidentyfikowa膰 takie typowe patterne programistyczne, kt贸re s膮 uznawane za niebezpieczne albo nieoptymalne. Tak偶e ca艂a ga艂膮藕 narz臋dzi, kt贸r膮 mo偶emy sobie wple艣膰 w nasze procesy continuous delivery, continuous development, analizuj膮, u偶ywaj膮c AI-a, optymalno艣膰 tego kodu, bezpiecze艅stwo tego kodu, jego integralno艣膰.

Szymon G艂owania
Si艂膮 rzeczy takie narz臋dzie jest w stanie wyci膮gn膮膰 du偶o wi臋cej relacji pomi臋dzy poszczeg贸lnymi obiektami, klasami itd. ni偶 byliby艣my w stanie znale藕膰 my. Czyli tutaj to bezpiecze艅stwo i jako艣膰 tego kodu b臋dzie wzrasta艂o. Czyli poniek膮d obalamy ten mit, 偶e AI mo偶na u偶y膰 tylko i wy艂膮cznie do klepania tego w艂a艣nie takiego niskojako艣ciowego kodu, kt贸ry zostaje wypluty ze wzgl臋du na to, 偶e takie zapytanie zadali艣my do takiego popularnego narz臋dzia, a nie dobrali艣my odpowiedniej metody i tego co chcemy zrobi膰.聽

Artur Sm贸艂ka
Tak, 艣wietna obserwacja.聽Dok艂adnie tak jest i naprawd臋 robi 艣wietn膮 robot臋. Ja co prawda widzia艂em w 偶yciu tylko jeden taki pipeline gdzie firma taka ju偶 bardzo nowoczesna wp艂ot艂a ten Sonar Cube z Appliance AI, ale on robi艂 niesamowite rzeczy. On odkrywa艂 takie kwestie w tym kodzie, kt贸re my jako programi艣ci rzeczywi艣cie przyznali艣my: o kurcze, nie byliby艣my chyba na to w stanie wpa艣膰, bior膮c pod uwag臋 z艂o偶ono艣膰 tego kodu. Tak偶e generalnie by艂em pod wielkim wra偶eniem i wr臋cz do teraz ca艂y czas o tym opowiadam, bo robi to niesamowit膮 robot臋. Kolejna ga艂膮藕, s艂uchajcie, to jest Project Management. To nie jest oczywiste, nie ka偶dy sobie zdaje z tego spraw臋, ale tak, Jira, kt贸rej chyba wi臋kszo艣膰 z nas korzysta, ma dzisiaj bardzo bogaty dodatek zwi膮zany z AI.
Trzeba go kupi膰 dodatkowo, ale nie jest on a偶 tak drogi w por贸wnaniu do tego jaki zwrot tej inwestycji nam dostarczy. Co mo偶emy tam robi膰 w tym AI-u? Na przyk艂ad mo偶emy tak realnie estymowa膰 zadania. AI bierze pod uwag臋 tego typu zadania, o tej z艂o偶ono艣ci zadania w przesz艂o艣ci, w jakim czasie by艂y realizowane, bierze pod uwag臋 opis, nawet bierze pod uwag臋 kod, je偶eli jest tam odpowiednie po艂膮czenie do kodu i to wszystko pomaga mu ustali膰 jaki jest taki realny czas realizacji tego zadania. Tak偶e bardzo fajna pomoc dla project manager贸w, te偶 forma weryfikacji tego, co twierdz膮 programi艣ci, ale te偶 pomoc sama dla programist贸w, 偶eby nie by艂o zada艅 niedoszacowanych.
Umo偶liwia te偶 wyszukiwanie na przyk艂ad powi膮zanych task贸w, je偶eli si臋 co艣 duplikuje, mamy du偶y projekt podzielony na kilka board贸w. No i JIRA dzia艂aj膮c w spos贸b ci膮g艂y umo偶liwia, s艂uchaj bo tam ju偶 inny team b臋dzie realizowa艂 podobne zadanie, co najmniej skonsultuj si臋 z nimi zanim ty zaczniesz nad tym pracowa膰. To wszystko ju偶 si臋 dzieje, to wszystko ju偶 jest dzisiaj. W ten spos贸b funkcjonuje, to nie jest, wiecie, jaka艣 wizja. Naprawd臋 JIRA ju偶 taki dodatek zaimplementowa艂a i ci, kt贸rzy go u偶ywaj膮, wiem, 偶e bardzo, bardzo s膮 zaskoczeni efektywno艣ci膮, w jaki spos贸b to sobie radzi.

Szymon G艂owania
Czyli maj膮c takie narz臋dzie do monitorowania i zarz膮dzania jakby projektem czy projektami w idealnym stanie, jedna JIRA czy jaki艣 jeden inny tool dost臋pny do zarz膮dzania projektem m贸g艂by by膰 wdro偶ony w firmie? I p贸藕niej redundancja pomi臋dzy poszczeg贸lnymi jednostkami za pomoc膮 AI by艂aby w stanie zej艣膰 do minimum, czyli te zadania nie powiela艂yby si臋 takie same w r贸偶nych jednostkach, bo by艂oby to mo偶liwe do wychwycenia, si艂膮 rzeczy b臋d膮c cz艂owiekiem, my tych wszystkich powi膮za艅 nie b臋dziemy w stanie zaobserwowa膰, ka偶dy z project manager贸w te偶 opiekuje jaki艣 ma艂y fragment, czyli tutaj mamy do zaopiekowania nasze zespo艂y, naszych kilka zespo艂贸w i development konkretnego narz臋dzia, konkretnych tooli realizuj膮cych jak膮艣 potrzeb臋 biznesow膮.
Taka sama potrzeba mo偶e pojawi膰 si臋 w drugiej cz臋艣ci firmy, kt贸r膮 opiekuje zupe艂nie inny manager i tam ta informacja niekoniecznie musi, 偶e tak powiem, dotrze膰. Wi臋c takie dodatki na pewno by nam pomog艂y w usp贸jnianiu si臋 wzgl臋dem firmy no i zarz膮dzaniu szybkim zwinnym.

Artur Sm贸艂ka
Tak, absolutnie. Dok艂adnie tak jest. No mog臋 tak膮 anegdot臋 przytoczy膰, 偶e te偶 by艂em 艣wiadkiem gdzie艣 sobie testowo, jedna z firm zainstalowa艂a t膮 Jir臋 z dodatkiem AI. Wiecie, teraz wi臋kszo艣膰 tych firm daje tak膮 30, nieraz 60 dniow膮 pe艂n膮 wersj臋 za darmo testow膮, 偶eby po prostu przyzwyczai膰 ludzi, 偶eby te偶 troch臋 pokaza膰 im te mo偶liwo艣ci i przez to zach臋ci膰 do kupna. I w jednym z projekt贸w, w kt贸rych pracuj臋, w艂a艣nie tak zrobili艣my, 偶e m贸wimy, a czemu nie zainstalujmy do Jiry ten dodatek. I s艂uchajcie, mieli艣my takie spotkanie planowania nowego sprintu, takiego nowego kwarta艂u i estymowali艣my, tak jak zawsze w Scrumie si臋 to robi, taski.
No i te偶 ta Jira sobie tam pod spodem dzia艂a艂a i niejako czuwa艂a nad t膮 nasz膮 estymacj膮. I w pewnym momencie tam si臋 pojawi艂 taki komunikat, s艂uchaj, to zadanie jest na pewno niedoestymowane. My艣my byli zaskoczeni, m贸wimy, a chyba to jednak nie jest wcale takie dobre, na pewno si臋 myli, nie? Ale mamy mo偶liwo艣膰 poproszenia go o uzasadnienie. No i on m贸wi, s艂uchajcie, nie wzi臋li艣cie pod uwag臋 tego, tego, tego, a w og贸le jak chcecie modyfikowa膰 jak膮艣 cz臋艣膰 aplikacji, kt贸rej to zadanie dotyczy艂o, musicie wej艣膰 w taki krytyczny obszar aplikacji, a wcze艣niej, gdy tam dzia艂ali艣cie, to zajmowa艂o wam to zawsze kup臋 czasu, bo to jest szalenie powi膮zane i pokomplikowane.
I my艣my dopiero wtedy m贸wili, 偶e faktycznie nie pomy艣leli艣my o tym. Zapomnieli艣my, 偶e jest tam jakie艣 ukryte powi膮zanie, a JIRA z tym dodatkiem AI odkry艂a to na podstawie historii, na kt贸rej gdzie艣 tam si臋 pod spodem uczy艂a. Tak偶e wtedy po raz kolejny si臋 przekonali艣my, 偶e to jednak rzeczywi艣cie dzia艂a, no i pomog艂o nam uchroni膰 si臋 przed niedoszacowaniem, takim bardzo mocnym niedoszacowaniem taska. Tak偶e z pewno艣ci膮 dzia艂a to ca艂kiem dobrze, aczkolwiek oczywi艣cie zawsze to ograniczone zaufanie jest konieczne.

Szymon G艂owania
Czyli nie zawsze wszystko wrzucamy do Chata GPT i podaj mi instrukcj臋 jak mam zarz膮dza膰 tym projektem, ale mamy inne, bardziej wyspecjalizowane pod tym k膮tem narz臋dzia, na przyk艂ad w艂a艣nie ten dodatek do JIR-y. Ale jakby zarz膮dzanie projektami to nie jedyny aspekt, w kt贸rym jeszcze mo偶emy co艣 zaproponowa膰.聽

Artur Sm贸艂ka
Tak, tak. Ko艅cz膮c, bo聽jeszcze kilka nam zosta艂o takich ga艂臋zi, gdzie to AI jest pomocne. To s艂uchajcie, czym ja znowu si臋, jak s艂yszycie, ja si臋 wieloma rzeczami zachwycam w obszarze tego AI. Ale to, o czym teraz powiem, szczeg贸lnie na mnie du偶e wra偶enie robi, to jest taka strona de facto, kt贸ra si臋 nazywa Builder.io i ona umo偶liwia konwersj臋 mock-up贸w Figmy. Figm臋 chyba ka偶dy kojarzy z deweloper贸w, narz臋dzie do tworzenia mock-up贸w, do tworzenia takich konspekt贸w, projekt贸w aplikacji od strony wizualnej. I ten dodatek Builder.io, cho膰 Figma te偶 ma co艣 swojego, po prostu generuje nam kod w j臋zyku, jakiego sobie 偶yczymy. S艂uchaj, tu jest mockup.
Tak wygl膮da mniej wi臋cej wizja naszej aplikacji. No i teraz mamy dwie opcje. Mo偶emy wynaj膮膰 jakiego艣 programist臋 czy designera, kt贸ry nam to zaimplementuje, co zajmie mu czas i z pewno艣ci膮 b臋dziemy musieli mu sporo zap艂aci膰. A mo偶emy u偶y膰 takiego programu. Z pewno艣ci膮 ten wynik nie b臋dzie idealny, ale b臋dzie 艣wietnym punktem startowym dla deweloper贸w, kt贸rzy ju偶 sami dalej sobie z tym poradz膮. Tak偶e Builder.io konwersja Figmy do normalnego kodu zrozumia艂ego dla programist贸w w spos贸b praktycznie automatyczny. Ja robi艂em takie do艣wiadczenie te偶 w Chatem GPT i on te偶 sobie w tym radzi paradoksalnie, szczeg贸lnie ta nowa wersja o1. Da艂em mu zrzut Figmy.
Zwyczajny rysunek i poprosi艂em s艂uchaj wygeneruj mi HTMLa i style kaskadowe do tego i paradoksalnie te偶 ca艂kiem dobrze zrobi艂 t臋 robot臋 wi臋c je偶eli kto艣 nie chce kupowa膰 tego Builder.io czy tego typu rozwi膮za艅 tej klasy pami臋tajcie 偶e zwyk艂y CoPilot czy zwyk艂y Chat GPT te偶 tak nie oczywi艣cie, ale jest w stanie nam w tym pom贸c. Tak偶e to jest te偶 to, kt贸re bardzo, bardzo du偶o czasu nam oszcz臋dza w projektach. No i kolejna rzecz to jest samo uczenie si臋 i onboarding nowych programist贸w. Mo偶emy sobie wyobrazi膰, 偶e u nas w firmie dzia艂a jakie艣 narz臋dzie AI, kt贸re po prostu nauczymy naszym kodem jakiej艣 du偶ej aplikacji.
Mamy aplikacj臋, oczywi艣cie musi to by膰 zrobione bezpiecznie, ale ono si臋 nauczy wszelkich we藕mie pod uwag臋 dokumentacj臋, we藕mie pod uwag臋 kod, nauczy si臋 zale偶no艣ci. I gdy wchodz膮 nowi programi艣ci, to ju偶 nie musimy anga偶owa膰 senior贸w czy ca艂ej grupy senior贸w, kt贸rzy b臋d膮 po prostu t艂umaczy膰 jak ta aplikacja dzia艂a i t艂umaczy膰 wszelkie niuanse kodu. My zwyczajnie delegujemy to zadanie do AI. Je偶eli przed nami jest taki wi臋kszy onboarding, gdzie tych programist贸w b臋dzie wielu, uwa偶am, 偶e jest to gra warta 艣wieczki. Czyli mamy do tego szczeg贸lnie narz臋dzia, kt贸re robi膮 to w spos贸b automatyczny, wi臋c to te偶 jest niejako olbrzymi wysi艂ek, ale zwrot zn贸w w tej inwestycji jest szalony, poniewa偶 pami臋tajcie, 偶e taki senior developer te偶 o wszystkim nie pami臋ta, te偶 nie zna wszelkich arkan贸w aplikacji, AI jest w stanie to pozna膰, zinwestygowa膰 i p贸藕niej nauczy膰 nowych programist贸w.
Czyli ca艂y proces learningu, onboardingu te偶 znakomicie mo偶emy delegowa膰 do AI.

Szymon G艂owania
Wszystko co du偶e b臋dziemy starali si臋 tam wrzuca膰. B臋dziemy mieli du偶o pracownik贸w, du偶o dokumentacji, du偶o kodu, wi臋c to z czym my by艣my na co dzie艅 mieli problem si臋 zapozna膰, bo nasze ograniczenia stricte ludzkie maj膮 tutaj kluczowe znaczenie jeste艣my w stanie oddelegowa膰 tam i zrealizowa膰 du偶o, du偶o szybciej, nie?聽

Artur Sm贸艂ka
Dok艂adnie聽tak. Jest to pewien, wiecie, taka troch臋 krzywa uczenia si臋, nie? I taki koszt startu. Wiemy, 偶e robimy pierwszy raz, to zawsze ten koszt startu b臋dzie do艣膰 wysoki i b臋dzie to wymaga艂o od nas sporego wysi艂ku. Ale ka偶dy kolejny raz b臋dzie ju偶 艂atwiejszy, zdecydowanie 艂atwiejszy. Wi臋c ja widz臋 te偶 tak膮 tendencj臋, 偶e wiele firmy troszeczk臋 broni si臋 przed takim szerokim stosowaniem AI, o kt贸rym ja teraz m贸wi臋, w艂a艣nie ze wzgl臋du na ten koszt startu. To jest dla nich taki Greenfield i oni nie wiedz膮 w og贸le jak do tego podej艣膰. Natomiast ja uwa偶am, 偶e to jest nieuchronne i oni w ko艅cu i tak zostan膮 do tego zmuszeni, po prostu przez rynek.
Dlatego wydaje si臋, 偶e czym zrobi膮 to wcze艣niej, tym szybciej b臋d膮 mieli ten rezultat. Wi臋c zawsze trzeba pami臋ta膰, 偶e ten pierwszy raz z totalnie nowym narz臋dziem, now膮 technologi膮 b臋dzie trudny, ale ka偶dy kolejny raz ju偶 b臋dzie 艂atwiejsze dlatego tak jak powiedzia艂e艣 wszelkie du偶e rzeczy zach臋cam.

Szymon G艂owania
No tutaj jest du偶y pr贸g wej艣cia niekiedy 偶eby to sprawdzi膰 dewelopersko 偶eby sprawdzi膰 sobie to tak 偶eby dzia艂a艂o for fun no to oczywi艣cie wystarczy jaka艣 tam podstawowa licencja natomiast firmy tutaj ju偶 te licencje musz膮 mie膰 op艂acone nieco wy偶sze wi臋c pr贸g wej艣cia jest. Zgadzam si臋 z tob膮 w zupe艂no艣ci 偶e firmy zostan膮 do tego zmuszone jakby si艂膮 rzeczy nie b臋dziemy w stanie lud藕mi takiego zapotrzebowania na te wszystkie developementy pokry膰, wi臋c tutaj b臋dzie to bardzo, bardzo pomocne. My艣l臋, 偶e nie zast膮pimy stricte wszystkich programist贸w, ale pozwolimy, 偶eby pracowali najlepsi i w wygodnym dla siebie podej艣ciu. Nie wiem jak u Ciebie w zespole, ale u mnie zawsze du偶a frustracja wi膮za艂a si臋 z tym, 偶e trzeba najpierw przygotowa膰 projekt, na przyk艂ad w艂a艣nie w Figmie, kt贸ry trzeba doszlifowa膰 z klientem, pokaza膰 go, on si臋 i tak jeszcze 10 razy zmieni, bo klient jednak stwierdzi, 偶e ten kolor ma by膰 inny.
Kto艣 przygotuje to w Figmie, czyli potrzebujemy jednego pracownika, kt贸ry to przygotuje, taki draft projektu. P贸藕niej kto艣 to musi prze艂o偶y膰 na to, 偶eby kod pozwala艂 na wizualne wygenerowanie takiej strony, a p贸藕niej jeszcze trzecia osoba musi do tego backend, czyli ca艂e to dzia艂anie nam dopisa膰. S膮 trzy kroki, gdzie zmieni si臋 cz臋sto pierwszy w po艂owie naszego projektu. I trzeba przez nie przechodzi膰. Kwestia tego, 偶e mo偶emy realizowa膰 ten projekt wizualny i p贸藕niej cz臋艣膰 kodu z niego realizowa膰 do kolejnych krok贸w jest naprawd臋 bardzo fajnym rozwi膮zaniem i to wp艂ywa pozytywnie na to, jak mo偶na z tego korzysta膰. Z tej strony nie widz臋 oporu ludzi do korzystania, bardziej ten pr贸g wej艣cia wszystkich martwi.

Artur Sm贸艂ka
Znaczy wiesz w艂a艣nie to co powiedzia艂e艣 prototypowanie to to w og贸le 艣wietna sprawa je偶eli chodzi o AI. No bo widzisz napisa膰 taki dobrej jako艣ci kod z AI to tak jak m贸wi臋 to trzeba kilka tych iteracji trzeba troch臋 to walidowa膰. Ale je偶eli my potrzebujemy zrobi膰 taki prototyp aplikacji 偶eby pokaza膰 co艣 klientowi bo on sam nie jest pewien czego chce to AI 艣wietnie si臋 do tego nadaje. No bo wiadomo 偶e tam b臋d膮 jakie艣 b艂臋dy, tam ta logika biznesowa nie b臋dzie dopracowana albo w og贸le jej nie b臋dzie. Ale sam prototyp dobrze opisuj膮c czego chcemy to zwyk艂y chat GPT czy Gemini czy cokolwiek spokojnie nam to wygeneruje.
Tak偶e prototypowanie i delegowanie tego prototypowania do AI uwa偶am, 偶e jest te偶 jednym z fajniejszych zastosowa艅, kt贸re naprawd臋 oszcz臋dzi nam mn贸stwo czasu.

Szymon G艂owania
Mi si臋 wcze艣niej pojawi艂o takie pytanie zwi膮zane z tym, jak przygotowujesz prompty. Kiedy stajesz przed jakim艣 zadaniem, czy wolisz zacz膮膰 od konkretu, czyli w艂a艣nie podajesz te konkretne pliki i elementy, na kt贸rych dzia艂asz? Czy mimo wszystko czasem startujesz te偶 z og贸艂u, czyli zadajesz jakie艣 og贸lne pytania i wtedy pozwalasz mu, 偶eby on najpierw odpowiedzia艂 na te og贸lne za艂o偶enia i dopiero dalej聽uszczeg贸艂awiasz?

Artur Sm贸艂ka
To jest te偶 dobre pytanie, bo widzisz, tym wszystkim narz臋dziom AI do艣膰 艂atwo jest co艣 zasugerowa膰. Je偶eli ty zadasz ju偶 takie pytanie bardzo konkretne, focusujesz si臋 na konkretnej technologii czy rozwi膮zaniu, to on pod膮偶y t膮 艣cie偶k膮. On nie wyjdzie poza t膮 twoj膮 ba艅k臋, w kt贸rej ty jeste艣, tylko raczej pod膮偶y i stara si臋 znale藕膰 rozwi膮zanie w spos贸b, w jakim ty mu to sugerujesz. On nie my艣li abstrakcyjnie przecie偶, tak jak cz艂owiek, tylko raczej pod膮偶a jakimi艣 utartymi algorytmami. Tak偶e trzeba mie膰 z ty艂u g艂owy, 偶e 艂atwo co艣 AI-owi zasugerowa膰. No i w艂a艣nie, jak tego unikn膮膰? Ja z regu艂y staram si臋 najpierw, je偶eli to jest totalnie nieznana dla mnie ga艂膮藕, czy nieznana funkcja aplikacji, to rzeczywi艣cie staram si臋 zebra膰 taki og贸lny wywiad, jak czy to osobi艣cie, szukaj膮c internet, czy u偶ywaj膮c AI, jakie mamy potencjalne mo偶liwo艣ci rozwi膮zania problemu.
I ja 艣wiadomie, jako powiedzmy osoba z do艣wiadczeniem, wybieram rozwi膮zanie, by膰 mo偶e jeszcze w mi臋dzyczasie robi臋 ma艂y brainstorming, Chat GPT te偶 艣wietnie si臋 do tego nadaje, wybieramy rozwi膮zanie i wtedy dopiero dostarczamy kontekst, sugeruje rozwi膮zanie, na kt贸re wcze艣niej si臋 zdecydowa艂em i prosz臋 go, aby w tym rozwi膮zaniu ju偶 bez jakiego艣 kombinowania przygotowa艂 rozwi膮zanie, czyli przygotowa艂 ju偶 konkretny kod. Natomiast je偶eli problem jest bardzo konkretny, bardzo specyficzny, dotyczy funkcji, kt贸ra ju偶 jest wcze艣niej zdefiniowana, Wtedy ju偶 oczywi艣cie pomijam ten temat brainstormingu i temat w og贸le wyszukiwania ga艂臋zi, kt贸r膮 pod膮偶ymy. Wtedy ju偶 jest m贸j prompt bardzo konkretny, bardzo specyficzny i zorientowany na wyszukiwanie rozwi膮zania tego konkretnego przypadku.
Natomiast w takim Greenfield bardzo fajna sugestia, Szymon, zawsze warto zacz膮膰 od takiego brainstormingu, od wyrobienia w sobie zdania, 偶eby nam Chat GPT czy inne AI nie zasugerowa艂y czego艣, co nie b臋dzie optymalne.

Szymon G艂owania
Tak, no tutaj na pewno jest to wa偶ne. My w zespole zawsze staramy si臋, 偶e mimo wszystko te偶 zrobi膰 taki w艂asny brainstorm, gdzie艣 na chwil臋 si臋 z艂apa膰 chocia偶 na pi臋膰 minut w salce i dogra膰 plusy minusy. No bo tutaj znowu偶 wpada ten drugi element, czyli ta nasza znajomo艣膰 wiedzy dziedzinowej i tych system贸w, w kt贸rych dzia艂amy, czyli wiedza jak to si臋 po艂膮czy rzeczywi艣cie ju偶 z fizycznym rozwi膮zaniem, co b臋dziemy w stanie dostarczy膰, co dostawca kt贸ry艣 z narz臋dzi, z kt贸rymi musimy wsp贸艂pracowa膰 te偶 nam ewentualnie oferuje, bo tutaj te偶 pewne ograniczenia niekiedy na nas wpadaj膮. A propos ogranicze艅, bo wymienili艣my du偶o element贸w, kt贸re nam pozwalaj膮 na to, 偶eby to AI wprowadza膰, bo one nam wiele rzeczy u艂atwi.
A czy widzisz tutaj w tej kwestii jakie艣 rzeczy, kt贸re nam to AI mo偶e utrudni膰 albo co艣, co bierzemy jako minus?聽

Artur Sm贸艂ka
Tak, taki zawsze koronny聽argument, kt贸ry ja przytaczam troch臋 w cudzys艂owiu, to jest to te偶 forma og艂upiacza. Ja obserwuj臋 programist贸w ca艂kiem do艣wiadczonych, kt贸rzy bez konsultacji z AI-em nie zacommituj膮 nic do repozytorium. Oni chc膮 opini臋 AI, zanim zdecyduj膮 si臋 na commit, bo oni wiedz膮, 偶e ten AI zazwyczaj co艣 zasugeruje. Ma艂o tego paradoksalnie zazwyczaj co艣 zoptymalizuje. Ale wiesz, to te偶 nie chodzi o to, 偶eby na ka偶dym kroku gdzie艣 podkopywa膰 t膮 swoj膮 pewno艣膰 siebie programistyczn膮.

Szymon G艂owania
Zgoda maszyny na dodanie commita.

Artur Sm贸艂ka
Tak. I za ka偶dym razem szuka膰 tej walidacji i takiego powt贸rnego potwierdzenia w AI. Ja widz臋, 偶e du偶o ludzi tak robi. By膰 mo偶e wynika to z takiego ich perfekcjonizmu, ale czasem te偶 mo偶e tak troch臋 og艂upi膰, podkopa膰 t膮 nasz膮 pewno艣膰 siebie. Druga rzecz dotyczy m艂odych programist贸w, kt贸rzy tak jak m贸wi臋 s膮 troch臋 zach艂y艣ni臋ci tymi zdolno艣ciami AI. I oni z kolei id膮 w drug膮 skrajno艣膰. Bezkrytycznie akceptuj膮 wszelki kod, kt贸ry ten AI wygeneruje. A pami臋tajmy, to co powiedzia艂em, cz臋sto nie jest optymalny, szczeg贸lnie w pierwszym rzucie. A po drugie, cz臋sto te偶 mamy takie tematy jak u偶ycie kodu w艂a艣nie dotycz膮cego starszej biblioteki, czyli w nowych bibliotekach ju偶 powinni艣my to zrobi膰 lepiej.
By膰 mo偶e jakie艣 metody s膮 deprecated, powinni艣my skorzysta膰 z czego艣 nowszego, bardziej optymalnego. Poniewa偶 no wiadomo, AI jest uczony na jakiej艣 bazie wiedzy. Ta baza wiedzy na pewno nie jest tak szybko rozbudowywana i tak szybko aktualizowane s膮 frameworki. Wi臋c cz臋sto w艂a艣nie te偶 dotyczy to rozwi膮zanie jakiej艣 starszej wersji. W nowszej wersji powinni艣my to zrobi膰 inaczej. No i znowu tu jest odpowiedzialno艣膰 programisty, 偶eby takie sytuacje zidentyfikowa膰. No i nie ka偶dy jest w stanie to zrobi膰. No i p贸藕niej mamy szereg takich wiecie oczywistych problem贸w, bo te偶 AI cz臋sto uczy si臋 na podstawie tego kodu, kt贸ry my mu dostarczamy. Czyli mo偶na powiedzie膰, 偶e na podstawie naszego projektu AI si臋 uczy.
Tak, w CoPilot, mo偶emy to zablokowa膰. Chat GPT, teoretycznie te偶 mo偶emy to zablokowa膰. Jest taka opcja, 偶eby on nie korzysta艂 z tego naszego wsadu jakby do nauki. Natomiast nigdy nie wiemy, co tam si臋 dzieje pod spodem, wi臋c zawsze zagro偶enie jest takie, 偶e mo偶emy nie艣wiadomie pope艂ni膰 plagiat albo w drug膮 stron臋, nie艣wiadomie nasz kod mo偶e zosta膰 u偶yty przez kogo艣 innego. Zawsze pami臋tajmy te偶, 偶e za tym kodem stoj膮 du偶e organizacje. Te偶 one maj膮 powiedzmy pe艂en wgl膮d wtedy w to nasze repozytorium, no bo my ci膮gle te konteksty pod艂膮czamy. Niekt贸re firmy czuj膮 si臋 z tego powodu zagro偶one, 偶e kto艣 ten ich kod mo偶e analizowa膰, szuka膰 s艂abych punkt贸w, dlatego te偶 jest to jedna z takich kwestii przez kt贸re cz臋艣膰 du偶ych firm z obszar贸w takich zwi膮zanych z bezpiecze艅stwem nie decyduje si臋 na AI.
Tak jak m贸wi臋, podatno艣膰 w艂a艣nie na sugestie, to, 偶e te rozwi膮zania nie zawsze s膮 optymalne, je偶eli chodzi o bezpiecze艅stwo. One dzia艂aj膮, kompiluj膮 si臋, ale czy s膮 bezpieczne? Wiesz, a dla takiego m艂odego programisty kod dzia艂a, test przeszed艂 艣wietnie, ten lider deweloper贸w b臋dzie zadowolony, commitujemy, pushujemy do repozytorium. Czy sprawdzi艂e艣 czy to jest bezpieczne?

Szymon G艂owania
Pierwszy dzia艂aj膮cy Hello World jest najwa偶niejszy po prostu.聽

Artur Sm贸艂ka
Tutaj nie mamy聽wyboru. Tak偶e jest troch臋 tych problem贸w zwi膮zanych z AI-em. Jest troch臋 wad tego AI-a te偶. Ten AI te偶 mocno nam kszta艂tuje w kt贸rym kierunku idziemy i jak ten rynek b臋dzie wygl膮da艂 w przysz艂o艣ci. Natomiast moje stanowisko jest takie, 偶e on jest nieodzowny. Dzisiaj programista, kt贸ry nie korzysta z AI-a jest du偶o mniej wydajny i po prostu gorzej sobie b臋dzie radzi艂 wr臋cz na rynku. Tak偶e powinni艣my go uczy膰 si臋, powinni艣my go wykorzystywa膰, ale traktowa膰 z ograniczonym zaufaniem i bra膰 pod uwag臋 te wszystkie ograniczenia, o kt贸rych m贸wili艣my.

Szymon G艂owania
Tak, no prompt engineer jest obecnie bardzo popularnym stanowiskiem i prompting jako wymaganie, umiej臋tno艣膰 pisania w og贸le prompt贸w si臋 b臋dzie ju偶 ci膮gle pojawia艂o. B臋dzie to jak znajomo艣膰 podstawowych element贸w zwi膮zanych z Microsoftem czy innymi technologiami, kt贸re s膮 w naszym 偶yciu na co dzie艅. Wi臋c tutaj jak najbardziej. Ja o dziwo jeszcze ostatnio mia艂em w艂a艣nie przypadek, gdzie AI przyda艂o mi si臋, ale w nieco innym kontek艣cie. W艂a艣nie zazwyczaj AI podpowiada艂o mi wykorzystanie starszych pakiet贸w w aktualnym kodzie, natomiast dosta艂em, 偶e tak powiem, tak膮 pro艣b臋 w spadku, 偶e dosta艂em czyj艣 stary kod i on nie dzia艂a艂 i trzeba by艂o go naprawi膰. No i by艂o akurat rozwi膮zanie napisane w Pythonie, no i z pomoc膮 w艂a艣nie AI szybko zosta艂o przepisane na nowsz膮 wersj臋 biblioteki i tam ju偶 si臋 uruchomi艂o.
Czyli mimo wszystko na przyk艂ad te pewne elementy jeste艣my w stanie tam doci膮gn膮膰, czy poprzez przes艂anie dokumentacji, przygotowanie odpowiedniego promptu, albo po prostu ju偶 analiz臋 i popraw臋 tego r臋cznie. Natomiast usprawnia to, czyli jakby zamiast przejrze膰 kod aplikacji, kt贸ry ma ile艣 tam tysi臋cy wierszy, zaproponowa膰 rozwi膮zanie, kt贸re trzeba by艂oby w sumie zacz膮膰 pisa膰 od nowa, No bo nie czarujmy si臋 z takim starym nieokomentowanym kodem niedzia艂aj膮cym, bo biblioteka Pythona, to by艂o pisane na dw贸jk臋 jeszcze Pythona, wi臋c no troch臋 by potrwa艂o. Natomiast z AI jeste艣my w stanie to przygotowa膰 w du偶o kr贸tszym czasie i w miar臋 efektywnie. Czyli rzeczywi艣cie ta nasza wiedza si臋 tam wtedy przydaje w tych elementach, gdzie jest to wymagane.

Artur Sm贸艂ka
Widz臋, 偶e musisz pracowa膰 w naprawd臋 bardzo ciekawym projekcie, bo ju偶 kt贸ry艣 raz m贸wisz, 偶e AI nie mia艂o wiedzy o tych wszystkich nowo艣ciach, kt贸re wy u偶ywacie, to to w og贸le fajnie pogratulowa膰.

Szymon G艂owania
To nie tak, to bardziej kwestia tego rzeczywi艣cie mia艂em par臋 razy, 偶e zwr贸ci艂 mi kod kt贸ry jest poprawny ale on by艂 poprawny rzeczywi艣cie w bibliotekach w wersji bibliotek tam ile艣 wersji wstecz i wtedy si臋 kompilowa艂 natomiast jak ja uruchomi艂em czy to u siebie czy gdzie艣. No to ta biblioteka ju偶 nowsza nie dzia艂a w takiej formie.

Artur Sm贸艂ka
To jest bol膮czka, 偶e on jest uczony na jakie艣 tam 藕r贸dle wiedzy. Natomiast to co powiedzia艂e艣 o tym prompt engineeringu, powiem Ci, 偶e tak ostatnio troch臋 pod znakiem zapytania, przynajmniej z tego co ja czytam, jest w艂a艣nie to stanowisko, o kt贸rym wspomnia艂e艣, in偶yniera, bo zobacz, jak zaczniemy korzysta膰 z tego najnowszego Chatu GPT, czyli tej wersji o1, to widzisz on potrafi generowa膰 sobie pomocnicze prompty pod spodem. Jak sobie zobaczymy jak on dzia艂a,聽to zadaj膮c jakie艣
pytania, widzisz, 偶e on z 10 czy 8 prompt贸w dodatkowych, pomocniczych sobie tworzy. Czyli wiesz, oni poszli tam o krok dalej, bior膮 oczywi艣cie twoje zapytanie jako to 藕r贸d艂o, to na co maj膮 odpowiedzie膰, ale pr贸buj膮 je sobie zdekomponowa膰 na szereg pomniejszych zagadnie艅. Czyli wiesz, mo偶na powiedzie膰, 偶e cz臋艣膰 tego prompt engineeringu jest robiona ju偶 za ciebie. To jest te偶 bardzo ciekawy kierunek. Mo偶emy sobie wyobrazi膰 w przysz艂o艣ci, 偶e wiesz, tylko si臋 rzuci jak膮艣 sugesti臋, no to starczy kontekst, no bo ten kontekst jest jednak kluczowy, o co generalnie pytamy i jaki jest cel naszego pytania, ale mo偶emy sobie wyobrazi膰, 偶e bez jakiego艣 szczeg贸艂owego promptu on b臋dzie w stanie ustali膰 wr臋cz o co nam chodzi, zbudowa膰 sobie prompt jaki chcia艂by i odpowiedzie膰. To jest te偶 ciekawy kierunek.

Szymon G艂owania
Z mojej perspektywy firmy na razie patrz膮 na mo偶liwo艣膰 u偶ycia AI jako jakiej艣 nowo艣ci, nowinki, kt贸r膮 chc膮 sobie po prostu doda膰 do tego, 偶eby ich produkt m贸g艂 si臋 poszczyci膰 tym, 偶e to AI jest w nim stosowane. Wi臋c na razie z tego co widz臋 najch臋tniej w艂a艣nie jest to robione w ten spos贸b, czyli zatrudnimy osob臋, kt贸ra zna si臋 na usprawnieniach, jest w stanie w miar臋 z AI pracowa膰, no i w ramach naszej firmy wykorzystamy to do usprawnie艅 r贸偶nych aspekt贸w dzia艂alno艣ci. Natomiast w miar臋 tego, jak ta popularno艣膰 b臋dzie ros艂a, wydaje mi si臋, 偶e to b臋dzie jeden z kluczowych element贸w, jak kiedy艣 znajomo艣膰 j臋zyka angielskiego.
Wi臋kszo艣膰 dokumentacji, ksi膮偶ek i wszystkich 藕r贸de艂 odno艣nie takiej bardzo szczeg贸艂owej kompetencji by艂y w j臋zyku angielskim, wi臋c 偶eby to si臋 nauczy膰 trzeba by艂o umie膰 j臋zyk angielski, 偶eby zapozna膰 si臋 z t膮 wiedz膮. Teraz trzeba umie膰 rozmawia膰 z Chatem. Kolejne wersje Chat贸w b臋d膮 coraz 艂atwiejsze do u偶ytku pewnie dla nas, czyli b臋d膮 dawa艂y coraz mniejsz膮 dyspozycyjno艣膰, a b臋d膮 mia艂y t膮 autonomi臋 w podejmowaniu tych pewnych my艣li i dzia艂a艅. Natomiast si艂膮 rzeczy tak czy inaczej jako艣 ziarenko tam b臋dziemy mieli, czyli podanie tej swojej idei, podanie tego kontekstu, wyszukanie, sklejenie tego, no bo tutaj mamy r贸偶ne dost臋pne, tak jak wspomina艂e艣, narz臋dzia, kt贸re nam s膮 w stanie u艂atwi膰 poszczeg贸lne elementy, ale tak czy inaczej podej艣cie dalej do budowy AI jest tak samo, czyli budujemy eksperta i on jest wtedy 艣wietny w tej swojej dziedzinie, albo budujemy co艣 og贸lnego jak Chat GPT, kt贸ry mo偶e mie膰 jaki艣 mniejszych ekspert贸w w 艣rodku, ale tak czy inaczej kto艣 tym musi og贸lnie zarz膮dza膰, no i wtedy narz臋dzie sprawdza si臋 zazwyczaj troszk臋 s艂abiej w konkretnych przypadkach, ale w og贸lnym rozrachunku uzyskuje na znaczeniu, wi臋c pewnie tutaj b臋dzie to gdzie艣 tam podzielone.
My na razie b臋dziemy starali si臋 pewnie wybiera膰 te poszczeg贸lne klocuszki, kt贸re s膮 nam w stanie najwi臋cej da膰 i jako programi艣ci 艂膮czy膰 to w rozs膮dn膮, sensown膮 ca艂o艣膰, 偶eby zwr贸ci艂o dzia艂aj膮cy kod dla klienta.

Artur Sm贸艂ka
Dok艂adnie tak to wygl膮da jak powiedzia艂e艣 i to co ju偶 kt贸ry艣 raz powtarzam, ja ka偶dego programist臋 zach臋cam, 偶eby spr贸bowa膰, 偶eby zapozna膰 si臋 z tymi narz臋dziami, bo ja do ko艅ca nie potrafi臋 jeszcze zrozumie膰, ale cz臋艣膰 z nich uwa偶a, 偶e u偶ywanie chatu GPT to jest tak jak boczne k贸艂ka przy rowerze. Ja w wieku 30 lat ju偶 nie chc臋 z bocznymi k贸艂kami przy rowerze je藕dzi膰, bo b臋d臋 co najmniej dziwnie wygl膮da艂 na ulicy. A to wcale nie tak. To raczej mo偶emy sobie przyr贸wna膰 do takiego przej艣cia z silnika parowego na silnik spalinowy, czyli ca艂kowicie konkretny game changer, czyli co艣 co bardzo mocno zmienia zasady gry, zmienia to w jaki spos贸b pracujemy.
I to co wielokrotnie ju偶 w naszej dyskusji si臋 pojawia艂o, w najbli偶szej przysz艂o艣ci ten chat GPT czy generalnie te AI stan膮 si臋 po prostu nieodzowne, poniewa偶 bez nich b臋dziemy troch臋 przypomina膰 firm臋 transportow膮, kt贸ra u偶ywa woz贸w drabiniastych do transportu zamiast tir贸w. Po prostu stanie si臋 to nieodzowne, b臋dziemy przez obecny poziom rozwoju rynku i naszej konkurencji wr臋cz zmuszeni, czy b臋dziemy tego chcieli, czy nie u偶ywa膰 AI, aby pozosta膰 konkurencyjny.

Szymon G艂owania
Czyli to, 偶e piszemy prompty i bierzemy kod w艂a艣nie z jakiego艣 narz臋dzia, nie znaczy, 偶e my tego nie umiemy zrobi膰, tylko po prostu, 偶e jest nam to szybciej i wygodniej zrobi膰 tak. Tak jak zazwyczaj, ja te偶 mam i pewnie ty w pracy, ju偶 nie chce mi si臋 niekiedy kodu klepa膰 ca艂ego, jak jest to zw艂aszcza jaka艣 prosta funkcja, tylko m贸wi臋 mu, we藕 mi to, to, to i to, bo on wie, 偶e musi wej艣膰 do tej biblioteki, zrobi膰 takie po艂膮czenie, to doda膰. Ja jestem w stanie to sprawdzi膰 jednym rzutem oka, bo wiem jak ten kod mia艂 wygl膮da膰, tylko si艂膮 rzeczy on to napisze w 15 sekund, mi zajmie to 5 minut, bo b臋d臋 musia艂 wej艣膰 na trzy strony i to przeklei膰.
Tutaj ta oszcz臋dno艣膰 czasu w takich ma艂ych porcjach, ale p贸藕niej si臋 sumuje. Ja mam takie pytanie te偶 spontaniczne, kt贸re si臋 pojawi艂o w trakcie, bo ja zastanawiam si臋 obecnie nad tym, co by艂oby teraz takim game changerem, bo to s艂owo ju偶 par臋 razy nam tutaj pad艂o, czyli tak膮 du偶膮 now膮 innowacj膮 w promptingu, bo je艣li chodzi o same AI, no to my艣l臋, 偶e gdzie艣 co艣 z generowaniem wideo na potrzeby klienta w czasie online, czyli 偶eby艣my byli w stanie ogl膮da膰 sobie serial 45-minutowy na bie偶膮co. Natomiast czy widzisz co艣 takiego co by艂oby takim kolejnym du偶ym skokiem w ramach przygotowywania w艂a艣nie prompt贸w i takich narz臋dzi AIowych, czy to wtyczkach, czy jakich艣 dedykowanych tooli z takiej perspektywy w艂a艣nie programistycznej?

Artur Sm贸艂ka
To mo偶e by膰 taka szybko艣膰 uczenia si臋, bo to wiadomo, 偶e by膰 mo偶e mo偶emy sobie pomy艣le膰 o jakich艣 takich rzeczach totalnie nowych, innych ni偶 zmieniaj膮cych t膮 艣cie偶k臋, kt贸r膮 dzisiaj pod膮偶amy, ale przywi膮zuj膮c si臋 do tego, co mamy dzisiaj, to obecnie firmy, kt贸re dostarczaj膮 rozwi膮za艅 AI dla deweloper贸w, pracuj膮 nad przy艣pieszeniem szybko艣ci uczenia si臋 tych ich tooli, czyli chc膮 tego, aby dany tool by艂 w stanie praktycznie na bie偶膮co w czasie online analizowa膰 ten kod, analizowa膰 dokumentacj臋, analizowa膰 te偶 internet, 偶eby dostarcza膰 nam jak najbardziej optymalne odpowiedzi i optymalne sugestie co do naszego kodu. I z tego co ja tak obserwuj臋 rynek, to nad czym obecnie prace si臋 tocz膮, to dostarczenie takiego wra偶enia, 偶e to wszystko dzieje si臋 online, 偶e co艣 nowego si臋 pojawi艂o, nowy release jakiego艣 frameworku, i chat GPT, czy to narz臋dzie AI, nazwijmy to, ju偶 ma tego 艣wiadomo艣膰, ju偶 we藕mie to pod uwag臋, udzielaj膮c nam odpowiedzi.
Czyli nie bazujemy na takiej zastanej gdzie艣 wbudowanej bazie wiedzy, tylko ta baza ca艂y czas przyrasta na podstawie naszego kodu, naszych zachowa艅 i internetu. I my艣l臋, 偶e to b臋dzie co najmniej du偶ym usprawnieniem i ten chat GPT stanie si臋 bardziej niezawodny i taki bardziej

Szymon G艂owania
Znaczy aktualny, nie?

Artur Sm贸艂ka
bardziej niezawodny i bardziej aktualny. Dok艂adnie.

Szymon G艂owania
B臋dziemy mieli dost臋p do wiedzy w zale偶no艣ci od modelu z kt贸rego korzystamy czy te偶 z Chata czy z CoPilota tam w zale偶no艣ci od tego kt贸ry by艂 przygotowany. Niekt贸re maj膮 dost臋p do zapyta艅 w internecie niekt贸re nie. Wi臋c tutaj rzeczywi艣cie jest to jeszcze do pilnowania. Nie ka偶dy tool zawsze ma, nie do ka偶dego mo偶na przesy艂a膰 grafiki czy tekst w postaci plik贸w i tak dalej. Niekt贸re pozwalaj膮 tylko i wy艂膮cznie na przygotowanie promptu. Wi臋c tutaj sposoby komunikacji i r贸偶nych przesy艂ania b臋d膮 pewnie stara艂y si臋 ujednolici膰, czyli 偶eby mo偶na by艂o wrzuca膰 wszystko i na tej podstawie generowa膰 wszystko, jakby艣my to my ludzie chcieli, albo najlepiej z niczego zrobi膰 co艣.
Natomiast je艣li chodzi o to, jak to wygl膮da w tym online, to na chwil臋 obecn膮 z mojej perspektywy te narz臋dzia maj膮 dost臋p do wyszukiwania, ale to nie znaczy, 偶e on zawsze wyszuka t臋 odpowied藕 w dokumentacji czy w aktualnych wiadomo艣ciach. On zosta艂 nauczony na jakiej艣 bazie wiedzy i to np. by艂yby jakie艣 tam przygotowane rozwi膮zania problem贸w itd. No ale ta baza wiedzy cz臋sto jest tam sprzed czterech lat.

Artur Sm贸艂ka
Dok艂adnie. Je偶eli聽chodzi o takie ciekawostki, bo tak m贸wimy du偶o o tym CoPilocie, ja te偶 czasem u偶ywam s艂owa CoPilot, a my艣l臋 og贸lnie o tym AI-u, ale rzeczywi艣cie wracaj膮c do tego CoPilota od GitHuba tak konkretnie, mamy teraz nowe dodatki np. do Visual Studio Code, ale zdaje si臋, 偶e do innych edytor贸w s膮 ich odpowiedniki. Na przyk艂ad dodatek, kt贸ry si臋 nazywa Vision for CoPilot. Czyli tam mo偶emy przes艂a膰 jakie艣 zdj臋cie czy obraz i poprosi膰 CoPilota o odpowiednie dzia艂anie. Czyli zn贸w przesy艂amy rysunek, mock-up i m贸wimy CoPilot wygeneruj mi teraz, prosz臋 Ci臋, style kaskadowe czy stron臋 HTML. Wysy艂amy mu diagram bazy danych i m贸wimy s艂uchaj, spr贸buj wygenerowa膰 SQL-a do tego.
To ju偶 si臋 dzieje. Ju偶 taka mo偶liwo艣膰 jest. Jest to wersja preview, ale ona w ten spos贸b dzia艂a. Kolejny dodatek to jest np. Data Analyst, czyli mo偶emy przes艂a膰 jaki艣 plik CSV czy g艂贸wnie CSV, JSON, ewentualnie Excel i mo偶emy dyskutowa膰 z Copilotem o tych danych, kt贸re tam s膮 zawarte. Czyli mo偶emy dr膮偶y膰 sobie dane bezpo艣rednio j臋zykiem naturalnym. Nie potrzebujemy robi膰 tego w jakim艣 wysublimowanym j臋zyku zapyta艅 do JSON-a na przyk艂ad. To jest te偶 bardzo du偶e u艂atwienie. Ja akurat ostatnio u偶ywa艂em tego do analizy log贸w, bo mia艂em du偶y zestaw log贸w gdzie艣 tam w takim formacie JSON-owym z serwera webowego. I te偶 konkretnie interesowa艂o mnie zidentyfikowanie pewnych zale偶no艣ci mi臋dzy dwoma wyst臋puj膮cymi tam b艂臋dami.
Tak troch臋 bez pok艂adania specjalnej nadziei, ale u偶y艂em w艂a艣nie tego nowego powiedzmy narz臋dzia w tej wersji preview ca艂y czas Data Analyst od GitHuba dla CoPilota i s艂uchajcie, uda艂o si臋 znale藕膰 to, co dok艂adnie mnie interesowa艂o, czyli kilka takich linijek w logu, kt贸re powiedzia艂y mi jaka sekwencja zdarze艅 doprowadza do b艂臋du, kt贸ry chcia艂em naprawi膰. I to jest kolejna taka kwestia, 偶e CoPilot zaoszcz臋dzi艂 mi podejrzewam, kilka albo kilkana艣cie godzin przegl膮dania tych log贸w, wynotowywania na kartce identyfikator贸w i szukania tych referencji. To jest kolejny dow贸d na to, 偶e jest nam w stanie naprawd臋 u艂atwi膰 prac臋 w sztucznej inteligencji.

Szymon G艂owania
Dobrze, jak jeste艣my ju偶 w艂a艣nie przy tych projektach, czyli sztucznej inteligencji, to czy jest jaki艣 projekt, z kt贸rego dostarczenia jeste艣 szczeg贸lnie dumny i chcia艂by艣 si臋 nim pochwali膰?

Artur Sm贸艂ka
Mo偶e niekonieczny projekt, ale zawsze jak kto艣 zadaje mi podobne pytanie to przychodzi mi na my艣l m贸j pocz膮tek z AI-em, bo widzisz ja te偶 by艂em do艣膰 sceptyczny. Ja te偶 m贸wi臋, s艂uchaj ja si臋 ucz臋 od 15 lat programowa膰, czytam sporo ksi膮偶ek, generalnie ogl膮dam na YouTubie, wiesz jak jad臋 w tramwaju to raczej nie gram w gr臋 tylko ogl膮dam sobie YouTube’a jakiego艣 tam programistycznego, bo po prostu to lubi臋, mnie to pasjonuje. No i m贸wi臋, teraz taki CoPilot, no jak on mo偶e by膰 m膮drzejszy ode mnie? No i tak nie pok艂ada艂em w tym specjalnym nadziei, traktowa艂em to jako fanaberie, do pewnego momentu, gdy dosta艂em takie zadanie devopsowe.
Tam chodzi艂o o napisanie dosy膰 obszernego Powershella, takiego, kt贸ry analizuje, m贸wi膮c konkretnie, zawarto艣膰 plik贸w, daty plik贸w i stara si臋 usun膮膰 te pliki, kt贸re maj膮 najstarsz膮 zawarto艣膰, czyli takie, kt贸re ju偶 praktycznie nie s膮 potrzebne. Najpierw je archiwizowa艂, pakowa艂, p贸藕niej usuwa艂. Generalnie taki by艂 temat, 偶eby PowerShell napisa膰 i wple艣膰 to jako element continuous delivery. Ja, s艂uchajcie, m臋czy艂em si臋 z tym jakie艣 2-3 dni, a偶 p贸藕niej by艂o mi troch臋 niezr臋cznie przed menad偶erem, 偶e co tu si臋 dzieje, no taki niby bystry, do艣wiadczony pracownik i nie jest w stanie de facto do艣膰 prostej rzeczy napisa膰. I w pewnym momencie ju偶 straci艂em nadziej臋, 偶e mi si臋 w og贸le to uda.
No i rzeczywi艣cie poprosi艂em akurat wtedy Chat GPT o pomoc, no ten kontekst by艂 do艣膰 prosty, bo wiadomo, no to by艂y dwa czy trzy ekrany kodu, wi臋c on spokojnie m贸g艂 to obj膮膰. No i okaza艂o si臋, s艂uchajcie, 偶e zrobi艂em zwyczajnie liter贸wk臋 w tym PowerShellu. No i on to zidentyfikowa艂 w ci膮gu dw贸ch sekund, dostarczy艂 mi odpowied藕. Okaza艂o si臋, 偶e ten kod poza tym no to de facto dzia艂a艂 i rzeczywi艣cie my艣l臋 sobie s艂uchajcie, 偶e ja bym do dzisiaj tej liter贸wki nie znalaz艂, bo ona by艂a gdzie艣 tam w tym klejeniu string贸w, zaszyta. Spodziewam si臋, 偶e by艂oby bardzo, bardzo trudno to zidentyfikowa膰.
On mi pom贸g艂, ale pami臋tam jeszcze wtedy poszed艂em troch臋 dalej, bo przekona艂em si臋, 偶e to jednak mo偶e dzia艂a膰 i ma potencja艂. M贸wi臋, kurcz臋, te dwa ekrany kodu troch臋 du偶o. Mo偶e co艣 b臋dzie w stanie ten CoPilot jeszcze zaproponowa膰, jak to zoptymalizowa膰, 偶eby ten kod by艂 troch臋 艂adniejszy, 艂atwiejszy w odbiorze dla innych programist贸w, kt贸rzy kiedy艣 by膰 mo偶e b臋d膮 to po mnie poprawia膰. I s艂uchaj, on by艂 w stanie z dw贸ch ekran贸w kodu, kt贸ry ja napisa艂em tak dosy膰 proceduralnie, linijka po linijce, zej艣膰 do jakiego艣 trzy czwarte, mo偶e nawet dobrej po艂owy ekranu, stosuj膮c funkcje PowerShell’a, kt贸re by艂y w najnowszej wersji, kt贸r膮 de facto te偶 mieli艣my zainstalowane na serwerze, ale o tych funkcjach ja nie wiedzia艂em, albo wiesz, nie zna艂em ich, nie?
Czyli w takim pierwszym odruchu pisz膮c kod, no po prostu nie u偶ywasz to, o czym czyta艂e艣 tylko raz, no bo to jeszcze nie jest w twojej g艂owie, piszesz to, co umiesz. I on ma艂o 偶e zidentyfikowa艂 b艂膮d, to te偶 skr贸ci艂 bardzo mocno i sprawi艂, 偶e wizualnie i te偶 je偶eli chodzi o innych programist贸w, kt贸rzy b臋d膮 to czyta膰, wygl膮da艂o to du偶o przyst臋pniej. I to wszystko, ca艂a ta interakcja trwa艂a dos艂ownie 2-3 minuty. Wi臋c to mo偶e nie jest kwestia, z kt贸rej jestem najbardziej dumny, ale to jest takie najbardziej sztandarowe u偶ycie i najlepszy przyk艂ad, kt贸ry reprezentuje jak mocno CoPilot jest, czy generalnie ta sztuczna inteligencja jest w stanie nam pom贸c.
I od tego czasu zacz膮艂em du偶o bardziej si臋 tym interesowa膰, poniewa偶 przekona艂em si臋 co do mo偶liwo艣ci, jakie to posiada.

Szymon G艂owania
Kolejny z temat贸w, kt贸ry chcia艂bym Ci臋 lekko zahaczy膰, kt贸ry si臋 te偶 przewija艂 pomi臋dzy tym naszym kodem, bo tak, dzi臋ki temu, 偶e generujemy cz臋艣膰 tego kodu albo inaczej porz膮dkujemy go te偶 z u偶yciem r贸偶nych narz臋dzi AI, no ten kod staje si臋 kr贸tszy i bardziej czytelny. Staramy si臋 u偶ywa膰 tych samych funkcji, w sensie AI u偶ywa tych funkcji najnowszych, dzi臋ki czemu p贸藕niej si艂膮 rzeczy nie tworzymy w艂asnych funkcji, tylko u偶ywamy to, co jest dost臋pne. Ja cz臋sto, 偶eby nie powiedzie膰 zawsze, korzystam jeszcze dodatkowo z tej funkcji, 偶e okomentowywuje mi kod. Nie jest to cz臋sto komentarz taki stricte biznesowy, jaki byliby艣my w stanie dostarczy膰 my jako programi艣ci, kt贸rzy zmierzamy do tego, 偶eby ten dany projekt zrealizowa膰, no bo on niekiedy ca艂ego tego kontekstu w takiej formie nie ma zapisanej, natomiast u mnie u艂atwia to komentowanie.
Jak to wygl膮da u ciebie? Czy te偶 si臋 cieszysz z tego, 偶e w ko艅cu cz臋艣膰 komentarzy nie trzeba pisa膰 r臋cznie? I mog膮 by膰 wygenerowane do dokumentacji, czy jednak jeste艣 zwolennikiem stricte biznesowego komentowania i piszemy r臋cznie?

Artur Sm贸艂ka
Ta zdolno艣膰 w艂a艣nie komentowania w tych narz臋dziach AI zawsze bardzo mnie zaskakuje, poniewa偶 czasami ja sam do ko艅ca nie jestem pewien do czego dana funkcja s艂u偶y i jak ona dzia艂a. Ale gdy poprosz臋 tego AI o komentarz to cz臋sto, nie zawsze wiadomo, ale cz臋sto jest tak, 偶e jest on w stanie gdzie艣 sprawdzi膰 te powi膮zania tej funkcji, 偶e wej艣膰 sobie tam troch臋 g艂臋biej, na przyk艂ad na poziom repozytorium, gdzie ju偶 mamy mow臋 o konkretnych polach bazodanowych i na tej podstawie rzeczywi艣cie celnie te komentarze stworzy膰. Tak偶e tak, od czasu gdy, wiesz, firma wyposa偶y艂a mnie w艂a艣nie w tego CoPilota czy pozwoli艂a w og贸le na u偶ywanie AI w projektach, bo to te偶 nie by艂o wcale takie oczywiste i te pocz膮tki by艂y do艣膰 trudne, 偶eby firm臋 przekona膰, to m贸j kod sta艂 si臋 wyposa偶ony w naprawd臋 fajne komentarze, do艣膰 d艂ugie, wyczerpuj膮ce i rzeczywi艣cie ta jako艣膰 z pewno艣ci膮 jest du偶o lepsza.
Co jest jeszcze, 艣wietnym benefitem komentowania kodu, to jest to, 偶e p贸藕niej mo偶emy generowa膰 dokumentacj臋. I tak jak pewnie pami臋tasz kiedy艣, ja nie wiem jak w twoich projektach, ale u nas zawsze na ko艅cu by艂o takie wymaganie, 偶e s艂uchajcie, musicie pozostawi膰 po sobie, cz臋sto pracuj膮c jako konsultanci,聽jak膮艣 dokumentacj臋 tego kodu. No i teraz zawsze to by艂o straszne, to generowanie dokumentacji. To by艂a taka syzyfowa praca, je偶eli osoba, kt贸ra odbiera艂a t膮 dokumentacj臋 by艂a bardzo taka rzeczowa i 偶yczy艂a sobie tak, skrupulatnie to wszystko analizowa艂a, to rzeczywi艣cie by艂a droga przez m臋k臋. Od czasu, gdy jeste艣my wyposa偶eni we wszystkie Artificial Intelligence, to mamy strategi臋 tak膮, 偶e najpierw tworzymy komentarze dobre przy u偶yciu cz臋sto AI-a, poprawiamy je nieraz r臋cznie, bo wiadomo, 偶e ten AI czasem pisze bardzo 艂adny tekst, ale z tego za du偶o nie wynika, nie ma tego mi臋sa tam, on jest 艂adnie po polsku, czy po angielsku sformu艂owany, ale nie ma tam clue.
Cz臋sto musimy te komentarze poprawi膰, ale sam wsad, kt贸ry daje nam AI jest nie do przecenienia. A p贸藕niej na tej podstawie ju偶 odpowiednimi narz臋dziami generujemy dokumentacj臋, kt贸r膮 znowu poprawiamy jak膮艣 tam sztuczn膮 inteligencj膮. No i oczywi艣cie p贸藕niej zn贸w jest wielokrotne czytanie przez programist贸w, analiza, i tak dalej. To nie jest wiesz co, nie chc臋 偶eby kto艣 mia艂 wra偶enie, 偶e tutaj wszystko聽delegujemy na聽AI, bo gdzie艣聽tam by艂 taki przypadek teraz jak jaka艣 kancelaria adwokacka si臋 pochwali艂a, 偶e u偶ywa AI i paradoksalnie straci艂a klient贸w, bo wszyscy klienci pomy艣leli aha, to oni wszelkie pisma procesowe pisz膮 sztuczn膮 inteligencj膮, to ja do nich nie p贸jd臋, bo kto wie co tam w tym pi艣mie b臋dzie. Tak偶e w naszym przypadku to wcale te偶 tak nie jest. Zawsze na ko艅cu jest ten cz艂owiek, najcz臋艣ciej jaki艣 ekspert, kt贸ry to analizuje, kt贸ry to poprawia, kt贸ry to komentuje. Ale ta wersja inicjalna, kt贸r膮 z regu艂y najtrudniej jest osi膮gn膮膰, czyli wersja na kt贸rej mo偶emy poprawia膰 jest generowana tak p贸艂 automatycznie i to jest聽niezwykle 艂atwiej.

Szymon G艂owania
U mnie wygl膮da艂o to tak samo, czyli te偶 niestety dokumentacja jest smutnym obowi膮zkiem, kt贸ry i sobie i innym powinni艣my zostawi膰, bo tutaj te偶 trzeba podkre艣li膰, 偶e dokumentacja w艂asnego projektu te偶 jest bardzo wa偶na, bo po dw贸ch tygodniach ju偶 tego projektu jeste艣my w stanie nie pami臋ta膰. Wi臋c tutaj na pewno nam to du偶o u艂atwi. Czy opr贸cz tych zalet i perspektyw, kt贸re daje nam sztuczna inteligencja widzisz jakie艣 mo偶liwe problemy, 偶eby t膮 sztuczn膮 inteligencj臋 dalej wprowadza膰, 偶e mo偶e nast膮pi膰 jakie艣 zatrzymanie albo wyparcie tej sztucznej inteligencji, czy to z konkretnych projekt贸w, czy z jakiego艣 sektora, kt贸rym si臋 zajmujemy? Bo tutaj sektor bankowy, zdrowie, us艂ugi prawnicze s膮 takimi, kt贸re potrafi膮 by膰 problematyczne zawsze.

Artur Sm贸艂ka
Obserwuj膮c to jaki zysk mamy we sztucznej inteligencji, obserwuj膮c to jak du偶y zwrot tej inwestycji osi膮gamy, nie spodziewam si臋, aby co艣 by艂o w stanie to zatrzyma膰. Jestem w stanie sobie wyobrazi膰 dwie sytuacje. Pierwsza to by艂aby wtedy, kiedy zaliczyliby艣my jak膮艣 du偶膮 wpadk臋, taki fuck up, 偶e sztuczna inteligencja co艣 by nam zasugerowa艂a np. w jakiej艣 takiej wi臋kszej skali globalnej, pami臋tamy ten wakacyjny problem, kt贸ry mia艂 Microsoft z tym swoim wtyczk膮, takim analizuj膮cym zachowanie stacji roboczych, gdzie tam uleg艂o to awarii, ludzie nie mogli w艂膮cza膰 komputer贸w. Pewnie jeszcze par臋 by艣my takich wymienili i my艣l臋 sobie, 偶e taki spadek zaufania m贸g艂by przyczyni膰 si臋 z kolei do spadku zainteresowania t膮 sztuczn膮 inteligencj膮, a to mog艂oby si臋 wydarzy膰, gdyby艣my zaliczyli jaki艣聽 taki olbrzymi fuckup.
Natomiast to te偶 nie by艂aby przecie偶 wina samej sztucznej inteligencji, tylko raczej os贸b, kt贸re j膮 u偶ywaj膮.聽

Szymon G艂owania
殴le u偶y艂y.

Artur Sm贸艂ka
Dok艂adnie. I gdzie zabrak艂o tego procesu weryfikacji, czy chocia偶by u偶ycia innego tool’a AI, kt贸ry sprawdzi艂by tego pierwszego np. w statycznej analizie kodu. Sonar Cube czy jaki艣 sneak code, o kt贸rym wcze艣niej wspomina艂em. A druga rzecz to s膮 regulacje. Gdyby w jaki艣 spos贸b ta sztuczna inteligencja si臋 nam troch臋 wymskn臋艂a, zacz臋艂oby si臋 to… Widzicie, ze sztuczn膮 inteligencj膮 jest troch臋 problem taki, 偶e na ten moment mieli艣my 艣wietn膮 baz臋 wiedzy. By艂 internet, by艂a dokumentacja, gdzie by艂y dokumenty pisane typowo przez ludzi, wy艂膮cznie przez ludzi. Czyli te dwa lata, gdzie mamy bardzo silny rozw贸j sztucznej inteligencji, tam by艂a 艣wietna baza wiedzy stworzona przez ludzi.
Dzisiaj po艂owa pewnie, a mo偶e i wi臋cej dokument贸w jest ju偶 tworzona przez sztuczn膮 inteligencj臋, co w praktyce oznacza, 偶e sztuczna inteligencja zaczyna si臋 uczy膰 sama od siebie. To tak jak troch臋 z kompresj膮 pliku. Je偶eli mamy plik tekstowy, kompresujemy go zipem, no to pierwsza kompresja wypadnie 艣wietnie, pewno z 80%, mo偶e 90%. Natomiast gdy pr贸bujemy skompresowany plik zip skompresowa膰 ponownie, to mo偶e wydusimy 1%, a pewnie wcale, a mo偶e nawet ten plik b臋dzie wi臋kszy w zale偶no艣ci od paru sk艂adowych. I boj臋 si臋, 偶e z t膮 sztuczn膮 inteligencj膮 mo偶e by膰 troszk臋 podobnie. Gdy dokumenty produkowane przez sztuczn膮 inteligencj臋 b臋d膮 zawiera膰 b艂臋dy, czy gdy generalnie ta wiedza, kt贸r膮 ona wytworzy, b臋dzie nieznacznie b艂臋dna, ale w kolejnych interakcjach ten b艂膮d mo偶e si臋 powiela膰 i rosn膮膰.
On聽mo偶e stawa膰 si臋 coraz wi臋kszy, a偶 dojdziemy do jakich艣 du偶ych takich przek艂ama艅. Wi臋c generalnie zastanawiam si臋, czy ta przysz艂o艣膰 sztucznej inteligencji nie zwolni i ten przysz艂y rozw贸j nie b臋dzie jednak troch臋 post臋powa艂 s艂abiej, z tego powodu, 偶e nie b臋dziemy ju偶 mieli takiej dobrej, niezawodnej, pewnej bazy wiedzy budowanej przez ludzi. No bo internet jest przeszukany, dokumentacja jest przeszukana, ksi膮偶ki s膮 przeszukane i na tej podstawie mamy to, co mamy dzisiaj. Natomiast tak odpowiadaj膮c w du偶ym skr贸cie, ja widz臋 jak du偶a to jest pomoc i wiesz, tak jak samochody spalinowe te偶 maj膮 wiele wad, ale raczej nikt nawet nie my艣li o tym, 偶eby ich tak ca艂kowicie zabroni膰, raczej troch臋 usprawni膰 czy uregulowa膰.
My艣l臋, 偶e podobnie b臋dzie ze sztuczn膮 inteligencj膮 i tymi tematami wok贸艂 AI.

Szymon G艂owania
Tak, no jakby zosta艂o nauczone na wszystkim co ju偶 by艂o, wi臋c tutaj si艂膮 rzeczy ten przyrost w takim k膮cie mo偶e by膰 mniejszy. Ja si臋 zastanawiam tylko czy tutaj nie b臋dzie podobnej sytuacji, nie tak szybko jak, ale b臋dzie podobnej sytuacji jak by艂o z AlphaGo, kiedy najpierw tw贸rcy algorytmu stworzyli algorytm, kt贸ry nauczy艂 si臋 na grach najlepszych mistrz贸w i gra艂 w t膮 gr臋 rzeczywi艣cie z zawodowcami i osi膮gn膮艂 jaki艣 tam sufit, kt贸rego ju偶 nie by艂 p贸藕niej w stanie przebi膰. Natomiast skoro wiedza ludzka si臋 sko艅czy艂a, to wtedy ten robot zacz膮艂 uczy膰 si臋 gra膰 sam ze sob膮, czyli dostarczone podstawowe 艣rodowisko, w ramach kt贸rego si臋 nauczy艂 gra膰 sam ze sob膮 i jakie s膮 regu艂y tej gry.
Proste regu艂y tylko zosta艂y narzucone do gry w go. No i p贸藕niej powsta艂y w ramach tych iteracji i tych w艂asnych trening贸w powsta艂y nowe strategie gry w go, kt贸rej ludzie przez taki du偶y czas nie wymy艣lili. Oczywi艣cie cz臋艣膰 tych wymy艣lonych przez AI i tych wymy艣lonych przez ludzi jest taka sama, natomiast powsta艂y nowe strategie. No ja my艣l臋, 偶e u nas mo偶e by膰 podobnie, czyli 偶e przejdziemy ju偶 do tego, 偶eby te maszyny, troch臋 bardziej algorytmy, uczy艂y si臋 same ze sob膮, czyli jakby ta historia i to sk膮d bior膮 wiedz臋 b臋dzie si臋 troch臋 zmienia艂o, natomiast 偶eby pope艂ni膰 kolejny krok du偶y w prz贸d, b臋dzie to musia艂o wyj艣膰 na tak膮 symulacj臋 nauki samej ze sob膮.
Tylko pytanie p贸藕niej, jak daleko boimy si臋 ogl膮da膰 Terminatora i Ja robot, kiedy to maszyny produkuj膮 maszyny. My艣l臋, 偶e jeste艣my fanami takich robot贸w tutaj, wi臋c raczej by艣my nie mieli z tym problemu.

Artur Sm贸艂ka
Absolutnie. No w艂a艣nie, to bardzo ciekawy aspekt poruszy艂e艣. Jeszcze musi wiesz, gra w Go, powiedzmy, 偶e jest to jaki艣 taki ala system zamkni臋ty, 偶e ten algorytm jest… w pewien spos贸b ograniczony聽granicami.

Szymon G艂owania
Proste regu艂y.

Artur Sm贸艂ka
Tak, proste regu艂y, wiadomo, wiele mo偶liwych rozwi膮za艅, ale sko艅czony zbi贸r tych rozwi膮za艅. Natomiast gdzie艣, gdzie m贸wimy o wiedzy i m贸wimy w og贸le o takim AI-u, kt贸ry tworzy co艣, takim generative AI, to on musi mie膰 jakie艣 podstawy w konkretnej wiedzy. I czym te podstawy b臋d膮 lepsze, tym rezultat b臋dzie lepszy. Wi臋c tak jak m贸wisz, jest du偶a obawa, gdy te podstawy b臋d膮 nieco gorsze albo du偶o gorsze, poniewa偶 b臋d膮 pochodzi艂y od sztucznej inteligencji, kt贸ra ju偶 jako a priori zawiera pewne b艂臋dy czy przek艂amania, no bo zosta艂a wygenerowana przez AI. Je偶eli to powielimy wielokrotnie, powielimy, przepu艣cimy to przez algorytmy, no to wtedy by膰 mo偶e b臋dzie w efekcie tak, 偶e te b艂臋dy z ma艂ych pocz膮tkowo stan膮 si臋 ca艂kiem du偶e i te przek艂amania b臋d膮 ogromne i to z kolei mog艂oby w teorii doprowadzi膰 do utraty zaufania.
Natomiast nie spodziewam si臋, 偶eby tak by艂o. My艣l臋 te偶, 偶e zbyt du偶e finanse i zbyt t臋gie g艂owy za tym stoj膮, 偶eby dopu艣ci艂y do czego艣 takiego.

Szymon G艂owania
Dobra, jeszcze tylko tak ju偶 pod koniec jedno pytanie, bo to s艂owo te偶 par臋 razy pad艂o dzisiaj na naszym spotkaniu. Zaufanie, mianowicie zaufanie do sztucznej inteligencji. No bo mamy kilka podej艣膰, nie ka偶dy z algorytm贸w s膮 w pe艂ni rozliczalne. Jeste艣my w stanie sprawdzi膰, jak b臋d膮 dzia艂a艂y w konkretnych sytuacjach. Albo nie jeste艣my w stanie tak wiele r贸偶nych sytuacji wygenerowa膰, 偶eby to po prostu sprawdzi膰. Jak z twojej perspektywy wygl膮da to budowanie tego zaufania do tych rozwi膮za艅, no bo my wiemy jak one dzia艂aj膮, wi臋c nam jest troch臋 艂atwiej to zaufanie p贸藕niej budowa膰, bo wiemy jakie elementy mo偶emy si臋 spodziewa膰, sk膮d to si臋 wzi臋艂o i jeste艣my w stanie sobie p贸藕niej sprawdzi膰 tak膮 odpowied藕.
Natomiast jak b臋dziemy przechodzili ju偶 w tak膮 bardziej automatyczn膮, rzeczywi艣cie zastosowanie tych tooli, gdzie nie zawsze osoba korzystaj膮ca b臋dzie w pe艂ni 艣wiadoma jak ten tool dzia艂a i czego si臋 mo偶na po nim spodziewa膰, jak to rozwi膮zanie finalnie powinno wygl膮da膰, no i jak to zaufanie mo偶emy budowa膰 teraz, budowa膰 p贸藕niej i czy w og贸le, 偶e tak powiem, b臋dzie mo偶liwo艣膰, 偶eby to zaufanie na wystarczaj膮cym dla nas poziomie by艂o.

Artur Sm贸艂ka
Wydaje mi si臋, 偶e na dzisiejszym etapie rozwoju sztucznej inteligencji my w 偶adnym razie nie mo偶emy darzy膰 jej zaufaniem. Traktujemy to jako narz臋dzie i nie powinni艣my go darzy膰 zaufaniem, poniewa偶 widzimy jak wiele tych tak zwanych halucynacji, przek艂ama艅, stronniczo艣ci,聽i w tym AI si臋 pojawia. Nasza dziedzina, kt贸r膮 jest programowanie, taka wiedza bardzo deterministyczna, twarda, techniczna jest nieco 艂atwiejsza, poniewa偶 tam cz臋sto jest 0 albo 1. Co艣 dzia艂a albo co艣 nie dzia艂a, wi臋c mamy mo偶liwo艣膰 zweryfikowania. Natomiast absolutnie odradzam korzystania z rozwi膮za艅 AI, a ju偶 szczeg贸lnie sprzedawania ich do klienta czy u偶ywania np. w produkcyjnym kodzie, kt贸rych nie rozumiemy. Ka偶dy element kodu wygenerowany przez AI musi by膰 zweryfikowany przez nas. My go musimy rozumie膰, wiedzie膰 po co on jest, wiedzie膰 jak on dzia艂a. Czasem ten kawa艂ek kodu mo偶e by膰 bardzo odkrywczy, jak w tych funkcjach poshare’owych, o kt贸rych m贸wi艂em, ale musimy doj艣膰 do dokumentacji, sprawdzi膰 te funkcje, oceni膰 to, zrobi膰 taki w艂asny assessment.
I ewentualnie si臋 z tym nie zgodzi膰, zmodyfikowa膰 samemu lub zn贸w w pomocy z AI, albo ca艂kowicie usun膮膰. Absolutnie uwa偶am za niedopuszczalne rozwi膮zanie, 偶e kto艣 z takim dobrodziejstwem inwentarza wykorzysta kod, kt贸rego nie rozumie. Je偶eli m贸wimy o szerszych zastosowaniach AI, jaka艣 tam medycyna, prawo i tak dalej, sytuacja wygl膮da identycznie. AI mo偶e wygenerowa膰 艣wietny plan leczenia dla kogo艣, 艣wietn膮 diet臋 czy 艣wietne pismo procesowe, ale to my musimy sprawdzi膰 czy to na pewno jest bezpieczne, czy na pewno paragrafy na kt贸re on si臋 powo艂uje istniej膮 i 艣wiadcz膮, w takim kontek艣cie, w jakim AI to opisuje i generalnie ta walidacja, sprawdzenie jest zawsze konieczne.
Je偶eli m贸wimy o zaufaniu do AI, na ten moment, tak jak m贸wi臋, wiele halucynacji, wiele podatno艣ci na sugestie, wiele stronniczo艣ci wynikaj膮cych z baz wiedzy, na kt贸rych AI by艂 uczony. Tak偶e absolutnie wszystko musi przej艣膰 przez sito ludzkie i w takim rozwi膮zaniu enterprise czy produkcyjnym. Absolutnie odradzam, aby przyjmowa膰 to bezkrytycznie.

Szymon G艂owania
Ja teraz podchodz臋 troch臋 tak jak do cz艂owieka, mam wra偶enie. Ode mnie du偶y bonus, bo jest traktowany personalnie. Natomiast traktuje go jak takiego nowego pracownika. Jak taki zaraz po studiach pracownik, kt贸ry przychodzi do pracy. On troch臋 o 艣wiecie wie, ale nie wszystko. Trzeba mu rzeczywi艣cie w krokach powiedzie膰 jak si臋 ma zachowa膰. Zawsze odpowie na pytanie. Bo AI, Generative AI zazwyczaj, nie wiem czy si臋 spotka艂em z sytuacj膮, 偶eby nie odpowiedzia艂 na zadane pytanie. wi臋c on zawsze odpowiada na pytanie, czyli po prostu nie przyznaje si臋, 偶e k艂amie, albo 偶e czego艣 nie wie. Co te偶 niekiedy jest cech膮 ludzk膮, nie tylko generative AI, wi臋c z mojej perspektywy to jest taki w艂a艣nie nowy pracownik zaraz po szkole, kt贸ry co艣 ju偶 tam wie, mo偶e mie膰 艣wietne pomys艂y, ale rzeczywi艣cie trzeba po nim wszystko sprawdzi膰.
Czyli tutaj ta walidacja niestety po naszej stronie musi by膰, no bo to przychodzi z automatu i mo偶e to pochodzi膰 z r贸偶nych cz臋艣ci, a si艂膮 rzeczy odpowiedzialno艣膰 p贸藕niej za taki kod dostarczony jest po naszej stronie.聽

Artur Sm贸艂ka
Tak, tak. 艢wietne聽por贸wnanie z tym cz艂owiekiem jakim艣 siedzia艂 po studiach czy osob膮, kt贸ra przysz艂a do pracy. I to w og贸le masz pe艂n膮 racj臋, 偶e on zawsze odpowie i to jest niebezpieczne. Ja si臋 spotka艂em w pewnym kraju, ju偶 tam nie b臋dziemy m贸wi膰 o konkretnych krajach, 偶eby nie budzi膰 skojarze艅, natomiast w niekt贸rych krajach jest tak, 偶e jak zapytasz kogo艣 o drog臋, to oni ci zawsze odpowiedz膮, nawet jak nie wiedz膮. I par臋 razy mnie tak tam pokierowali, ja wyszed艂em gdzie艣 w ca艂kowicie jakim艣 innym miejscu i p贸藕niej kogo艣 pyta, m贸wi臋, jak to jest, 偶e ten pan mi kaza艂 tu i艣膰, tu, tu?
To akurat by艂 obcokrajowiec, ten, kt贸rego spyta艂em, m贸wi, s艂uchaj, oni s膮 tacy, 偶e oni si臋 nie przyznaj膮, 偶e nie wiedz膮. Oni ci zawsze odpowiedz膮, nawet jak nie wiedz膮. Nawet jak maj膮 tylko mg艂awe poj臋cie, oni ci zawsze powiedz膮, id藕 tu, tu, tu. I ja w艂a艣nie pad艂em ofiar膮 takiego wskazywania drogi. I my艣l臋 sobie, 偶e jest dosy膰 dobra ta alegoria do AI. On te偶 cz臋sto Ci odpowie, nawet jak nie jest pewien, albo nawet jak totalnie nie zna odpowiedzi, bo Ty ju偶 wiesz, 偶e w tym pytaniu nie ma jasnej odpowiedzi. To pytanie ju偶 jest z gruntu rzeczy b艂臋dne, nie idzie na nie odpowiedzie膰, a odpowied藕 otrzymasz, co jest znakomitym dowodem na t臋 halucynacj臋 i na to, 偶e on odpowie nawet jak nie wie.
Mo偶na si臋 troch臋 przed tym zabezpiecza膰, wiesz, s膮 tam r贸偶ne metody, te ragy, czy jeszcze wiele innych temat贸w, mo偶na w og贸le nawet w prompcie go zapyta膰, 偶e je偶eli nie masz konkretnych podstaw, do odpowiedzi, nie jeste艣 pewien odpowiedzi, nie jeste艣 w stanie powo艂a膰 si臋 na konkretne 藕r贸d艂a, to napisz, 偶e nie wiesz. I cz臋sto te偶 radzi si臋, aby gdzie艣 tam w taki pr膮d umieszcza膰. Cz臋sto te偶 narz臋dzia, kt贸re s膮 ju偶 gotowe, przygotowane, maj膮 takie klauzule, takie dyspozycje, takie polecenia dla AI-a. S艂uchaj jak nie wiesz, napisz, 偶e nie wiesz, nie odpowiadaj, nie harucynuj. Ale tak jak powiedzieli艣my, zawsze ograniczone zaufanie, podstawowa zasada, wiesz, nie tylko na drodze, ale te偶 w AI.

Szymon G艂owania
Z mojego do艣wiadczenia, je艣li chodzi o pisanie prompt贸w, dodanie mu informacji, 偶e je艣li w danym kontek艣cie rzeczywi艣cie brakuje mu jakiej艣 informacji, 偶eby dopytywa艂, te偶 poprawia to, jaka ta jako艣膰 tego kodu, czy jako艣膰 rozwi膮zania jest dostarczana, nie? Mimo wszystko potrafi przej艣膰 p贸藕niej przez jakie艣 rozwi膮zanie i dopyta膰 albo sprawdzi膰 tak膮 check list臋, natomiast nie jest to co艣 co tam wskakuje z automatu, czyli my musimy o to zadba膰, bo z automatu on ma odpowiedzie膰 i odpowiada na takim poziomie jak umie, a 偶e nikt nie zawsze wszystko umie to niekiedy te odpowiedzi s膮.

Artur Sm贸艂ka
Tak,聽dok艂adnie. Traktujmy to jak narz臋dzie. By膰 mo偶e narz臋dzie o wielkim potencjale, o wielkich mo偶liwo艣ciach, ale ca艂y czas jest to narz臋dzie w naszych r臋kach. To nie jest wyrocznia, w kt贸rej mo偶emy bezkrytycznie korzysta膰. Tak偶e ja my艣l臋, 偶e dop贸ki b臋dziemy traktowali to jako narz臋dzie, to nic z艂ego si臋 nie stanie w sensie takim, 偶e nie padniemy jakby ofiarom jakich艣 sugestii, czy jakich艣 halucynacji AI, kt贸re nie s膮 zgodne ze stanem faktycznym. Natomiast gorzej, je偶eli kto艣 zacznie bra膰 wszystko z AI za prawd臋, 偶e wie, 偶e to na pewno, s艂uchaj AI mi tak napisa艂o, ja ju偶 to widz臋 nieraz w dyskusjach, gdy kto艣 jest, wiesz, jaki艣 jest sp贸r w dyskusji i kto艣 ma r贸偶ne zdanie czy inaczej si臋 zapatruje na pewne kwestie.
Kto艣 wyci膮ga telefon, pisze do AI i AI zawsze odpowie jak ju偶 ustalili艣my. Pokazuje i m贸wi zobacz jest tak. A kto艣 m贸wi nie no tak nie jest. Po prostu AI ci tak odpowiedzia艂. Ja zaraz skonstruuj臋 troch臋 inny prompt i on odpowie tak jak ja chc臋. Tak偶e m贸wi臋, te du偶e mo偶liwo艣ci i to, 偶e zawsze odpowied藕 jak膮艣 dostaniemy, sprawia, 偶e niekt贸rzy ludzie maj膮 wra偶enie, 偶e AI jest nieomylny albo wszechwiedz膮cy. Absolutnie tak nie jest, raczej jest totalnie na odwr贸t. I tak jak m贸wi臋, traktujmy to jako narz臋dzie, tak jak encyklopedi臋, czy jaki艣 艣wietny scyzoryk, kt贸ry ma wiele r贸偶nych mo偶liwo艣ci, ale nadal jest to narz臋dzie i to my jeste艣my odpowiedzialni za w艂a艣ciwe wykorzystanie.

Szymon G艂owania
Temat sztucznej inteligencji, temat rzeka obecnie bardzo rw膮ca, kt贸ra wszystkich ch臋tnie porywa. Tych narz臋dzi AI jest oczywi艣cie mn贸stwo, musimy wybra膰 jakie艣 dla siebie, korzysta膰 z rozs膮dkiem, stara膰 si臋 dosta膰 co艣 ciekawego od nich, 偶eby艣my byli w stanie sobie co艣 z tego torciku wzi膮膰 dla nas. Nasz ekspert poleca stosowanie AI?

Artur Sm贸艂ka
Tak, absolutnie, absolutnie polecam, absolutnie doradzam wyrobi膰 sobie swoje w艂asne zdanie, czyli u偶y膰, m贸wi臋, to co jest bardzo fajne w tych narz臋dziach, praktycznie ka偶dy z nich ma wersj臋 testow膮, kt贸ra jest bardzo bogata, kt贸ra jest darmowa, cz臋sto na miesi膮c, by膰 mo偶e nawet do偶ywotnio, do zastosowania komercyjnych, zale偶y od narz臋dzia. Ka偶demu programi艣cie warto skorzysta膰. Doradzam, aby spr贸bowa艂. Doradzam wyrobi膰 sobie w艂asne zdanie. Przede wszystkim mie膰 na uwadze to, 偶e kluczowy jest prompt, kluczowy jest kontekst i dalej kluczowa jest nasza ocena rezultatu, kt贸ry dostaniemy od AI. Nie bierzemy wszystkiego w dobrodziejstwie inwentarza, nie bierzemy wszystkiego bezkrytycznie, ale pr贸bujemy, bo je偶eli wi膮偶emy nasz膮 karier臋 z programowaniem, z jakim艣 tematem technicznym, to AI naprawd臋 bardzo mocno nam pomo偶e.
Dlatego, 偶e nasz zaw贸d jest oparty na wiedzy. Trudno, aby kto艣 zgromadzi艂 wszystk膮 wiedz臋 w swojej g艂owie. Warto wspom贸c si臋 takimi narz臋dziami, kt贸re t膮 wiedz臋 maj膮 bogatsz膮, a nasz膮 z kolei wiedz膮 i do艣wiadczeniem weryfikowa膰 to, co dostaniemy. Tak偶e raczej nie boimy si臋 AI, raczej wsp贸艂pracujemy z ni膮, traktujemy jak narz臋dzie. Naprawd臋 zach臋cam ka偶dego, 偶eby wyrobi艂 swoje w艂asne zdanie w oparciu o jak膮艣 troszeczk臋 d艂u偶sz膮 ni偶 jednodniow膮 przygod臋 z AI.

Szymon G艂owania
Czyli ka偶dy z nas znajdzie sw贸j ma艂y projekt, z kt贸rym b臋dzie m贸g艂 sobie przetestowa膰, czy to b臋dzie samoch贸d, czy to b臋dzie nowy pracownik, ale tak czy inaczej jaki艣 AI b臋dzie z nami wsp贸艂pracowa艂. Zach臋camy oczywi艣cie do korzystania, ale z g艂ow膮, bo te zastosowania mog膮 nam po prostu bardzo fajnie u艂atwi膰 prac臋.

Aby nie przegapi膰 kolejnych odcink贸w, zasubskrybuj podcast Tech Chatter w swojej ulubionej aplikacji. A je艣li spodoba艂 Ci si臋 ten odcinek, daj nam zna膰 wystawiaj膮c ocen臋 na Spotify lub Apple Podcasts. Wszystkie linki do zagadnie艅 poruszonych w odcinku znajdziesz w jego opisie.