Sformułowanie "prompt engineering", choć brzmi mocno technicznie i nie mówi wiele przeciętnemu użytkownikowi Internetu, jest najlepszym przykładem demokratyzacji w świecie IT, czyli budowania dostępności skomplikowanych narzędzi technologicznych dla każdego zainteresowanego.
Demokratyzacja sztucznej inteligencji. AI staje się dostępna dla każdego
Prawdziwą rewolucją, która doprowadziła do wejścia sztucznej inteligencji "pod strzechy", stały się LLM-y (ang. Large Language Models, tłum. Duże Modele Językowe), których najgłośniejszym przedstawicielem jest GPT - początkowo w wersji 3, a od niedawna już w wersji 4, stworzony przez firmę OpenAI.
Wszystko to za sprawą narzędzia, jakim jest ChatGPT. Choć sama technologia nie jest nowa, a sam model, będąc bardzo efektywnym, nie jest jednak na świecie jedynym "w swojej kategorii wagowej", to przełomem stała się jego dostępność. ChatGPT (w wersji 3,5) pozostaje na tę chwilę narzędziem darmowym. Fakt, iż jest on obsługiwany przez dobrze znany większości Internautów interfejs czatu sprawił, że miliony ludzi na całym świecie ruszyły, by "porozmawiać z robotem" - w mniej lub bardziej zorganizowany sposób.
Zaczynając od błahych pytań z zakresu wiedzy historycznej i ogólnej, poprzez rymowanki i opowiadania, aż po generowanie kodu źródłowego i wielowarstwowe, skomplikowane zapytania dotyczące wąskich specjalizacji - każdy może przekonać się na własnej skórze, jakie możliwości ma AI.
Stąd też masowo pytamy, wymieniamy poglądy, dociekamy, prosimy o uszczegółowienie, a nawet zaczynamy kłócić się lub nawiązywać emocjonalną wręcz więź z maszyną (głośno było o przypadku inżyniera Google’a, który, pracując nad rozwojem firmowego modelu LaMDA stwierdził, że stał się on świadomy i rozpoczął walkę o jego prawa). Jak jednak właściwie określić wszystkie te aktywności?
Prompt engineering, czyli inżynieria podpowiedzi
Wraz ze wzrostem znaczenia użycia modeli językowych, głośnym zwrotem stał się prompt engineering. Z uwagi na to, że LLM’y coraz skuteczniej odzwierciedlają możliwości ludzkiego mózgu w zakresie rozumienia i produkowania języka naturalnego, biznes dostrzega duży potencjał w ich komercyjnym wykorzystaniu. Dużą siłą modeli językowych jest fakt, że komunikacja z nimi nie wymaga żadnej wiedzy technicznej i programistycznej, a ich parametryzacja odbywa się z użyciem języka naturalnego. Sprawia to, iż specjalistą prompt engineeringu może dziś zostać każdy. I ponownie, choć samo pojęcie nie jest nowe (jego korzenie sięgają lat 70. XX wieku), to w kontekście przetwarzania języka naturalnego (NLP) zyskało ono poszerzone znaczenie. Jak więc najlepiej wyjaśnić, czym jest prompt engineering? O to zapytaliśmy "samego zainteresowanego" - czyli ChatGPT (tu w wersji 3.5). Poniżej jego odpowiedź:
Prompt engineering to podejście do projektowania i optymalizacji wejściowych "promptów" dla dużych modeli językowych (Large Language Models, LLMs), takich jak GPT-3, RoBERTa czy BERT.
Prompt to krótkie zdanie lub parę zdań, które są podawane jako początkowa informacja dla modelu, aby wygenerować odpowiedź lub kontynuację tekstu.
Prompt engineering polega na eksperymentowaniu z różnymi promptami, aby uzyskać jak najlepsze wyniki z modelu, w zależności od konkretnej aplikacji lub zadania, które chcemy rozwiązać. W szczególności, prompt engineering może obejmować dostosowywanie długości promptów, ich rodzajów, kolejności i specyfiki, takiej jak słownictwo i styl.
Rozbierzmy to na czynniki pierwsze. Prompt engineering to pewien zestaw zasad, którymi należy kierować się, tworząc wskazówki dotyczące zadania do wykonania przez model – np. ChatGPT. Sam natomiast prompt to tekst, który użytkownik wprowadza w języku naturalnym, by uzyskać odpowiedź od modelu językowego. Proces ten w sposób przejrzysty obrazuje poniższy diagram, zapożyczony z dokumentacji modelu Cohere:
Czy zatem "rozmowa" z popularnym czatem GPT jest prompt engineeringiem? Tu zdania są podzielone. Wchodząc w szczegóły, prompt engineering to wieloetapowy proces tworzenia specjalnych zdań i sekwencji, które służą do zadawania pytań lub wprowadzania informacji do systemów opartych na sztucznej inteligencji. ChatGPT natomiast ma swoje ograniczenia ilościowe i jakościowe. Nie można w nim chociażby sterować ustawieniami modelu, co możliwe jest w płatnym dostępie do GPT (świeża, znacznie bardziej zaawansowana, czwarta wersja modelu także wymaga subskrypcji). Nie zmienia to jednak faktu, iż są to rozważania bardziej teoretyczne, a nazewnictwo procesu nie wpływa bezpośrednio na jego użytkowość.
Ciekawszym zagadnieniem jest próba zmierzenia się z kwestią, jak przetłumaczyć prompt engineering na polski. Choć "Polacy nie gęsi, iż swój język mają", to w rodzimej literaturze trudno natrafić na skuteczne tłumaczenie zwrotu. Wynika to z faktu, że branża IT, ze względu na międzynarodowe środowisko pracy oraz fakt, że głównym językiem jej rozwoju jest angielski, od wielu lat nie czuje potrzeby spolszczania wielu branżowych określeń (patrz data science, data scientist, AI bias itp.). Nawet ChatGPT, zapytany o powyższe, odpowiada:
Jako że termin "prompt engineering" nie ma oficjalnie ustalonego polskiego odpowiednika, to można go przetłumaczyć jako "inżynierię promptów" lub "tworzenie promptów."
Jak można zaobserwować, o ile niebudzące wątpliwości słowo "inżynieria" zostało przełożone przez model, to jak oddać dobrze definicję prompta? W języku angielskim podstawowe znacznie czasownika to prompt oznacza "skłonienie kogoś do powiedzenia lub zrobienia czegoś" (źródło: Cambrigde Dictionary). Rzeczownik od tego słowa oznacza zatem sugestię, podpowiedź lub polecenie, które zachęca do podjęcia jakiejś akcji lub odpowiedzi. Stąd też wydaje się, iż dobrze oddającym sens pojęcia określeniem jest inżynieria podpowiedzi. Podpowiadamy modelowi, nakierowując go i uszczegóławiając nasze zapytanie, aż do uzyskania satysfakcjonującej w formie odpowiedzi, która często jest wypadkową wielu wcześniejszych podpowiedzi.
Dobra podpowiedź, czyli jaka?
Jak zatem w sposób świadomy i poprawny zostać inżynierem podpowiedzi? Choć zdolność LLM-ów do predykcji intencji użytkownika jest stale poprawiana, to relatywnie często zdarza się, że nieoptymalnie sformułowany prompt prowadzi do uzyskania niezadowalających lub wręcz fałszywych odpowiedzi. Niebezpiecznym w korzystaniu z modeli językowych jest założenie, że sztuczna inteligencja jest nieomylna. Przyczyny tak zwanych "halucynacji AI", czyli sytuacji, kiedy model generuje nierealistyczne, nielogiczne lub absurdalne wręcz wyniki, mogą być różne, a jedną z nich są niewłaściwie sformułowane podpowiedzi (prompty) użytkownika.
Jakimi więc zasadami kierować się, by skutecznie uruchomić proces generowania odpowiedzi? Oto kilka skutecznych propozycji (na przykładzie ChatGPT w wersji 3.5):
1. Podawanie przykładów
Podstawową praktyką inżynierii podpowiedzi jest podawanie przykładów w opisie zapytania. Pomaga to modelowi nie tylko na lepsze zrozumienie zadania, ale i dopasowanie formatu odpowiedzi do oczekiwanego przez użytkownika:
Jak widać, choć model poradził sobie z odpowiedzią w obu przypadkach, ale druga odpowiedź została zwrócona od razu w formacie oczekiwanym przez użytkownika. Ma to wymierne znaczenie w bardziej skomplikowanych niż powyższy przykładach.
2. Odgrywanie ról
Kolejną z wartościowych technik jest zdefiniowanie roli, jaką ma przyjąć model:
Jak widać, określenie roli, w którą model ma się wcielić, pomaga mu wyjść naprzeciw konkretnej potrzebie użytkownika.
3. Dodawanie osobowości i przymiotników
Istotną kwestią jest dokładne określenie cech oczekiwanej od modelu odpowiedzi. Podpowiedź: "Napisz ciekawy artykuł na temat sztucznej inteligencji" oczywiście zwróci wynik, jednak będzie on mocno generyczny i mało konkretny. Zamiast tego warto po raz wtóry zdefiniować rolę, ale też określić charakter oczekiwanego tekstu poprzez przymiotniki: "Napisz łatwy w odbiorze artykuł na temat sztucznej inteligencji i jej wpływu na świat biznesu. Pisz w stylu właściwym dla specjalisty ds. sztucznej inteligencji z kilkunastoletnim doświadczeniem zawodowym. Poprzyj tezy zawarte w artykule konkretnymi danymi. Tekst powinien mieć maksymalnie 3000 znaków". Przykład ten zawiera personę, która pomoże określić zaawansowanie tekstu, a także przymiotniki ("łatwy", "konkretnymi"), co pozwala modelowi dobrać właściwy styl.
Powyższe techniki stanowią podstawy świadomej interakcji z modelami językowymi. Warto je przyswoić, by lepiej korzystać z ich możliwości i zacząć czerpać z nich realne korzyści zawodowe.
Inżynier podpowiedzi - zawód przyszłości?
"Boom" na sztuczną inteligencję sprawia, że nowe zastosowania AI odkrywane są w każdej dziedzinie biznesu, od przemysłu po służbę zdrowia. Wraz z rozwojem tej technologii rośnie zapotrzebowanie na specjalistów zajmujących się jej obsługą. Co istotne, jest to olbrzymia szansa nie tylko dla programistów i osób zajmujących się data science, ale też dla rzeszy pracowników, którzy będą zajmowali się właśnie obsługą modeli z użyciem języka naturalnego. Praca prompt engineera, czy może lepiej inżyniera podpowiedzi, jest bardzo zróżnicowana i wymaga wiedzy z różnych dziedzin, często ograniczonych do konkretnych branż.
Warto zauważyć też, że już teraz popularne są modele, takie jak DALL-E czy Midjoruney, które na podstawie podpowiedzi generują grafikę, a w niedalekiej perspektywie także wideo. Stąd też znajomość specyfiki konkretnego procesu będzie predysponować specjalistów, którzy obecnie mogą nawet nie mieć nic wspólnego ze światem nowych technologii, do zwrócenia się w kierunku inżynierii podpowiedzi.
Jak zacząć? Jak najszybciej! Wiele przedsiębiorstw, również na rynku polskim, już teraz rozpoznaje lub wdraża u siebie inteligentne systemy, do których obsługi potrzeba będzie właściwie rozumiejących specyfikę danej branży specjalistów. Dodając do tego fakt, że narzędzia takie jak ChatGPT dostępne są za darmo, a baza wiedzy w Internecie szybko rośnie, nie ma co zwlekać - czas testować możliwości AI w kontekście swojej obecnej pracy czy nauki. Będąc uzbrojonym w wiedzę wynikającą z tego artykułu, warto zadać sobie pytanie: "czy mogę już teraz zacząć korzystać z możliwości w celu realizacji moich codziennych obowiązków"? Jeśli odpowiedź jest twierdząca, jesteś na dobrej drodze, by zacząć swój rozwój w kierunku prompt engineeringu, co może już niedługo przynieść wymierne korzyści w szybko zmieniającym się świecie biznesu. Powodzenia!
Autorzy: Wojciech Pszonka, Senior Business Analyst i Team Leader w Deviniti, Łukasz Czerwiński, Head of Applications Development w Deviniti.
Artykuł powstał w ramach współpracy merytorycznej Akademii Biznesu i Deviniti.