Few-shot vs zero-shot prompting: kiedy używać każdej metody
Praktyczny przewodnik po wyborze właściwego podejścia do promptowania, z gotowymi do skopiowania przykładami i prostą ramą decyzyjną.
Wklejasz prompt do ChatGPT. Wynik jest... w porządku. Ale widziałeś, jak inni uzyskują znacznie lepsze rezultaty, dodając do swoich promptów „przykłady”. Czy też powinieneś tak robić? Ile przykładów? Czy to w ogóle ma znaczenie przy twoim konkretnym zadaniu?
Te pytania pojawiają się nieustannie, a terminologia wcale nie pomaga. „Zero-shot”, „few-shot”, „one-shot” — brzmi to bardziej jak słownictwo z fotografii niż praktyczne wskazówki. Ten przewodnik przebija się przez żargon i daje ci jasną ramę decyzyjną, plus kompletne prompty, które możesz skopiować i samodzielnie przetestować.
Co tak naprawdę oznacza zero-shot prompting
Zero-shot prompting polega na powierzeniu AI zadania bez pokazywania jej żadnych przykładów tego, czego oczekujesz. Opisujesz, czego potrzebujesz, a model sam wymyśla, jak to zrobić, na podstawie swojego treningu.
Oto przykład zero-shot prompta do podsumowania spotkania:
Summarize the following meeting notes into 3-5 bullet points covering the key decisions made.
Meeting notes:
{{meeting_notes}}
I tyle. Żadnych przykładów „dobrych” podsumowań, żadnych przykładowych wejść i wyjść. Ufasz modelowi, że rozumie, jak wygląda podsumowanie i co znaczy „kluczowe decyzje”. W wielu zadaniach to działa zaskakująco dobrze.
Co tak naprawdę oznacza few-shot prompting
Few-shot prompting polega na umieszczeniu w prompcie 2–5 przykładów, które pokazują wzorzec, jaki ma śledzić AI. Mówisz w gruncie rzeczy: „tak właśnie chcę, żebyś to robił”, zanim podasz właściwe zadanie.
Oto to samo zadanie podsumowania spotkania, ale z przykładami:
Summarize meeting notes into 3-5 bullet points covering key decisions.
Example 1:
Input: "Team discussed Q3 targets. Sarah proposed increasing the sales goal by 15%. Mark disagreed, suggested 10% was more realistic given current pipeline. Team voted and agreed on 12%. Also decided to postpone the website redesign until Q4."
Output:
- Agreed on 12% sales goal increase for Q3 (compromise between 15% and 10% proposals)
- Postponed website redesign to Q4
Example 2:
Input: "Budget review meeting. Current spending is 8% over forecast. CFO recommended cutting travel budget by 50% and freezing new hires for 60 days. CEO approved both measures effective immediately."
Output:
- Cut travel budget by 50% (effective immediately)
- 60-day hiring freeze approved
- Response to 8% budget overrun
Now summarize this:
{{meeting_notes}}
Zauważ różnicę. Przykłady pokazują modelowi dokładnie, jakiego formatu oczekujesz (punkty z kontekstem w nawiasach), jaki poziom szczegółowości uwzględnić i jak obsłużyć wiele decyzji. Model uczy się twoich preferencji w kontekście — bez potrzeby fine-tuningu.
Kluczowe różnice w pigułce
Oto jak oba podejścia wypadają w czynnikach, które liczą się najbardziej:
Szybkość: Zero-shot jest szybszy. Mniej tokenów do przetworzenia oznacza szybszą odpowiedź.
Koszt: Zero-shot jest tańszy. Płacisz za token, a przykłady się kumulują.
Nakład pracy na konfigurację: Zero-shot wymaga prawie żadnego. Few-shot wymaga znalezienia lub stworzenia dobrych przykładów.
Trafność przy prostych zadaniach: Mniej więcej taka sama. Współczesne modele dobrze radzą sobie z prostymi prośbami w obu wariantach.
Trafność przy złożonych/niestandardowych zadaniach: Few-shot zwykle wygrywa. Gdy potrzebujesz konkretnego formatowania albo terminologii branżowej, przykłady robią wymierną różnicę.
Kompromis jest jasny: zero-shot jest prostszy i tańszy, ale few-shot daje ci większą kontrolę nad wynikiem. Pytanie brzmi, kiedy ta dodatkowa kontrola jest warta swojej ceny.
Kiedy zero-shot sprawdza się najlepiej
Zero-shot prompting błyszczy, gdy zadanie jest czymś, co model już „rozumie” ze swojego treningu. To obejmuje:
Pytania ogólnowiedzowe: Prośby o wyjaśnienia, definicje czy informacje faktograficzne. Model wie, jak wygląda dobre wyjaśnienie.
Kreatywny burza mózgów: Generowanie pomysłów, pisanie pierwszych szkiców czy wymyślanie wariantów. Tu chcesz różnorodności, a nie trzymania się konkretnego wzorca.
Standardowe streszczanie: Skracanie artykułów, e-maili czy dokumentów, gdy nie potrzebujesz określonego formatu.
Tłumaczenie: Przekład tekstu między językami, na których model był trenowany.
Prosta klasyfikacja: Przypisywanie elementów do typowych kategorii (pozytywne/negatywne, pilne/niepilne), gdy kategorie same się tłumaczą.
Dobra reguła kciuka: jeśli potrafisz opisać, czego chcesz, prostym językiem, a człowiek zrozumiałby to bez przykładów, zero-shot prawdopodobnie zadziała.
Schemat blokowy pokazujący proces decyzyjny: zacznij od zero-shot, oceń wyniki, dodawaj przykłady tylko wtedy, gdy są potrzebne
Kiedy few-shot wart jest dodatkowych tokenów
Few-shot prompting zarabia na siebie wtedy, gdy wynik musi trzymać się wzorców, których model nie wywnioskuje z samej instrukcji:
Niestandardowe formatowanie: Gdy potrzebujesz wyjść w określonej strukturze — JSON z konkretnymi polami, tabele z dokładnie określonymi kolumnami, punkty w określonym stylu. Przykłady pokazują format lepiej, niż opisy go tłumaczą.
Twoje własne kategorie klasyfikacji: Jeśli sortujesz e-maile od klientów do kategorii w rodzaju „pytanie-o-rozliczenie”, „prośba-o-funkcję”, „zgłoszenie-błędu” i „ogólne-zapytanie”, pokazanie przykładów dla każdej z nich pomaga modelowi zrozumieć twoje definicje.
Dopasowanie głosu marki lub tonu: Chcesz, żeby AI pisała tak, jak istniejące teksty twojej firmy? Pokaż jej 2–3 przykłady tego głosu. Instrukcje w stylu „pisz profesjonalnie, ale przyjaźnie” są mgliste; przykłady są konkretne.
Terminologia branżowa: Jeśli twoja branża używa żargonu lub skrótów, które mają inne znaczenia w innych kontekstach, przykłady uczą model twojego kontekstu.
Przypadki brzegowe i niuanse: Wykrywanie sarkazmu, ironii czy subtelnych rozróżnień, na których zero-shot się potyka. Badania pokazują, że few-shot prompting znacząco poprawia obsługę brzegowych przypadków sentymentu, takich jak negacja i sarkazm.
Jedno z badań pokazało, że przy klasyfikacji sentymentu na Twitterze few-shot prompting z zaledwie 20–50 przykładami zbliżał się do wydajności modeli dostrojonych na ponad 10 000 przykładach. To jest siła dobrze dobranych demonstracji.
Jeśli zauważasz, że budujesz bibliotekę few-shotowych promptów do różnych zadań, narzędzie takie jak PromptNest pomaga zapisywać je z wbudowanymi zmiennymi, takimi jak {{meeting_notes}} — wypełniasz puste miejsca przy kopiowaniu, a kompletny prompt jest gotowy do wklejenia.
Schemat „Zacznij od zera, dorzuć przykłady, gdy trzeba”
Oto praktyczne podejście, które oszczędza i czas, i tokeny:
Krok 1: Zacznij od zero-shot. Napisz jasny prompt opisujący, czego chcesz. Bądź konkretny co do zadania, ale jeszcze nie dodawaj przykładów.
Krok 2: Oceń wynik. Czy daje ci to, czego potrzebujesz? Jeśli tak — gotowe. Jeśli nie, ustal co poszło nie tak — format? ton? brakujące szczegóły? Zupełne niezrozumienie zadania?
Krok 3: Dodaj celowane przykłady. Stwórz 2–3 przykłady, które pokazują dokładnie to, w czym model się pomylił. Jeśli format był nie taki — pokaż właściwy format. Jeśli ton był nietrafiony — pokaż właściwy ton.
Ten schemat ma znaczenie, bo nie zgadujesz, czy potrzebujesz przykładów — reagujesz na realne braki. Czasem dopisanie „pomyśl krok po kroku” do zero-shotowego prompta naprawia problemy z rozumowaniem bez potrzeby przykładów. Badania potwierdzają, że zero-shotowy chain-of-thought często wygrywa z few-shot przy zadaniach wymagających rozumowania.
Ile przykładów naprawdę potrzebujesz?
Badania konsekwentnie wskazują na złoty środek 2–5 przykładów dla większości zadań. Oto co mówią dane:
- Pierwsze 2–3 przykłady dają największy wzrost trafności
- Po 4–5 przykładach zwroty gwałtownie spadają
- Więcej przykładów może wręcz pogarszać wyniki, wprowadzając sprzeczne wzorce
- Jakość przykładów liczy się bardziej niż ilość — trzy świetne przykłady biją dziesięć przeciętnych
Jest też ważne ustalenie dotyczące kolejności przykładów: badania pokazują, że sekwencja przykładów wpływa na wyniki, a optymalne uporządkowanie potrafi zdecydować o różnicy między dobrym a słabym efektem. Jeśli twój few-shotowy prompt nie działa, spróbuj najpierw zmienić kolejność przykładów, zanim dorzucisz kolejne.
Ilustracja pokazująca dodawanie kart z przykładami do prompta, z malejącymi zwrotami po pierwszych kilku
W większości zastosowań zacznij od 2 przykładów. Jeśli trafność nie jest tam, gdzie ją potrzebujesz, dorzuć trzeci, który pokrywa inny wariant. Rzadko będziesz potrzebować więcej niż 4.
Chain-of-thought: złoty środek dla rozumowania
Jest też trzecia opcja, która szczególnie dobrze sprawdza się przy matematyce, logice i problemach wieloetapowych: chain-of-thought prompting. Zamiast pokazywać przykłady wejście–wyjście, prosisz model, żeby „pomyślał krok po kroku”.
Zero-shotowy chain-of-thought wygląda tak:
A store has 45 apples. They sell 12 in the morning and receive a shipment of 30 more. Then they sell 18 in the afternoon. How many apples do they have at closing?
Let's work through this step by step.
Ta prosta fraza — „Let's work through this step by step” — skłania model do pokazania swojego rozumowania zamiast skakania od razu do odpowiedzi. Przy złożonym rozumowaniu często bije zarówno zero-shot, jak i few-shot.
Niedawne badania z arXiv pokazały, że dla mocnych modeli, takich jak GPT-4 i Claude, zero-shotowy chain-of-thought często wygrywa z few-shot w zadaniach wymagających rozumowania. Przykłady mogą wręcz ograniczać tok myślenia modelu, zamiast mu pomagać.
Używaj chain-of-thought, gdy:
Zadanie wymaga wielu logicznych kroków
Potrzebujesz, by model wyjaśnił swoje rozumowanie (przydatne do wyłapywania błędów)
W grę wchodzą matematyka, logika kodu lub problemy analityczne
Chcesz zweryfikować podejście modelu, nie tylko jego odpowiedź
Kompletne przykłady promptów do skopiowania
Zobaczmy trzy podejścia obok siebie na realnych zadaniach. Wszystkie prompty zostały przetestowane z GPT-4 i Claude i są gotowe do użycia.
Zadanie 1: Klasyfikacja tonu wiadomości e-mail
Wersja zero-shot:
Classify the tone of this customer email as: frustrated, satisfied, neutral, or urgent.
Email:
{{email_text}}
Tone:
Wersja few-shot (lepsza dla przypadków brzegowych):
Classify customer email tone as: frustrated, satisfied, neutral, or urgent.
Email: "I've been waiting 3 weeks for my order. This is ridiculous. I want a refund NOW."
Tone: frustrated
Email: "Just wanted to say thanks — the product arrived early and works great!"
Tone: satisfied
Email: "Hi, can you confirm my order shipped? Order #12345."
Tone: neutral
Email: "Our system is down and we need the replacement part TODAY or we lose the contract."
Tone: urgent
Email: {{email_text}}
Tone:
Wersja few-shot pomaga modelowi zrozumieć twoje konkretne definicje. „Pilne” kontra „sfrustrowane” bywa niejednoznaczne — przykłady jasno wyznaczają twoje granice.
Zadanie 2: Przepisanie opisu produktu
Wersja zero-shot:
Rewrite this product description to be more engaging and benefit-focused. Keep it under 100 words.
Original: {{product_description}}
Rewritten version:
Wersja few-shot (lepsza dla spójności głosu marki):
Rewrite product descriptions to be engaging and benefit-focused. Match this style:
Original: "Stainless steel water bottle. 24oz capacity. Keeps drinks cold for 24 hours."
Rewritten: "Stay hydrated all day with our sleek 24oz steel bottle. Your morning coffee stays hot through your commute. Your afternoon water stays ice-cold at the gym. One bottle, endless possibilities."
Original: "Wireless earbuds. 8-hour battery. Noise cancelling."
Rewritten: "Eight hours of your favorite podcasts, uninterrupted. Our wireless earbuds block out the noise so you can focus on what matters — whether that's deep work, your workout playlist, or finally finishing that audiobook."
Original: {{product_description}}
Rewritten:
Wersja few-shot uczy konkretnego stylu copywriterskiego — opartego na korzyściach, konwersacyjnego, z konkretnymi zastosowaniami. Zero-shot dałby ci jakieś przepisanie, ale niekoniecznie twoim głosem.
Zadanie 3: Strukturyzacja zgłoszenia błędu
Wersja zero-shot:
Convert this bug report into a structured format with: Summary, Steps to Reproduce, Expected Behavior, and Actual Behavior.
Bug report: {{bug_report}}
Wersja few-shot (lepsza dla spójnego formatowania):
Convert bug reports into structured format.
Input: "The app crashes when I try to upload a PDF. I was on the dashboard, clicked upload, selected a 5MB PDF, and it just closed. Should show the file in my uploads but instead the whole app dies."
Output:
**Summary:** App crashes when uploading PDF files
**Steps to Reproduce:**
1. Navigate to dashboard
2. Click upload button
3. Select a PDF file (tested with 5MB file)
**Expected:** File appears in uploads section
**Actual:** Application crashes/closes unexpectedly
---
Input: {{bug_report}}
Output:
W dokumentacji technicznej spójność ma znaczenie. Wersja few-shot sprawia, że każde zgłoszenie błędu trzyma się tej samej struktury i tego samego poziomu szczegółowości.
Szybka rama decyzyjna
Gdy patrzysz na nowe zadanie, przejdź przez te pytania:
1. Czy zadanie jest proste i dobrze określone? → Zacznij od zero-shot
2. Potrzebujesz konkretnego formatu, którego model może nie zgadnąć? → Sięgnij po few-shot
3. Czy zadanie wymaga rozumowania wieloetapowego? → Najpierw spróbuj zero-shotowego chain-of-thought
4. Potrzebujesz spójnego głosu marki albo terminologii branżowej? → Użyj few-shot z przykładami w tym głosie
5. Czy zero-shot dał ci 80% tego, czego potrzebujesz? → Zostaw to. Perfekcja nie jest warta trzykrotnej liczby tokenów.
Celem nie jest sięganie po najwymyślniejszą technikę — celem jest uzyskanie dobrych wyników wydajnie. Zero-shot to ustawienie domyślne. Komplikuj tylko wtedy, gdy prostsze podejścia zawodzą.
Jak wprowadzić to w życie
Najlepszym sposobem, żeby to przyswoić, są eksperymenty. Weź zadanie, które wykonujesz regularnie — podsumowywanie raportów, redagowanie e-maili, kategoryzowanie opinii — i wypróbuj oba podejścia. Zauważ, gdzie zero-shot zawodzi. Zauważ, gdzie few-shot robi realną różnicę.
Gdy znajdziesz prompty, które działają, zapisz je gdzieś, gdzie naprawdę będziesz mógł je później odnaleźć. Jeśli budujesz kolekcję promptów z przykładami i zmiennymi, PromptNest to natywna aplikacja na Maca ($19.99 jednorazowo w Mac App Store, bez subskrypcji, bez konta, działa lokalnie), która utrzymuje je uporządkowane, przeszukiwalne i dostępne pod skrótem klawiszowym z dowolnej aplikacji. Koniec z grzebaniem po rozproszonych notatkach w poszukiwaniu tego idealnego few-shotowego prompta, którego napisałeś trzy tygodnie temu.
Zacznij prosto. Komplikuj, gdy trzeba. Zapisuj to, co działa. Cała strategia.