Jak dogadać się z robotem? Prompt engineering, czyli inżynieria podpowiedzi

Od pewnego już czasu pojęcie hiperautomatyzacji jest gorącym tematem w obszarze poprawy produktywności w biznesie, jednak rok 2022 przyniósł kolejną w tym zakresie rewolucję, wykraczającą daleko poza ramy świata nowych technologii. 

Sztuczna Inteligencja dostępna dla wszystkich

Rewolucyjnym okazało się pojawienie LLM-ów (ang. Large Language Models), czyli dużych modeli językowych, których najbardziej rozpoznawalnym przedstawicielem stał się GPT-3 (Generative Pretrained Transformer 3), opublikowany przez firmę OpenAI. Istniejący od 2020 roku GPT-3 jest jednym z najbardziej efektywnych modeli uczenia maszynowego na świecie, choć nie jedynym —  warto wspomnieć, chociażby o takich modelach jak Cohere, BLOOM czy Megatron-LM.

ChatGPT

Wszystko za sprawą towarzyszącemu GPT-3 narzędziu, jakim jest ChatGPT, który został udostępniony publicznie 30 listopada 2022 roku. Choć sama technologia, na której jest on oparty, nie jest nowa, to przełomowym stało się to, że jest ona darmowa i dostępna dla wszystkich. Każdy użytkownik Internetu, bez względu na jego zaawansowanie techniczne czy zasobność portfela, może we własnym zakresie przekonać się, jakie możliwości daje interakcja ze sztuczną inteligencją. 

Dlatego też miliony ludzi na całym świecie masowo zaczęły szturmować czat, korzystając z niego w bardziej lub mniej zorganizowany sposób. Począwszy od błahych pytań o pogodę, poprzez dowcipy i wiersze, aż do wielowarstwowych zapytań dotyczących najbardziej skomplikowanych, wysokospecjalistycznych obszarów.  Użytkownicy zaczęli „rozmawiać” ze sztuczną inteligencją. Zadają pytania, odpowiadają, dociekają, proszą o uszczegółowienie, a nawet wchodzą w emocjonalne tony lub kłócą się w czasie dyskusji z robotem

Prompt engineering

Wraz z rozwojem coraz większych i bardziej złożonych modeli językowych, które zaczynają odzwierciedlać zdolności ludzkiego mózgu do rozumienia i produkowania języka naturalnego, zaczęto mówić o pojęciu prompt engineeringu. I choć ponownie, 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 szerokie znaczenie. Jak więc zdefiniować prompt engineering? Najlepiej oddać głos samemu zainteresowanemu (w interakcjach z AI czasem trudno uciec od antropomorfizacji tak zaawansowanego narzędzia), czyli GPT-3: 

Prompt engineering to podejście do projektowania i optymalizacji wejściowych promptów dla dużych modeli językowych (Large Language Models, LLM-s), 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. 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.

chat.openai.com

Tak więc prompt engineering to zestaw zasad, którymi należy się kierować, tworząc wskazówki dotyczące zadania do wykonania przez model, np. generowanie tekstów, tłumaczenie, korekta tekstu oraz spodziewanego formatu wyniku. Natomiast sam prompt to fragment tekstu, który użytkownik wprowadza w języku naturalnym, by uzyskać odpowiedź od modelu językowego. Proces ten dobrze obrazuje poniższy diagram, zapożyczony z dokumentacji modelu Cohere:

Zatem jak wygląda dobry prompt, czyli taki, który skutecznie uruchomi proces generowania odpowiedzi przez sztuczną inteligencję? Oto kilka przykładów zaczerpniętych z chat.openai.com:

  • Temat: „Historia Polski”
    • Prompt: „Podaj kluczowe wydarzenia z historii Polski, które wpłynęły na rozwój kultury i polityki w kraju.”
  • Temat: „Programowanie”
    • Prompt: „Utwórz funkcję w języku Python, która oblicza sumę kwadratów liczb całkowitych od 1 do n.”
  • Temat: „Korekta tekstu:
    • „Sprawdź poprawność pisowni i gramatyki w linii 5, 10 i 15. Zmień słowo ‘efektywny’ na ‘skuteczny’ w linii 7. Usuń zdanie w linii 12, ponieważ jest niezwiązane z tematem artykułu”.

Chat GPT a prompt engineering

Czy więc „rozmowa” z czatem GPT jest prompt engineeringiem? Tu zdania są podzielone. Z definicji 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 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-3 i produktów konkurencji. Jednakże, w interakcji z czatem użytkownik wykorzystać może prompty, aby lepiej sformułować pytanie lub uzyskać bardziej precyzyjną odpowiedź. Nie zmienia to jednak faktu, iż są to rozważania czysto akademickie, a nazewnictwo procesu nie wpływa bezpośrednio na jego użytkowość, co nie oznacza jednak, że nie jest istotne. 

Polska definicja

W przytoczonej powyżej definicji prompt engineeringu, stworzonej na podstawie prompta o treści „wytłumacz, czym jest prompt engineering w kontekście Large Language Models” model, choć podał ją w bardzo jasny dla odbiorcy sposób, nie przetłumaczył na polski samego słowa prompt. Podobnie zresztą jak (celowo) w wielu wcześniejszych wzmiankach autor tego artykułu. Nie jest to zaskoczeniem, biorąc pod uwagę, iż branża IT ze względu na międzynarodowe środowisko pracy oraz fakt, iż przewodnim językiem jej rozwoju jest język angielski, od wielu lat nie czuje potrzeby spolszczania wielu branżowych określeń (patrz data science, data scientist, AI bias itp.). Wiele takich prób kończyło się stworzeniem językowego koszmarka, który i tak nigdy nie zaistnieje w języku obiegowym.

Wystarczy pomyśleć o towarzyszącym nam na co dzień zwrotach, takich jak: daily, pull request, code review, backlog, czy poczciwy feedback. Jednak w dyskusjach z zespołem Deviniti nabraliśmy poczucia, że przypadek prompt engineeringu jest inny. Dlaczego? Głównie ze względu na rosnące znaczenie używania sztucznej inteligencji nie tylko w codziennej pracy, ale i życiu. Choć naturalne jest, iż użycie inteligentnych narzędzi, takich jak właśnie ChatGPT szybko staje się standardem w IT, to kwestią lat, a może i miesięcy jest rozpowszechnienie ich również w innych gałęziach biznesu. Na rynku coraz częściej znaleźć można oferty pracy na stanowisku Prompt Engineer, czyli osoby odpowiedzialnej za opisywanie zadań do wykonania przez sztuczną inteligencję z użyciem języka naturalnego. Trend ten otwiera nowe możliwości na wielu płaszczyznach, a sama definicja aktywności związanej z odpytywaniem modeli językowych szybko wejdzie słownika użytkowego. 

Jak dotąd nie udało się nam natrafić na żadną próbę udanego przekładu frazy prompt engineering na polski. Skoro jednak pracujemy jako programiści, menedżerowie projektu, właściciele produktu i analitycy biznesowi — jak wyjaśnimy babci (lub innym osobom, które nie są na bieżąco ze światem nowych technologii), kim – być może – będziemy już niedługo? ”Zajmuję się prompt engineeringiem” — czyli, po polsku, czym? 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.”

chat.openai.com

Inżynieria podpowiedzi

Z pozycji puryzmu językowego, taka połowiczna próba wybrnięcia z sytuacji, choć całkiem zgrabna, nie jest zadowalająca. Dlatego też, wraz z zespołem zdecydowaliśmy uzupełnić powyższe tłumaczenie. O ile słowo inżynieria nie budzi większych kontrowersji, 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 więc sugestię, podpowiedź lub polecenie, które zachęca do podjęcia jakiejś akcji lub odpowiedzi. Po burzy mózgów, by ująć najlepiej naturę interakcji człowieka ze sztuczną inteligencją, postanowiliśmy, że najlepiej pasującym do niej określeniem jest inżynieria podpowiedzi. Nakierowujemy model, uszczegóławiając nasze zapytanie, aż do uzyskania satysfakcjonującej w formie odpowiedzi. Wprowadzając niniejsze pojęcie do komunikacji, nie mamy oczywiście na celu wyrugowania prompt engineeringu z codziennego użycia.

Ze względu na postępującą globalizację, anglicyzmy są i będą nieodłączną częścią nie tylko języka branżowego, ale i języka użytkowego ogółem. Trudnym do podważenia jest jednak, że tak ważna w perspektywie najbliższych lat dziedzina, jaką jest inżynieria podpowiedzi zasługuje na opisową i właściwą sobie formę w języku polskim. Klarowną dla wszystkich, nie ważne, czy rozumieją oni technologię lub znają języki obce. Pewnym jest bowiem, że inteligentna rewolucja dotyczy każdego z nas — i wszyscy, bardziej lub mniej świadomie, jesteśmy jej częścią.

Kiedy więc, na obiedzie rodzinnym babcia zapyta, „czym się zajmujesz?”, określenie inżynieria podpowiedzi na pewno pomoże jej to zrozumieć. A w celu bardziej obrazowego przedstawienia tematu, zawsze można dopytać czatbota GPT, jak wytłumaczyć istotę prompt engineeringu, czy raczej inżynierii podpowiedzi, w sposób bardziej przystępny dla babci — a jeśli tylko dostanie właściwą podpowiedź, na pewno podoła on zadaniu.

Wojciech Pszonka

Wojciech Pszonka to Senior Business Analyst i Team Leader w firmie Deviniti, o szerokim doświadczeniu w tworzeniu zarówno dużych korporacyjnych systemów, jak i aplikacji dla start-upów. Niezależnie od skali projektu, zawsze podkreśla znaczenie partnerskiej współpracy z klientem. Pasjonat Sztucznej Inteligencji i entuzjasta metodologii zwinnych. Prywatnie jest zagorzałym kibicem Ekstraklasy, a entuzjazm i zaangażowanie z trybun przenosi także na sferę zawodową.

Więcej od tego autora