Prompt Engineering dla Generative AI

Realizacja zapytań polega na zadawaniu właściwych pytań, aby uzyskać jak najlepsze wyniki w modelu LLM. Umożliwia on bezpośrednią interakcję z LLM tylko przy użyciu komunikatów w prostym języku.

W przeszłości współpraca z modelami systemów uczących się wymagała zwykle dogłębnej znajomości zbiorów danych, statystyk i technik modelowania. Obecnie LLM można „programować” w języku angielskim, a także w innych językach.

Doświadczony inżynier nie wymaga kodowania. Kreatywność i wytrwałość przyniosą jednak jednak wiele korzyści na Twojej drodze. Czytaj dalej, aby poznać przydatne techniki wyświetlania komunikatów.

Stosowanie sprawdzonych metod

  1. Jasno przedstaw, jakie treści lub informacje są najważniejsze

  2. Porządkowanie planu: najpierw określ jego rolę, podaj dane kontekstowe lub wejściowe, a potem wykonaj instrukcje.

  3. Użycie konkretnych, zróżnicowanych przykładów pomaga zawęzić zakres modelu i uzyskać dokładniejsze wyniki.

  4. Za pomocą ograniczeń ogranicz zakres danych wyjściowych modelu. Może to pomóc w wyeliminowaniu błędnych informacji z instrukcji.

  5. Podziel skomplikowane zadania na kilka prostych zapytań.

  6. Poinstruuj model, aby oceniał lub sprawdzał własne odpowiedzi przed ich wygenerowaniem. ("Ogranicz swoją odpowiedź do 3 zdań", "Oceń swoją pracę w skali 1–10 pod kątem zwięzłości", "Czy uważasz, że to prawda?”).

Być może najważniejsze:

Wykaż się kreatywnością. Im bardziej kreatywna i otwarta myśl to lepsze wyniki. LM i pracownie techniczne wciąż znajdują się w fazie dojrzewania i rozwijają się każdego dnia.

Rodzaje komunikatów

Bezpośrednie pytanie (zero obiektywów)

Najłatwiejszym komunikatem jest bezpośredni komunikat (Zero-shot). Nie zawiera on jedynie przykładu modelu. Możesz też dodać instrukcję jako pytanie lub nadać modelowi rolę, tak jak pokazano w drugim przykładzie poniżej.

Podaj:

  1. Instrukcja
  2. Kontekst

Generowanie pomysłów:

Prompt: Can you give me a list of ideas for blog posts for tourists visiting
New York City for the first time?

Informacja o roli:

Prompt: You are a mighty and powerful prompt-generating robot. You need to
understand my goals and objectives and then design a prompt. The prompt should
include all the relevant information context and data that was provided to you.
You must continue asking questions until you are confident that you can produce
the best prompt for the best outcome. Your final prompt must be optimized for
chat interactions. Start by asking me to describe my goal, then continue with
follow-up questions to design the best prompt.

Organizacja danych:

Prompt: Create a four-column spreadsheet of 10 highly-rated science fiction
movies, year of release, average audience rating, and top 3 keywords from
audience reviews.

Make sure to cite the source of the audience rating.

Przykłady z przykładami (jedno, niewielu i wielu ujęć)

Szybki zrzut pokazuje model, który wyraźnie pokazuje, co ma być naśladowane.

Pomysły na korzystanie z przykładów:

Prompt:

Come up with a list of ideas for blog posts for tourists visiting
New York City for the first time.

1. Fuggedaboutit! Where to Stay in New York City On Your First Visit

Niewielkie i kilka sesji tworzenia zapytań pokazuje modelowi więcej przykładów tego, do czego ma służyć. Sprawdza się lepiej od zera w przypadku bardziej złożonych zadań, w których potrzebne jest replikowanie wzorców lub gdy potrzebne jest zorganizowanie danych wyjściowych w konkretny, trudny do opisania sposób.

Klasyfikacja nastrojów:

Prompt:

Great product, 10/10: Positive
Didn't work very well: Negative
Super helpful, worth it: Positive
It doesn't work!:

Po uruchomieniu tego zapytania odpowiedzią modelu będzie klasyfikacja „Nie działa” jako pozytywnej lub negatywnej, jak pokazano w przykładach.

Przewidywanie reakcji na wiele ujęć za pomocą emotikonów:

Prompt: Predict up to 5 emojis as a response to a text chat message. The output
should only include emojis.

input: The new visual design is blowing my mind 🤯
output: ➕,💘, ❤‍🔥

input: Well that looks great regardless
output: ❤️,🪄

input: Unfortunately this won't work
output: 💔,😔

input: sounds good, I'll look into that
output: 🙏,👍

input: 10hr cut of jeff goldblum laughing URL
output: 😂,💀,⚰️

input: Woo! Launch time!

Proces jest taki sam w tym przypadku, ale ponieważ prośba jest bardziej złożona, modelowi podano więcej przykładów emulacji.

Myślenie łańcuchowe

Zachęcanie organizacji LLM do podejmowania decyzji w celu wyjaśnienia przyczyny Połącz je z kilkoma zachętami do uzyskania lepszego rezultatu w przypadku bardziej złożonych zadań, które wymagają odpowiedzi z wyprzedzeniem.

Prompt:

The odd numbers in this group add up to an even number: 4, 8, 9, 15, 12, 2, 1.
A: Adding all the odd numbers (9, 15, 1) gives 25. The answer is False.
The odd numbers in this group add up to an even number: 15, 32, 5, 13, 82, 7, 1.
A:

Przygotowanie do egzaminów CoT

Wywołując prośbę o zerowe ujęcie, która już wcześniej była przeprowadzana w ten sposób, przychodzi czas, by dodać zachętę: „Spróbujmy krok po kroku”. LLM jest w stanie wygenerować łańcuch myśli na podstawie tej instrukcji, a zazwyczaj jest to również dokładniejsza odpowiedź. To znakomite podejście, jeśli chodzi o generowanie poprawnych odpowiedzi na pytania takie jak problemy ze słowami.

Prompt:

I went to the market and bought 10 apples. I gave 2 apples to the neighbor and
2 to the repairman. I then went and bought 5 more apples and ate 1. How many
apples was I left with?

Let's think step by step.

Strategie szybkiego wykonywania iteracji

Naucz się m.in., jak wiele razy (w kilkudziesięciu) przypadkach przerabiać tekst. Oto kilka pomysłów na doprecyzowywanie zapytań:

Uwaga: z czasem udoskonalone modele mogą stać się mniej przydatne lub niezbędne.

  1. Powtórz kluczowe słowa, wyrażenia lub pomysły

  2. Określ żądany format wyjściowy (CSV, JSON itp.)

  3. Podkreślaj ważne informacje i instrukcje dużymi literami. Możesz też używać przesadnych lub przesadnych sformułowań, na przykład: „Wyjaśnienie jest całkowicie niemożliwe. Każde słowo musi być czyste.

  4. Użyj synonimów lub wyrażenia alternatywnego (np. zamiast „Podsumuj” spróbuj dodać do fragmentu tekstu tekst „tldr”). Wymieniaj różne słowa lub wyrażenia, a potem sprawdzaj, które z nich działają lepiej, a które gorzej.

  5. Wypróbuj tę kanapkę z długimi zachętami: dodaj to samo stwierdzenie w różnych miejscach.

  6. Poszukaj inspiracji w bibliotece podpowiedzi. Możesz zacząć od Pomocnego bohatera i Galerii podpowiedzi.

Dodatkowe materiały

Sprawdzone metody dotyczące wysyłania zapytań

Poznawanie monitów (zewnętrzne)