Wizualizacja porównania technik Few-Shot i Zero-Shot prompting w sztucznej inteligencji

Few shot prompting – zero-shot, one-shot i few-shot z przykładami promptów

Few shot prompting to podawanie modelowi językowemu kilku przykładów „wejście – oczekiwany wynik” w samym prompcie, zanim dostanie właściwe zadanie. Zero-shot to polecenie bez przykładów, one-shot – z jednym. Przykłady najlepiej sterują formatem, tonem i etykietami. Przy modelach rozumujących zaczyna się od zera przykładów, a dokłada je dopiero wtedy, gdy wynik rozjeżdża się z oczekiwanym.

Ten tekst porównuje trzy warianty na promptach po polsku, pokazuje, co o przykładach piszą dziś OpenAI, Anthropic, Google i DeepSeek, i liczy, ile przykłady kosztują w API. Szerszy przegląd technik, od łańcucha myśli po RAG, znajdziesz w przewodniku po inżynierii promptów.

Czym jest few shot prompting

Few shot prompting polega na tym, że model uczy się wzorca z przykładów umieszczonych w kontekście, bez żadnej zmiany swoich wag. Mechanizm nazywa się uczeniem w kontekście (in-context learning): przykłady działają tylko w tym jednym wywołaniu i znikają razem z rozmową.

Nazwy zero-shot, one-shot i few-shot spopularyzowała praca OpenAI o GPT-3, „Language Models are Few-Shot Learners” (Brown i in., 2020). Autorzy zdefiniowali trzy ustawienia:

  • zero-shot – model dostaje tylko opis zadania w języku naturalnym
  • one-shot – opis zadania plus jedna demonstracja
  • few-shot – opis zadania plus kilka demonstracji; w eksperymentach z GPT-3 było ich zwykle od 10 do 100, bo tyle mieściło okno kontekstu o długości 2048 tokenów

Dzisiejsze modele mają okna liczone w setkach tysięcy tokenów, więc ograniczeniem przestał być rozmiar kontekstu. Ograniczeniem jest koszt i to, czy przykłady w ogóle pomagają danemu modelowi – o tym dalej. Zwykły użytkownik czatu stosuje few-shot nieświadomie za każdym razem, gdy wkleja „zrób to tak jak tutaj” i dołącza wzór. Ten sam mechanizm w aplikacjach siedzi zwykle w prompcie systemowym, w osobnej sekcji z przykładami.

Zero-shot, one-shot i few-shot – porównanie

Różnica między wariantami sprowadza się do liczby przykładów, a ta przekłada się na trzy rzeczy: przewidywalność formatu, koszt tokenów i ryzyko, że model zacznie kopiować przykład zamiast myśleć.

CechaZero-shotOne-shotFew-shot
Przykłady w prompciebrakjedenkilka (Anthropic zaleca 3-5)
Co steruje wynikiemwyłącznie instrukcjainstrukcja i jeden wzórinstrukcja i wzorzec z kilku przykładów
Przewidywalność formatunajniższaśrednianajwyższa
Koszt tokenów wejścianajniższyniskirośnie z każdym przykładem
Typowe ryzykomodel źle zrozumie, czego chceszmodel skopiuje cechy jedynego wzorustronniczość etykiet i kolejności przykładów
Kiedy jako pierwszy wybórmodele rozumujące, zadania łatwe do opisania słowamijeden nietypowy format odpowiedziklasyfikacja, ekstrakcja danych, stały styl

Liczba 3-5 pochodzi z dokumentacji Anthropic dla modeli Claude. Google w dokumentacji Gemini API nie podaje liczby i każe ją dobrać eksperymentalnie, z ostrzeżeniem, że zbyt wiele przykładów prowadzi do przeuczenia na nich.

Przykłady promptów po polsku

Ten sam problem – sortowanie wiadomości od klientów sklepu internetowego – wygląda inaczej w każdym z trzech wariantów. Różnicę najlepiej widać, gdy etykiety są firmowe, a nie oczywiste.

Prompt zero-shot

Przypisz wiadomość klienta do jednej kategorii: REKLAMACJA, ZWROT, DOSTAWA, INNE.
Odpowiedz samą nazwą kategorii.

Wiadomość: „Kurier był wczoraj, ale paczka miała rozerwany karton i pękniętą szybkę.”

Działa, jeśli granice kategorii są oczywiste. Tu nie są: uszkodzenie w transporcie część firm traktuje jako reklamację, a część jako sprawę dostawy. Model zgadnie według własnego uznania.

Prompt one-shot

Przypisz wiadomość klienta do jednej kategorii: REKLAMACJA, ZWROT, DOSTAWA, INNE.
Odpowiedz samą nazwą kategorii.

Wiadomość: „Paczka doszła zgnieciona, a kubek w środku jest wyszczerbiony.”
Kategoria: REKLAMACJA

Wiadomość: „Kurier był wczoraj, ale paczka miała rozerwany karton i pękniętą szybkę.”
Kategoria:

Jeden przykład rozstrzyga sporny przypadek: uszkodzenie w transporcie to reklamacja. Słabość: model może uznać, że każda wiadomość o paczce jest reklamacją.

Prompt few-shot

Przypisz wiadomość klienta do jednej kategorii: REKLAMACJA, ZWROT, DOSTAWA, INNE.
Odpowiedz samą nazwą kategorii.

Wiadomość: „Paczka doszła zgnieciona, a kubek w środku jest wyszczerbiony.”
Kategoria: REKLAMACJA

Wiadomość: „Rozmyśliłam się, chcę oddać buty, są nieużywane.”
Kategoria: ZWROT

Wiadomość: „Śledzenie od trzech dni pokazuje ten sam sortownik.”
Kategoria: DOSTAWA

Wiadomość: „Czy wystawiacie faktury na firmę?”
Kategoria: INNE

Wiadomość: „Kurier był wczoraj, ale paczka miała rozerwany karton i pękniętą szybkę.”
Kategoria:

Cztery przykłady pokrywają wszystkie etykiety po razie, więc żadna nie dominuje, a model widzi granicę między reklamacją a dostawą. To jest sytuacja, w której few-shot wygrywa z każdą instrukcją: etykiety są umowne i łatwiej je pokazać niż opisać.

Ten sam few-shot w tagach dla Claude

Anthropic zaleca oddzielanie przykładów od instrukcji tagami <example>, a całego zestawu – tagiem <examples>:

<instrukcje>
Przypisz wiadomość klienta do jednej kategorii: REKLAMACJA, ZWROT, DOSTAWA, INNE.
Odpowiedz samą nazwą kategorii.
</instrukcje>

<examples>
<example>
<wiadomosc>Paczka doszła zgnieciona, a kubek w środku jest wyszczerbiony.</wiadomosc>
<kategoria>REKLAMACJA</kategoria>
</example>
<example>
<wiadomosc>Rozmyśliłam się, chcę oddać buty, są nieużywane.</wiadomosc>
<kategoria>ZWROT</kategoria>
</example>
</examples>

<wiadomosc>Kurier był wczoraj, ale paczka miała rozerwany karton i pękniętą szybkę.</wiadomosc>

Tagi chronią przed tym, że model potraktuje treść przykładu jak polecenie. Więcej o strukturze promptów, rolach i formatowaniu znajdziesz w poradniku jak pisać prompty.

Kiedy który wariant

Zacznij od zero-shot i dokładaj przykłady dopiero wtedy, gdy wynik ma zły format, złe etykiety albo zły ton. Ta kolejność jest zgodna z zaleceniem OpenAI dla modeli rozumujących i chroni przed płaceniem za przykłady, które nic nie zmieniają.

SytuacjaWariantDlaczego
Streszczenie, tłumaczenie, odpowiedź na pytaniezero-shotzadanie łatwo opisać słowami, model zna je z treningu
Zadanie logiczne lub matematyczne na modelu rozumującymzero-shotmodel rozumuje sam, przykłady bywają szkodliwe (DeepSeek-R1)
Jeden nietypowy format odpowiedzione-shotjeden wzór wystarcza, by pokazać układ
Klasyfikacja z firmowymi etykietamifew-shotgranice etykiet łatwiej pokazać niż opisać
Ekstrakcja danych do stałej strukturyfew-shot albo tryb wymuszonego schematuprzykłady stabilizują pola i pisownię wartości
Stały styl marki, np. odpowiedzi działu obsługifew-shotton jest trudny do opisania, łatwy do pokazania
Tysiące różnorodnych zapytańdynamiczny few-shotprzykłady dobiera się do każdego zapytania osobno

Instrukcja i przykłady nie wykluczają się, a przy dobrych przykładach instrukcja może się skurczyć. Google w dokumentacji Gemini dopuszcza nawet usunięcie instrukcji, jeśli przykłady wystarczająco jasno pokazują zadanie. Bezpieczniej jednak zostawić krótkie polecenie, bo ono mówi modelowi, czego przykłady mają go nauczyć.

Few-shot a modele rozumujące

Modele rozumujące, które przed odpowiedzią generują własny tok myślenia, zwykle radzą sobie bez przykładów, a w części przypadków przykłady im szkodzą. Dostawcy różnią się jednak w zaleceniach i warto znać każde z nich, zanim przeniesie się prompt z jednego modelu na drugi.

Co mówią dostawcy

DostawcaZalecenie wobec przykładów
OpenAImodele rozumujące często nie potrzebują przykładów, więc najpierw pisz prompt bez nich; przykłady dodawaj dopiero przy złożonych wymaganiach i tylko takie, które ściśle zgadzają się z instrukcją
Anthropicprzykłady to jeden z najpewniejszych sposobów sterowania formatem; działają także przy włączonym myśleniu – przykład podany jako problem, metoda i odpowiedź kształtuje sposób rozumowania Claude’a
Googlezawsze dołączaj przykłady few-shot, bo prompty bez nich są według dokumentacji Gemini API zwykle mniej skuteczne
DeepSeekw pracy o DeepSeek-R1 zespół odnotował, że few-shot konsekwentnie pogarsza wyniki modelu, i zalecił zero-shot z opisem problemu i formatu wyjścia

Rozbieżność jest pozorna. Przykłady pomagają w formie odpowiedzi, a coraz słabiej w rozumowaniu. Potwierdza to praca Cheng i in. („Revisiting Chain-of-Thought Prompting: Zero-shot Can Be Stronger than Few-shot”, arXiv, czerwiec 2025, poprawiona w styczniu 2026): w silnych modelach, takich jak Qwen2.5, przykłady z rozpisanym rozumowaniem nie poprawiały wyników względem zero-shot, a służyły głównie wyrównaniu formatu. Szerzej o samym modelu DeepSeek piszemy w tekście o DeepSeek R1.

Rozumowanie jest dziś w wielu modelach domyślne. W Claude Fable 5.1 i Claude Opus 5.5 myślenie jest zawsze włączone, a jego głębokość reguluje parametr effort. W GPT-6 Astra parametr reasoning.effort przyjmuje wartości low, medium (domyślnie), high, xhigh i max, bez opcji wyłączenia rozumowania. Zero-shot jest więc dla tych modeli naturalnym punktem startu.

Co z „pomyśl krok po kroku”

Dopisek „pomyśl krok po kroku” to zero-shot chain-of-thought i w modelach rozumujących jest zbędny. Jest też wariant few-shot CoT, opisany przez Wei i in. w 2022 roku: w przykładach podaje się nie tylko odpowiedź, ale i rozpisane kroki rozumowania – model PaLM 540B z ośmioma takimi przykładami ustanowił wtedy rekord w zbiorze GSM8K. Zero-shot CoT opisali Kojima i in. w 2022 roku: na modelu text-davinci-002 sam dopisek podniósł trafność w zbiorze MultiArith z 17,7% do 78,7%, a w GSM8K z 10,4% do 40,7%, bez żadnych przykładów.

To wynik z epoki modeli bez wbudowanego rozumowania. OpenAI pisze dziś wprost, że prośba o myślenie krok po kroku jest przy modelach rozumujących niepotrzebna, bo rozumują one wewnętrznie. Anthropic idzie dalej: ogólne polecenie w rodzaju „przemyśl to dokładnie” często daje lepsze rozumowanie niż ręcznie rozpisany plan, a w modelach Claude Fable 5.1, Fable 5, Opus 5.5, Opus 5 i Sonnet 5.5 prośba o wypisanie rozumowania w tagach <thinking> może zostać odrzucona. Zamiast niej obniża się albo podnosi effort. Mechanikę łańcucha myśli wyjaśniamy w artykule o Chain of Thought.

Jak dobierać przykłady

Dobre przykłady są trafne, zróżnicowane, w jednym formacie i zbalansowane między etykietami, bo model uczy się z nich także rzeczy, których nie chciałeś mu pokazać.

Badania nad uczeniem w kontekście dają tu trzy praktyczne wnioski:

  1. Format liczy się bardziej, niż się wydaje. Min i in. (2022, „Rethinking the Role of Demonstrations”) pokazali, że losowa podmiana etykiet w przykładach ledwo obniża wyniki. Model czerpie z przykładów głównie przestrzeń etykiet, typ tekstu wejściowego i format, a mniej samą poprawność odpowiedzi.
  2. Kolejność i dobór zmieniają wynik. Zhao i in. (ICML 2021, „Calibrate Before Use”) wykazali, że format promptu, wybór przykładów i nawet ich kolejność potrafią zmienić trafność GPT-3 od poziomu losowego do bliskiego najlepszym wynikom. Przyczyną są skłonności modelu, m.in. do etykiety najczęstszej w przykładach i do etykiety z ostatniego przykładu.
  3. Zbyt podobne przykłady uczą skrótów. Anthropic zaleca przykłady na tyle zróżnicowane, by Claude nie wyłapał niezamierzonych wzorców, i pokrywające przypadki brzegowe.

Lista kontrolna przed wysłaniem promptu few-shot:

SprawdźDlaczego
każda etykieta pojawia się mniej więcej tyle samo razyinaczej model faworyzuje etykietę najczęstszą
ostatni przykład nie zawsze ma tę samą etykietęmodel ciąży ku etykiecie z końca listy
wszystkie przykłady mają identyczny układGoogle ostrzega, że niespójny format daje niespójne odpowiedzi
przykłady różnią się długością i słownictwemmodel nie powinien uznać długości za sygnał etykiety
jest co najmniej jeden przypadek spornywłaśnie spór uzasadnia użycie przykładów

Przykłady nie chronią przed zmyślaniem faktów, tylko przed złym formatem. Jak ograniczać halucynacje AI, opisujemy osobno.

Ile kosztują przykłady i jak pomaga cache promptu

Każdy przykład to dodatkowe tokeny wejścia w każdym wywołaniu, ale stały blok przykładów można trzymać w cache promptu, który u Anthropic kosztuje zwykle 10% ceny wejścia (w Claude Sonnet 5.5 tak właśnie jest). Przy dużych wolumenach cache decyduje, czy few-shot w ogóle się opłaca.

Przykład rachunku dla Claude Sonnet 5.5 według cennika API Anthropic: 2 USD za milion tokenów wejścia, 0,20 USD za milion tokenów odczytanych z cache, 2,50 USD za milion tokenów zapisanych do cache pięciominutowego. Zadanie: 10 000 wiadomości po 50 tokenów, instrukcja 100 tokenów, pięć przykładów po 100 tokenów. Tokeny wyjścia są takie same we wszystkich wariantach, więc je pomijam.

WariantTokeny wejściaKoszt wejścia
Zero-shot10 000 × 150 = 1,5 mln3,00 USD
Few-shot bez cache10 000 × 650 = 6,5 mln13,00 USD
Few-shot z cache (600 tokenów stałych w cache, 50 zmiennych)ok. 6 mln odczytu z cache + 0,5 mln zwykłychok. 2,20 USD

Few-shot z cache wychodzi taniej niż zero-shot bez cache, bo stała część promptu kosztuje w cache dziesięć razy mniej. Są trzy warunki:

  • minimalna długość – Claude Sonnet 5.5 cache’uje prompty od 512 tokenów, ale Claude Sonnet 5 i Opus 4.8 dopiero od 1 024; krótszy blok przechodzi bez cache i bez komunikatu o błędzie, więc 600-tokenowy zestaw na Sonnecie 5 kosztowałby pełne 13 USD
  • ciągłość ruchu – cache pięciominutowy wygasa, jeśli przez pięć minut nikt z niego nie skorzysta; każdy odczyt go odświeża
  • kolejność w prompcie – przykłady i instrukcja muszą być na początku, a zmienna wiadomość na końcu, bo cache obejmuje stały prefiks

Liczby tokenów w przykładzie są umowne. Rzeczywista liczba zależy od tokenizatora: Anthropic podaje, że tokenizator modeli Claude od wersji 4.7 daje około 30% więcej tokenów dla tego samego tekstu niż poprzedni. Jak tekst zamienia się w tokeny, wyjaśnia artykuł o tokenizacji, a mechanikę i ceny cache u różnych dostawców – tekst o cache kontekstu.

Many-shot i dynamiczny dobór przykładów

Gdy kilka przykładów nie wystarcza, są dwie drogi: wkleić ich setki (many-shot) albo dobierać kilka najbardziej pasujących do każdego zapytania (dynamiczny few-shot).

Many-shot. Zespół Google DeepMind (Agarwal i in., „Many-Shot In-Context Learning”, NeurIPS 2024) pokazał, że przejście od kilku do setek i tysięcy przykładów daje znaczące zyski w wielu zadaniach, pozwala przełamać uprzedzenia wyniesione z pretreningu i w części zadań zbliża się do wyników dostrajania. Autorzy opisali też wariant z rozumowaniem wygenerowanym przez sam model zamiast ludzkich przykładów. Długie okna kontekstu to umożliwiają, ale bez cache promptu koszt rośnie liniowo z liczbą przykładów. Kiedy zamiast tego lepiej dostroić model, rozważamy w porównaniu RAG i dostrajania.

Dynamiczny few-shot. System trzyma bazę gotowych par „wejście – wynik”, zamienia je na embeddingi i do każdego zapytania wybiera kilka przykładów najbliższych znaczeniowo. Model dostaje mało przykładów, ale trafnych. Minus: każde zapytanie ma inny prompt, więc blok przykładów przestaje być stałym prefiksem i traci tańszy odczyt z cache.

PodejścieLiczba przykładówMocna stronaSłaba strona
Statyczny few-shotkilka, te same zawszeprosty, dobrze się cache’ujenie pasuje do nietypowych zapytań
Many-shotsetki do tysięcynajwyższa trafność bez dostrajaniaduży koszt wejścia bez cache
Dynamiczny few-shotkilka, inne dla każdego zapytaniatrafne przykłady przy małej liczbie tokenówwymaga bazy i wyszukiwania, słabiej korzysta z cache

FAQ

Co to jest one-shot prompting?

One-shot prompting to polecenie dla modelu AI zawierające dokładnie jeden przykład oczekiwanej odpowiedzi. Sprawdza się, gdy trzeba pokazać nietypowy format albo rozstrzygnąć jeden sporny przypadek. Ryzyko polega na tym, że model skopiuje przypadkowe cechy jedynego wzoru, np. jego długość, dlatego przy kilku etykietach lepszy jest few-shot.

Co to jest prompting?

Prompting to formułowanie poleceń dla modelu językowego tak, żeby dostać oczekiwany wynik. Obejmuje instrukcję, kontekst, przykłady i wymagany format odpowiedzi. Zero-shot, one-shot i few-shot to trzy podstawowe warianty promptingu, różniące się liczbą przykładów. Bardziej złożone techniki, jak łańcuch myśli czy RAG, budują się na nich.

Jak zrobić dobry prompt?

Dobry prompt mówi, co model ma zrobić, dla kogo, w jakim formacie i z jakich danych ma korzystać. Zacznij od jasnej instrukcji bez przykładów, sprawdź wynik i dopiero przy złym formacie albo złych etykietach dodaj 3-5 zróżnicowanych przykładów. Dane i dokumenty umieszczaj na początku, a pytanie na końcu.

Co to jest prompt w kontekście ChatGPT?

Prompt w ChatGPT to wiadomość, którą wpisujesz w okno rozmowy: pytanie, polecenie albo polecenie z przykładami. ChatGPT traktuje całą rozmowę jako kontekst, więc wzór podany kilka wiadomości wcześniej też działa jak przykład few-shot. Stałe instrukcje dla wszystkich rozmów ustawia się w personalizacji albo w projektach.

Czym różni się zero-shot od few-shot?

Zero-shot to polecenie bez przykładów, few-shot zawiera kilka przykładów „wejście – wynik” przed właściwym zadaniem. Zero-shot jest tańszy i wystarcza modelom rozumującym przy zadaniach łatwych do opisania. Few-shot daje przewidywalny format i etykiety, ale zwiększa liczbę tokenów i może utrwalić stronniczość przykładów.

Źródła

Ostatnia aktualizacja: · Zgłoś poprawkę

Podobne wpisy