#53

Ryszard Tuora - Czy ChatGPT zmieni świat?

W najnowszym odcinku podcastu gościem Łukasza Kobylińskiego był Ryszard Tuora. Tematem rozmowy był ChatGPT i to, w jaki sposób wpływa na rzeczywistość.

Streszczenie odcinka

  1. Przedstawienie Gościa.
  2. Co to w zasadzie jest ChatGPT?
  3. Jakie są możliwości i ograniczenia ChatGPT?
  4. Do czego można zastosować ChatGPT?
  5. ChatGPT jest płatny – czy są jakieś alternatywy?
  6. Czy oprócz modeli językowych są jakieś inne obszary, w których AI szybko zmienia rzeczywistość?
  7. Czy modele tego typu nie naruszają praw autorskich?
  8. Jaki może być potencjalny wpływ na rynek pracy, zmiany społeczne, zagrożenia w związku z dalszym rozwojem?
  9. Jak można wykorzystać tego rodzaju modele we własnej organizacji?

Transkrypcja odcinka

Cześć, z tej strony Łukasz Kobyliński. Witam Was w kolejnym odcinku podcastu „Stacja IT”. Dzisiaj porozmawiamy o trendzie, który zmienił rzeczywistość w obszarze sztucznej inteligencji, przebił się do prasy ogólnej, do świadomości wszystkich, nie tylko tych związanych ze sztuczną inteligencją – chodzi mianowicie o ChatGPT. Gdy zapytamy przechodnia na ulicy, czy słyszał o ChatGPT, to zapewne odpowie twierdząco, niektórzy sami nawet próbowali tego użyć, rozmawiali z ChatGPT. W każdym razie wiele osób o tym mówi. My postanowiliśmy zgłębić temat sztucznej inteligencji. Z nami jest dziś Ryszard Tuora, który pracuje zarówno naukowo w Instytucie Podstaw Informatyki Polskiej Akademii Nauk, jak i w biznesowo z chatbotami, sztuczną inteligencją w Sages.

Cześć, Ryszard!

Cześć!

Na początek powiedz kilka słów o sobie.

Zajmuję się zarówno od bardziej naukowej, jak i komercyjnej strony przetwarzaniem języka naturalnego, w szczególności kwestiami chatbotów, asystentów dialogowych i odpowiadaniem na pytania. To, czym w ostatnich tygodniach i miesiącach ChatGPT głównie błyszczy, to jest coś, co na moim polu zainteresowań dość dobrze się sytuuje.

Czym jest ChatGPT? Czym jest to urządzenie, które tak mądrze do nas mówi?

Najlepiej podejść do tego historycznie. ChatGPT to wersja GPT, z kolei GPT jest wersją architektury transformerowej. Krótko mówiąc, w 2018 r. w świecie pojawiło się przetwarzanie języka naturalnego, takie architektoniczne rozwiązanie nazwano transformerami. Architektoniczne w tym sensie, że dotąd korzystaliśmy z zupełnie inaczej ustrukturyzowanych sieci neuronowych w celu pracy z tekstem i z danymi, natomiast w 2018 r. pojawił się pomysł, aby inaczej reprezentować strukturę tekstu niż dotychczas. Do tej pory robiono to za pomocą sieci rekurencyjnych, czyli takich, które podejmowały decyzje na podstawie tekstu reprezentowanego jako ciąg słów, natomiast transformery wykorzystują mechanizm atencji, czyli badają relacje między słowami w tekście. Do tego celu służy macierz. Mając 10 słów, będzie ona miała 10 kolumn i 10 wierszy. Bada ona relacje zachodzące między słowami w zdaniu. Mogą być one bardzo różne. Najprostszy przykład takiej relacji to anafora. W zdaniu pojawia się imię jakiejś osoby i zaimek do niej się odnoszący: „Piotr” i potem „on”. To, że „on” odnosi się do „Piotra” to relacja tekstowa, czyli relacja pomiędzy tymi dwoma słowami. Pomysł na reprezentację tych relacji w tekście – mogą one być przeróżne, nikt ich tam nie hardkoduje, lecz są one odkrywane w procesie uczenia – okazał się bardzo płodny, ponieważ zaczął przebijać dotychczasowe metody reprezentacji tych tekstów. I na tym nabudowano inne rozwiązania.

Najpierw nabudowano na tym BERT-a, który był podstawą NLP do 2021 r., 2022 r., a trochę odmiennym podejściem było GPT. GPT to taka wersja transformera, a tak naprawdę część tej architektury. Transformery składają się z enkodera i dekodera. Architektury BERT-owe są oparte na enkoderach, te zbliżone do GPT – na dekoderach. Na dużych zbiorach danych zaczęto je uczyć w zadaniu predykcji kolejnego tokenu. Wprowadza się jakiś noise w dane – szum – uczy się je rekonstruować teksty, w tym m.in. semantykę i syntaktykę. Stopniowo tę procedurę treningu udoskonalano. Dodawano więcej danych, trenowano te modele dłużej, zapewniano lepszą jakość danych, stosowano różnego rodzaju sztuczki, żeby ten proces treningu usprawnić. I mieliśmy edycje tych modeli: od GPT-1 do GPT-2, od GPT-2 do GPT-3.

GPT-3 było już bardzo nowatorskie ze względu na mechanizm zero-shot learningu – dotychczas musieliśmy mieć swoje dane dla finalnego zadania, na którym chcielibyśmy taki model dotrenować, żeby on zdobył jakieś umiejętności. Dopóki tych danych modelowi nie dostarczyliśmy, nic w tym konkretnym zadaniu, czyli klasyfikacji tweedów, nie potrafił robić, a jak mu się te dane dostarczyło, to na zasadzie zbliżonej do warunkowania behawiorystycznego: on się uczył, patrząc na te dane, bez procesu rozumowania. Natomiast w zero-shot learningu możemy opisać problem modelowi, na tej podstawie będzie on w stanie zrozumieć, na czym on polega i jak go rozwiązać. Może to być czysty zero-shot learning, czyli opisujemy problem, albo few-shot learning, czyli podajemy kilka przykładów. W tych modelach zadziwiające jest to, że coś takiego działa. Bo działa już dużo bardziej jak człowiek niż tradycyjne modele.

GPT-3 był właśnie takim kamieniem milowym, natomiast ChatGPT to tak naprawdę interfejs konwersacyjny do GPT-3.5. Różnica między GPT-3 a GPT-3.5 polega na tym, że dodano więcej danych, ponownie udoskonalono proces treningu, zwiększono liczbę parametrów, ale dodatkowo umieszczono to wszystko w interfejsie konwersacyjnym, w którym nie musimy tłumaczyć naszych problemów na zadanie predykcji tekstu, tylko opisywać te problemy w konwersacji, wymianie wiadomości. Może to być wymiana jednoturowa i wieloturowa, czyli taka, w której krążymy wokół jakiegoś tematu i np. usprawniamy te odpowiedzi, które ten chatbot nam daje. To jest w tym modelu ciekawe. Okazuje się, że wszystkie problemy, które dotąd te modele miały, w środowisku ChatGPT znikają. Jakość jest zadziwiająca.

Co umożliwiło rewolucję ChatGPT? Wielkość modelu czy sposób trenowania? 

Jestem zdania, że to jest bardziej ilościowa zmiana. Od GPT-2 do GPT-3 nie ma radykalnej zmiany architektury. To może być kwestia dołożenia warstw, ale zasadniczo są to warstwy tego samego typu. Sam Altman, CEO OpenAI, powiedział, że to jest kwestia zastosowania szeregu trików obliczeniowych w przetwarzaniu danych, które kumulatywnie przyniosły ten efekt jakościowej różnicy. Wydaje mi się, że to jest podejście, które dobrze obrazuje to, co tutaj zrobiło robotę.

Przy uczeniu ChatGPT zastosowana była pewna „sztuczka” z użyciem danych konwersacyjnych. Wzmacniało to model wtedy, kiedy w danych treningowych było zaznaczone, że dana odpowiedź jest prawidłowa, a zmniejszało jego wagę, jeśli dana odpowiedź była nieprawidłowa.

Podstawowe zadanie to predykcja tekstu. Jak pracuje się bezpośrednio z tymi modelami GPT-3, GPT-3.5, GPT-4, to trzeba formułować dane zadanie w taki sposób, żeby przetłumaczyć je na tę predykcję tekstu. Jeżeli zależało nam na wychwyceniu nazwisk, to musieliśmy przygotować taki prompt, w którym był tekst zawierający jakieś nazwiska, potem pisaliśmy coś w stylu „lista nazwisk występujących w tym tekście to:…” i prosiliśmy, żeby model dokończył. A tutaj właśnie musimy napisać tak, jakbyśmy napisali do innego człowieka, czyli „proszę, wypisz mi te nazwiska”. To jest kwestia innego paradygmatu treningu. To ta różnica między GPT-3.5 i ChatGPT.

Dodatkowo zastosowano RLHF, czyli reinforcement learning from human feedback – uczenie ze wzmocnieniem opartym na ludzkim feedbacku, ludzkiej informacji zwrotnej. Przygotowano nieduży dataset instrukcji, czyli explicite formułowano prośbę o zrobienie jakiegoś zadania, np. „wymyśl mi przepis na jakąś potrawę, wykorzystując dane składniki”, i ludzie nawzajem odgrywali te role. Jeden człowiek werbalizował prośbę, drugi wypełniał zadanie. Wytrenowano wówczas model nagrody. Ludziom kazano wybierać, która forma realizacji zadania jest lepsza, rankingować: która odpowiedź jest bardziej ekspresywna, na temat, spójniejsza. Stworzono takie rankingi, na tym wytrenowano model nagrody.

Czyli mamy tak naprawdę dwa modele – GPT-3.5 i model nagrody. Podajemy prośby do GPT-3.5, on zwraca wyniki. Model nagrody jest w stanie odtworzyć ludzkie rankingi. Stwierdzić, czy to, co model stworzył, jest dobre lub nie. Na tej podstawie generuje nagrodę bądź karę dla modelu. W ten sposób model uczy się stricte w kontekście wypełniania ludzkich konstrukcji. To, że tak dobrze działa w kontekście konwersacyjnym, to zasługa tego ostatniego kroku. Charakterystyczne jest to, że w tych pay planach pojawiają się modele. To nie jest tak, że mamy jeden model i wzorcowe dane notowane przez ludzi, lecz coraz częściej pojawiają się takie sytuacje, w których trenujemy jeden model, w tle wykorzystujemy drugi do przygotowania jakichś danych albo do ewaluacji, więc ta uprzywilejowana pozycja człowieka w tej całej procedurze, że tylko człowiek jest źródłem ostatecznej prawdy, trochę zanika.

To widać po tym, jak te modele są wykorzystywane przez OpenAI. Niedawno pojawił się na ich blogu wpis o tym, jak oni wykorzystują GPT-4 do interpretowania wyników GPT-2. Problem z tymi modelami jest taki, że to są czarne skrzynki. Nie wiadomo, jakie przetwarzanie w środku się odbywa. I tak jak wspominałem o tej atencji, tam każdy neuron można badać, to, w którym momencie on się aktywuje, na jakie słowa, konteksty reaguje. Więc to, co oni zrobili, to wzięli neurony z GPT-2, zobaczyli, jak ten model reaguje na jakieś słowo w tekście, podali to do GPT-4 i kazali GPT-4 interpretować, jaki to może być neuron i co on rozpoznaje. Podają tekst o superbohaterach i mówią, że ten neuron rozpoznaje słowa, które wiążą się z robieniem czegoś dobrze, kończeniem jakichś wyliczeń. Tego typu informacje ten model próbuje sam interpretować w tym, jak działa inny model.

Czyli to jest jedno z możliwych zastosowań ChatGPT. Co ogólnie wiadomo o możliwościach tego modelu? Z czym te modele sobie nie radzą? Zaobserwowano, że nie radzą sobie z obliczeniami matematycznymi. Po pierwszej fali fascynacji tym wszystkim okazywało się, że niektóre rzeczy nie bardzo wychodzą. Czy zidentyfikowano już mocne i słabe strony tych modelu?

Tak. Ta architektura ma wyraźne ograniczenia. Wydaje mi się, że sposób, w jaki one mogą być ominięte, polega na integrowaniu tego modelu z innymi narzędziami. I tak faktycznie się dzieje. Kilka z tych ograniczeń rozpoznano, część naprawiono bądź usprawniono drogą integracji. Pierwsze takie ograniczenie, które rzucało się w oczy, to to, że ten model nic nie wie po 2021 r. Dane dodatkowe zostały tam dorzucone o nowych wydarzeniach na świecie, natomiast problem nie został rozwiązany, ponieważ model nie będzie miał informacji po 2023 r. To problem architektoniczny. Te modele wiedzę kompresują z danych. Jeżeli nie było w nich nic o nowszych wydarzeniach, które są z dzisiaj, to one o nich nic nie będą wiedziały, dopóki im ich nie wyjaśnimy i nie podamy w inpucie. Natomiast to nie jest ograniczenie bez wyjścia. Te informacje można podawać w tym inpucie. Jeżeli podłączymy to do jakiegoś innego systemu, w którym ta wiedza jest składowana w innej postaci, np. bardzo klasycznej, czyli mamy zaindeksowane jakieś dokumenty – taki klasyczny system information retrieval – to możemy te braki na bieżąco uzupełniać. Wówczas ChatGPT będzie miał zdolność robienia tego samego, co robi z wiedzą do 2021 r., z tą nową wiedzą. To jest kierunek integracyjny. Te wszystkie informacje, które trudno skompresować, można przechować inaczej i dostarczać przez interfejs API. Czyli w tradycyjnej bazie danych SQL-owej, bazie z dokumentami, Solarze. Dużym ułatwieniem pracy są pluginy, czyli możliwość, dzięki której ChatGPT wykona jakiś kod, skorzysta z narzędzi, które zintegrują go z jakimiś innymi narzędziami. To łata dziurę w jego wiedzy.

Problem drugi, o którym wspominasz – z obliczeniami arytmetycznymi – jest analogiczny. Architektura oparta o mechanizm atencji nie służy do realizacji jakichś algorytmicznych procesów, obliczeń – odwracanie list, dodawanie, odejmowanie, całkowanie – to nie są rzeczy, do których ten model jest stworzony, chociaż on bardzo dużo takich danych widział, ale żeby takie rzeczy robić, trzeba mieć inne struktury niż to, co ten model ma. Nie ma sensu go tego uczyć i tego nie będzie umiał robić, natomiast może odpalić sobie konsolę Pythona, napisać kod, który obliczy, czy padają takie trywialne rzeczy jak dwa plus dwa równa się cztery, czy bardziej złożone, jak np. znalezienie miejsca zerowego jakiejś funkcji. ChatGPT będzie mógł sobie sam napisać taki kod, zlecić jego wykonanie, odczytać wyniki, zinterpretować je i zwrócić odpowiedź w postaci języka naturalnego. To jest luka, którą można załatać poprzez integrację z innymi systemami.

Co ciebie zaskoczyło w tym modelu?

Wszystkie odpowiedzi, które dostałem, są dla mnie zaskakujące. Fascynujące jest to, że bez względu na to, czy chodzi o kod, czy o codzienne rzeczy, ten model jest w stanie dużo z tym sensownego zrobić. Wrzuciłem do niego ostatnio jakiś kawałek swojego kodu i poprosiłem, żeby go ocenił. Zwrócił ocenę, skrytykował, że za mało komentarzy, że coś można by zrobić lepiej.

Powiedzmy kilka słów o języku. ChatGPT trenowany był na zbiorze, który miał teksty w wielu różnych językach. Czy twoim zdaniem lepiej działa po angielsku niż po polsku? Czy język, w którym zadajemy dane pytanie, podajemy prompt, ma znaczenie w tym, jak ta odpowiedź jest później generowana?

Tak. Oceniłbym to tak, że w języku polskim zachowuje się lepiej, niżbym się spodziewał. Spodziewałbym się, że gdyby wytrenować podobną architekturę tylko na danych z języka polskiego, to nie byłoby lepszych rezultatów. Biorąc pod uwagę, ile tych danych polskich tam było – nieduży procent względem danych angielskich, chińskich, francuskich, tego wszystkiego jest bardzo dużo – to jest to bardzo wysoki poziom. Nie spotkałem się tak naprawdę z sytuacją, w której problem byłby na płaszczyźnie językowej. Wydaje się, że te modele wyrabiają sobie reprezentacje międzyjęzykowe, czyli że mogą korzystać z wiedzy spromptowanej w jednym języku, żeby pracować w drugim. Robiłem jakieś prompty, w których było mieszanie języka, prompt był po angielsku, ale o polskim tekście, nie było oczywiste, co się wówczas stanie. Wtedy właśnie przeważał w odpowiedziach język angielski. Co ciekawe, robiłem kilka prób polegających na podawaniu tekstu w języku kaszubskim albo śląskim, wówczas model odpowiadał już tylko w polskim. On był w stanie rozumieć ten język, ale nie miał dostatecznie dużo kompetencji generowania go, więc odpowiadał na pewno w jakimś pokrewnym języku, czyli polskim.

Ta wielojęzyczność to ciekawy aspekt tego modelu. Wydaje się, że ta wiedza jest o faktach i o świecie, a ten model jest w stanie ją wyekstrahować z tekstów w różnym języku. I potem można go o te rzeczy pytać w różnych językach.

Jakie są możliwe zastosowania ChatGPT? Do czego ludzie go wykorzystują? Są oczywiście takie „zabawkowe” zastosowania, jak np. zapytanie modelu o sens życia, natomiast jakie realne zadania może on spełniać? Czy zastępuje on klasyczne modele machinlearningowe, które np. służą do klasyfikacji danych, grupowania czy do innych zadań już twardo informatycznych?

Takich zastosowań „zabawowych” jest faktycznie dużo. Na Reddicie jest Subreddit dedykowany ChatGPT. Ludzie głównie prześcigają się w wyciąganiu z niego m.in. przekleństw, nie zastanawiając się nad produktywnymi rozwiązaniami. Na pewno jest tam usługa asystenta osobistego. ChatGPT może usprawniać pracę programistom, wymyślając ewentualne przypadki – edge case’y – w których wskazany kod może się wywalić, w nieprzewidywalny sposób się zachować, taki boilerplate, może pisać funkcje do obsługi zapytań albo do integracji z prostymi interfejsami. W tym sensie jest takim codziennym pomocnikiem. Może pomagać też w pisaniu różnego rodzaju tekstów, maili, wniosków. Notabene, OpenAI wypuściło reklamę, w której model służył do napisania przemowy na ceremonii ukończenia studiów przez rodziców dla dzieci. To jest trochę rozczarowujące, że ludzie do takich celów chcą to wykorzystywać. Zastanawiałem się, czy on zrobiłby coś, co pomogłoby mi zracjonalizować moje żywienie, ułożyć prosty algorytm, który układałby mój jadłospis na podstawie tego, co mam w lodówce. Okazało się, że funkcje do układania takiego jadłospisu na podstawie przepisów i zawartości lodówki napisał, kilka przepisów wymyślił. Takie codzienne usprawnienia w naszym indywidualnym życiu może więc zrobić, udzielić porad w dziwnych przypadkach.

Natomiast w biznesie to zależy, z czym zostanie zintegrowany. Ciężar leży w tym, żeby umieć te dane biznesowe odpowiednio przedstawić takiemu modelowi, żeby ta reprezentacja ujmowała dostatecznie dużo informacji, ale też, żeby była dostatecznie zwięzła, bo koszty obsługi zapytań nie są zerowe – to wszystko wiąże się z kosztami – przygotować sensowną reprezentację tych danych i sposobu zamiany problemów, które ludzie mają, na prompty, czyli prompt engineering. Ludzie wykazują się tu też dużą wynalazczością. Wynika to z tego pierwotnego wykorzystania, kiedy to w jednoturowych interakcjach rozmawiało się z chatbotem. Czyli stawiamy problem, chatbot go rozwiązuje. Jeżeli nikt go nie rozwiąże w jednej wiadomości, to jest głupi i na pewno nam nie pomoże. Ludzie teraz eksplorują sytuacje, w których ten chatbot planuje sekwencyjnie jakieś kroki, które musi przedsięwziąć, żeby rozwiązać jakiś problem. Sam je potem wykonuje. Czyli najpierw zastanawia się, co zrobić, żeby odpowiedzieć na pytanie, które mu wysłano, potem – jak każdy z tych kroków może zrealizować jako kod, który wyśle request do jakiejś bazy danych albo wyszuka coś w Google, a następnie – jak zinterpretować te dane. Interpretuje je i dopiero zwraca odpowiedź. Są to zatem łańcuchy rozumowań, które znacznie poszerzają zakres zdolności chatboba.

W ten sposób należy rozumieć tę integrację ChatGPT z Bingiem. Model dostaje dodatkowe informacje z wyszukiwarki, która interpretuje i wykorzystuje je w generowanej odpowiedzi?

Tak.

Ciekawy krąg zastosowań ChatGPT jest związany z programowaniem. Przed ChatGPT ten model był wytrenowany na danych z GitHuba, który miał wspierać programistów. W tej chwili te możliwości się zwiększyły. Zapowiada się narzędzia, które mają to dodatkowo ułatwić w bieżącej pracy. Już pojawiły się wtyczki do Visual Studio Code i do innych IDE. Natomiast nie do końca wiadomo, czy ten kod jest obarczony prawami autorskimi osób, które go oryginalnie napisały na GitHubie.

Tak, z tego, co mi wiadomo, to Microsoft podchodził z pewną niefrasobliwością do tego, jakie licencje zamieszczano w repozytoriach, z których dane były pobierane. Nikt nikogo nie pytał, czy chce, żeby jego kod zasilił ich komercyjny silnik sztucznej inteligencji. Natomiast nie słyszałem, żeby pojawiały się jakieś pozwy. Na pewno były kwestie naruszeń bezpieczeństwa, poukrywane sekrety, kody do czegoś, klucze, które ktoś sobie składował w repozytorium. Okazywało się, że ten model jest w stanie je zrekonstruować.

Firmy informatyczne dzielą się na te, które bardzo chętnie z tego skorzystały, i te, które boją się ewentualnych problemów licencyjnych. Programiści dostają zakazy korzystania z tego rodzaju narzędzi, być może na poziomie UE też będzie to dopracowane. Wracając do samego ChatGPT z OpenAI, dodatkowy problem jest taki, że to jest model płatny. Mam wrażenie, że w ostatnich tygodniach czy miesiącach jest duży trend, który zmierza do tego, żeby te modele uwolnić. Jak ty to widzisz? Czy obecnie tworzenie otwartych modeli i otwartych zbiorów danych ma szanse i czy to rzeczywiście pozbawi tego pierwszego miejsca w tym wyścigu te duże korporacje, które mają dostęp i do danych, i do mocy obliczeniowych?

Tak. Wydaje się, że nie ma ucieczki od upowszechnienia tego. Mamy dostęp do rozmów z ChatGPT. Jeżeli zapiszemy te nasze rozmowy i porozumiemy się z innymi kolegami, którzy również to zrobią, to możemy w ten sposób zrobić spory zbiór reprezentujący te kompetencje ChatGPT czy innych modeli od OpenAI i potem wykorzystać je w procedurze destylacji. Czyli próbować zrekonstruować kompetencje tego dużego modelu w jakimś mniejszym, bardziej przystępnym obliczeniowo, operując na outputach tego, co ten model wypluwa. I tak się już właśnie dzieje. Z tego, co się orientuję, to Vicuna m.in. z takich danych korzysta. Vicuna dalej jest modelem dostępnym opensource’owo, ale on do niczego się nie przyda, dopóki nie dostaniemy modelu bazowego, którego on jest rozszerzeniem. Czyli to, jak Vicuna jest dystrybuowana, to nie są wagi modelu, lecz różnica w wagach Vicuny względem modelu LLaMA od Facebooka. Jeżeli nie ma się dostępu do LLaMA, to nie ma się dostępu do tej prawdziwej Vicuny, jej kompetencji. Myślę, że to kwestia czasu. Też będzie można zrekonstruować i upowszechnić ten sposób, natomiast to jest dostęp do samych parametrów, a tutaj parametry chyba nie są największym problemem, ponieważ jest nim moc obliczeniowa. Bo nawet jeżeli OpenAI liczy sobie za usługi, ile liczy, a mi się wydaje, że i tak liczy sobie za nie niedużo, to siłą rzeczy musi to na jakimś komputerze pracować. To nie są komputery dostępne dla przeciętnego człowieka z jego przeciętnym portfelem. Nie ominiemy kosztów sprzętu i prądu. Ktoś za to będzie musiał płacić. Te kompetencje darmowe nie będą. Pytanie, czy w związku z tym te wszystkie ruchy związane z demokratyzacją tego osiągną cel. Czy nie będzie tak, że ci, których będzie stać na te karty graficzne, prąd, chłodzenie, infrastruktury serwerowe itd., naprawdę będą korzystać z tego, co czego „na niby” wszyscy mają dostęp.

Chyba że będzie kolejny przełom związany ze skompresowaniem tych modeli, żeby działały na mniej wymagającej infrastrukturze.

Tak, ale zbliżamy się tu do ograniczeń fizycznych czy informacyjno-teoretycznych. Nie skompresujemy tego do jednego megabajta. Vicuna jest mocno skompresowana, ma dalej 32 GB. Wziąć albo kartę graficzną z 32 GB, albo dużo czasu, żeby to na CPU przetwarzać.

Powiedzieliśmy o zastosowaniach ChatGPT, którego odpowiedzi są w formie tekstu. Podobno w którejś aktualizacji miała być możliwość analizy obrazu. Natomiast niezależnie od ChatGPT trend dużych modeli i udoskonalenia różnych wspomnianych wcześniej architektur doprowadziły do tego, że te innowacje następują nie tylko w kontekście tekstu. Myślę, że wiele osób zetknęło się z generowanymi obrazami. Czy dzieje się to na podobnej zasadzie? Czy to jest ten sam trend co ChatGPT, czy to jest jednak zupełnie inny obszar badań?

Nie znam się na subtelnościach przetwarzania obrazu komputerowego, natomiast wydaje się, że w podobnym czasie pojawiły się podobne rezultaty. Czyli DALL-E, Midjourney, modele typu stable diffusion – one wszystkie działają mniej więcej podobnie. Pisze się jakiś prompt, coś w języku naturalnym podaje się na inpucie, ewentualnie też w niektórych modelach można podawać jakieś grafiki jako inspiracje lub wzorcowe źródła. Zwracają one wówczas bardzo ciekawe outputy pod względem nie tylko samej technicznej umiejętności, lecz też stylu. Te modele są w stanie rekonstruować różne style. Początkowo były to mniej ikoniczne style, robiono np. reprodukcje obrazów van Gogha, bo prościej było tym modelom mniej konkretne kształty rysować. Nowsze wersje również dobrze radzą sobie z tymi wszystkimi elementami, typu palce, twarze, oczy, biżuteria i okulary. Generują ciekawe grafiki, które można stosować biznesowo, np. modele AI stworzą np. zdjęcie rodziny buszującej w zbożu.

Mamy modele, które potrafią odpowiadać na pytania, generować długie teksty na zadany temat, obrazy, muzykę. Jak to postrzegasz w kontekście zmieniającego się świata? Czy to oznacza koniec wielu zawodów? I jakich konkretnie? Bo biznes związany z prowadzeniem bazy zdjęć stockowych traci sens, ponieważ łatwiej wygenerować bardzo specyficzne i dziwne zdjęcia dzięki właściwościom AI, niż zbierać ich tysiące od fotografów, licząc na to, że trafimy w czyjeś potrzeby teraz lub w przyszłości. Jak ty się na to zapatrujesz, biorąc pod uwagę innowacje w poszczególnych modelach?

W przypadku zdjęć i grafik jest to bardziej realistyczne, bo wydaje mi się, że jest większe miejsce na kontent, który jest w tle, na etykiecie wyrobu. To nie jest głównym tematem naszych interakcji z taką rzeczą, więc tamto może się przydawać. Wówczas zdolności człowieka do zrobienia zdjęcia modelowi w określonej pozie przestają być szczególnie wyjątkowe. Niedawno w Hollywood strajkowali scenarzyści. Obawiają się utraty pracy. Są bardziej stowarzyszeni, nie ma raczej żadnej gildii grafików, a w Hollywood jest gildia scenarzystów. Obawiali się utraty pracy. Ten obszar wydaje mi się trochę mniej niepokojący, bo nie ma dla mnie nic interesującego w oglądaniu filmów, które by wymyśliło AI. Zrobienie tego przez człowieka sprawia, że staje się to ciekawe.

Powiedziałeś o asystentach osobistych w kontekście biznesu, sporo dzieje się w kontekście programowania. Microsoft też ma swoje rozwiązania wspomagające programistów. A jeśli chodzi o takie stricte biznesowe zastosowania w ramach organizacji? Mam firmę lub biznes, chcę zautomatyzować pewne procesy, obsługę klienta lub przetwarzanie dokumentów, jakie są tu możliwości i co zrobić, żeby to faktycznie mogło zadziałać?

Obsługa klienta stanowi duże pole zastosowań takich rzeczy. Dotąd stosowanie chatbotów w tej dziedzinie opierało się na tym, że ktoś chciał uzyskać efekt wow, pochwalić, że ma w swojej firmie sztuczną inteligencję, która rozumie jakieś rzeczy i opowiada żarty. Teraz wszyscy się wyeksponowali na ChatGPT. Wydaje mi się, że gra to dużo mniejszą rolę w robieniu efektu wow. I można o tym faktycznie myśleć jako o takim czysto pragmatycznym pomocniku klienta, który dobrze by było, gdyby potrafił zrobić wszystko to, co ludzki asystent klienta. Czyli jeżeli klient dzwoni, ma jakieś wątpliwości do regulaminu, to chatbot, korzystając z systemów, które przechowują reprezentację regulaminu, 300 albo 3 tys. stron takich regulaminów, na podstawie tych reprezentacji, znalazł relewantne dokumenty, przeczytał je i odpowiedział na potrzebę klienta zgodnie z nimi. To byłaby faktyczna potrzeba biznesowa, którą coś takiego mogłoby realizować. Być może lepiej lub gorzej, to pewnie kwestia konkretnego case’u i tego, jak dużo danych i pracy to wymaga. I jakieś inne zadania związane z obsługą klientów, jak np. doradztwo w kwestii produktów. Jeżeli ludzie potrzebują takiego doradztwa i chatbot będzie je w stanie zapewnić na podobnym poziomie co człowiek, to pewnie chatbot zrobi to sporo taniej. To jest realna potrzeba biznesowa, którą w tym zakresie można zautomatyzować.

Takimi rozwiązaniami zajmujesz się komercyjnie. Jak to w praktyce wygląda? Czy jeśli korzystamy faktycznie z ChatGPT, to musimy uwzględnić koszt korzystania z API? Czy uwzględnić to później w koszcie wdrożenia i mieć dostęp do takich danych, oczywiście w postaci elektronicznej, z którymi możemy się zintegrować, tak żeby ten ChatGPT miał do nich dostęp i interpretował je w taki sposób, jak powiedziałeś? Czy to są kluczowe elementy, które w takim wdrożeniu muszą wystąpić? Czy jeszcze o czymś musimy pamiętać, np. o dodatkowych danych treningowych? Co jest potrzebne takiej typowej średniej firmie, żeby wdrożyć takie rozwiązanie związane z obsługą klienta w praktyce. I jakich elementach trzeba tu pamiętać, aby to zrealizować?

Jeżeli chcielibyśmy dotrenować taki model, to wydaje mi się, że to rozwiązanie jest mało sensowne, bo trzeba wówczas mieć dużo danych. To by się wiązało z dużo większymi kosztami. Nie wiem, czy są problemy, których naprawdę nie dałoby się rozwiązać przez odpowiednią konstrukcję promptu i odpowiednią integrację z innymi systemami. Te dwie zatem czynności, czyli inżynieria promptu, testowanie, weryfikacja, że ten model nie gada jakichś potencjalnie niebezpiecznych głupot, integracja z tymi systemami, napisanie kodu, który integruje to z jakimś API i przetwarza te dane tak, żeby na ich podstawie skutecznie generować prompty, skutecznie planować rozwiązanie tych problemów, żeby skutecznie reprezentować wszystkie te przedmioty, z którymi ten chatbot powinien wchodzić w interakcję. Na przykład jeżeli mamy sklep rowerowy, to zastanowić się, czy wykorzystać istniejącą taksonomię tych produktów, czy jakoś inaczej je pokategoryzować. Jak to najlepiej zrobić, żeby to miało sens. Bo faktycznie jest obecnie ograniczenie pamięci tego chatbota, czyli ile jesteśmy w stanie zmieścić informacji do promptu. Te ograniczenie w klasycznym ChatGPT wynosi 4 tys. tokenów, co można liczyć jako dwie strony gęsto zapisanego polskim językiem tekstu. Dla nowszych modeli to ok. 32 tys. tokenów. Często jak pracujemy z jakimiś danymi, to nawet coś takiego to za mało. Bo np. w sklepie mamy nie 10 produktów, tylko 10 tys., każdy z nich ma opis, nazwę, różne atrybuty i stąd to szybko rośnie. I żeby ten chatbot miał dostęp do wszystkich informacji, trzeba to jakoś posegregować, pokategoryzować i zastanowić, jak to najlepiej podzielić, żeby to dobrze przedstawić. Bo w tych modelach płaci się od tysiąca tokenów. Im więcej słów wysyłamy do tych modeli, tym wyższy jest rachunek. W procesie produkcji takiego chatbota trzeba to zoptymalizować.

Jaki jest rząd wielkości tych opłat? Czy taką małą bądź średnią firmę na to stać? Czy koszty te są tak wygórowane, że trzeba o tym zapomnieć?

To zależy od modelu, ale ChatGPT i taka najbardziej popularna postać, która osiąga bardzo sensowne wyniki, to koszty rzędu 1/10 czy 1/100 centa za 1000 tokenów. Kiedyś próbowałem przeliczyć to w realistycznym scenariuszu: ktoś ma sto rozmów po cztery wiadomości, każda z nich ma po ileś słów. Starałem się zaplanować jakiś w miarę realistyczny scenariusz. Wychodziło kilka tysięcy złotych rocznie. To nie jest coś, z czym mała firma sobie nie poradzi. Porównując to do płac dla pracowników, to raczej niższy koszt, jeżeli faktycznie bylibyśmy w stanie zautomatyzować część tych procesów.

Czyli przechodzimy stopniowo z tych zabawkowych zastosowań do realnych scenariuszy, czy to bezpośrednio indywidualnie dla każdego z nas, czy firmowo w organizacji.

Dzięki za rozmowę. Pewnie to dopiero początek dyskusji o tych modelach, bo to są rzeczy z ostatnich miesięcy. Jeszcze wiele przed nami, więc mam nadzieję, że do tej rozmowy kiedyś wrócimy. Dzięki wielkie i do usłyszenia!

Dzięki!

Dzięki za wysłuchanie tego odcinka. Więcej odcinków podcastu Stacja IT znajdziesz na naszej stronie internetowej stacja.it/podcast. Możesz nas słuchać także w swojej ulubionej aplikacji na telefon komórkowy, skorzystać z nagrań wideo na YouTubie lub skorzystać z takich aplikacji jak Spotify czy iTunes. Do usłyszenia w następnym odcinku.

Komentarze