O co chodzi z tym AI?
AI weszło na światowy rynek IT z mocnym przytupem pod koniec listopada 2022 roku, gdy zadebiutował ChatGPT. Chociaż wcześniej dostępne były narzędzia takie jak GPT-3, Midjourney oraz Stable Diffusion, to właśnie premiera ChatGPT zainicjowała prawdziwą rewolucję, która przetoczyła się przez branżę, nie pozostawiając nikogo obojętnym. W rozmowach z moimi kolegami po fachu na temat wykorzystania AI w ich codziennej pracy, otrzymuję różne odpowiedzi. Jednak wszyscy, w mniejszym czy większym stopniu, są świadomi tego, co się dzieje i jakie mogą być potencjalne implikacje, a przede wszystkim, zastanawiają się nad przyszłością swojej profesji.
Gdybym był twórcą treści (z ang. content writer) lub ilustratorem, już w tej chwili myślałbym nad zmianą kierunku swojej kariery. A przynajmniej zająłbym się poszukiwaniem niszy, zdobywaniem specjalistycznej wiedzy lub pogłębianiem swojego doświadczenia w znanej mi już dziedzinie. Moim zdaniem twórcy treści, którzy piszą na szeroki zakres tematów, często poruszając obszary, które nie są im dobrze znane, stoją na przegranej pozycji w rywalizacji z rozbudowanymi modelami językowymi. Ilustratorzy, którzy nie obsługują klientów o bardzo specyficznych potrzebach, lub nie specjalizują się w tworzeniu grafiki wektorowej, również mogą odczuwać zagrożenie. Aktualnie dostępne narzędzia, takie jak Midjourney czy Stable Diffusion, generują grafikę rastrową. Chociaż na razie nie dysponujemy narzędziem do generowania grafiki wektorowej, przewiduję, że takie rozwiązanie pojawi się w niedalekiej przyszłości. Programiści, mimo że są grupą najbardziej dotkniętą tą zmianą, mogą spać spokojnie - pod warunkiem, że będą wykorzystywać wspomniane narzędzia. Ci, którzy nie nadążą za zmianami, mogą napotkać poważne problemy w swojej karierze.
Krótko o tym czym jest ChatGPT, GPT oraz LLM
Wpis ten poświęcam wyłącznie tematowi modeli językowych. Generowanie grafiki przedstawię w kolejnym wpisie.
Na początek trochę nomenklatury:
- ChatGPT, będący dziełem OpenAI, to chatbot zaprojektowany do generowania odpowiedzi na podstawie informacji wprowadzonych przez użytkownika. ChatGPT wykorzystuje w tym celu model GPT.
- GPT, czyli Generative Pre-trained Transformer, to duży model językowy, przetrenowany na ogromnych zbiorach danych z internetu. Główne zadania tego modelu obejmują generowanie tekstu na podstawie podanego kontekstu lub uzupełnianie istniejącego tekstu. Pionierski model tego typu został opracowany i zaprezentowany przez OpenAI w 2018 roku. GPT reprezentuje kategorię tzw. Large Language Models (LLM), co oznacza duże modele językowe.
Osobiście nie jestem fanem nazywania tej dziedziny informatyki jak i omawianych modeli mianem "Sztucznej inteligencji". Uważam, że może to wprowadzać w błąd osoby niezaznajomione z tematem lub niezainteresowane nim w głębszym stopniu. Dlaczego? Ponieważ LLM nie ma wiele wspólnego z inteligencją (może poza siecią neuronową). Inteligencja to coś więcej niż proces generowania ciągów słów, czyli tekstu. Model językowy nie ma bladego pojęcia o czym mówi (pisze), a wygenerowany przez niego tekst jest przypadkiem. Brakuje mu świadomości, rozumu, zdolności do myślenia i odczuwania. Nie posiada pamięci, a także zdolności do dedukcji i wnioskowania. A jednak, potrafi się posługiwać językiem lepiej niż większość z nas.
Jak do tego doszło?
Uważam, że posługiwanie się językiem to zaledwie jedna z cech, które charakteryzują inteligentny byt. Potencjalnie LLMy mogą stanowić solidne podstawy do stworzenia prawdziwej sztucznej inteligencji w przyszłości. Dlaczego więc to co już mamy tworzy tak silne złudzenie, że rozmawiamy z jakąś inteligencją? Aby zrozumieć, jak działa GPT, kluczowe jest pojęcie, że mamy do czynienia z generatorem tekstu, który w przypadku wersji 3.5 (GPT-3.5) został przetrenowany na 500 miliardach tokenów (token to najmniejsza jednostka jaką generuje GPT, czasami może to być jedno słowo, czasami sylaba, czasami pół słowa itd.), co możemy w przybliżeniu określić jako kilkaset miliardów słów. Najlepsza wersja GPT-3.5 posiada 175 miliardów parametrów i 96 warstw w sieci neuronowej. Nie zamierzam zagłębiać się w techniczne znaczenie tych terminów, ale wystarczy powiedzieć, że kilkaset miliardów słów to ogromna liczba. Jeśli chcesz lepiej zrozumieć, jak działa ten model, zobacz ten film. Uproszczając: GPT generuje kolejny token na podstawie prawdopodobieństwa jego wystąpienia po poprzednich tokenach. Inaczej mówiąc, zgaduje, które "literki" będą następne, bazując na tych, które pojawiły się wcześniej. Widzisz już, że nie ma tutaj żadnej inteligencji? To tylko (albo aż) matematyka. Ale to co ona może, jest... niesamowite.
Prompt designer - zawód, który zniknie tak szybko jak się pojawił
Pisanie dobrych promptów jest umiejętnością, która pozwoli nam wynieść współpracę z modelami językowymi na wyższy poziom. W momencie gdy debiutował ChatGPT, wielu z moich znajomych zarejestrowało się, wpisało kilka promptów i zrezygnowało, twierdząc, że "słaba ta inteligencja" (wypowiedź ocenzurowana). Dlaczego? Wielu z nich wpisało coś w stylu:
napisz artykuł o podróży do Włoch
Oczywiście, odpowiedź chatu była artykułem o podróży do Włoch, który, mimo że estetycznie napisany, nie wywarł na nich znaczącego wrażenia. Niezadowoleni z odpowiedzi, stwierdzili, że ChatGPT to "lipa". Moje pytanie brzmi: dlaczego oczekiwali lepszych rezultatów? Czy gdybyśmy zwrócili się do przypadkowej osoby na ulicy z prośbą "Napisz artykuł o podróży do Włoch", otrzymalibyśmy lepszy wynik? Z pełnym przekonaniem mogę stwierdzić, że statystycznie rzecz biorąc, odpowiedź brzmi nie.
To co w takim razie powinni byli zrobić? Zasada jest prosta:
słaby prompt = słaba odpowiedź
Kiedy do naszej firmy dołącza nowy pracownik, czy pierwszym zadaniem, które mu powierzamy, jest zrób coś, czy może przechodzi on przez cały proces onboardingu? Opowiadamy mu o filozofii firmy, opisujemy projekty, prezentujemy dokumentację itp. Analogicznie, podchodząc do rozmowy z ChatGPT, powinniśmy traktować go jak nowego pracownika, który dopiero rozpoczyna pracę w naszej "firmie". Nadajmy mu kontekst, opowiedzmy mu o tym co chcemy uzyskać. A na samym końcu zadajmy nasze docelowe pytanie.
Dlaczego uważam więc, że zawód Prompt designera zniknie tak szybko jak się pojawił? Wyobraźmy sobie taką sytuację, w której piszemy do LLM takie polecenie:
napisz wiersz
Naturalnie, nie otrzymamy wyniku, który by nas satysfakcjonował. Zapewne, LLM wygeneruje coś innego, niż to, co mieliśmy na myśli, kiedy prosiliśmy o wiersz. No bo jakie możemy mieć wiersze? Biały, lub z rymami, dwunasto lub czternastozgłoskowy, krótki lub długi. Dodatkowo model nie wie, o czym ma być ten wiersz. Czyli dostarczyliśmy za mało danych. Co zrobiłby szanujący się Prompt designer? Napisałby coś w stylu:
Jesteś poetą. Napisz czternastozgłoskowy, rymowany wiersz o pracy kierowcy autobusu MPK w Krakowie. Kierowca ten jest zmęczony swoją pracą, jest zmęczony sposobem zarządzania przedsiębiorstwem przez zarząd MPK. Ciągłe spóźnienia, kary dla kierowców pozbawiają go entuzjazmu z wykonywanej pracy. Pasażerowie wylewają na niego swoje frustracje. Po powrocie do domu kierowca nie jest zadowolony z wykonanej pracy, myśli o zwolnieniu się i wyjechaniu w Bieszczady. Wiersz powinien mieć 14 wersów.
No i ChatGPT wygenerowałby piękny wiersz, prawdopodobnie znacznie bliżej tego, co mieliśmy na myśli, formułując ten prompt. Oczywiście, musimy pominąć fakt, że ChatGPT ma problem z rymowaniem i liczeniem, ale już niebawem to się zmieni. Dużo gorzej radzi sobie też z językiem polskim niż angielskim.
Gdzie więc jest haczyk? Dlaczego Prompt Designerzy mieliby być niepotrzebni? Dlatego, że... nikt jeszcze nie nauczył ChatGPT pytać - a przecież stare przysłowie mówi, "kto pyta, nie błądzi" :)
Wyobraźmy sobie więc alternatywny scenariusz naszej rozmowy z Chatem:
Ja: Napisz wiersz
ChatGPT: Jaki wiersz? Biały czy rymowany?
Ja: Rymowany
ChatGPT: Jak długi ma być ten wiersz?
Ja: Wiersz powinien mieć 14 wersów.
ChatGPT: O czym ma być ten wiersz?
Ja: Wiersz ma być o o pracy kierowcy autobusu MPK w Krakowie.
ChatGPT: Tylko tyle? Chciałbyś coś jeszcze uwzględnić?
Ja: Kierowca ten jest zmęczony swoją pracą, jest zmęczony sposobem zarządzania przedsiębiorstwem przez zarząd MPK.
ChatGPT: Dlaczego?
Ja: Ciągłe spóźnienia, kary dla kierowców pozbawiają go entuzjazmu z wykonywanej pracy. Pasażerowie wylewają na niego swoje frustracje. Po powrocie do domu kierowca nie jest zadowolony z wykonanej pracy, myśli o zwolnieniu się i wyjechaniu w Bieszczady. To wszystko. Wygeneruj wiesz.
ChatGPT: [odpowiedź]
Oczywiście, ChatGPT posiada już wiedzę na temat różnych rodzajów wierszy, więc potencjalnie mógłby zadać to pytanie. Ta wiedza jest już "zaszyta" w modelu, musi tylko nauczyć się formułować odpowiednie pytania. Co więcej, możliwe jest poproszenie ChatGPT, aby zachowywał się w ten sposób i owszem, jest to część inżynierii promptów. Niemniej jednak, już powstają narzędzia, które automatycznie dostarczą odpowiedni kontekst dla ChatGPT, eliminując potrzebę biegłości w formułowaniu zapytań (Notion AI, jasper.ai itp.). Przewiduję również, że nowsze wersje GPT, mogą mieć wbudowane możliwości refleksji i zadawania pytań.
Poniżej przykład, jak można wymusić takie zachowanie już teraz:
Ja: Jesteś ekspertem w pisaniu viralowych artykułów. Wymyśl chwytliwe tytuły oraz tekst artykułów na mojego bloga. Tytuły powinny być kreatywne oraz przyciągające uwagę. Nie używaj tytułów, które są zbyt ogólne - postaraj się wpsasować w trendy i stworzyć taką treść, aby artykuł dobrze pozycjonował się w Google. Jeśli masz jakieś pytania co do artykułów, zapytaj zanim wygenerujesz odpowiedź. Ok?
Wynik:
Przynajmniej jedno pytanie zadał :)
Pojawiają się również projekty takie jak Auto-GPT, babyAGI lub OpenAGI, które wykorzystują mechanizmy refleksji, odnoszące się do zdolności maszyny do samodzielnego "rozumienia" i "przemyślenia" swojego działania. Być może w przyszłości poświęcę im osobne wpisy - na razie nie miałem okazji osobiście przetestować tych technologii. Wysyp projektów z "GPT" w nazwie możesz obserwować na githubie.
Czy są alternatywy?
Obecnie OpenAI wydaje się dominować w obszarze AI. Mimo to, inne firmy nie próżnują i aktywnie pracowały także przed premierą ChatGPT. Niemniej jednak, inne technologie wydają się być znacznie mniej zaawansowane w porównaniu do tego, co udało się stworzyć OpenAI.
ChatGPT w modelu Open-Source?
Niedawno pojawił się HuggingChat, czyli ChatGPT oparty na otwarto-źródłowym modelu Llama, zmodyfikowanym na potrzeby HuggingChat oraz StarCoderBase (możemy wybrać jeden lub drugi). Więcej o modelu Llama przeczytasz tutaj lub tutaj.
Ten sam prompt co w GPT-4, a wynik znacznie inny:
Czat można wypróbować tutaj.
Na bazie Llamy zostały zbudowane dwa ciekawe modele: Alpaca i Vicuna. Vicunę można względnie łatwo uruchomić na swoim komputerze lub... smartfonie. To oznacza, że nie musimy płacić za usługi takie jak ChatGPT czy OpenAI API, a nawet posiadać połączenia z internetem. Niestety modele te nie mogą być używane komercyjnie.
ChatGPT Dla Developerów
Phind to wyszukiwarka dla programistów wspierana przez sztuczną inteligencję. Nie udało mi się znaleźć informacji na stronie Phind, z jakiego modelu korzysta wyszukiwarka, ale radzi sobie z odpowiedziami na zadawane pytania bardzo dobrze. Dużą zaletą w stosunku do ChatGPT (w wersji bez pluginów - obecnie dostęp do ChatGPT plugins mają tylko osoby posiadające subskrypcję ChatGPT Plus) jest fakt, że Phind korzysta z internetu podobnie jak Bing Chat.
Wyszukiwarkę znajdziesz pod tym adresem.
Bing Chat
No tak... Bing. Microsoft zręcznie wykorzystuje fakt bycia partnerem OpenAI i krótko po premierze ChatGPT zapowiedzieli oni integrację tej zaawansowanej technologii z ich wyszukiwarką. To było naprawdę innowacyjne rozwiązanie, biorąc pod uwagę, że ChatGPT nie miał wtedy dostępu do Internetu, a najstarsze dane na których został wytrenowany sięgały końca 2021 roku.
Dzięki temu Bing zyskał znaczną popularność jako wyszukiwarka w tym okresie. Aż żal, że Internet Explorer nie dożył, żeby to zobaczyć... :)
Obecnie osoby będące subskrybentami ChatGPT Plus mogą korzystać z funkcji wyszukiwania w internecie w ChatGPT. Dodatkowo, w ramach ChatGPT Plus istnieje możliwość używania pluginów, które jeszcze bardziej rozszerzają funkcjonalność tego narzędzia.
No dobra, a gdzie w tym wszystkim jest Google?
Niedługo po premierze ChatGPT, Google ogłosiło prace nad BERT (Bidirectional Encoder Representations from Transformers). Niedawno, podczas swojej konferencji I/O, przedstawili również PaLM 2 (Pathways Language Model 2). Wydarzenie to przyciągnęło sporo uwagi, dlatego polecam sprawdzić poniższy link do ciekawego skrótu z konferencji.
Dodatkowo, Google, podobnie jak Microsoft, ogłosiło prace nad zintegrowaniem LLM z ich narzędziami biurowymi i pocztą.
Co ciekawe, rzekomo jeden z pracowników Google uważa, że ten wyścig już przegrali, tak samo jak... OpenAI. Można o tym przeczytać tutaj. Biorąc pod uwagę poprzednie dokonania społeczności Open-Source oraz możliwe regulacje dotyczące danych, na podstawie których modele mogą się uczyć, mogę się zgodzić z tymi przewidywaniami.
A Apple?
Apple nie pisnęło jeszcze słówka w temacie LLM ;) Warto jednak śledzić ich działania, bo to przecież oni od pewnego czasu wyposażają swoje procesory w specjalistyczną jednostkę przetwarzania neuronowego o nazwie Apple Neural Engine.
Podsumowanie
No więc? Według mnie ewidentnie mamy do czynienia z rewolucją. Pojawia się też wiele głosów, że to moda, która przeminie. A co Ty o tym sądzisz? Zastanów się dobrze, od tego może zależeć twoja przyszłość... :)
W kolejnym wpisie omówię generatory grafiki oraz modele dyfuzyjne. Do zobaczenia!