LLM-evaluointi: julkisista benchmarks omaan golden setiin
Sama agent, sama tehtävä, kymmenen ajoa. Seitsemän onnistumista näyttää 70 %:lta, kunnes lasket pass^10:n: tulos on tasan nolla.
Tällä sivulla
Tässä on demonstraatio. Luvun 23 agent — sama silmukka, kaksi sen neljästä työkalusta — ohjataan hakemistoon, jossa on viisi loki- ja konfiguraatiotiedostoa, ja siltä kysytään yksi kysymys.
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."Oikein, eikä se todista yhtään mitään — koska tämä transkriptio on yksi kymmenestä ajamastani, ja valitsin sen vasta nähtyäni kaikki kymmenen.
Aja täsmälleen sama tehtävä kymmenen kertaa muuttamatta mitään muuta kuin sampling-siementä, ja agent saa sen oikein seitsemän kertaa. Seitsemänkymmentä prosenttia, eli numero, joka päätyisi diaan. Kysy nyt se kysymys, josta asiakas oikeasti välittää — toimiiko se joka kerta? — ja vastaus on kokonaan toinen luku:
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 ei ole koskaan ratkaissut tätä tehtävää kymmentä kertaa peräkkäin, eikä tämän näytön perusteella sen odoteta tekevän niin. Tuo luku — pass^10 — on rehellinen luku, sitä ei juuri koskaan julkaista, ja tämän luvun lopussa tiedät, miten se lasketaan, mitä sen laskeminen maksaa ja miksi 70 %:n vieressä oleva väli merkitsee enemmän kuin 70 %.
Näytä lisätiedot
Mitä tämä luku tarvitsee aiemmista luvuista.
- Luku 4 tilastoja varten: Wilsonin väli osuudelle, syy siihen, miksi seitsemäntoista oikein kahdestakymmenestä ei erota mitään, ja tyhmä baseline ensimmäisenä vaatimuksena.
- Luku 15 penkkiä varten: viidenkymmenen rivin harness, parittainen merkkitesti tapauksille, joissa kaksi järjestelmää on eri mieltä, ja sääntö, että prompt mitataan eikä siitä väitellä.
- Luku 23 mitattavaa asiaa varten: silmukka, viisi ulospääsyä, kustannuslaskenta ja loppuhavainto siitä, että harness tekee agent hallittavaksi mutta ei oikeaksi.
Tässä on kaksi paneelia. TypeScript omaan evaluointiisi, koska sen paikka on jatkuvassa integraatiossasi koodisi vieressä. Python toiseen paneeliin, koska julkiset benchmarks elävät siellä ja yksi alla olevista mittauksista tarvitsee logits.
Kolme projektia, kolme instrumenttia
Linkki osioon: Kolme projektia, kolme instrumenttiaLähes jokainen väittely evaluoinnista on kaksi ihmistä mittaamassa eri asioita. On kolme projektia, eikä niillä ole yhteistä instrumenttia.
| mitä evaluoit | kysymys | instrumentti | kuka omistaa sen |
|---|---|---|---|
| model | onko tämä model yleisesti parempi kuin tuo? | julkiset benchmarks, leaderboardit | yhteisö |
| sovelluksesi | toimivatko prompt, hakuni ja schemani omilla syötteilläni? | oma golden set | sinä |
| agent | pääseekö koko silmukka, työkaluineen ja sivuvaikutuksineen, luotettavasti tavoitteeseen? | tehtävän onnistuminen plus pass^k | sinä |
Sekaannus tulee kalliiksi yhteen suuntaan. Leaderboard kertoo, että model on vahva jatko-opintotason päättelyssä; se ei voi kertoa, reitittääkö se tukipyyntösi. Ja sovelluksen evaluointi, joka pisteyttää yhden vastauksen per syöte, ei näe agent lainkaan, koska agent tuottaa trajektorien jakauman ja yksi vastaus on siitä yksi näyte. Luku 22 nimesi tuon kolmannen rivin ja jätti sen tyhjäksi: suoritusmittari, se agent-määrittelyn osa, jonka tiimit kirjoittavat viimeisenä tai eivät koskaan.
Myös järjestyksellä on väliä, ja modelia sinulle myyvä toimittaja sanoo niin. OpenAI:n agent-opas tiivistää model-valinnan kolmeen vaiheeseen tässä järjestyksessä: ”Määritä evals suorituskyvyn baselinea varten”, ”Keskity accuracy-tavoitteesi saavuttamiseen parhailla saatavilla olevilla malleilla”, ”Optimoi kustannusta ja latencyä korvaamalla suurempia malleja pienemmillä siellä, missä se on mahdollista”.1 Evaluointi tulee ensin, koska vaiheet kaksi ja kolme ovat merkityksettömiä ilman lukua.
Golden set ja mitä kaksikymmentä tapausta oikeasti ostaa
Linkki osioon: Golden set ja mitä kaksikymmentä tapausta oikeasti ostaaGolden set on lista syötteitä, joista jokaiselle on kirjoitettu vastaus, sekä grader, joka päättää, vastaako output sitä. Se on tylsä, se on pieni, ja se on tämän luvun ainoa artefakti, joka on sinun. Tässä rakennettu versio sisältää kaksikymmentä tehtävää viiden tiedoston hakemistossa — ei luvun 23 kolmea, joten vastaukset eivät ole samat vastaukset — ja grader kirjoitetaan ennen kuin agent ajetaan:
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
];Kaksi ominaisuutta kantaa kuorman. Lista mustNot on olemassa, koska model, joka nimeää kolme tiedostoa mukaan lukien oikean, ei ole vastannut. Ja answer on kirjoitettu proosana sekä kuvioina, koska sekä ihminen että judge tarvitsevat sitä myöhemmin — ja saman faktan kirjoittaminen kahdesti kahdella notaatiolla on tapa huomata, ettet ollut samaa mieltä itsesi kanssa siitä, mikä tehtävä oli.
Nyt ratkaiseva taulukko. Neljä ehdokasjärjestelmää, samat kaksikymmentä tehtävää, accuracy väleineen sekä kaksi saraketta, jotka pelkkä accuracy-taulukko aina piilottaa:
| system | oikein | accuracy, 95 % Wilson | kustannus per ratkaistu tehtävä | keskimääräinen latency |
|---|---|---|---|---|
| A — ei työkaluja, greedy | 2/20 | 10,0 % [2,8, 30,1] | $0,004649 | 663 ms |
| B — työkalut, niukka prompt | 5/20 | 25,0 % [11,2, 46,9] | $0,005576 | 1 362 ms |
| C — työkalut, ohjattu prompt | 2/20 | 10,0 % [2,8, 30,1] | $0,013071 | 930 ms |
| D — C, paras kolmesta kun T = 0,7 | 1/20 | 5,0 % [0,9, 23,6] | $0,073532 | 2 628 ms |
Lue välit ennen voittajaa. Haaran B ajot vaihtelevat 11 prosentista 47 prosenttiin; haaran A ajot 3 prosentista 30 prosenttiin. Ne menevät päällekkäin suurimmalta osalta pituuttaan, mikä on luvun 4 löydös täsmälleen siellä, missä se luvattiin: kaksikymmentä tapausta ei voi järjestää neljää järjestelmää paremmuusjärjestykseen. Luku 15 terävöitti tätä kysymällä sen sijaan parittaista kysymystä — niissä tapauksissa, joissa kaksi haaraa on eri mieltä, kuinka epätasainen jako on? — koska joukon yhteinen vaikeus kumoutuu. Tässä on jokainen pari:
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.0000Yksikään kuudesta vertailusta ei ole osoitettu. Paras haara voittaa täysin työkaluttoman haaran viidellätoista pisteellä, ja se nojaa kolmeen ristiriitaiseen tapaukseen. Kaksikymmentä tapausta näyttää mekanismin eikä voi valita toimittajaa; muuta väittäminen kokouksessa on tapa ostaa huono model.
On yksi asia, jonka tämä taulukko todella osoittaa, ja se on sarake, jota kukaan ei laita mukaan. Haara D maksaa kolmetoista kertaa haaran B kustannuksen per ratkaistu tehtävä, koska kolmen trajektorin sampling ja modaalivastauksen ottaminen kolminkertaistaa laskun riippumatta siitä, kolminkertaistaako se accuracyä. Accuracy-taulukot, joista kustannus puuttuu, tekevät tästä vaihtokaupasta näkymättömän.
Metric päättää luvun
Linkki osioon: Metric päättää luvunNyt löydös, joka muuttaa tapasi lukea jokaista benchmarkia, jonka koskaan näet. Ota samat kaksisataa transkriptiota — kaksikymmentä tehtävää, kymmenen ajoa, ei yhtään token luotu uudelleen — ja pisteytä ne kolmella tavalla:
| grader | oikein | accuracy, 95 % Wilson |
|---|---|---|
| exact match kirjoitettuun vastaukseen | 0/200 | 0,0 % [0,0, 1,9] |
| kirjoitettu vastaus esiintyy substringinä | 26/200 | 13,0 % [9,0, 18,4] |
| yllä oleva keyword-rubriikki | 52/200 | 26,0 % [20,4, 32,5] |
Nolla, kolmetoista, kaksikymmentäkuusi. Järjestelmä ei muuttunut. Grader muuttui. Exact match palauttaa nollan ei siksi, että agent olisi hyödytön, vaan siksi, ettei mikään vapaatekstivastaus ole koskaan tavutasolla identtinen referenssin kanssa: se mittaa muotoilua ja raportoi sen capabilitynä.
Tämä ei ole kuriositeetti vaan mekanismi, ja sillä on nimi. Hard-cutoff metric pisteyttää tehtävän useiden alafaktojen yli kaikki-tai-ei-mitään-periaatteella, joten se kertautuu. Tehtävä t12 kysyy kolmea statuskoodia kerralla. Kymmenen ajon yli:
per-code presence 200: 9/10 429: 6/10 500: 8/10 (mean 0.77 per fact)
all three at once 5/10Jokainen fakta on oikein noin kolme neljäsosaa ajasta; kaikkien kolmen vaatiminen kerralla puolittaa pistemäärän, ja on riittävän lähellä mitattua 0,50:tä näyttääkseen, mistä pudotus tuli. Yleistetään:
| 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 % |
Lue 0,90-riviä 0,95-riviä vasten kohdassa : viiden pisteen per-fact-parannus muuttuu konjunktiossa kahdeksikymmeneksiviideksi pisteeksi. Modelille ei tapahtunut mitään epäjatkuvaa. Tasainen käyrä kaikki-tai-ei-mitään-metricin läpi luettuna näyttää hypyltä — mikä on täsmälleen Schaefferin, Mirandan ja Koyejosin argumentti emergenteistä kyvyistä, ja jonka luku 10 siirsi tähän.2 Heidän auditointinsa löysi, että korkeintaan 5 BIG-Benchin 39 ensisijaisesta metricistä näyttää emergenceä lainkaan, ja kaksi epäjatkuvaa metriciä selittää yli 92 % väitetyistä tapauksista.
Kurinalaisuus yhdessä lauseessa: hyppy kaaviossa on näyttöä metricistä, kunnes toisin osoitetaan. Ennen kuin uskot capabilityn ilmestyneen, piirrä samat ajot metricillä, joka antaa osapisteitä, ja katso, säilyykö jyrkänne.
Tästä on myös toisen kertaluvun versio, jonka Kalai kollegoineen väittää tekevän vahinkoa ylävirtaan: benchmarks, jotka pisteyttävät oikein-väärin, palkitsevat arvaamista sen sijaan, että model sanoisi ”en tiedä”, joten niitä vastaan optimoitu model oppii arvaamaan. Heidän ehdottamansa korjaus ei ole uusi hallucination-benchmark vaan ”leaderboardeja dominoivien mutta väärin kohdistettujen olemassa olevien benchmarks pisteytyksen muokkaaminen”.3 Omalla golden setilläsi on sama vipu, ja se on yksi rivi: päätä, lasketaanko pidättäytyminen epäonnistumiseksi vai omaksi kategoriakseen. Useimmat eivät koskaan päätä, joten se lasketaan hiljaisesti epäonnistumiseksi, ja järjestelmä, jonka he julkaisevat, arvaa.
pass^k ja varianssi, jota kukaan ei julkaise
Linkki osioon: pass^k ja varianssi, jota kukaan ei julkaiseKaikki tähän asti pisteytti yhden yrityksen per tehtävä. Agent ei ole yksi yritys. Luku 17 osoitti, ettei determinismiä ole edes lämpötilassa nolla, joten sama syöte tuottaa trajektorien jakauman ja benchmark, joka ajaa jokaisen tehtävän kerran, raportoi siitä yhden näytteen.
τ-benchin panos on tähän sopiva metric. Paperi määrittelee sen selvästi: ”ehdotamme uutta metriciä – pass^k (pass hat k), joka määritellään todennäköisyydeksi, että kaikki k i.i.d. tehtäväkoetta onnistuvat, keskiarvotettuna tehtävien yli.”4 Aja jokainen tehtävä kertaa, laske onnistumista, ja harhattomat estimaattorit ovat:
Toinen on koodin generoinnista tuttu pass@k: todennäköisyys, että ainakin yksi yrityksestä onnistuu. Laita ne rinnakkain samoilla mitatuilla laskureilla, ja ne liikkuvat vastakkaisiin suuntiin:
pass@k — vähintään yksi | pass^k — kaikki niistä | |
|---|---|---|
| 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 % |
Samat ajot, sama grader, samat kaksikymmentä tehtävää. Yksi sarake sanoo, että järjestelmä paranee useammilla yrityksillä, ja toinen sanoo, että se huononee, ja molemmat ovat oikein, koska ne vastaavat eri kysymyksiin. pass@k on oikea metric, kun ihminen suodattaa outputin — koodin generointi, luonnokset, ideointi — ja lisäyritykset ovat halpoja. pass^k on oikea metric, kun agent toimii ilman suodatinta, mikä on juuri se, mitä ”agent” tarkoittaa. Ensimmäisen julkaiseminen siellä, missä toinen pätee, on tämän alan yleisin liioittelu, ja τ-benchin oma otsikkolöydös on rehellinen versio: gpt-4o noin 61 % pass^1 retailissa putoaa noin 25 prosenttiin kohdassa pass^8.4
Nyt pistos omissa luvuissani. pass^10 kahdenkymmenen tehtäväni yli on 5,0 %: täsmälleen yksi tehtävä kahdestakymmenestä ratkaistu kaikilla kymmenellä ajolla. Tuo tehtävä on t19, ”Onnistuiko deploy 42?”, ja tässä on kaksi kymmenestä vastauksesta, jotka rubriikki pisteytti oikeiksi:
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."Ensimmäinen ei koskaan vastaa. Toinen lisää väitteen, joka on väärä — deploy 41 palautettiin takaisin. Molemmat osuivat kohtaan /succe|yes/. Ainoa tehtävä, joka pitää pass^10 nollan yläpuolella, on grader-artefakti, joten todellinen luku on nolla, eikä mikään aggregaatti olisi näyttänyt sitä minulle. Parhaiten pisteitä saaneen tehtävän taustatranskriptioiden sampling on paikka, jossa graderit menevät kuolemaan.
Ja vielä yksi luku, se jonka mukaan tämä osio on nimetty. Kymmenen identtistä evaluointia — sama system, samat kaksikymmentä tehtävää, sama koodi, mikään ei muuttunut paitsi siemenet:
per-run correct: 5 2 5 5 8 5 8 5 4 5 -> 10 % .. 40 %, mean 26.0 %, sd 8.8 pointsKolmenkymmenen pisteen vaihteluväli järjestelmässä, joka ei muuttunut. Jos ajat suittisi kerran ennen julkaisua ja kerran sen jälkeen, kahdeksan pisteen ”parannus” on tuon vaihtelun sisällä, ja julkaiset sen uskoen aiheuttaneesi sen. Siksi yllä oleva yhdistetty väli — 26,0 % [20,4, 32,5] — on liian kapea lainattavaksi yksinään: se käsittelee kahtasataa korreloitunutta koetta kahtenasatana riippumattomana. Rehellinen yhteenveto agent-evaluoinnista on keskiarvo ja hajonta toistojen välillä, ja melkein kukaan ei julkaise jälkimmäistä.
Judge ja judgen oma golden set
Linkki osioon: Judge ja judgen oma golden setRubriikit eivät skaalaudu avoimiin vastauksiin, joten tavallinen liike on antaa modelin gradeerata output. Se toimii frontier-mittakaavassa riittävän hyvin ollakseen oletus, ja sillä on kolme nimettyä failure modea: position bias, verbosity bias ja self-enhancement bias.5
Mittaa se ennen kuin luotat siihen. Samat kuusikymmentä vastausta — kolme kymmenestä ajosta — merkittiin kolmella tavalla. Ihmislabel on minun: luin kaikki kuusikymmentä viisi tiedostoa auki ja sovelsin yhtä kirjoitettua sääntöä, pass jos ja vain jos vastaus toteaa faktan, jota kysymys pyysi, eikä sisällä mitään tiedostojen kanssa ristiriitaista.
| grader | sanoo pass | samaa mieltä ihmisen kanssa | false pass | false fail |
|---|---|---|---|---|
| keyword-rubriikki | 17/60 | 50/60 = 83,3 % [72,0, 90,7] | 8 | 2 |
| model judgena | 60/60 | 11/60 = 18,3 % [10,6, 29,9] | 49 | 0 |
Judge sanoi PASS kuusikymmentä kertaa kuudestakymmenestä. Se olisi raportoinut tälle agent 100 % accuracyn joukossa, jossa ihminen pisteyttää sen 18 prosenttiin. Judge, jolla ei ole erottelukykyä, ei ole kohinainen instrumentti; se on vakiofunktio, ja vakiofunktio antaa parhaalle ja huonoimmalle järjestelmällesi saman pistemäärän.
Prompting ei pelastanut sitä. Neljä varianttia, samat kuusikymmentä itemiä:
| judge prompt | sanoo pass | yhtäpitävyys ihmisen kanssa |
|---|---|---|
| ”Vastaa PASS tai FAIL.” | 60/60 | 18,3 % |
| ”Vastaa FAIL tai PASS.” — labelit vaihdettu | 56/60 | 25,0 % |
| plus eksplisiittinen lista siitä, mikä lasketaan epäonnistumiseksi | 55/60 | 26,7 % |
plus yksi läpikäyty FAIL-esimerkki ja yksi PASS-esimerkki | 56/60 | 25,0 % |
Kahden labelin järjestyksen vaihtaminen ohjeessa liikutti neljää tuomiota. Se on mitattava vaikutus ja vääränlainen vaikutus: judge reagoi promptin muotoon eikä sen edessä olevaan vastaukseen.
Puhdas demonstraatio on parittainen. Kaksikymmentä kysymystä, jokaisessa yksi selvästi oikea ja yksi selvästi väärä ehdokas, esitettynä molemmissa järjestyksissä:
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 %Se valitsi position A neljäkymmentä kertaa neljästäkymmenestä. 50 % oikeellisuudessa ei ole osittaista pätevyyttä — se on aritmetiikkaa, koska oikea vastaus on position A:ssa täsmälleen puolessa kokeista. Consistency määritellään tässä kuten MT-Bench määrittelee sen, ”osuutena tapauksista, joissa judge antaa johdonmukaisia tuloksia, kun kahden assistantin järjestys vaihdetaan”, mikä tekee vertailusta apples to apples: GPT-4 saa tällä mittarilla 65,0 %, ja few-shot prompting nosti sen 77,5 prosenttiin.5 Omani saa nolla.
Tavanomainen lievennys tulee myös tuosta paperista: ”kutsu judgea kahdesti vaihtamalla kahden vastauksen järjestys ja julista voitto vain, kun samaa vastausta suositaan molemmissa järjestyksissä”.5 Sovella sitä tässä, ja judge tuottaa nolla käyttökelpoista tuomiota kahdestakymmenestä parista — mikä on oikea lopputulos ja äärettömän paljon parempi kuin kaksikymmentä varmaa.
Metodologinen huomio, joka on arvokkaampi kuin tulos. Ajoin myös verbosity-testin: sama oikea vastaus, yksi kopio pehmustettuna 36 sanan lauseella, joka ei lisää mitään. Judge suosi pidempää versiota täsmälleen 50 prosentissa kokeista — mikä näyttää verbosity biasin poissaololta eikä ole sitä lainkaan, koska judge, joka valitsee aina position A:n, saa 50 % missä tahansa tasapainotetussa parituksessa. Et voi mitata toista biasia ennen kuin ensimmäinen on kontrolloitu. Positionien vaihtaminen ei ole myöhemmin lisättävä hienosäätö; se tekee kaikista muista mittauksista tulkittavia.
Mihin judge on tarkoitettu. Avoimet vastaukset, joilla ei ole parsittavaa muotoa: sävy, kattavuus, tukeeko viite lausettaan, oliko kieltäytyminen asianmukainen. Halpa, nopea ja suunnilleen yhtä hyvä kuin sen base model.
Mitä judge ei ole. Ground truth. Se on järjestelmä, jolla on accuracy, bias-profiili ja kustannus, ja se tarvitsee oman human label -golden setinsä — mukaan lukien tunnetut epäonnistumiset — ennen kuin mikään sen tuottama luku merkitsee mitään.
Rehellinen varaus: tämä judge on puolen miljardin parametrin model, eikä kenenkään pitäisi gradeerata sellaisella. Pointti ei ole, että judget ovat huonoja. Pointti on, että yllä olevien lukujen tuottaminen maksoi kahdeksan minuuttia, ja ilman niitä tämän judgen tuomio julkaisupäätöksessä olisi ollut 100 %.
Toinen paneeli: Python ja kontaminaation koetin
Linkki osioon: Toinen paneeli: Python ja kontaminaation koetinTämä on kurssin kolmas ja viimeinen ilmoitettu Python-paneeli, ja syy on siellä, mistä julkiset luvut tulevat. lm-evaluation-harness kattaa ”yli 60 standardia akateemista benchmarkia LLM:ille, satoine toteutettuine alatehtävineen ja variantteineen” ja on ”Hugging Facen suositun Open LLM Leaderboardin backend”; HELM, SWE-bench ja τ-bench ovat Python-paketteja Python-entry pointeilla.6 Modelin ajaminen julkaistua lukua vastaan tarkoittaa heidän koodinsa ajamista, ja sinä päivänä kun haluat verrata lukuun, johon joku viittasi, olet tässä ekosysteemissä:
lm_eval --model hf \
--model_args pretrained=EleutherAI/gpt-j-6B \
--tasks hellaswag \
--device cuda:0 \
--batch_size 8Toinen syy on, että yksi tämän luvun mittaus on mahdoton HTTP:n yli. Kontaminaatio — testijoukon vuotaminen training-dataan — on failure, joka tekee julkisesta benchmarkista hiljaa merkityksettömän, ja terävin koetin sitä varten tarvitsee modelin oman lossin, jota mikään chat API ei palauta. Se on luvun 8 cross-entropy per token, suunnattuna muistia koskevaan kysymykseen:
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)Kymmenen lauseparia: viisi jokaisessa webin crawlussa siitä asti kun web on ollut olemassa, viisi kirjoitettu tätä lukua varten tänä aamuna, jokainen paritettuna uudelleenmuotoillun saman sisältöisen version kanssa.
| joukko | kanoninen sanamuoto | uudelleenmuotoiltu | gap |
|---|---|---|---|
| kuuluisa, 5:n keskiarvo | 1,21 | 3,03 | +1,83 |
| tuore, 5:n keskiarvo | 5,02 | 5,96 | +0,93 |
Model yllättyy tänä aamuna kirjoitetusta lauseesta neljä kertaa enemmän kuin lauseesta, jonka se on nähnyt miljoona kertaa, ja uudelleenmuotoilu maksaa kuuluisissa lauseissa kaksi kertaa enemmän — lisäkustannus on se osa, joka oli muistettu eikä ymmärretty. Absoluuttinen loss sekoittaa muistamisen tavalliseen luonnollisuuteen, joten gap on parempi tilasto ja jatkotesti vielä parempi. Anna sille ensimmäiset kuusi sanaa:
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."Kolme viidestä kuuluisasta merkkijonosta jatkui sanasta sanaan oikein kuudesta sanasta; yksikään viidestä tuoreesta ei. Tämä on puolen miljardin parametrin model lausumassa MIT Licenseä ulkomuistista. Jos benchmarkisi on julkisessa webissä, oleta sen olevan weightsissä. Se on myös koko luvun argumentti: golden set, jonka kirjoitit omasta datastasi ja pidit poissa kaikista repositoryistä, joita crawler lukee, on ainoa testijoukko, josta voit olla varma, ettei sitä koskaan training-ajettu.
Mitä julkiset benchmarks oikeasti mittaavat
Linkki osioon: Mitä julkiset benchmarks oikeasti mittaavatNiitä kannattaa silti lukea, kunhan luet, mitä kukin niistä mittaa, etkä siihen liitettyä yhtä lukua.
| benchmark | mitä se mittaa | luku sen paperista |
|---|---|---|
| MMLU | monivalintatietoa 57 oppiaineessa | GPT-3 voitti sattuman ”keskimäärin lähes 20 prosenttiyksiköllä”7 |
| HELM | monta metriciä × monta skenaariota, standardoituna | ydinskenaarioiden coverage nousi 17,9 prosentista 96,0 prosenttiin8 |
| Chatbot Arena | joukkoistettu parittainen ihmisten preferenssi | yli 240K ääntä; joukkoäänet ”hyvässä yhteisymmärryksessä” asiantuntijoiden kanssa9 |
| SWE-bench | todellisten GitHub-issueiden ratkaisu, gradeerattuna repositoryn testeillä | 2 294 ongelmaa; ajan paras model ratkaisi ”vaivaiset 1,96 %”10 |
| τ-bench | tool use simuloidun käyttäjän ja domain-policyn kanssa | gpt-4o ≈ 61 % pass^1, ≈ 25 % pass^8 retailissa4 |
| WebArena | pitkän horisontin tehtävät toimivilla verkkosivustoilla | paras GPT-4 agent 14,41 % vastaan ihmiset 78,24 %11 |
| OSWorld | todelliset desktop- ja OS-tehtävät sovellusten yli | 369 tehtävää; paras model 12,24 %, ihmiset 72,36 %12 |
| GAIA | kysymykset, jotka ovat ihmisille helppoja ja assistanteille vaikeita | 466 kysymystä; ihmiset 92 %, GPT-4 pluginien kanssa 15 %13 |
| AgentBench | agent reasoning 8 erillisessä ympäristössä | suuri gap kaupallisten ja avoimien mallien välillä14 |
| AgentHarm | toteuttaako agent haitallisia monivaiheisia tehtäviä | 110 haitallista tehtävää 11 harm-kategoriassa15 |
Ota taulukko, älä yksittäistä riviä. Agentic benchmarks asettavat kaikki ihmiset kauas modelien yläpuolelle, mikä on tietobenchmarkien vastakohta ja paras yhden lauseen yhteenveto siitä, missä ala on; niiden luvut vanhenevat kuukausissa, joten siteeraa niitä lukupäivämäärän kanssa; ja jokainen niistä mittaa tehtävää, joka ei ole sinun.
Metrics, jotka ratkaisevat tuotannossa
Linkki osioon: Metrics, jotka ratkaisevat tuotannossaAccuracy on metric, josta väittelet. Nämä ovat niitä, jotka ratkaisevat, julkaistaanko asia. Kaikki neljä tulevat jo mitatuista kahdestasadasta ajosta.
Kustannus per ratkaistu tehtävä, ei per call. Agent maksaa $0,001345 per yritys ja $0,005172 per oikeasti ratkaistu tehtävä — 3,85 kertaa enemmän, koska kolme neljäsosaa yrityksistä ei tuota mitään. Latency käyttäytyy samalla tavalla: 1 213 ms per yritys, 4 667 ms per ratkaistu tehtävä. Jokainen retry, jokainen uudelleenkysymys, jokainen hylätty trajektori on toisessa luvussa ja näkymätön ensimmäisessä.
Diagnostiikka, joka voittaa accuracyn. 123:ssa 200 yrityksestä agent vastasi kutsumatta yhtäkään työkalua — se arvasi eikä katsonut. Jako tämän mukaan:
answered without reading anything 8/123 = 6.5 % [3.3, 12.3]
answered after reading something 44/77 = 57.1 % [46.0, 67.6]Välit eivät tule lähellekään toistensa koskettamista. Se on arvokkaampaa kuin aggregaatti 26 %, koska se nimeää korjattavan asian — model ei epäonnistu päättelyssä, se epäonnistuu katsomisessa — ja korjaus on harnessissa, ei modelissa. Yksi varaus, jonka tämä luku on omille standardeilleen velkaa: kaksi ryhmää ovat eri tehtäviä, eivät samoja tehtäviä paritettuna, joten osa gapista voi johtua siitä, että se jättää työkalut väliin juuri niissä kysymyksissä, joita se pitää vaikeina. Jako on diagnostiikka, ei kausaaliväite.
Ihmisen puuttumisaste on metric, jota ostaja kysyy ensimmäisenä: mikä osuus ajoista pysähtyi approvaliin, guardrailin tai handoffiin. Luvun 23 tyypitetyt keskeytykset tekevät siitä laskettavan, ja tehtävätyypeittäin ja viikoittain laskettuna se erottaa työtään oppivan agent hiljaa jonoksi muuttuvasta.
Hylkääminen on se, jota mikään offline-suitti ei näe: käyttäjä, joka luki vastauksen, sulki välilehden ja teki tehtävän itse. Offline-evaluointi on portti; tuotantoevaluointi on jatkuva otos oikeasta liikenteestä, pisteytettynä samalla graderilla plus näillä neljällä.
Ja luvusta 17 peritty sääntö: älä koskaan assert tarkasta outputista. Assert ominaisuuksista — validi JSON, oikea schema, oikea työkalu kutsuttu, numero toleranssin sisällä, vaadittu substring mukana. Tämän luvun alun exact-match-sarake näyttää, mitä tapahtuu, kun tuo sääntö rikotaan.
Mitä lähetät kolmannelle osapuolelle
Linkki osioon: Mitä lähetät kolmannelle osapuolelleToimittajan evaluointi ei ole vain accuracyä, ja tämä on tämän kurssin etiikan toinen puolisko, omalla otsikollaan eikä liitteenä.
Mittaa bias, älä oleta sitä. Mitä ikinä uskot modelin käyttäytymisestä nimien, murteiden, sukupuolten tai kansallisuuksien suhteen, se on oman pipelinesi mitattava ominaisuus, ja instrumentti on se, joka sinulla jo on: ota golden set, vaihtele vain attribuuttia, vertaa parittain. HELM on olemassa juuri siksi, että pelkkää accuracyä raportoitiin siellä, missä myös bias, toxicity, calibration ja robustness olivat ratkaistavissa.8 Toimittajan model card on lähtökohta, ei näyttöä sinun syötteistäsi.
Kontaminaatio on myös toimittajakysymys. Yllä oleva koetin on syy kysyä, millä julkaistu luku mitattiin ja milloin modelin data katkaistiin.
Säilytys, training ja sijainti, luettu 7. syyskuuta 2026. Nämä muuttuvat, joten kirjaa päivämäärä vastauksen viereen. Anthropic-sivun policy sanoo: ”Oletusarvoisesti emme käytä kaupallisista tuotteistamme (esim. Claude for Work, Anthropic API, Claude Gov jne.) tulevia syötteitäsi tai outputejasi malliemme trainingiin”, poikkeuksena sisältö, jonka lähetät eksplisiittisesti palautteena ja jota säilytetään ”enintään 5 vuotta”.16 OpenAI:n data controls -dokumentaatio sanoo, että ”OpenAI API:in lähetettyä dataa ei käytetä OpenAI-mallien trainingiin tai parantamiseen (ellet eksplisiittisesti valitse datan jakamista kanssamme)”, kuvaa kolmenkymmenen päivän oletussäilytyksen väärinkäytön valvontalokeille ja tarjoaa Zero Data Retentionin, joka ”sulkee asiakassisällön väärinkäytön valvontalokien ulkopuolelle”, sekä konfiguroitavan data residencyn alueiden listalla.17
Neljä kysymystä kirjallisena ennen ensimmäistä tuotantocallia, koska jokaisella on eri omistaja: käytetäänkö dataani trainingiin; kuinka kauan sitä säilytetään ja kenen toimesta; missä sitä käsitellään ja säilytetään; ja mitä kaikelle tälle tapahtuu, jos käytän jälleenmyyjää, gatewaytä tai aggregaattoria suoran palveluntarjoajan sijasta. Viimeinen on se, jossa useimmat yllätykset asuvat, eikä mikään benchmark kerro sitä sinulle.
Minne tämä menee seuraavaksi
Linkki osioon: Minne tämä menee seuraavaksiSinulla on nyt instrumentti: omistamasi golden set, väli jokaiselle luvulle, parittainen testi jokaiselle vertailulle, pass^k ajoille, joita et näyttänyt kenellekään, mitattu judge ja koetin sille, merkitseekö julkinen score mitään. Luvun 23 loppuväite voidaan nyt tarkistaa eikä vain väittää — harness tekee agent hallittavaksi, ei oikeaksi — ja sen tarkistaminen vei kaksisataa ajoa ja kahdeksan minuuttia.
On yksi agent-ominaisuus, jota mikään tästä ei mittaa, ja juuri se saa ihmisiä irtisanotuiksi.
Jokaisen tämän luvun golden setin tehtävän kirjoitin minä, ja jokaisen tiedoston, jonka agent luki, kirjoitin minä. Mikään siinä hakemistossa ei yrittänyt tehdä mitään. Muuta yksi rivi yhdessä tiedostossa, jonka agentille kerrotaan luettavaksi — rivi, joka päättyy ohjeeseen sille, mikä sen seuraavaksi lukee — ja agent, joka sai 26 %, noudattaa sitä samoilla työkaluilla, samoilla oikeuksilla ja samalla siistillä tracella, ja jokainen tämän luvun luku pysyy täsmälleen paikallaan. Evaluointisuitti mittaa, kuinka usein järjestelmä saavuttaa sinun tavoitteesi. Se ei mittaa, kuinka helposti joku muu voi vaihtaa tilalle omansa.
Luku 30 on sitä: prompt injection, yksityisen datan, epäluotettavan sisällön ja ulkoisen viestinnän tappava trifecta, sekä mitä maksaa antaa agentille todelliset oikeudet. Se alkaa havainnolla, jota tämä luku on vältellyt — että sama passing score on yhteensopiva agent kanssa, joka tekee täsmälleen sen, mitä hyökkääjä kirjoitti tiedostoon, jonka se käskettiin lukea.
Lähteet ja menetelmä
Linkki osioon: Lähteet ja menetelmäJokainen yllä oleva luku tuotettiin yhdellä koneella, eikä mikään niistä koskenut maksullista endpointia. Agent on luvun 23 silmukka kahdella sen neljästä työkalusta viiden tiedoston hakemistossa; portin takana oleva model on Qwen/Qwen2.5-0.5B-Instruct, tarjottuna pienen palvelimen kautta, joka on saman muotoinen kuin chat completions -endpoint täsmälleen kuten luvussa 23, mutta puolipresisiona yhdellä kuluttaja-GPU:lla eikä tuon luvun CPU:lla. Kustannukset käyttävät luvun 16 hintoja — $2,00 per miljoona input tokens ja $12,00 per miljoona output — sovellettuna mitattuihin token-määriin. Toistetuissa ajoissa käytetään lämpötilaa 0,7 kiinteillä siemenillä, jotta koko joukko toistuu; neljän haaran taulukko on greedy. Välit ovat Wilson 95 prosentilla, parittaiset vertailut ovat kaksisuuntaisia eksakteja merkkitestejä ristiriitaisilla pareilla; Wilsonin väli on luvusta 4 ja eksakti parittainen merkkitesti luvusta 15, molemmat käytetty muuttamatta. Ihmislabelit ovat minun, sovellettu kuuteenkymmeneen vastaukseen tekstissä lainatun kirjoitetun säännön mukaan. Lue jokainen suuruus täällä puolen miljardin parametrin modelin ominaisuutena ja jokainen menetelmä siirrettävänä: suurempi model nostaa kaikkia lukuja eikä siirrä yhtäkään instrumenttia.
Viitteet
Linkki osioon: Viitteet-
OpenAI, A practical guide to building agents (PDF), sivu 8, luettu 7. syyskuuta 2026. Lähde yllä lainatulle kolmivaiheiselle järjestykselle ja siihen liittyvälle neuvolla ”rakenna agent-prototyyppisi käyttäen kyvykkäintä modelia jokaiseen tehtävään suorituskyvyn baselinea varten. Kokeile siitä eteenpäin vaihtaa pienempiä malleja nähdäksesi, saavuttavatko ne yhä hyväksyttävät tulokset.” Luvut 22 ja 25 lainaavat sen määritelmä- ja orkestrointisivuja. ↩
-
Schaeffer, R., Miranda, B. ja Koyejo, S. Are Emergent Abilities of Large Language Models a Mirage? arXiv:2304.15004 (2023). Argumentti siitä, että epäjatkuvat kaikki-tai-ei-mitään-metrics valmistavat näennäisiä hyppyjä tasaisista taustaparannuksista, luvussa 10 siteeratun BIG-Bench-auditoinnin kanssa. Heidän oma varauksensa kannattaa toistaa: mikään paperissa ei väitä, etteivät suuret mallit voisi näyttää emergenttejä kykyjä. ↩
-
Kalai, A. T., Nachum, O., Vempala, S. S. ja Zhang, E. Why Language Models Hallucinate. arXiv:2509.04664 (2025). Argumentti siitä, että oikein-väärin pisteyttävät benchmarks palkitsevat arvaamista pidättäytymisen sijasta, sekä ehdotettu korjaus: ”leaderboardeja dominoivien mutta väärin kohdistettujen olemassa olevien benchmarks pisteytyksen muokkaaminen sen sijaan, että tuotaisiin lisää hallucination-evaluointeja”. Luku 19 siteeraa sitä retrieval-puolelta; tämä on saman väitteen evaluointipuoli. ↩
-
Yao, S., Shinn, N., Razavi, P. ja Narasimhan, K. τ-bench: A Benchmark for Tool-Agent-User Interaction in Real-World Domains. arXiv:2406.12045 (2024). Alkuperä kohteelle
pass^k, määritelty yllä lainatulla tavalla, molemmat estimaattorit paperissa rinnakkain painettuina; abstraktin otsikkolöydös on, että uusimmat function-calling agents ”onnistuvat <50 prosentissa tehtävistä ja ovat varsin epäjohdonmukaisia (pass^8 <25 % retailissa)”, ja osio 1 antaa gpt-4o-luvut ≈61 %pass^1ja ≈25 %pass^8τ-retailissa.pass@k-estimaattori, johon sitä verrataan, tulee lähteestä 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). Lähde kolmelle nimetylle biasille, yllä käytetylle consistencyn määritelmälle (”prosenttiosuus tapauksista, joissa judge antaa johdonmukaisia tuloksia, kun kahden assistantin järjestys vaihdetaan”), löydökselle, että ”vain GPT-4 tuottaa johdonmukaisia tuloksia yli 60 prosentissa tapauksista” 65,0 prosentin noustessa 77,5 prosenttiin few-shotilla, sekä sanatarkasti lainatulle swap-and-require-agreement-lievennykselle. Myös sen positiivisella tuloksella on väliä: GPT-4-judget saavuttavat ”yli 80 prosentin yhtäpitävyysasteen” ihmisevaluointien kanssa, ”saman tason kuin ihmisten välinen yhtäpitävyys” — mikä on syy käyttää judgea ylipäätään ja syy mitata omasi. ↩ ↩2 ↩3
-
EleutherAI, Language Model Evaluation Harness, projektin README luettu 7. syyskuuta 2026: ”yli 60 standardia akateemista benchmarkia LLM:ille, satoine toteutettuine alatehtävineen ja variantteineen”, ja ”Hugging Facen suositun Open LLM Leaderboardin backend”. Yllä lainattu
lm_eval-kutsu on README:n oma esimerkki. Liang, P. et al., Holistic Evaluation of Language Models, arXiv:2211.09110 (2022), on toinen standard runner ja parempi luettava evaluointisuunnittelusta. ↩ -
Hendrycks, D., Burns, C., Basart, S., Zou, A., Mazeika, M., Song, D. ja Steinhardt, J. Measuring Massive Multitask Language Understanding. arXiv:2009.03300 (2020). 57 tehtävää; abstraktin väite, että suurin GPT-3-model ”parantaa satunnaiseen arvaukseen nähden keskimäärin lähes 20 prosenttiyksiköllä”, on hyödyllinen muistutus siitä, kuinka tuore tämän benchmarkin saturaatio on. ↩
-
Liang, P. et al. Holistic Evaluation of Language Models. arXiv:2211.09110 (2022). Seitsemän metriciä — accuracy, calibration, robustness, fairness, bias, toxicity ja efficiency — 16 ydinskenaarion ja 30 modelin yli, yllä lainatuilla coverage-luvuilla. Syy lukea se on kehystys: se, mitkä seitsemästä raportoit, on itsessään valinta. ↩ ↩2
-
Chiang, W.-L. et al. Chatbot Arena: An Open Platform for Evaluating LLMs by Human Preference. arXiv:2403.04132 (2024). Yli 240K ääntä kirjoitushetkellä, joukkoistettu parittainen preferenssi ja väite, että ”joukkoistetut ihmisäänet ovat hyvässä yhteisymmärryksessä asiantuntija-arvioijien kanssa”. ↩
-
Jimenez, C. E., Yang, J., Wettig, A., Yao, S., Pei, K., Press, O. ja Narasimhan, K. SWE-bench: Can Language Models Resolve Real-World GitHub Issues? arXiv:2310.06770 (2023). 2 294 ongelmaa 12 Python-repositorystä, gradeerattu repositoryjen omilla testeillä, ja ajan paras model ratkaisi ”vaivaiset 1,96 %”. Luku 23 käyttää sitä sanan ”harness” toisessa merkityksessä. ↩
-
Zhou, S. et al. WebArena: A Realistic Web Environment for Building Autonomous Agents. arXiv:2307.13854 (2023). Toimivat verkkosivustot neljällä domainilla, paras GPT-4 agent 14,41 % vastaan ihmiset 78,24 %. ↩
-
Xie, T. et al. OSWorld: Benchmarking Multimodal Agents for Open-Ended Tasks in Real Computer Environments. arXiv:2404.07972 (2024). 369 tehtävää todellisissa käyttöjärjestelmissä; ihmiset yli 72,36 %, paras model 12,24 %, GUI grounding nimettynä päägapiksi. ↩
-
Mialon, G., Fourrier, C., Swift, C., Wolf, T., LeCun, Y. ja Scialom, T. GAIA: A Benchmark for General AI Assistants. arXiv:2311.12983 (2023). 466 kysymystä, ihmiset 92 % vastaan GPT-4 pluginien kanssa 15 % — siistein julkaistu lausuma gapista sen välillä, mikä on ihmiselle helppoa ja mikä assistantille helppoa. ↩
-
Liu, X. et al. AgentBench: Evaluating LLMs as Agents. arXiv:2308.03688 (2023). Kahdeksan erillistä ympäristöä ja merkittävä ero parhaiden kaupallisten modelien ja vastaavan kokoisten open-source-mallien välillä. ↩
-
Andriushchenko, M. et al. AgentHarm: A Benchmark for Measuring Harmfulness of LLM Agents. arXiv:2410.09024 (2024). 110 eksplisiittisesti haitallista agent-tehtävää (440 augmentaatioiden kanssa) 11 harm-kategoriassa, löydöksenä että johtavat mallit ovat ”yllättävän suostuvaisia haitallisiin agent-pyyntöihin ilman jailbreakingia” ja että yksinkertaiset universaalit jailbreak-template siirtyvät agentteihin säilyttäen niiden kyvykkyydet. Se on silta lukuun 30: capability-benchmark ja harm-benchmark mittaavat samaa järjestelmää ja ovat eri mieltä siitä, onko se valmis. ↩
-
Anthropic, Is my data used for model training?,
privacy.claude.com, luettu 7. syyskuuta 2026. Yllä sanatarkasti lainattu, mukaan lukien feedback-poikkeus ja viiden vuoden säilytysikkuna lähetetylle feedbackille. ↩ -
OpenAI, Your data (API data controls -dokumentaatio),
developers.openai.com, luettu 7. syyskuuta 2026. Lähde oletusarvoiselle no-training-lausumalle, kolmenkymmenen päivän väärinkäytön valvonnan säilytykselle, Zero Data Retentionin kuvaukselle ja kelpoisten endpointien listalle sekä data residency -alueille. ↩