Evaluace LLM: od veřejných benchmarků k vaší zlaté sadě
Tentýž agent, tentýž úkol, deset běhů. Sedm úspěchů vypadá jako 70 %, dokud nespočítáte pass^10 — vyjde přesně nula.
Na této stránce
Tady je ukázka. Agent z kapitoly 23 — stejná smyčka, dva z jeho čtyř nástrojů — dostane adresář pěti logovacích a konfiguračních souborů a jednu otázku.
Q: What is the last line of errors.log about?
turn 1 -> read_file({"path": "errors.log"})
turn 2 -> "The last line of errors.log is:
ERROR worker 7 timed out after 30000 ms."Správně, a nedokazuje to vůbec nic — protože tento přepis je jeden z deseti, které jsem spustil, a vybral jsem ho až poté, co jsem viděl všech deset.
Spusťte identický úkol desetkrát, nezměňte nic kromě sampling seed, a agent odpoví správně sedmkrát. Sedmdesát procent, tedy číslo, které by se objevilo na slidu. Teď se zeptejte na otázku, která zákazníka opravdu zajímá — bude to fungovat pokaždé? — a odpověď je úplně jiné číslo:
t20 7/10 successes = 70 % (95 % Wilson interval: 39.7 % to 89.2 %)
pass^1 70.00 % pass^5 8.33 %
pass^2 46.67 % pass^7 0.83 %
pass^3 29.17 % pass^8 0.00 %
pass^4 16.67 % pass^10 0.00 %Agent tento úkol nikdy nevyřešil desetkrát za sebou a podle těchto důkazů se to od něj ani neočekává. Toto číslo — pass^10 — je to poctivé, téměř nikdy se nepublikuje, a na konci této kapitoly budete vědět, jak ho spočítat, kolik stojí ho spočítat a proč interval vedle 70 % znamená víc než samotných 70 %.
Zobrazit podrobnosti
Co tato kapitola potřebuje z těch předchozích.
- Kapitola 4 kvůli statistice: Wilsonův interval pro podíl, důvod, proč sedmnáct správných z dvaceti nerozlišuje nic, a hloupý baseline jako první požadavek.
- Kapitola 15 kvůli bench: padesátiřádkový harness, párový znaménkový test nad případy, kde se dva systémy neshodnou, a pravidlo, že prompt se měří, neprobírá.
- Kapitola 23 kvůli tomu, co se měří: smyčka, pět cest ven, účtování nákladů a závěrečné pozorování, že harness činí agent řiditelným, ne správným.
Dva panely. TypeScript pro vaši vlastní evaluaci, protože patří do continuous integration vedle vašeho kódu. Python pro druhý panel, protože veřejné benchmarky žijí tam a jedno z měření níže potřebuje logits.
Tři projekty, tři nástroje
Odkaz na sekci: Tři projekty, tři nástrojeTéměř každá hádka o evaluaci jsou dva lidé, kteří měří různé věci. Existují tři projekty a nesdílejí žádný nástroj.
| co evaluujete | otázka | nástroj | kdo ho vlastní |
|---|---|---|---|
| model | je tento model obecně lepší než tamten? | veřejné benchmarky, žebříčky | komunita |
| vaše aplikace | funguje můj prompt, moje retrieval, moje schéma na mých vstupech? | vaše zlatá sada | vy |
| váš agent | dosáhne celá smyčka, s nástroji a vedlejšími efekty, spolehlivě cíle? | úspěšnost úkolu plus pass^k | vy |
Ten zmatek je drahý jedním směrem. Žebříček vám řekne, že model je silný v reasoning na úrovni postgraduálního studia; neřekne vám, zda bude správně směrovat vaše support tickety. A evaluace aplikace, která skóruje jednu odpověď na vstup, agent vůbec nevidí, protože agent má rozdělení trajektorií a jedna odpověď je z něj jediný vzorek. Kapitola 22 pojmenovala třetí řádek a nechala ho prázdný: výkonnostní měřítko, tu část specifikace agent, kterou týmy zapisují jako poslední, nebo nikdy.
Záleží i na pořadí a dodavatel, který vám model prodává, to říká také. Průvodce OpenAI pro agent omezuje výběr modelu na tři kroky v tomto pořadí: „Set up evals to establish a performance baseline“, „Focus on meeting your accuracy target with the best models available“, „Optimize for cost and latency by replacing larger models with smaller ones where possible“.1 Evaluace je první, protože kroky dva a tři nedávají bez čísla smysl.
Zlatá sada a co vám opravdu koupí dvacet případů
Odkaz na sekci: Zlatá sada a co vám opravdu koupí dvacet případůZlatá sada je seznam vstupů, u každého je zapsaná odpověď, a grader, který rozhodne, zda výstup odpovídá. Je nudná, je malá a je to jediný artefakt v této kapitole, který je váš. Ta zde postavená má dvacet úkolů nad adresářem pěti souborů — ne tří z kapitoly 23, takže odpovědi nejsou stejné — a grader je napsaný dřív, než agent běží:
export type Task = {
id: string;
prompt: string;
answer: string; // the fact, in words, for a human and for a judge
must: RegExp[]; // ALL must match the final answer
mustNot?: RegExp[]; // NONE may match
};
export const GOLDEN: Task[] = [
{ id: "t04", prompt: "Which file is the largest?", answer: "access.log",
must: [/access\.log/i], mustNot: [/errors\.log/i, /notes\.txt/i] },
{ id: "t12", prompt: "Which HTTP status codes appear in access.log? List all of them.",
answer: "200, 429 and 500", must: [/200/, /429/, /500/] },
// ...eighteen more
];Dvě vlastnosti jsou nosné. Seznam mustNot existuje proto, že model, který jmenuje tři soubory včetně toho správného, neodpověděl. A answer je napsané prózou i vzory, protože člověk i judge ho budou později potřebovat — a zapsat stejný fakt dvakrát ve dvou notacích je způsob, jak zjistíte, že se sami se sebou neshodnete na tom, co ten úkol vlastně byl.
Teď tabulka, která rozhoduje. Čtyři kandidátní systémy, stejných dvacet úkolů, accuracy s intervalem a dva sloupce, které tabulka samotných accuracy vždy skrývá:
| system | correct | accuracy, 95 % Wilson | cost per solved task | mean latency |
|---|---|---|---|---|
| A — no tools, greedy | 2/20 | 10.0 % [2.8, 30.1] | $0.004649 | 663 ms |
| B — tools, terse prompt | 5/20 | 25.0 % [11.2, 46.9] | $0.005576 | 1,362 ms |
| C — tools, guided prompt | 2/20 | 10.0 % [2.8, 30.1] | $0.013071 | 930 ms |
| D — C, best of 3 at T = 0.7 | 1/20 | 5.0 % [0.9, 23.6] | $0.073532 | 2,628 ms |
Čtěte intervaly dřív než vítěze. Rameno B sahá od 11 % do 47 %; rameno A od 3 % do 30 %. Překrývají se po většině délky, což je zjištění z kapitoly 4 přesně tam, kde bylo slíbeno: dvacet případů neumí seřadit čtyři systémy. Kapitola 15 to zpřesnila tím, že místo toho položila párovou otázku — v případech, kde se dvě ramena neshodnou, jak jednostranné je rozdělení? — protože sdílená obtížnost sady se vyruší. Tady je každá dvojice:
A vs B +0 / -3 p = 0.2500 B vs C +4 / -1 p = 0.3750
A vs C +2 / -2 p = 1.0000 B vs D +4 / -0 p = 0.1250
A vs D +2 / -1 p = 1.0000 C vs D +1 / -0 p = 1.0000Ani jedno ze šesti porovnání není prokázané. Nejlepší rameno poráží rameno bez nástrojů o patnáct bodů a stojí to na třech diskordantních případech. Dvacet případů ukáže mechanismus a neumí vybrat dodavatele; tvrdit v meetingu opak je způsob, jak koupíte špatný model.
Jednu věc tato tabulka prokazuje, a je to sloupec, který nikdo neuvádí. Rameno D stojí třináctkrát víc než rameno B na vyřešený úkol, protože sampling tří trajektorií a výběr modální odpovědi ztrojnásobí účet bez ohledu na to, zda ztrojnásobí accuracy. Tabulky accuracy, které vynechají náklady, ten trade-off zneviditelní.
Metrika rozhoduje o čísle
Odkaz na sekci: Metrika rozhoduje o čísleTeď zjištění, které změní, jak budete číst každý benchmark, který kdy uvidíte. Vezměte stejných dvě stě přepisů — dvacet úkolů, deset běhů, ani jeden token znovu negenerovaný — a skórujte je třemi způsoby:
| grader | correct | accuracy, 95 % Wilson |
|---|---|---|
| přesná shoda se zapsanou odpovědí | 0/200 | 0.0 % [0.0, 1.9] |
| zapsaná odpověď se objeví jako substring | 26/200 | 13.0 % [9.0, 18.4] |
| výše uvedená keyword rubrika | 52/200 | 26.0 % [20.4, 32.5] |
Nula, třináct, dvacet šest. Systém se nezměnil. Změnil se grader. Přesná shoda vrací nulu ne proto, že by agent byl k ničemu, ale proto, že žádná volnotextová odpověď nikdy není bajtově identická s referencí: měří formátování a hlásí ho jako schopnost.
To není kuriozita, je to mechanismus a má jméno. Hard-cutoff metrika skóruje úkol přes několik dílčích faktů stylem všechno-nebo-nic, takže se násobí. Úkol t12 se ptá na tři stavové kódy najednou. V deseti bězích:
per-code presence 200: 9/10 429: 6/10 500: 8/10 (mean 0.77 per fact)
all three at once 5/10Každý fakt je správně asi ve třech čtvrtinách případů; požadavek na všechny tři najednou skóre půlí a je dost blízko naměřeným 0.50, aby ukázal, odkud pokles přišel. Zobecněme:
| per-fact accuracy | |||||
|---|---|---|---|---|---|
| 0.60 | 60.0 % | 36.0 % | 21.6 % | 7.8 % | 0.6 % |
| 0.80 | 80.0 % | 64.0 % | 51.2 % | 32.8 % | 10.7 % |
| 0.90 | 90.0 % | 81.0 % | 72.9 % | 59.0 % | 34.9 % |
| 0.95 | 95.0 % | 90.3 % | 85.7 % | 77.4 % | 59.9 % |
Čtěte řádek 0.90 proti řádku 0.95 při : pětibodové zlepšení per-fact se na konjunkci změní na dvacet pět bodů. Modelu se nestalo nic skokového. Hladká křivka čtená přes metriku všechno-nebo-nic vypadá jako skok — což je přesně argument, který Schaeffer, Miranda a Koyejo vznesli o emergentních schopnostech a který kapitola 10 odložila sem.2 Jejich audit zjistil, že emergenci vykazuje nejvýše 5 z 39 preferovaných metrik BIG-Bench, přičemž dvě diskontinuální metriky vysvětlují přes 92 % tvrzených případů.
Takže disciplína v jedné větě: skok v grafu je důkaz o metrice, dokud se neprokáže opak. Než uvěříte, že se objevila schopnost, vykreslete stejné běhy metrikou, která dává částečný kredit, a podívejte se, zda útes přežije.
Existuje druhotná verze téhož, o níž Kalai a kolegové tvrdí, že škodí už proti proudu: benchmarky skórované jako správně-nebo-špatně odměňují hádání oproti odpovědi „nevím“, takže model optimalizovaný proti nim se učí hádat. Jejich navrhovaná oprava není další hallucination benchmark, ale „modifying the scoring of existing benchmarks that are misaligned but dominate leaderboards“.3 Vaše zlatá sada má stejnou páku a je to jeden řádek: rozhodněte, zda abstence počítá jako selhání, nebo jako vlastní kategorie. Většina lidí se nikdy nerozhodne, takže se tiše počítá jako selhání a systém, který nasadí, hádá.
pass^k a variance, kterou nikdo nepublikuje
Odkaz na sekci: pass^k a variance, kterou nikdo nepublikujeVšechno zatím skórovalo jeden pokus na úkol. Agent není jeden pokus. Kapitola 17 stanovila, že determinismus nemáte ani při temperature nula, takže stejný vstup produkuje rozdělení trajektorií a benchmark, který každý úkol spustí jednou, z něj hlásí jeden vzorek.
Přínos τ-bench je metrika pro právě tohle. Článek ji definuje jasně: „we propose a new metric – pass^k (pass hat k), defined as the chance that all k i.i.d. task trials are successful, averaged across tasks.“4 Spusťte každý úkol krát, spočítejte úspěchů a nezatížené estimátory jsou:
Druhý je známé pass@k z generování kódu: šance, že uspěje alespoň jeden z pokusů. Dejte je vedle sebe na stejné naměřené počty a pohybují se opačnými směry:
pass@k — alespoň jeden | pass^k — všechny | |
|---|---|---|
| 1 | 26.0 % | 26.0 % |
| 2 | 37.0 % | 15.0 % |
| 3 | 43.5 % | 10.5 % |
| 5 | 51.2 % | 6.7 % |
| 8 | 57.7 % | 5.1 % |
| 10 | 60.0 % | 5.0 % |
Stejné běhy, stejný grader, stejných dvacet úkolů. Jeden sloupec říká, že se systém s více pokusy zlepšuje, a druhý, že se zhoršuje, a oba mají pravdu, protože odpovídají na různé otázky. pass@k je správná metrika, když výstup filtruje člověk — generování kódu, návrhy, brainstorming — a další pokusy jsou levné. pass^k je správná metrika, když agent jedná bez filtru, což je přesně význam slova „agent“. Publikovat první tam, kde platí druhá, je nejčastější nadsázka v tomto oboru, a vlastní titulek τ-bench je poctivá verze: gpt-4o zhruba na 61 % pass^1 v retailu klesá asi na 25 % při pass^8.4
Teď háček v mých vlastních číslech. pass^10 nad mými dvaceti úkoly je 5.0 %: přesně jeden úkol z dvaceti vyřešený ve všech deseti bězích. Ten úkol je t19, „Did deploy 42 succeed?“, a tady jsou dvě z deseti odpovědí, které rubrika označila za správné:
run 2 "To check if 'deploy.log' succeeded in deploying 42, I will list the file
names in the working directory using the list_files function..."
run 8 "Yes, deploy 42 has successfully deployed. Deploying was successful for 41
as well."První nikdy neodpoví. Druhá přidá tvrzení, které je nepravdivé — deploy 41 byl rolled back. Obě odpovídaly /succe|yes/. Jediný úkol držící pass^10 nad nulou je artefakt grader, takže skutečné číslo je nula a žádný agregát by mi to neukázal. Vzorkování přepisů za vaším nejlépe skórujícím úkolem je místo, kde grader umírá.
A ještě jedno číslo, podle kterého se tato sekce jmenuje. Deset identických evaluací — stejný systém, stejných dvacet úkolů, stejný kód, nezměnilo se nic kromě seeds:
per-run correct: 5 2 5 5 8 5 8 5 4 5 -> 10 % .. 40 %, mean 26.0 %, sd 8.8 pointsTřicetibodové rozpětí na systému, který se nezměnil. Pokud svou sadu spustíte jednou před releasem a jednou po něm, osmibodové „zlepšení“ je uvnitř tohoto rozpětí a vy ho nasadíte v přesvědčení, že jste ho způsobili. Proto je pooled interval výše — 26.0 % [20.4, 32.5] — příliš úzký, než aby se citoval sám: zachází se dvěma sty korelovanými pokusy jako se dvěma sty nezávislými. Poctivé shrnutí evaluace agent je průměr a rozpětí napříč opakováními, a téměř nikdo nepublikuje to druhé.
Judge a jeho vlastní zlatá sada
Odkaz na sekci: Judge a jeho vlastní zlatá sadaRubriky neškálují na otevřené odpovědi, takže standardní krok je nechat výstup známkovat model. Na frontier scale to funguje dost dobře na to, aby to byl default, a má tři pojmenované režimy selhání: poziční bias, verbosity bias a self-enhancement bias.5
Změřte ho, než mu uvěříte. Stejných šedesát odpovědí — tři z deseti běhů — bylo označeno třemi způsoby. Lidský label je můj: přečetl jsem všech šedesát s otevřenými pěti soubory a použil jedno napsané pravidlo, pass právě tehdy, když odpověď uvádí fakt, na který se otázka ptala, a neobsahuje nic, co soubory vyvracejí.
| grader | says pass | agrees with the human | false pass | false fail |
|---|---|---|---|---|
| keyword rubrika | 17/60 | 50/60 = 83.3 % [72.0, 90.7] | 8 | 2 |
| model jako judge | 60/60 | 11/60 = 18.3 % [10.6, 29.9] | 49 | 0 |
Judge řekl PASS šedesátkrát ze šedesáti. Nahlásil by tohoto agent na 100% accuracy na sadě, kde ho člověk hodnotí na 18 %. Judge bez rozlišovací schopnosti není šumový nástroj; je to konstantní funkce, a konstantní funkce dá vašemu nejlepšímu i nejhoršímu systému stejné skóre.
Prompting ho nezachránil. Čtyři varianty, stejných šedesát položek:
| judge prompt | says pass | agreement with the human |
|---|---|---|
| „Reply PASS or FAIL.“ | 60/60 | 18.3 % |
| „Reply FAIL or PASS.“ — prohozené labely | 56/60 | 25.0 % |
| plus explicitní seznam toho, co se počítá jako selhání | 55/60 | 26.7 % |
plus jeden worked příklad FAIL a jeden příklad PASS | 56/60 | 25.0 % |
Prohození pořadí dvou labelů v instrukci posunulo čtyři verdikty. To je měřitelný efekt a je to špatný druh efektu: judge reaguje na tvar prompt spíš než na odpověď před sebou.
Čistá demonstrace je párová. Dvacet otázek, každá s jedním zjevně správným a jedním zjevně chybným kandidátem, předložené v obou pořadích:
picked the FIRST option 40/40 = 100.0 %
order-consistent (same winner both ways) 0/20 = 0.0 % [Wilson 0.0, 16.1]
picked the CORRECT answer 20/40 = 50.0 %Vybral pozici A čtyřicetkrát ze čtyřiceti. Těch 50 % na správnosti není částečná kompetence — je to aritmetika, protože správná odpověď sedí na pozici A přesně v polovině pokusů. Konzistence je zde definovaná tak, jak ji definuje MT-Bench: „the percentage of cases where a judge gives consistent results when swapping the order of two assistants“, což umožňuje porovnávat jablka s jablky: GPT-4 na tomto měřítku skóruje 65.0 % a few-shot prompting ho zvedl na 77.5 %.5 Můj skóruje nula.
Standardní mitigace je také z tohoto článku: „call a judge twice by swapping the order of two answers and only declare a win when an answer is preferred in both orders.“5 Použijte ji zde a judge vyprodukuje nula použitelných verdiktů z dvaceti dvojic — což je správný výsledek a nekonečně lepší než dvacet sebejistých.
Metodologická poznámka cennější než výsledek. Spustil jsem také test verbosity: stejná správná odpověď, jedna kopie vycpaná 36slovnou větou, která nic nepřidává. Judge preferoval delší verzi přesně v 50 % pokusů — což vypadá jako absence verbosity bias a není to nic takového, protože judge, který vždy vybírá pozici A, skóruje 50 % na jakémkoli vyváženém párování. Nemůžete měřit druhý bias, dokud není pod kontrolou první. Prohazování pozic není vylepšení, které přidáte později; je to to, co dělá každé další měření interpretovatelným.
K čemu je judge. Otevřené odpovědi bez parsovatelné formy: tón, pokrytí, zda citace podporuje svou větu, zda bylo odmítnutí vhodné. Levný, rychlý a zhruba tak dobrý jako jeho základní model.
K čemu judge není. Ground truth. Je to systém s accuracy, profilem bias a náklady, a potřebuje vlastní zlatou sadu lidských labelů — včetně známých selhání — dřív, než jakékoli číslo, které vyprodukuje, něco znamená.
Poctivá výhrada: tento judge je model s půl miliardou parametrů a nikdo by s ním neměl známkovat. Pointa není, že judges jsou špatní. Pointa je, že výše uvedená čísla stála osm minut, a bez nich by verdikt tohoto judge o rozhodnutí nasadit byl 100 %.
Druhý panel: Python a sonda na kontaminaci
Odkaz na sekci: Druhý panel: Python a sonda na kontaminaciToto je třetí a poslední deklarovaný Python panel kurzu a důvodem je místo, odkud přicházejí veřejná čísla. lm-evaluation-harness pokrývá „over 60 standard academic benchmarks for LLMs, with hundreds of subtasks and variants implemented“ a je „the backend for Hugging Face's popular Open LLM Leaderboard“; HELM, SWE-bench a τ-bench jsou Python balíčky s Python entry points.6 Spustit váš model proti publikovanému číslu znamená spustit jejich kód, a ve chvíli, kdy chcete porovnat s číslem, které někdo citoval, jste v tomto ekosystému:
lm_eval --model hf \
--model_args pretrained=EleutherAI/gpt-j-6B \
--tasks hellaswag \
--device cuda:0 \
--batch_size 8Druhý důvod je, že jedno měření v této kapitole je přes HTTP nemožné. Kontaminace — testovací sada unikla do trénovacích dat — je selhání, které tiše zneplatní veřejný benchmark, a nejostřejší sonda na něj potřebuje vlastní loss modelu, kterou žádné chat API nevrací. Je to cross-entropy per token z kapitoly 8, namířená na otázku paměti:
def nll(text: str) -> float:
"""Mean negative log-likelihood per token, in nats."""
ids = tok(text, return_tensors="pt").input_ids.to(model.device)
with torch.no_grad():
out = model(ids, labels=ids)
return float(out.loss)Deset dvojic vět: pět v každém webovém crawlu od doby, kdy web existuje, pět napsaných pro tuto kapitolu dnes ráno, každá spárovaná s přeformulovanou verzí nesoucí stejný obsah.
| set | canonical wording | reworded | gap |
|---|---|---|---|
| famous, mean of 5 | 1.21 | 3.03 | +1.83 |
| fresh, mean of 5 | 5.02 | 5.96 | +0.93 |
Model je čtyřikrát víc překvapený větou napsanou dnes ráno než větou, kterou viděl milionkrát, a přeformulování stojí u slavných vět dvakrát tolik — ten extra náklad je část, která byla zapamatovaná, ne pochopená. Absolutní loss míchá memorization s běžnou přirozeností, takže gap je lepší statistika a continuation test ještě lepší. Dejte mu prvních šest slov:
famous "Permission is hereby granted, free of"
-> "charge, to any person obtaining a copy of this software and associated
documentation files (the "
famous "All human beings are born free"
-> "and equal in dignity and rights. The right to life, liberty, and security"
fresh "All evaluation harnesses are born tiny"
-> ", and the most common way to measure their size is by using a ruler."Tři z pěti slavných řetězců pokračovaly od šesti slov dokonale slovo od slova; žádný z pěti nových ne. To je model s půl miliardou parametrů recitující MIT License. Pokud je váš benchmark na veřejném webu, předpokládejte, že je ve vahách. Je to také argument pro celou kapitolu: zlatá sada, kterou jste napsali z vlastních dat a držíte mimo jakýkoli repozitář čtený crawlerem, je jediná testovací sada, o které si můžete být jistí, že na ní model nikdy netrénoval.
Co veřejné benchmarky opravdu měří
Odkaz na sekci: Co veřejné benchmarky opravdu měříPořád stojí za čtení, pokud čtete, co každý z nich měří, a ne jedno číslo k němu přilepené.
| benchmark | co měří | číslo z článku |
|---|---|---|
| MMLU | multiple-choice znalosti napříč 57 obory | GPT-3 překonal náhodu „almost 20 percentage points on average“7 |
| HELM | mnoho metrik × mnoho scénářů, standardizovaně | pokrytí core scénářů šlo z 17.9 % na 96.0 %8 |
| Chatbot Arena | crowdsourced párové lidské preference | přes 240K hlasů; crowd votes „in good agreement“ s experty9 |
| SWE-bench | řešení skutečných GitHub issues, známkované testy repozitáře | 2,294 problémů; nejlepší model tehdy vyřešil „a mere 1.96 %“10 |
| τ-bench | používání nástrojů se simulovaným uživatelem a doménovou policy | gpt-4o ≈ 61 % pass^1, ≈ 25 % pass^8 v retailu4 |
| WebArena | dlouhodobé úkoly na fungujících webech | nejlepší GPT-4 agent 14.41 % proti 78.24 % u lidí11 |
| OSWorld | skutečné desktopové a OS úkoly napříč aplikacemi | 369 úkolů; nejlepší model 12.24 %, lidé 72.36 %12 |
| GAIA | otázky snadné pro lidi, těžké pro assistants | 466 otázek; lidé 92 %, GPT-4 s plugins 15 %13 |
| AgentBench | agent reasoning napříč 8 odlišnými prostředími | velká mezera mezi komerčními a open modely14 |
| AgentHarm | zda agent provede škodlivé vícekrokové úkoly | 110 škodlivých úkolů napříč 11 kategoriemi újmy15 |
Vezměte si spíš tabulku než kterýkoli řádek. Agentic benchmarky všechny staví lidi vysoko nad modely, což je opak knowledge benchmarků a nejlepší jednověté shrnutí toho, kde obor je; jejich čísla stárnou v řádu měsíců, takže je citujte s datem, kdy jste je četli; a každý z nich měří úkol, který není váš.
Metriky, které rozhodují v produkci
Odkaz na sekci: Metriky, které rozhodují v produkciAccuracy je metrika, o které se hádáte. Tohle jsou ty, které rozhodují, jestli se věc nasadí. Všechny čtyři vypadnou z už naměřených dvou set běhů.
Náklad na vyřešený úkol, ne na call. Agent stojí $0.001345 za pokus a $0.005172 za skutečně vyřešený úkol — 3.85krát víc, protože tři čtvrtiny pokusů nevyprodukují nic. Latency se chová stejně: 1,213 ms na pokus, 4,667 ms na vyřešený úkol. Každý retry, každé znovuzeptání, každá opuštěná trajektorie je ve druhém čísle a v prvním neviditelná.
Diagnostika, která poráží accuracy. Ve 123 z 200 pokusů agent odpověděl bez zavolání jediného nástroje — hádal místo toho, aby se podíval. Rozdělení podle toho:
answered without reading anything 8/123 = 6.5 % [3.3, 12.3]
answered after reading something 44/77 = 57.1 % [46.0, 67.6]Intervaly se ani zdaleka nedotýkají. To má větší hodnotu než agregovaných 26 %, protože to jmenuje věc k opravě — model neselhává v reasoning, selhává v tom, že se nepodívá — a oprava je v harness, ne v modelu. Jedna výhrada, kterou tato kapitola dluží vlastním standardům: ty dvě skupiny jsou různé úkoly, ne stejné spárované úkoly, takže část mezery může být tím, že nástroje přeskakuje právě u otázek, které považuje za těžké. Split je diagnostika, ne kauzální tvrzení.
Míra lidského zásahu je metrika, na kterou se kupující zeptá jako první: jaký podíl běhů se zastavil na schválení, guardrail nebo handoff. Typované přerušení z kapitoly 23 ji dělá počitatelnou, a počítaná podle typu úkolu a po týdnech odlišuje agent, který se učí svou práci, od toho, který se tiše mění ve frontu.
Opuštění je ta, kterou žádná offline sada nevidí: uživatel, který si přečetl odpověď, zavřel kartu a udělal úkol sám. Offline evaluace je brána; produkční evaluace je průběžný vzorek skutečného provozu, skórovaný stejným grader plus těmito čtyřmi.
A pravidlo zděděné z kapitoly 17: nikdy netvrďte přesný výstup. Tvrďte vlastnosti — validní JSON, správné schéma, zavolaný správný nástroj, číslo v toleranci, přítomný požadovaný substring. Sloupec přesné shody na začátku této kapitoly ukazuje, co se stane, když se to pravidlo poruší.
Co posíláte třetí straně
Odkaz na sekci: Co posíláte třetí straněEvaluovat dodavatele není jen o accuracy, a toto je druhá polovina etiky tohoto kurzu, s vlastním nadpisem místo dodatku.
Bias měřte, nepředpokládejte ho. Ať věříte čemukoli o chování modelu u jmen, dialektů, genderů nebo národností, je to měřitelná vlastnost vaší pipeline a nástroj už máte: vezměte zlatou sadu, měňte pouze atribut, porovnávejte párově. HELM existuje právě proto, že se reportovala pouze accuracy tam, kde byly rozhodnutelné také bias, toxicita, kalibrace a robustness.8 Model card dodavatele je výchozí bod, ne důkaz o vašich vstupech.
Kontaminace je také otázka na dodavatele. Výše uvedená sonda je důvod se ptát, na čem bylo publikované číslo měřeno a kdy byl odříznut datový set modelu.
Retention, training a residency, čteno 7. září 2026. Tyto věci se mění, takže datum zapište vedle odpovědi. Policy stránka Anthropic uvádí: „By default, we will not use your inputs or outputs from our commercial products (e.g. Claude for Work, Anthropic API, Claude Gov, etc.) to train our models“, s výjimkou obsahu, který výslovně odešlete jako feedback a který je uložen „for up to 5 years“.16 Dokumentace OpenAI k data controls uvádí, že „data sent to the OpenAI API is not used to train or improve OpenAI models (unless you explicitly opt in to share data with us)“, popisuje výchozí třicetidenní retention pro abuse-monitoring logs a nabízí Zero Data Retention, která „excludes customer content from abuse monitoring logs“, plus konfigurovatelnou data residency napříč seznamem regionů.17
Čtyři otázky, které chcete písemně před prvním produkčním callem, protože každá má jiného vlastníka: používají se má data pro training; jak dlouho jsou uchovávána a kým; kde se zpracovávají a ukládají; a co se s tím vším stane, když místo přímého poskytovatele použiji resellera, gateway nebo aggregator. Ta poslední je místo, kde žije většina překvapení, a žádný benchmark vám ji neprozradí.
Kam to vede dál
Odkaz na sekci: Kam to vede dálTeď máte nástroj: zlatou sadu, kterou vlastníte, interval na každém čísle, párový test pro každé porovnání, pass^k pro běhy, které jste nikomu neukázali, změřený judge a sondu na to, zda veřejné skóre něco znamená. Závěrečné tvrzení kapitoly 23 lze teď ověřit místo prohlásit — harness činí agent řiditelným, ne správným — a ověření trvalo dvě stě běhů a osm minut.
Existuje jedna vlastnost agent, kterou nic z toho neměří, a je to ta, kvůli které lidé přicházejí o práci.
Každý úkol ve zlaté sadě této kapitoly jsem napsal já a každý soubor, který agent četl, jsem napsal já. Nic v tom adresáři se nesnažilo nic udělat. Změňte jeden řádek v jednom souboru, který má agent číst — řádek končící instrukcí adresovanou čemukoli, co ho bude číst příště — a agent, který skóroval 26 %, ji bude následovat se stejnými nástroji, stejnými oprávněními a stejně čistým trace, a každé číslo v této kapitole zůstane přesně tam, kde je. Evaluační sada měří, jak často systém dosáhne vašeho cíle. Neměří, jak snadno může někdo jiný podsunout svůj.
Kapitola 30 je právě to: prompt injection, smrtící trifecta soukromých dat, nedůvěryhodného obsahu a externí komunikace, a kolik stojí dát agent skutečná oprávnění. Otevírá pozorováním, kterému se tato kapitola vyhýbala — že stejné passing skóre je kompatibilní s agent, který udělá přesně to, co útočník napsal do souboru, který mu bylo řečeno číst.
Zdroje a metoda
Odkaz na sekci: Zdroje a metodaKaždé číslo výše bylo vytvořeno na jednom stroji a nic z toho nesáhlo na placený endpoint. Agent je smyčka z kapitoly 23 se dvěma ze čtyř nástrojů nad adresářem pěti souborů; model za portem je Qwen/Qwen2.5-0.5B-Instruct, vystavený přes malý server stejného tvaru jako chat completions endpoint přesně jako v kapitole 23, ale v half precision na jedné spotřebitelské GPU místo CPU z té kapitoly. Náklady používají sazby z kapitoly 16 — $2.00 za milion input tokens a $12.00 za milion output — aplikované na naměřené počty token. Opakované běhy používají temperature 0.7 s fixními seeds, takže celá sada je reprodukovatelná; tabulka čtyř ramen je greedy. Intervaly jsou Wilsonovy na 95 %, párová porovnání jsou oboustranné exact sign tests nad diskordantními dvojicemi; Wilsonův interval je z kapitoly 4 a exact paired sign test z kapitoly 15, oba znovu použité beze změny. Lidské labely jsou moje, aplikované na šedesát odpovědí podle psaného pravidla citovaného v textu. Každou velikost zde čtěte jako vlastnost modelu s půl miliardou parametrů a každou metodu jako přenositelnou: větší model posune všechna čísla nahoru a neposune žádný z nástrojů.
Reference
Odkaz na sekci: Reference-
OpenAI, A practical guide to building agents (PDF), strana 8, čteno 7. září 2026. Zdroj výše citovaného tříkrokového pořadí a doprovodné rady „build your agent prototype with the most capable model for every task to establish a performance baseline. From there, try swapping in smaller models to see if they still achieve acceptable results.“ Kapitoly 22 a 25 citují jeho definiční a orchestrační stránky. ↩
-
Schaeffer, R., Miranda, B. and Koyejo, S. Are Emergent Abilities of Large Language Models a Mirage? arXiv:2304.15004 (2023). Argument, že diskontinuální metriky všechno-nebo-nic vyrábějí zdánlivé skoky z hladkých podkladových zlepšení, s auditem BIG-Bench citovaným v kapitole 10. Jejich vlastní upozornění stojí za zopakování: nic v článku netvrdí, že velké modely nemohou vykazovat emergentní schopnosti. ↩
-
Kalai, A. T., Nachum, O., Vempala, S. S. and Zhang, E. Why Language Models Hallucinate. arXiv:2509.04664 (2025). Argument, že benchmarky skórující správně-nebo-špatně odměňují hádání oproti abstenci, a navržený lék „modifying the scoring of existing benchmarks that are misaligned but dominate leaderboards, rather than introducing additional hallucination evaluations“. Kapitola 19 ho cituje ze strany retrieval; toto je evaluační strana téhož tvrzení. ↩
-
Yao, S., Shinn, N., Razavi, P. and Narasimhan, K. τ-bench: A Benchmark for Tool-Agent-User Interaction in Real-World Domains. arXiv:2406.12045 (2024). Původ
pass^k, definovaného výše citovaným způsobem, s oběma estimátory vytištěnými v článku vedle sebe; titulek abstraktu říká, že špičkoví function-calling agents „succeed on <50 % of the tasks, and are quite inconsistent (pass^8 <25 % in retail)“, a sekce 1 uvádí čísla gpt-4o ≈61 %pass^1a ≈25 %pass^8na τ-retail. Estimátorpass@k, se kterým kontrastuje, pochází z Chen, M. et al., Evaluating Large Language Models Trained on Code, arXiv:2107.03374 (2021). ↩ ↩2 ↩3 -
Zheng, L. et al. Judging LLM-as-a-Judge with MT-Bench and Chatbot Arena. arXiv:2306.05685 (2023). Zdroj tří pojmenovaných bias, definice konzistence použité výše („the percentage of cases where a judge gives consistent results when swapping the order of two assistants“), zjištění, že „only GPT-4 outputs consistent results in more than 60 % of cases“ s 65.0 % rostoucími na 77.5 % při few-shot, a mitigace swap-and-require-agreement citované doslova. Jeho pozitivní výsledek je také důležitý: GPT-4 judges dosahují s lidskými evaluacemi „an agreement rate exceeding 80 %“, „the same level of human-human agreement“ — což je důvod judge vůbec používat a důvod změřit toho svého. ↩ ↩2 ↩3
-
EleutherAI, Language Model Evaluation Harness, README projektu čtené 7. září 2026: „over 60 standard academic benchmarks for LLMs, with hundreds of subtasks and variants implemented“ a „the backend for Hugging Face's popular Open LLM Leaderboard“. Volání
lm_evalcitované výše je vlastní příklad z README. Liang, P. et al., Holistic Evaluation of Language Models, arXiv:2211.09110 (2022), je druhý standardní runner a lepší čtení o návrhu evaluace. ↩ -
Hendrycks, D., Burns, C., Basart, S., Zou, A., Mazeika, M., Song, D. and Steinhardt, J. Measuring Massive Multitask Language Understanding. arXiv:2009.03300 (2020). 57 úkolů; tvrzení abstraktu, že největší model GPT-3 „improves over random chance by almost 20 percentage points on average“, je užitečná připomínka, jak nedávná je saturace tohoto benchmarku. ↩
-
Liang, P. et al. Holistic Evaluation of Language Models. arXiv:2211.09110 (2022). Sedm metrik — accuracy, calibration, robustness, fairness, bias, toxicity a efficiency — napříč 16 core scénáři a 30 modely, s výše citovanými čísly pokrytí. Důvod ho číst je rámování: kterou ze sedmi reportujete, je samo o sobě volba. ↩ ↩2
-
Chiang, W.-L. et al. Chatbot Arena: An Open Platform for Evaluating LLMs by Human Preference. arXiv:2403.04132 (2024). Přes 240K hlasů v době psaní, crowdsourced párová preference a tvrzení, že „the crowdsourced human votes are in good agreement with those of expert raters“. ↩
-
Jimenez, C. E., Yang, J., Wettig, A., Yao, S., Pei, K., Press, O. and Narasimhan, K. SWE-bench: Can Language Models Resolve Real-World GitHub Issues? arXiv:2310.06770 (2023). 2,294 problémů z 12 Python repozitářů, známkovaných vlastními testy repozitářů, s tehdejším nejlepším modelem řešícím „a mere 1.96 %“. Kapitola 23 ho používá pro druhý význam slova „harness“. ↩
-
Zhou, S. et al. WebArena: A Realistic Web Environment for Building Autonomous Agents. arXiv:2307.13854 (2023). Fungující weby napříč čtyřmi doménami, s nejlepším GPT-4 agent na 14.41 % proti 78.24 % u lidí. ↩
-
Xie, T. et al. OSWorld: Benchmarking Multimodal Agents for Open-Ended Tasks in Real Computer Environments. arXiv:2404.07972 (2024). 369 úkolů na skutečných operačních systémech; lidé přes 72.36 %, nejlepší model 12.24 %, přičemž GUI grounding je označený jako hlavní mezera. ↩
-
Mialon, G., Fourrier, C., Swift, C., Wolf, T., LeCun, Y. and Scialom, T. GAIA: A Benchmark for General AI Assistants. arXiv:2311.12983 (2023). 466 otázek, lidé na 92 % proti 15 % pro GPT-4 s plugins — nejčistší publikované vyjádření mezery mezi tím, co je snadné pro člověka, a tím, co je snadné pro assistant. ↩
-
Liu, X. et al. AgentBench: Evaluating LLMs as Agents. arXiv:2308.03688 (2023). Osm odlišných prostředí a významný rozdíl mezi špičkovými komerčními modely a open-source modely srovnatelné velikosti. ↩
-
Andriushchenko, M. et al. AgentHarm: A Benchmark for Measuring Harmfulness of LLM Agents. arXiv:2410.09024 (2024). 110 výslovně škodlivých agent úkolů (440 s augmentacemi) napříč 11 kategoriemi újmy, se zjištěním, že přední modely jsou „surprisingly compliant with malicious agent requests without jailbreaking“ a že jednoduché univerzální jailbreak templates se přenášejí na agents při zachování jejich schopností. Je to most ke kapitole 30: capability benchmark a harm benchmark měří stejný systém a neshodnou se na tom, zda je připravený. ↩
-
Anthropic, Is my data used for model training?,
privacy.claude.com, čteno 7. září 2026. Výše citováno doslova, včetně feedback výjimky a pětiletého okna uložení pro odeslaný feedback. ↩ -
OpenAI, Your data (API data controls documentation),
developers.openai.com, čteno 7. září 2026. Zdroj výchozího tvrzení o nepoužívání pro training, třicetidenní retention pro abuse-monitoring, popisu Zero Data Retention a seznamu eligible endpoints a regionů data residency. ↩