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:
- Dostarczenie demonstracji: W prompcie zamieszczasz kilka par wejście-wyjście, które obrazują zadanie.
- Analiza wzorców przez model: Model czyta te przykłady i rozpoznaje relacje między wejściami a wyjściami.
- 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.