Přeskočit na obsah

Few-shot prompting — ukaž, místo popisuj

⏱ Odhadovaný čas 45 min
📍 Pozice Den 2, blok 2 / 7
🎯 Po tomto bloku budeš umět
  • Rozlišíš zero-shot / 1-shot / few-shot
  • Víš, kdy se vyplatí dát 1 příklad a kdy 3
  • Napíšeš few-shot prompt, který vrací konzistentní formát výstupu

Klíčová myšlenka dne 🎯

Sekce “Klíčová myšlenka dne 🎯”

Místo popisu „chci, aby odpověď vypadala takhle” — ukaž LLM PŘÍKLAD, jak má vypadat.

LLM je jazykový matcher vzorů. Pokud mu dáš 1-3 příklady vstup → výstup, okamžitě se přizpůsobí. Je to dramaticky efektivnější než abstraktní popis.

🧪 Experiment 1: Zero-shot vs 1-shot (10 min)

Sekce “🧪 Experiment 1: Zero-shot vs 1-shot (10 min)”

Zero-shot (bez příkladu)

Sekce “Zero-shot (bez příkladu)”
  1. Otevři claude.ai, nový chat.

  2. Napiš:

    Klasifikuj tuhle recenzi jako pozitivní, negativní nebo neutrální:
    "Jídlo bylo OK, ale obsluha nám trvala dlouho a účet přišel
    navíc s nějakou chybou. Celkem jsme byli spokojení, ale
    nevím, jestli se vrátíme."
  3. Sleduj odpověď. Formát je volný — pravděpodobně dostaneš: „Neutrální. Odůvodnění: …” nebo 3 odstavce vysvětlení nebo jen jedno slovo. Nekonzistentní.

1-shot (jeden příklad)

Sekce “1-shot (jeden příklad)”
  1. V novém chatu (důležité — předchozí kontext nesmí ovlivnit):

    Klasifikuj recenzi jako "POZITIVNÍ", "NEGATIVNÍ" nebo "NEUTRÁLNÍ".
    Formát odpovědi: jedno slovo ve velkých písmenech, pak důvod v 1 větě.
    PŘÍKLAD:
    Recenze: "Super večer, obsluha parádní, přijdeme znovu!"
    Odpověď: POZITIVNÍ. Zákazník chválí obsluhu a plánuje návrat.
    ---
    Recenze: "Jídlo bylo OK, ale obsluha nám trvala dlouho a účet přišel
    navíc s nějakou chybou. Celkem jsme byli spokojení, ale
    nevím, jestli se vrátíme."
    Odpověď:
  2. Sleduj. Odpověď je přesně ve formátu: „NEUTRÁLNÍ. Zákazník…” — protože jsi ukázal(a) jeden příklad.

Místo abstraktního popisu „odpověz takhle” jsi LLM ukázal(a) PŘÍKLAD. A ono to pochopilo okamžitě. Tohle je 1-shot prompting.


🧪 Experiment 2: Few-shot (3 příklady) — pro NÁROČNĚJŠÍ formát (10 min)

Sekce “🧪 Experiment 2: Few-shot (3 příklady) — pro NÁROČNĚJŠÍ formát (10 min)”

Někdy 1 příklad nestačí — model nezachytí nuanci. Few-shot (2-5 příkladů) to spraví.

  1. Nový chat:

    Z následujících e-mailů vytáhni:
    1. Jméno odesilatele
    2. Hlavní žádost (1 věta)
    3. Termín (když je, jinak "—")
    PŘÍKLAD 1:
    E-mail: "Ahoj, potřebuju do čtvrtka schválit tu smlouvu, jinak
    nestíháme. Díky, Petr"
    Výsledek:
    - Odesilatel: Petr
    - Žádost: Schválit smlouvu.
    - Termín: čtvrtek
    PŘÍKLAD 2:
    E-mail: "Zdravím, zajímala by mě cena vašich služeb. Můžete poslat
    ceník? — Eva Nováková"
    Výsledek:
    - Odesilatel: Eva Nováková
    - Žádost: Zaslat ceník.
    - Termín: —
    PŘÍKLAD 3:
    E-mail: "Dobrý den, potřebovala bych objednat termín k veterináři
    pro mou kočku. Nejradši příští týden dopoledne. Díky. Alena"
    Výsledek:
    - Odesilatel: Alena
    - Žádost: Objednat termín k veterináři.
    - Termín: příští týden dopoledne
    ---
    Nyní ty:
    E-mail: "Dobrý den, přišlo mi dnes vyúčtování za elektřinu, ale
    zdá se mi nesmyslně vysoké. Byli jsme navíc 2 týdny na dovolené.
    Mohli byste to prověřit? Nejpozději do konce měsíce ať vím.
    Díky, Marie Dvořáková"
    Výsledek:
  2. Odpověď bude přesně ve stejném formátu jako 3 příklady. Toto je few-shot.

  • 1 příklad = model pochopí formát, ale může si ho „zobecnit” jinak.
  • 3+ příklady = model vidí konzistentní vzor napříč různými vstupy a drží se ho přísně.
  • Víc než 5 = už jen marně utrácíš tokeny (a někdy výstup horší — model se utopí v detailech).

Pravidlo: Začni s 2-3 příklady. Přidej další jen pokud výstup není konzistentní.


📚 Teorie rychle (8 min)

Sekce “📚 Teorie rychle (8 min)”

Zero-shot / 1-shot / Few-shot — kdy co

Sekce “Zero-shot / 1-shot / Few-shot — kdy co”
TechnikaKdy použítPříklad úkolu
Zero-shot (bez příkladu)Běžný úkol, model si poradí„Shrň tenhle text do 3 bodů.”
1-shot (1 příklad)Specifický formát výstupu„Přepiš ve stylu … (viz příklad)“
Few-shot (2-5 příkladů)Strukturovaný výstup, přesná extrakce, konzistenceExtrakce dat z e-mailů / recenzí / CV
Many-shot (10+ příkladů)Úzce specifický styl, kde model často selháváRozpoznávání stylu autora, klasifikace

Shot = jeden pár vstup → výstup, který ukážeš modelu jako ukázku.

  • Zero-shot = 0 párů
  • 1-shot = 1 pár
  • Few-shot = 2-5 párů
  • Many-shot = 10+ párů

LLM byl trénován na miliardách příkladů textu. Každý text má kontext následovaný pokračováním. Když mu dáš 3 příklady, LLM si řekne: „aha, tohle je vzor. Čtvrtý bude podobně.” Je to pattern matching na steroidech.


🧪 Experiment 3: Když few-shot POMŮŽE úkolu, kde ZERO-SHOT selhává (12 min)

Sekce “🧪 Experiment 3: Když few-shot POMŮŽE úkolu, kde ZERO-SHOT selhává (12 min)”

Někdy je úkol tak specifický, že zero-shot prostě nedá správnou odpověď. Vyzkoušej se svou variantou:

  1. Nový chat:

    Převeď tuhle adresu na formát JSON:
    "Karel Novák, Václavské náměstí 12/345, 110 00 Praha 1"
  2. Odpověď dostaneš jako JSON, ale pole budou pojmenovaná jak se modelu chce — možná name, možná fullName, možná osoba. Ulice může být rozdělená nebo ne.

Few-shot verze — přesně jak chceš

Sekce “Few-shot verze — přesně jak chceš”
  1. Nový chat:

    Převeď adresu na JSON podle tohoto formátu.
    PŘÍKLAD 1:
    Vstup: "Eva Svobodová, Lipová 23, 602 00 Brno"
    Výstup:
    {
    "jmeno": "Eva",
    "prijmeni": "Svobodová",
    "ulice": "Lipová",
    "cislo_popisne": "23",
    "psc": "602 00",
    "mesto": "Brno"
    }
    PŘÍKLAD 2:
    Vstup: "Jan Procházka, Zelný trh 5/102, 658 01 Brno-střed"
    Výstup:
    {
    "jmeno": "Jan",
    "prijmeni": "Procházka",
    "ulice": "Zelný trh",
    "cislo_popisne": "5/102",
    "psc": "658 01",
    "mesto": "Brno-střed"
    }
    ---
    Vstup: "Karel Novák, Václavské náměstí 12/345, 110 00 Praha 1"
    Výstup:
  2. Dostaneš JSON s přesně stejnými názvy polí jako v příkladech. Deterministický výstup. Tohle je ta síla few-shot.


⚠️ Kdy NEPOUŽÍVAT few-shot

Sekce “⚠️ Kdy NEPOUŽÍVAT few-shot”

Few-shot není vždycky nejlepší:

  1. Krátké úkoly — „Jak se řekne ‘hello’ francouzsky?” → zero-shot stačí.
  2. Kreativní úkoly — dávání příkladů uzavře model do jejich stylu. Pro brainstorming raději zero-shot s volnou rolí.
  3. Reasoning / math problems — tam je lepší Chain of Thought (to probereme v Bloku 03).
  4. Když nemáš dobré příklady — špatné příklady = špatný výstup. Raději žádný než blbý.

Pokračovat na blok 02: Video →