Dekalog dobrego promptera, eee... prompciarza?

Dekalog dobrego promptera, eee... prompciarza?
Midjournej: hacker pup typing with paws something on laptop, closup, cyberpunk setting, extreamly detailed --aspect 7:4

Modele językowe zostaną z nami na lata. Jak efektywnie zacząć wykorzystywać tę nową technologię by nie zostać w tyle? Zebrałem szereg porad i technik z których sam korzystam generując treści za pomocą modeli AI.

Żart z tytułu przypomniał mi, zdaje się, mało znany fakt, że słowo komputer jest używane od 17 wieku i oznaczało zawód - ten co liczy. Astronomowie w Renesansie zatrudniali komputerów do relatywnie mało skomplikowanych, ale żmudnych obliczeń. Jednak czas pełnego rozkwitu tego zawodu przypada na okres Pierwszej Wojny Światowej.

Załoga komputerów NACA (National Advisory Committee for Aeronautics). Po Drugiej Wojnie Światowej NACA zostało rozwiązane, a jej struktury włączone do powstającej agencji NASA która dobrze znamy dziś.

Mało kto wie, że w związku z tym, że komputerami zazwyczaj były kobiety, to pierwszymi zawodowymi programistkami na świecie były kobiety. How cool is that? Ale wróćmy do promptowania.

Gdzie korzystać?

Jest dużo wtyczek i aplikacji, nie będę robił tu przeglądu rozwiązań. Pierwszym, najbardziej oczywistym miejscem jest chat.openai.com. Możesz bezpłatnie zalogować się tam kontem Google lub Microsoft. Korzystanie z chata jest bezpłatne. Jednak jeśli oczekujesz wyższej jakości usługi możesz skorzystać z wersji płatnej (20USD/miesięcznie). Dzięki niej masz "pierwszeństwo" w czasie dużego obciążenia usługi oraz dostęp do najbardziej zaawansowanych modeli czy funkcji (obecnie takich jak wtyczki, czy dostęp do WWW).

Drugą opcją jest skorzystanie z wbudowanego Binga w przeglądarkę Microsoftu - Internet Edge. Od maja jest tam wykorzystywany najnowysz model GPT-4

Ostatnim, najbardziej zaawansowanym jest korzystanie przez API lub w piaskownicy dla developerów. Tutaj korzyścią jest większa kontrola otrzymywanych wyników ale nie będziemy się na tym skupiać

O czym warto pamiętać

Modele są przyuczane na danych do pewnego momentu, mogą nie znać pewnych faktów. Ta granica może nie być równa - w pewnych obszarach data "odcięcia" może być inna niż w pozostałych. Teoretycznie rozwiązywane jest to przez dostęp do internetu przez wtyczki w ChatGPT lub w Bing.

Ogólne zasady

Traktuj prompt jak zapytanie do asystenta który jest pierwszy dzień w pracy - nie jest to pewnie fortunne porównanie bo mało z nas miała kiedykolwiek asystentów, ale liczę na Twoją wyobraźnię.

Bądź konkretny i jasny, podaj kontekst oczekiwania. Używaj poprawnej gramatyki i pisowni. Jeśli masz jakieś oczekiwania co do formy - opisz je. Na przykład: napisz odpowiedź w punktach lub opisz jednym zdaniem.

Korzystaj z metody prób i błędów, lekko modyfikuj prompt i sprawdzaj jak wpływa to ja wynik odpowiedzi.

Las but not least - weryfikuj fakty podawane przez model. Jeśli chcesz zwiększyć pewność otrzymania poprawnej faktograficznie odpowiedzi - zawrzyj źródło w prompcie. Na przykład dodaj akapit z wikipedii pod koniec prompta.

Techniki promptowania

Zero shot, few shot prompting

Zero shot prompting to najpopularniejszy sposób korzystania z LLM (Jeśli gubisz się w skrótach, polecam mój Słowniczek AI). Wydajemy bezpośrednią instrukcje, bez dodania żadnego kontekstu czy przykładu. Efektem będzie generyczna odpowiedź która może być słabo dopasowana do naszych oczekiwań.

Napisz wpis na portal społecznościowy promoujący artykuł z bloga Demokratyzacja Technologii

Prompt

"Hej! 🚀 Sprawdźcie nasz najnowszy artykuł na blogu pt. "Demokratyzacja Technologii"! Zastanawialiście się kiedykolwiek, jak technologia staje się coraz bardziej dostępna dla wszystkich? 🌍 Jak to możliwe, że narzędzia, które kiedyś były zarezerwowane tylko dla gigantów technologicznych, teraz są na wyciągnięcie ręki dla każdego z nas? Odpowiedzi na te pytania znajdziecie w naszym najnowszym wpisie! Zobaczcie, jak demokratyzacja technologii wpływa na nasze życie i jak możemy z niej skorzystać. 👩‍💻👨‍💻 Czytajcie, komentujcie i udostępniajcie! #demokratyzacja #technologia #blog"

Odpowiedź z OpenAI GPT-4

Metoda one shot prompting polega na tym, że wraz z instrukcją podajemy przykład oczekiwanej odpowiedzi - na przykład tekst którego stylistykę chcemy naśladować. Dzięki temu model lepiej rozumie oczekiwany przez nas kontekst odpowiedzi i potrafi kolejnym wygenerowanym. Few shot prompting to popchnięcie tej idei jeszcze dalej, dostarczamy kolejne przykłady (powinny być spójne) by przyuczyć model jakiej odpowiedzi oczekujemy.

Określ rolę

To sposób w którym mówisz modelowi by odgrywał pewną role. Dzięki temu kontekstowi odpowiedzi udzielane przez model mają zazwyczaj bardziej odpowiedni charakter i ton wypowiedzi.

jesteś instagramerką modową która hobbystycznie kupiła akcje spółki i na swoim profilu robi relacje jak idzie jej inwestycja, napisz jednym zdaniem: 

"W I kw. 2023 zarząd grupy spodziewa się ok. 20 proc. wzrostu przychodów r/r pro forma, głównie dzięki wysokim dwucyfrowym wzrostom przychodów w segmencie turystyka, a także wzrostowi przychodów z subskrypcji i finansów konsumenckich. Jednocześnie, zarząd szacuje, że skoryg. EBITDA będzie kształtować się na porównywalnym poziomie do I kw. 2022, w ujęciu pro forma, co jest związane z sezonowo wysokim udziałem wysokomarżowego biznesu reklamowego, który w I kw. był pod presją wysokiej bazy z I kw. 2022 i negatywnych czynników makroekonomicznych"

Prompt

"Hejka! Super newsy od mojej ulubionej spółki, której akcje mam w portfelu - prognozują ok. 20% wzrostu przychodów w Q1 2023! 😍 To dzięki rosnącej turystyce i subskrypcjom. Ale, uwaga, dochody mogą być podobne do tych z zeszłego roku z powodu sezonowego wzrostu biznesu reklamowego.📈💼 #mojapierwszainwestycja"

Odpowiedź z OpenAI GPT-4

Dobra infografika znaleziona na Linedinie która może być inspiracją jak generalnie składać prompt

Używaj separatorów

A w zasadzie to delimiterów, to nietypowa sekwencja znaków która oddziela tekst. Historycznie wywodzi się z grup dyskusyjnych, popularnie wykorzystywane do oddzielania stopek w mailach znakami minus minus spacja (– ); W kontekście GPT to zazwyczaj jest potrójny apostrof ('''), cudzysłów (") ale też trójkątne nawiasy (< >) czy nawet tagi HTML (<tag> </tag>).

Skróć do jednego zdania tekst w cudzysłowie

"Żart z tytułu przypomniał mi, zdaje się, mało znany fakt, że słowo komputer jest używane od 17 wieku i oznaczało zawód - ten co liczy. Astronomowie w Renesansie zatrudniali komputerów do relatywnie mało skomplikowanych, ale żmudnych obliczeń. Jednak czas pełnego rozkwitu tego zawodu przypada na okres Pierwszej Wojny Światowej."

Dlaczego to jest przydatne? Takie podejście pomaga modelowi w rozdzieleniu treści polecenia od danych z którymi ma pracować. Pośrednio i nie definitywnie też walczy z problemem prompt injection czyli sytuacji w której model wykonuje polecenie zawarte w części którą ma streścić. Czasami możesz pracować na danych wytwarzanych przez użytkowników - na przykład opinie o produkcie - teoretycznie mogłyby się w treści znaleźć polecenia nadpisujące to określone przez Ciebie.

Temperatura

Z pojęciem tempertatury nie będziesz miał doczynienia w aplikacjach takich jak Bing czy ChatGPT. To parametr odpowiedzialny za kreatywność odpowiedzi. W kontekście modeli językowych - im większa kreatywność tym wyższa możliwość błędu. Temperatura przyjmuje wartości od zera do dwa. Zero to brak losowości, niemal pełna deterministyczność odpowiedzi. Temperatura na poziomie dwa to szaleństwo a czasami bełkot - co ważniejsze, co kolejny prompt będziemy otrzymywali inną odpowiedź.

To parametr którym nie możesz tradycyjnie sterować w aplikacji, można to sprawdzić w piaskownicy OpenAI. Wspominam o tym tylko dlatego, bo warto wiedzieć, że istnieje takie pokrętło w modelach językowych.

That's a wrap

Temat prompt engineeringu rozwija się na naszych oczach. Jeśli masz ambicje na coś bardziej zaawansowanego, polecam darmowe szkolenie ChatGPT Prompt Engineering for Developers - sam nie jestem programistą i mimo to uważam je za bardzo interesujące.


Oceń artykuł kliając w emotke: 👎 - 👍

PS. Jeśli zainteresował Cię ten tekst lub znasz kogoś, komu się przyda - prześlij dalej lub udostępnij 🙏