AI série rozhovorů 12: Jak optimalizovat prompt?
Optimalizace promptů (Prompt Engineering / Optimization) je klíčovou dovedností, jak přimět velké jazykové modely „poslouchat“, zejména v systémech RAG, kde přímo určuje, zda se model bude ochotně držet načteného obsahu, vyhne se halucinacím a dodrží formát výstupu.
1. Základní principy optimalizace promptů
- Jasnost > Složitost: Jednoduché, přímé instrukce jsou často účinnější než efektní myšlenkové řetězce.
- Dostatečná omezení: Jasně modelu řekněte, „co může a co nesmí dělat“.
- Poskytněte příklady: Několik příkladů (few-shot) je stabilnější než žádný (zero-shot).
- Ověřitelnost: Nechte model uvádět zdroje nebo míru jistoty, aby bylo možné výstup dále zpracovat.
- Iterativní optimalizace: Začněte s výchozím bodem, vždy měňte jen jednu proměnnou a porovnávejte výsledky.
2. Konkrétní techniky optimalizace (od snadných po složité)
1. Nastavení role (System Prompt)
Jste profesionální asistent zákaznické podpory. Můžete odpovídat pouze na základě níže uvedených [Referenčních materiálů].
Pokud neznáte odpověď, přímo řekněte „V materiálech nejsou relevantní informace“ – nevymýšlejte si.
- Účel: Nastavit hranice a tón.
- Body ladění: Tón (odborný/přátelský), míra omezení (přísná/volná).
2. Jasné instrukce
❌ Špatně: „Odpovězte na otázku uživatele.“
✅ Dobře: „Pouze na základě níže uvedených [Referenčních materiálů] odpovězte. Pokud referenční materiály neobsahují odpověď, odpovězte „Na tuto otázku nedokážu odpovědět“.“
3. Řízení výstupního formátu
Prosím výstup v následujícím JSON formátu:
{
"answer": "Vaše odpověď",
"confidence": "vysoká/střední/nízká",
"sources": [1, 3]
}
- Použití: Usnadňuje zpracování, citování a ladění.
4. Příklady few-shot (velmi účinné)
Příklad 1:
Otázka: Kolik dní dovolené?
Referenční materiály: Pravidla dovolené: 1 rok = 5 dní, 10 let = 10 dní.
Odpověď: 1 rok = 5 dní, 10 let = 10 dní.
Příklad 2:
Otázka: Jak se počítá přesčas?
Referenční materiály: Přesčas v pracovní den = 1,5násobek, o víkendu = 2násobek.
Odpověď: V pracovní den 1,5násobek, o víkendu 2násobek.
Nyní odpovězte:
Otázka: {otázka uživatele}
Referenční materiály: {načtený obsah}
Odpověď:
- Tip: Příklady by měly pokrývat různé úrovně obtížnosti, nejlépe včetně případu, kdy nelze odpovědět.
5. Vynucení citací
Na konec odpovědi uveďte číslo zdroje ve formátu [citation:X]. Například: „Dovolená činí 5 dní [citation:1].“
Pokud kombinujete více zdrojů, uveďte je samostatně.
6. Nastavení prahu pro odmítnutí
- Pevný limit: „Pokud referenční materiály s otázkou vůbec nesouvisí, odpovězte „Materiály nesouvisejí“.“
- Měkký limit: Kombinujte s mírou spolehlivosti načtení – při poklesu pod práh automaticky aktivujte větev odmítnutí.
7. Myšlenkový řetězec (Chain-of-Thought) pro vícekrokové usuzování
Otázka: Kdo je šéf Zhang Sana?
Kroky: 1. Nejprve zjistěte oddělení Zhang Sana. 2. Poté zjistěte vedoucího toho oddělení. 3. Uveďte konečnou odpověď.
Postupujte podle kroků a poté uveďte výstup.
8. Negativní instrukce (Negative Prompting)
Nevymýšlejte si odpovědi. Nepoužívejte vágní výrazy jako „možná“, „pravděpodobně“. Nevydávejte žádná čísla mimo referenční materiály.
3. Jak hodnotit kvalitu promptu?
| Metrika | Význam | Jak měřit |
|---|---|---|
| Věrnost | Zda odpověď striktně vychází z referenčních materiálů | Ručně nebo pomocí RAGAS Faithfulness |
| Přesnost odmítnutí | Zda model odmítne odpovědět, když má | Na testovací sadě bez odpovědí |
| Dodržení formátu | Zda výstup odpovídá JSON/citacím | Regulární výrazy |
| Spokojenost uživatele | Zda je odpověď užitečná | Online zpětná vazba / A/B testování |
Doporučení: Připravte si malou testovací sadu (20–50 okrajových případů), po každé změně promptu ji spusťte a zaznamenejte změny.
4. Časté nástrahy a směry ladění
| Problém | Možná příčina | Metoda ladění |
|---|---|---|
| Model ignoruje referenční materiály a odpovídá sám | Instrukce není dostatečně silná | Změňte na „Pouze na základě následujících materiálů“ a pomocí few-shot ukažte odmítnutí |
| Model vždy říká „Nevím“ | Příliš vysoký práh odmítnutí | Snižte práh nebo zkontrolujte kvalitu načtení |
| Výstupní formát je neuspořádaný, není JSON | Instrukce není jasná | Dodejte přísný příklad formátu nebo použijte function calling |
| Odpověď je příliš dlouhá/krátká | Neuvedena délka | „Odpovězte nejvýše 3 větami“ |
| Vícekrokové usuzování selhává | Nedostatečná schopnost modelu | Požádejte o postupné uvažování nebo použijte silnější model |
| Halucinace čísel/dat | Model spoléhá na vlastní znalosti | Zdůrazněte „nepoužívejte žádná čísla z paměti, pouze z materiálů“ |
评论
暂无已展示的评论。
发表评论(匿名)