„Vypadá to dobře“ není měřítko. Bez evaluace nepoznáš, jestli nová verze promptu pomohla, jestli ti výměna modelu něco nerozbila a jestli aplikace funguje i na vstupech, které tě nenapadly. Je to zdaleka nejpřehlíženější část práce s LLM a přitom je to jediné, co odděluje demo od produktu.
Základ: testovací sada
Začni tím nejjednodušším, co funguje: tabulka reálných vstupů a očekávaných výstupů.
vstup očekávané
"Kde je moje objednávka 4821?" kategorie=doprava, potřebuje_lidsky=ne
"Chci vrátit peníze, jste podvodníci" kategorie=reklamace, potřebuje_lidsky=ano
"" kategorie=nezname
"asdfgh" kategorie=nezname
Dvacet až padesát položek stačí na to, abys poznal, že se něco zlepšilo nebo rozbilo. Do sady patří i ošklivé vstupy: prázdný text, cizí jazyk, nesmysl, pokus o manipulaci, velmi dlouhý vstup.
💡 Sbírej sadu z produkce. Každý případ, kdy si někdo stěžoval, patří do testů, přesně tak vzniká sada, která má cenu.
Jak vyhodnocovat
Podle typu úlohy:
| Typ výstupu | Jak měřit |
|---|---|
| Klasifikace, extrakce | Přesná shoda s očekávaným (úspěšnost v %) |
| Strukturovaný JSON | Prošla validace? Sedí klíčová pole? |
| RAG odpověď | Je správný dokument mezi nalezenými? Odpovídá text podkladům? |
| Volný text | Kritéria + hodnocení modelem nebo člověkem |
Retrieval měř zvlášť od generování. Když RAG odpovídá špatně, chceš vědět, jestli selhalo hledání, nebo model.
LLM jako porotce
Volný text nejde porovnat na shodu, tak se používá druhý model jako hodnotitel. Funguje to překvapivě dobře, ale jen když mu dáš konkrétní kritéria místo „ohodnoť kvalitu 1–10“:
Ohodnoť odpověď podle podkladů. Vrať JSON:
{
"vychazi_z_podkladu": true/false, // netvrdí nic, co v podkladech není?
"odpovida_na_otazku": true/false,
"uvadi_zdroj": true/false,
"problem": "stručně, když něco selhalo"
}
Na co dát pozor:
- Hodnoť jednu věc po druhé, ne všechno naráz.
- Nenech model hodnotit vlastní odpověď ve stejném volání, má sklon si přisvědčit.
- Ověř si porotce na dvaceti ručně ohodnocených případech. Pokud se s tebou neshodne, nemá cenu mu věřit ani ve zbytku.
📐 Perplexity, MMLU, pass@k a Elo a proč se jim nedá věřit, rozebírá perplexity a benchmarky.
Jak velká musí být testovací sada
Tohle je otázka, kterou skoro nikdo nepoloží, a přitom rozhoduje o tom, jestli tvoje čísla něco znamenají. Když máš dvacet případů a projde jich sedmnáct, máš úspěšnost 85 %. Jenže interval spolehlivosti je zhruba od 62 % do 97 %. To znamená, že změna z 85 % na 80 % ti neřekne vůbec nic.
| Velikost sady | Rozlišíš rozdíl zhruba |
|---|---|
| 20 | 25 procentních bodů |
| 50 | 15 procentních bodů |
| 200 | 7 procentních bodů |
| 1000 | 3 procentní body |
Praktický důsledek: se sadou o padesáti případech nemá smysl ladit prompt na jednotky procent, protože ta čísla jsou šum. Buď si postav větší sadu, nebo přijmi, že hledáš jen velké rozdíly.
Trik, který pomáhá: porovnávej párově. Místo „starý prompt 82 %, nový 85 %“ se dívej jen na případy, kde se ty dvě verze liší. Když jich je pět a nový vyhrál ve čtyřech, víš víc než z celkových procent, a navíc si ty případy můžeš přečíst.
Když neexistuje jediná správná odpověď
U shrnování, psaní a poradenství není co porovnávat na shodu. Máš tři možnosti, v pořadí podle spolehlivosti:
- Rozlož to na ověřitelné podotázky. Místo „je to shrnutí dobré“ se ptej „obsahuje datum splatnosti“, „obsahuje částku“, „neobsahuje nic, co v originále není“. Z měkkého úsudku se stane sada tvrdých kontrol.
- Porovnávej dvě verze, nehodnoť jednu. Modelu jako porotci jde mnohem líp říct „A je lepší než B“ než dát absolutní známku, protože nemusí kalibrovat stupnici.
- Nech hodnotit člověka na vzorku a porotce zkalibruj proti němu.
Ke třetímu bodu jedna věc, která se přeskakuje: porotce se musí ověřit. Vezmi padesát případů, ohodnoť je ručně, a spočítej, jak často se s tebou model shodne. Když je shoda pod osmdesát procent, tvoje automatická evaluace měří spíš vkus porotce než kvalitu produktu.
Co sledovat v produkci
Evaluace nekončí před nasazením:
- Podíl fallbacků: jak často model neodpoví nebo neprojde validace.
- Úspěšnost nástrojů: kolik volání skončilo chybou.
- Spotřeba tokenů a cena na dotaz: utíká ti to nahoru?
- Latence p95: ne průměr, ten ti tu bolest schová.
- Zpětná vazba uživatelů: palec nahoru/dolů u odpovědi je nejlevnější zdroj testovacích dat.
Regresní past
Modely se mění pod rukama: poskytovatel vydá novou verzi a chování se posune, aniž bys cokoli udělal. Proto:
- Připni si verzi modelu, když to jde.
- Před přechodem na novou verzi projeď sadu.
- Verzuj prompty stejně jako kód a zaznamenávej, která verze promptu vygenerovala kterou odpověď.
Cvičení
- Na sadě 20 případů projde 17, tedy 85 %. Po úpravě promptu projde 18, tedy 90 %. Můžeš tvrdit, že je nová verze lepší?
- Model jako porotce dává tvé aplikaci konzistentně 4,5 z 5. Co si ověříš dřív, než tomu uvěříš?
Náčrt řešení: rozbal, až si cvičení zkusíš sám
- Ne. Rozdíl jednoho případu z dvaceti je hluboko v šumu; interval spolehlivosti u 85 % na dvaceti vzorcích sahá zhruba od 62 % do 97 %. Máš dvě možnosti: zvětšit sadu na stovky případů, nebo porovnávat párově, tedy dívat se jen na případy, kde se obě verze liší. Když se liší v pěti a nová vyhraje ve čtyřech, víš mnohem víc než z celkových procent, a navíc si těch pět můžeš přečíst.
- Jestli se porotce shoduje s člověkem. Vezmi padesát případů, ohodnoť je ručně a spočítej shodu. Pod osmdesát procent měříš vkus porotce, ne kvalitu produktu. Zvlášť si dej pozor na to, že modely jako porotci mají sklon odměňovat delší a uhlazenější odpovědi, takže vysoké skóre může znamenat jen to, že tvoje aplikace hezky mluví.
Shrnutí
- Bez testovací sady se hádáš s dojmem; dvacet až padesát reálných případů stačí.
- Klasifikaci měř přesnou shodou, volný text kritérii přes model-porotce.
- U RAG měř zvlášť vyhledávání a zvlášť odpověď.
- Modely se mění, připínej verze, verzuj prompty a před upgradem projeď sadu.
Změnil jsi prompt a poslední tři odpovědi byly lepší. Stačí to jako důkaz zlepšení?
Ne. Generování je nedeterministické, takže tři případy nic nedokazují. Zlepšení se pozná až na celé testovací sadě reálných vstupů, ideálně opakovaně, aby se vyloučila náhoda.
Jak měřit kvalitu RAG aplikace?
Odděleně. Nejdřív retrieval: u každé testovací otázky víš, který dokument obsahuje odpověď, a měříš, jak často je mezi nalezenými. Pak generování: jestli odpověď skutečně vychází z podkladů, odpovídá na otázku a uvádí zdroj.
Používáš druhý model jako hodnotitele kvality. Co si musíš ověřit, než mu začneš věřit?
Že se shoduje s lidským hodnocením, na vzorku dvaceti ručně ohodnocených případů. A dát mu konkrétní kritéria s binárními otázkami místo obecné známky, protože jinak hodnotí nahodile.
