🔢 Few-Shot Prompting

Co to jest?

Few-shot prompting to technika wykorzystywana podczas interakcji z dużymi modelami językowymi. Polega ona na dostarczeniu modelowi w prompcie kilku przykładów (lub „shotów”) zadania, które ma wykonać. Przykłady te służą jako demonstracje, które pomagają modelowi zrozumieć, o co prosimy, co poprawia jego zdolność do generowania dokładnych i trafnych odpowiedzi.

Można to porównać do pokazania komuś kilku przykładów przed poproszeniem o wykonanie podobnego zadania. Dostarczając te przykłady, wykorzystujesz zdolność modelu do uczenia się z kontekstu — zjawisko to nazywa się uczeniem w kontekście (in-context learning).

Jak to działa?

Duże modele językowe zostały wytrenowane na ogromnych ilościach danych tekstowych i potrafią wyłapywać wzorce oraz struktury w ludzkim języku. Kiedy do promptu dodasz kilka przykładów, model analizuje je, aby zidentyfikować schemat lub format zadania.

Oto jak to działa w praktyce:

  1. Dostarczenie demonstracji: W prompcie zamieszczasz kilka par wejście-wyjście, które obrazują zadanie.
  2. Analiza wzorców przez model: Model czyta te przykłady i rozpoznaje relacje między wejściami a wyjściami.
  3. Generowanie odpowiedzi: Po wprowadzeniu nowego zapytania model wykorzystuje zidentyfikowane wzorce do wygenerowania odpowiedniej odpowiedzi.

Warunkując model za pomocą przykładów, skutecznie kierujesz go w stronę pożądanego zachowania bez potrzeby jawnego programowania czy dodatkowego trenowania.

Kiedy tego używać?

Few-shot prompting jest szczególnie przydatny w następujących scenariuszach:

  • Złożone zadania: W przypadku zadań zbyt skomplikowanych dla promptowania zero-shot (prośby o wykonanie zadania bez żadnych przykładów), few-shot prompting może znacząco poprawić wyniki.
  • Konkretne formaty wyjściowe: Jeśli potrzebujesz, aby model generował odpowiedzi w określonym formacie lub stylu, podanie przykładów pomaga zapewnić spójność.
  • Niezwykłe lub nowe zadania: W przypadku zadań, z którymi model mógł rzadko stykać się podczas trenowania, np. przy użyciu nowo ukutych terminów lub specjalistycznego żargonu.
  • Unikanie dostrajania (fine-tuning): Gdy brakuje zasobów lub danych do dostrojenia modelu, few-shot prompting pozwala instruować model w nowych zadaniach „w locie”.

Praktyczny przykład

Przyjrzyjmy się, jak few-shot prompting można zastosować zarówno w promptach systemowych, jak i w promptach użytkownika.

W prompcie systemowym

Prompt systemowy definiuje zachowanie asystenta w trakcie całej konwersacji. Dodanie tutaj przykładów few-shot pozwala ustalić spójny styl odpowiedzi.

Przykład:

Prompt systemowy:

Jesteś asystentem, który udziela uprzejmych i formalnych odpowiedzi.

Przykłady:
Użytkownik: „Podaj mi prognozę pogody.”
Asystent: „Oczywiście! Czy mogę prosić o podanie lokalizacji?”

Użytkownik: „Potrzebuję pomocy z moim kontem.”
Asystent: „Z przyjemnością pomogę. Czy mogę prosić o numer konta?”

[Koniec przykładów.]

W tej bardzo prostej konfiguracji asystent jest kierowany do odpowiadania w sposób uprzejmy i formalny, korzystając z przykładów jako szablonu.

W prompcie użytkownika

Umieszczanie przykładów few-shot bezpośrednio w prompcie użytkownika jest przydatne w przypadku konkretnych zadań w trakcie konwersacji.

Przykład:

Prompt użytkownika:

„Blorpt” to fikcyjny gadżet, który pomaga szybciej pracować. Przykład zdania z użyciem słowa „blorpt” to:
„Użyłem blorptu, aby skończyć projekt przed terminem”.

Teraz użyj słowa „blorpt” w zdaniu dotyczącym gotowania.

Odpowiedź asystenta:

„Szef kuchni polegał na blorpcie, aby sprawniej przygotowywać posiłki”.

W tym przypadku użytkownik podaje przykład użycia nowego słowa „blorpt”, a następnie prosi model o stworzenie nowego zdania z tym słowem w innym kontekście.

Dodatkowy przykład: Analiza sentymentu

Prompt użytkownika:

Sklasyfikuj sentyment poniższych zdań jako Pozytywny lub Negatywny.

Zdanie: „To był najlepszy dzień w moim życiu!” // Pozytywny
Zdanie: „Nie znoszę tych korków.” // Negatywny
Zdanie: „Jestem zachwycony wynikami.” // Pozytywny
Zdanie: „To jest absolutnie okropne.” //

Odpowiedź asystenta:

„Negatywny”

Mimo podania zaledwie kilku przykładów, model poprawnie klasyfikuje sentyment nowego zdania, rozpoznając wzorzec w przykładach.