Prompty, czyli jak rozmawiać z chatem
W poprzednim artykule pokazaliśmy Wam, do czego może służyć chat GPT. Tym razem nieco głębiej przeanalizujemy, jak możemy wejść w interakcję z chatem.
Z pojęciem Prompt spotkał się już chyba każdy, ale czym właściwie jest tytułowy bohater naszego artykułu?
Według Cambridge Dictionary prompt jest skłonieniem kogoś do zrobienia lub powiedzenia czegoś link do słownika.
Z pragmatycznego punktu widzenia promptem będziemy nazywać instrukcję/polecenie wprowadzane do okienka chatu chcąc wejść z nim w interakcję.
Przewidywalność odpowiedzi
Podstawową informacją, jaką musisz sobie przyswoić, jest fakt, że zwracane odpowiedzi są niedeterministyczne.
Oznacza to, że dla dokładnie takiego samego zapytania możemy za każdym razem uzyskać inną odpowiedź.
Jest to wada pod względem stabilności rozwiązań produkcyjnych, ale z drugiej strony stanowi również zaletę, jeśli zależy nam na kreatywności.
Spójrz na poniższy przykład:
I jeszcze raz zapytajmy o to samo:
Jak widzisz, pytanie zostało zadane dokładnie w ten sam sposób. Mimo że sens wypowiedzi został zachowany, odpowiedzi diametralnie różnią się od siebie.
Jako ciekawostkę warto dodać, że „wrażenie pisania” przez bota to nie żadna animacja, ale faktyczne generowanie odpowiedzi w czasie rzeczywistym
Wywiad z botem
Zasadniczo mamy możliwość zadawania pytań na 3 różne sposoby:
-
Strona chat.openai Najprostszy i najbardziej intuicyjny sposób. Można pokusić się o stwierdzenie, że to właśnie dzięki niemu technologia GPT zyskała taką popularność, gdyż bariera wejścia jest praktycznie zerowa. Dosłownie każdy jest w stanie zadać pytanie w swoim ojczystym języku i uzyskać odpowiedź w nawet kilka sekund
Tutaj istotnym ograniczeniem jest to, że możemy jedynie wprowadzać nasze prompty i wybrać model, który ma udzielić odpowiedzi (w przykładzie używamy GPT-4) a pozostałe parametry ustala openai Warto jeszcze wspomnieć, że korzystając z wersji przeglądarkowej mamy dostęp do historii poprzednich czatów, których możemy kopiować fragmenty lub po prostu się nimi inspirować
-
Playground Bardzo podobna metoda do chatu z punktu powyżej. Posiada jednak podstawową różnicę, która daje nieco więcej możliwości. Mianowicie w playgroundzie jesteśmy w stanie wpływać na odpowiedzi generowane przez bota za pomocą dodatkowych parametrów takich jak Temperature, Maximum length czy Top p Dokładny opis tych parametrów znajdziecie pod tym linkiem
Co więcej, do dyspozycji mamy aż 3 pola zwane rolami, w które możemy wprowadzać nasze dane:
- System - dodatkowe założenia, kontekst, instrukcje i zasady
- User - wypowiedź użytkownika
- Assistant - wypowiedź bota
Taka struktura nazywana jest również jako ChatML. Bardziej rozbudowane wyjaśnienie powyższej struktury znajdziesz pod tym linkiem
Dzięki temu oprócz samego zapytania możemy zasugerować algorytmowi, jakich odpowiedzi oczekujemy, w jakim powinny być tonie, a nawet jesteśmy w stanie zmodyfikować wypowiedź bota tak, aby kolejne prompty czerpały inspirację z satysfakcjonującej nas odpowiedzi
Link do playground wrzucamy tutaj
-
API programistyczne
To zdecydowanie najtrudniejszy ze sposobów na uzyskanie odpowiedzi od bota. Cechuje go najwyższy próg wejścia, ale z drugiej strony oferuje też największe możliwości. Jego zaawansowane użycie to temat na osobny artykuł. Jeśli jednak jesteś programistą, szybko docenisz zalety płynące z wykorzystania API.
Link do dokumentacji znajduje się tutaj
Aby ułatwić komunikację z botem, w ten sposób openAI stworzyło paczkę do NodeJS, która wspiera programistów w wykonywaniu zapytań. Nic jednak nie stoi na przeszkodzie, aby wziąć pod pachę stare dobre FetchAPI lub Axiosa i samodzielnie skonstruować zapytanie
Tokeny
Token to podstawowa jednostka wykorzystywana w algorytmach GPT do przetwarzania tekstu. Nie ma prostej odpowiedzi, ile liter, słów to jeden token, ale możemy przyjąć pewne uproszczenie.
Jeśli posługujemy się językiem angielskim token to bardzo często 4 znaki lub około 0,75 słowa. Sytuacja ma się zgoła inaczej, jeśli mówimy o mniej popularnych językach na świecie takich jak np. język polski (tutaj każde słowo może pożerać znacznie więcej tokenów)
Dla porównania to samo zdanie, ale w dwóch różnych językach:
I wersja przetłumaczona:
Jak łatwo zauważyć, zdanie po polsku zajmuje 5 tokenów a po angielsku tylko 3, pomimo że liczba wykorzystanych liter była większa w angielskiej wersji
Co ciekawe nawet to samo słowo, ale inaczej sformatowane również może zostać policzone tak samo pod kątem tokenów:
Wersja z różną wielkością liter w słowie:
Musimy więc pamiętać, że każde przejęzyczenie lub niestandardowy znak zabiorą nam dodatkowe tokeny
Oficjalne narzędzie, z którego tutaj korzystamy
To, co jest niezwykle istotne to fakt, że w ilości zużytych tokenów uwzględniamy zarówno pytanie użytkownika, jak również odpowiedź bota.
W wyniku tego powinniśmy dążyć do tego, aby wygenerowana odpowiedź była jak najbardziej zwięzła, ale również starajmy się zadawać pytania w konkretny i prosty sposób
A kto za to wszystko zapłaci?
Każdy z wymienionych powyżej sposobów na rozmowę z chatem ma swoje plusy i minusy. Oprócz tego warto również poruszyć temat kosztów
W przypadku okienka chatu openai możemy za darmo korzystać z modeli gpt-3 oraz gpt-3.5-turbo. Jeśli chcemy porozmawiać z GPT-4 to już będzie się wiązało z wydatkiem 20$ miesięcznie (stan na 15.05.2023)
Dodatkowo płatny plan zwiększy wydajność generowania odpowiedzi oraz da nam pierwszeństwo w dostępie do nowych funkcji
Zarówno Playground, jak i API są rozliczane w modelu „Pay as you go”, czyli w wolnym tłumaczeniu płacimy tyle, ile zużyjemy.
A czego i ile mamy zużyć?
Konkretnie mierzone jest wykorzystanie tokenów i to na ich podstawie kalkulowany jest całkowity koszt. Cennik można zobaczyć tutaj
Korzystając z API czy Playground łatwo dostrzec zalety płynące z technik optymalizacji liczby generowanych tokenów. Ich pozytywny wpływ zaobserwujemy od razu w przelewach wykonywanych do openai
Optymalizacja kosztów
Wiesz już, że za generowanie tokenów poprzez API musimy zapłacić. Na pierwszy rzut oka nie są to duże kwoty, ale w przypadku regularnego korzystania z wygenerowanych treści może to zaboleć naszą kieszeń.
Jak możemy zaoszczędzić?
Techniką krzepiacą nasze finanse może być dodawanie do naszych promptów takich zwrotów jak:
- ...return X and nothing more – informujemy, że bot powinien tylko odpowiedzieć na instrukcje bez dodatkowych komentarzy
- Acknowledge with ‘…’ – jeśli bot będzie chciał nam udowodnić, że coś zrozumiał to zamiast generować mnóstwo treści wypisze po prostu ‘…’
- Skip explanation – chat nie będzie generował obszernych wyjaśnień
Analogicznie możemy tworzyć wariacje powyższych zdań oraz tłumaczyć je na inne języki. Wspomnimy jeszcze, że model GPT-4 znacznie lepiej przestrzega takich zasad niż jego poprzednicy.
Kolejną barierą broniącą nasz portfel przed sztuczną inteligencją są limity na koncie openai. Jesteśmy w stanie ustawić sobie soft limit, po którego spotkaniu otrzymamy powiadomienie ostrzegawcze oraz hard limit, który zablokuje koszty wykraczające poza niego.
Domyślny limit openai to obecnie 120$ i jeśli ktoś chciałby go podnieść należy bezpośrednio kontaktować się z supportem
Inne ograniczenia
Poza wysokimi kosztami generowanie zbyt dużej liczby tokenów wystawia nas na jeszcze jedno zagrożenie. Obecnie modele mają „pamięć” rozmowy obejmującą w zależności od modelu 8 tysięcy (najpopularniejsza opcja) lub 32 tysiące (obecnie bardzo ciężko dostępne) tokenów.
Oznacza to, że jeśli przeprowadzimy z botem dłuższą rozmowę, zapomni on jej początek. Istnieją oczywiście sposoby na „przypominanie” mu wcześniejszych wątków, ale to już tematy nieco bardziej zaawansowane.
Podsumowanie
Znasz już nawet zaawansowane sposoby na rozmowę z chatem. Jedyne co Cię teraz ogranicza to zasobność portfela, pamięć chatu no i oczywiście wyobraźnia.
Mamy nadzieję, że informację zawarte w tym artykule będą pomocne, a w kolejnych wpisach rozwiniemy tematy optymalizacji oraz technik pracy z botem.