Hogyan olvassuk az AI-kódolási benchmarkokat, és hogyan kerüljük el a papíron győztes kiválasztását
MarkdownMit mér a HumanEval és a SWE-bench, és hogyan vegyük figyelembe az ügynök környezetét, a feltételeket, a feladatok frissességét, a szórást és a költséget az AI-kódolási rangsorok olvasásakor.
A teljes cikk elolvasása
Röviden: a „megoldja a feladatok 76 százalékát” szám önmagában szinte semmit sem mond. Az számít, melyik feladathalmaz eredményezte, melyik modellt és ügynök környezetet mértek együtt, újak vagy régiek-e a feladatok, és mennyibe került a megoldás. E feltételek nélkül a százalék jó reklámbannerre, de eszközválasztásra nem.
A következőkben közérthetően elmagyarázom, mit mér a két fő kódolási benchmark, hol rejtőzik a csapda a táblázatokban, és hogyan ellenőrizhetünk bármilyen rangsort egy perc alatt, mielőtt támaszkodnánk rá. Alább történeti benchmarkmeghatározásokról lesz szó. Nem közlünk élő, páros ranglistapillanatképet; az aktuális pontszám- vagy költség-összevetéshez saját hivatkozott táblázat, dátum és konfiguráció kell.
A modellekkel való munkáról bővebben az Ailoot dokumentációjában olvashat.
Mit mutat valójában a benchmark százalékos eredménye?
Fő tanulság
A benchmark százalékos eredménye azt mutatja, hogy egy meghatározott feladathalmaz feladataiból mekkora részt oldott meg működő eredménnyel egy eszköz meghatározott feltételek mellett. A feladatokat automatizált tesztek ellenőrzik: a kód vagy átmegy a teszten, vagy nem; az értékelés őszinte, nincs „többé-kevésbé.” A feladathalmaz azonban mindig szűk, és előre ismert, miközben a mérési feltételek mindenkinél eltérnek. Ezért az eredmény arra a kérdésre válaszol, hogy „Ezek közül a feladatok közül mennyit oldott meg ez az eszköz ilyen módon?” Arra viszont nem válaszol, hogy „Elboldogul-e a munkámmal?”
A benchmark működése egyszerű. Van egy előre összeállított programozási feladatlista. Az eszköz megkapja az egyes feladatokat, visszaküldi a kódot, a rendszer pedig automatizált tesztekkel ellenőrzi, hogy működik-e a megoldás. A táblázatban a sikeresen teljesített feladatok arányát tüntetik fel százalékban.
Ennek az az erőssége, hogy az értékelés objektív. A teszt vagy zöld, vagy piros; senki sem ad „ránézésre” pontszámot. Ebből a szempontból a benchmarkok őszintébbek bármilyen értékelésnél vagy ajánlásnál.
A gyengeségük pontosan ugyanez. A feladathalmaz véges, és előre ismert mindenki számára, azok számára is, akik a modelleket tanítják. Minden mérésnek megvannak a saját feltételei. A halmaz feladatai pedig szinte biztosan nem olyanok, mint amilyeneket te végzel. Ebből adódik az összes alább tárgyalt csapda. A százalék azt írja le, hogyan viselkedett az eszköz valaki más zárt feladatlistáján, és nem vihető át közvetlenül a projektedre.
Mit mér a HumanEval, és miért nem választhatsz már ez alapján?
Fő tanulság
A HumanEval egy régi, 164 kis Python-feladatból álló gyűjtemény: a modellek kapnak egy függvényleírást, megírják a kódot, az automatizált tesztek pedig ellenőrzik a feladatot. Amikor 2021-ben megjelent, az első Codex egy próbálkozásból a feladatok 28,8 százalékát oldotta meg. Ma az erős modellek szinte az egészet teljesítik, ezért már nem lehet különbséget tenni velük. Ráadásul a feladatok játékproblémák: egyetlen, leírás alapján megírandó függvény messze áll attól, hogy egy nagy, működő projekten dolgozzunk. A 2026-os magas HumanEval-pontszám szinte semmit sem jelent.
A HumanEvalt az OpenAI hozta létre, és 2021-ben, a Codex modellel együtt adta ki. 164 kis Python-feladatot tartalmaz: a modellek szöveges függvényleírást kapnak, megírják a függvény törzsét, az automatizált tesztek halmaza pedig ellenőrzi, hogy helyesen működik-e.
A maga idejében jó megkülönböztető mérce volt. A szerzők a saját tanulmányukban a következő adatot közlik: az első Codex egy próbálkozásból a feladatok 28,8 százalékát oldotta meg, míg a hagyományos GPT-3 egyet sem.
A HumanEvalon a modellünk a problémák 28,8 százalékát oldja meg, míg a GPT-3 0 százalékot, a GPT-J pedig 11,4 százalékot ér el.
Azóta fejlődtek a modellek, és ma az erősek szinte az egész HumanEvalt teljesítik. Ha mindenki közel 100 százalékos eredményt ér el, a táblázat már nem különböztet meg semmit: elvesznek az eszközök közötti különbségek. Ezt benchmark-telítődésnek nevezik, és a HumanEval már régóta ebben az állapotban van.
A második hiba súlyosabb. A feladatok aprók: egyetlen függvényt kell megírni egy leírás alapján. A valódi munkád más—egy nagy, előzményekkel rendelkező projektben kell dolgoznod, ahol meg kell értened mások kódját, meg kell találnod a hibát, és el kell kerülnöd a szomszédos kód elrontását. Szakadék van aközött, hogy „írj egy függvényt a nulláról”, illetve aközött, hogy „javíts ki egy hibát egy működő projektben.” Ezért ma már nem indok a magas HumanEval-pontszám egy eszköz kiválasztására; inkább azt jelzi, hogy „az alapok rendben vannak.”
Mit mér a SWE-bench, és miért áll közelebb a valódi munkához?
Fő tanulság
A SWE-bench népszerű GitHub-projektek valódi hibáiból épül fel: 12 Python-repozitórium 2 294 feladatából. Az eszköz kap egy problémaleírást, módosítja a kódot, a rendszer pedig lefuttatja azokat a teszteket, amelyek a változtatás előtt elbuktak, és a javítás után át kell menniük. Ez sokkal közelebb áll a valódi munkához, mint a HumanEval, ezért használják komoly eszközök összehasonlítására. A nehézsége a történetéből is látszik: az első egyszerű megközelítés a feladatok kevesebb mint két százalékát oldotta meg.
A SWE-bench alapvetően más, ezért érdekesebb is. Népszerű GitHub-projektek valós hibajelzéseiből és pull requestjeiből állították össze. A szerzők szerint 12 nagy Python-repozitórium 2 294 feladatát tartalmazza, és 2023 októberében adták ki.
Az értékelési logika őszinte. Kiválasztanak egy pontot a projektben, ahol valódi hiba történt, valamint az akkori állapotban elbukó tesztek egy halmazát. Az eszköz megkapja a probléma leírását, és módosítja a kódot. Ezután ugyanazokat a teszteket futtatják le: ha zöldre váltanak, a feladat valóban megoldódott; itt senki sem hisz a szóbeli ígéreteknek.
2 294 feladatot gyűjtöttünk össze úgy, hogy átvizsgáltuk 12 népszerű Python-repozitórium pull requestjeit és hibajegyeit. Minden feladat egy olyan pull requesten alapul, amely egy hibajegyhez kapcsolódik, és legalább egy tesztekhez kapcsolódó fájlt módosít.
A kezdeti adatok megmutatják, mennyivel nehezebb ez a játékfeladatoknál. Az első baseline megközelítés mindössze 1,96 százalékot ért el a SWE-ben, az első ügynök pedig 12,47 százalékot. Más szóval, már a valódi kódolási munkához való közelítés is nehéz volt; a százalékok később nőttek, de közel nulláról indultak.
Amikor ma nagy számokat látsz az AI-kódoló ügynökök rangsoraiban, azok leggyakrabban a SWE-benchből vagy annak 500 feladatot tartalmazó, emberek által ellenőrzött részhalmazából, a SWE-bench Verifiedből származnak. Ez egy ésszerű benchmark. De ennek is vannak olyan feltételei, amelyek nélkül félrevezető a százalék, és erről beszélek a következőkben.
Még a táblázat legőszintébb benchmarkja sem jelent eredményt a projekteden. Az eredmény attól függ, hogyan dolgozol az eszközzel, a rangsor első sora pedig keveset árul el. A megbízható munkához a kombináció számít: AI-klón, Second Brain és kontextustervezés. A tiszta kontextus sokkal látványosabban növeli a személyes sikerarányodat, mint ha egy táblázat alapján választasz modellt.
Miért mutat ugyanaz a modell eltérő százalékos eredményt?
Fő tanulság
Mert az eredmény nem csak a modelltől függ. Minden mérésben legalább három tényező játszik szerepet: maga a modell, az azt körülvevő ügynökkörnyezet, valamint az engedélyezett gondolkodási szint. A gondolkodási beállítás megváltoztatása ugyanahhoz a modellhez és ügynökkörnyezethez is eltérő sorokat adhat. A környezet neve, verziója, beállításai és dátumozott forrás nélkül ezek a sorok nem támasztanak alá számszerű összehasonlítást. Ezért a teljes kombinációkat kell összehasonlítani; önmagában a modell márkaneve nem sokat határoz meg.
Itt rejtőzik a benchmarkok olvasásának leggyakoribb hibája. Az emberek modellrangsorként olvassák a táblázatot: ez a modell két százalékkal okosabb annál. Pedig három dolog befolyásolja a százalékot, és ezek közül csak az egyik a modell.
Először maga a modell. Másodszor az ügynök környezet, amely körülveszi: egy program, amely lehetővé teszi, hogy a modell fájlok között navigáljon, parancsokat futtasson, hibákat olvasson, és átírja a kódot. Ugyanaz a modell egy okos és egy egyszerű környezetben eltérő eredményt mutat, mert a környezet határozza meg, hogyan dolgozik a modell a projekttel. Harmadszor a gondolkodási szint—vagyis az, hogy milyen mélyen gondolja végig a modell az egyes lépéseket. Minél tovább gondolkodik, általában annál magasabb az eredménye, és annál nagyobb a költsége.
A reprodukálható összevetésnek a teljes beállítást meg kell őriznie. Ezt jelentési sablonként használd, nem mért ranglistaként:
| Mező | A futás | B futás |
|---|---|---|
| Modell és pontos verzió | Rögzítsd a tesztelt verziót | Kontrollált összevetéshez ugyanaz a verzió |
| Ügynökkörnyezet és verzió | Rögzítsd a repositoryt és commitot | Ugyanaz a környezet és commit |
| Feladatsor és pontozás | Rögzítsd a részhalmazt és értékelési verziót | Ugyanaz a feladatsor és pontozás |
| Gondolkodási beállítás | Rögzítsd az A beállítást | Rögzítsd a B beállítást |
| Eredmény és bizonyíték | Megoldott darabszám, nevező, naplók, dátum | Megoldott darabszám, nevező, naplók, dátum |
Így látható, mi változott, és az összevetés valóban elkülöníti-e a gondolkodási beállítás hatását. A korábbi, hivatkozás nélküli számpéldát nem kezeljük mért eredményként.
A szabály a következő: egy jó rangsor mindig megadja, melyik modellt, melyik környezetet és melyik gondolkodási szintet használták. Ha a táblázatban csak a modell neve és egy százalék szerepel, környezet nélkül, nehéz megbízni benne: nem tudod, mit mértek valójában. A „modell plusz környezet” kombináció összetevőiről bővebben az AI-kódoló ügynökök rangsoráról szóló cikkben olvashatsz.
Ez arra is választ ad, hogy egy csúcspontszámot elérő eszköz miért okozhat néha nehézséget neked. A benchmark egy mások által finomhangolt környezetben, mások feladatain méri a modellt. A te környezeted, projekted és a modellnek adott kontextus eltérő. A projekteden az eredmény a kontextustól függ; a táblázat sora másodlagos.
Miért „járnak le” a feladatok, és mi az a tanítási adatszivárgás?
Fő tanulság
A modelleket az internetről származó hatalmas mennyiségű szövegen és kódon tanítják, a népszerű benchmarkok pedig nyilvánosan elérhetők. Ha a feladatok és megoldásaik bekerültek a tanítási adatokba, a modell megjegyezhette őket, és az értékeléskor egyszerűen felidézheti a tanultakat ahelyett, hogy megoldaná a feladatot. Ezt nevezik a feladat tanítási adatokba való beszivárgásának. Minél régebbi és ismertebb egy halmaz, annál nagyobb a kockázat: egy régi benchmark nagyobb valószínűséggel mutatja a modell memóriáját, mint gondolkodási képességét. A friss és zárt feladathalmazok megbízhatóbbak a régieknél és nyilvánosaknál.
Íme a csapda, amely magában az eredményben láthatatlan, mégis mindennél jobban aláássa annak értékét. A modelleket az internetről gyűjtött hatalmas mennyiségű szövegen és kódon tanítják. Szinte minden kódolási benchmark nyilvánosan elérhető: a feladatok, a tesztek és a referenciamegoldások is.
A mechanizmus egyszerű. Ha egy feladat és a helyes megoldása bekerült a tanítási adatokba, a modell megjegyezhette. Értékeléskor ilyenkor nem annyira megoldja a feladatot, hanem előhívja az ismerős választ az emlékezetéből. Megoldásnak tűnik, de valójában csak emlékezetből dolgozik. Ezt tanítási adatszivárgásnak vagy adatszennyezésnek nevezik.
Minél régebbi és népszerűbb a feladathalmaz, annál nagyobb a kockázat. A HumanEval 2021 óta érhető el online; számtalanszor átírták, elemezték és megszámlálhatatlan adathalmazba vették fel. Különös lenne azt várni, hogy egy modern modell még ne „látta volna.” Ezért a feladatok frissessége a benchmark külön minőségi mutatója. Egy jó halmazt vagy rendszeresen frissítenek, vagy egyes feladatokat zártan tartanak, hogy ne lehessen őket előre megtanulni.
Mit tegyél rangsor olvasásakor? Ellenőrizd a feladatok dátumát, és nézd meg, frissül-e a halmaz. Ha a benchmark az elmúlt hónapok friss hibáira épül, jobban megérdemli a bizalmat. Ha egy öt évvel ezelőtti halmazról van szó, az azon elért magas százalék többet mond a modell jó memóriájáról, mint arról, hogy képes-e megoldani az új feladatodat. Ezt a pontos hatást egy konkrét példa mutatja be a friss FrontierCode benchmarkról szóló cikkben, amelynek feladatait szándékosan újonnan alkották.
Miért nem jelent gyakran semmit a néhány százalékpontos különbség?
Fő tanulság
A benchmarkok eredménye szór: ugyanaz az eszköz ugyanazokon a feladatokon kissé eltérő eredményt ad az egyes futásokban, mert a modell nem mindig ugyanúgy válaszol. Emiatt a rangsor szomszédos sorai közötti egy- vagy kétpontos különbség gyakran elveszik a zajban, és nem jelez valódi fölényt. Az árat is ellenőrizd külön: a hasonló százalékos eredmények sokszoros költséggel járhatnak. Költségeket csak akkor hasonlíts össze, ha mindkét teljes beállítás, sikerarány, számlázási feltevés és költségnevező meg van adva.
A táblázat első helyét félrevezetővé tevő másik tényező, hogy a modell nem mindig ugyanúgy válaszol. Ugyanarra a promptra kissé eltérő gondolatmenetet választhat. Ha tehát egy eszközt többször futtatsz ugyanazon a feladathalmazon, az eredménye futásonként kissé ingadozik; ezt az ingadozást nevezik szórásnak.
A gyakorlati tanulság egyszerű. Ha egy rangsor két sora között egy vagy két százalékpont a különbség, az könnyen lehet zaj. Értelmetlen olyan eszközt hajszolni, amely „két százalékkal magasabb”: a következő futásnál könnyen helyet cserélhetnek. A különbséget akkor érdemes jelentősnek tekinteni, ha jól látható és sok feladaton át fennmarad; néhány pont nem üti meg ezt a mércét.
Az utolsó szempont, amely szinte mindig fontosabb magánál a százaléknál, az ár. Hasonló eredmények nagyon eltérő költségekkel járhatnak. A költség-összevetéshez mindkét modell- és ügynökkörnyezet-konfiguráció, valamint az értékelt feladatsor teljes költése kell, a sikertelen próbálkozásokkal együtt. Próbálkozásonkénti költséghez a próbált, megoldott feladatonkénti költséghez a megoldott feladatokkal oszd el, és nevezd meg a mércét. A cikk nem ad forrással ellátott páros költségmérést. Ezért mindig az árral együtt olvasd a rangsor sorát, mert önmagában a százalék keveset jelent. Egy sikeresen megoldott feladat költségéről szóló cikk bemutatja, hogyan lehet tisztességesen összehasonlítani az eszközök költségét.
Hogyan olvashatsz el egy benchmarktáblázatot egy perc alatt?
Fő tanulság
Mielőtt megbízol egy rangsorban, tegyél fel neki hét kérdést: Milyen feladathalmaz? Frissek vagy régiek a feladatok? Melyik modell? Melyik ügynök környezet? Melyik gondolkodási szint? Mennyibe kerül egy feladat? Mekkora a szórás? Ha a táblázat ezek legalább felére nem ad választ, nem bízhatsz benne: valószínűleg reklám. Külön ellenőrizd, hogy a halmaz feladatai hasonlítanak-e a valódi munkádra, mert még a mások feladatain mért őszinte százalék sem vihető át a projektedre.
Foglaljuk össze mindezt egy rövid ellenőrzőlistában. Nyiss meg bármilyen rangsortáblázatot, és haladj végig sorban a következő hét ponton.
- Milyen feladathalmaz? A HumanEval ma már gyenge; a SWE-bench közelebb áll a valódi munkához. Ha a halmaz neve egyáltalán nincs megadva, nem érdemes tovább olvasni.
- Frissek vagy régiek a feladatok? A friss vagy részben zárt halmaz megbízhatóbb, mint egy régi, nyilvános, a modell által esetleg már megtanult halmaz.
- Melyik modellt mérték? A pontos név és verzió számít, nem egy homályos „AI” vagy a modellcsalád neve.
- Melyik ügynök környezetet használták? A százalék a „modell plusz környezet” kombinációhoz tartozik. Ha a környezet nincs megadva, nem tudod, mit mértek.
- Melyik gondolkodási szintet? Ugyanaz a modell különböző szinteken eltérő százalékot és költséget ad.
- Mennyibe kerül egy feladat? A hasonló eredmények ára többszörösen eltérhet. A százalékot a költséggel együtt olvasd.
- Mekkora a szórás? A sorok közötti egy- vagy kétpontos különbség gyakran csak zaj.
Van egy nyolcadik kérdés is, és ez rólad szól: Hasonlítanak a halmaz feladatai a munkádra? Egy Python-feladatokat tartalmazó benchmark keveset mond annak, aki weboldalt vagy botot épít más eszközökkel. Még a mások feladatain elért őszinte eredmény sem garantál eredményt a projekteden. Csak egyetlen megbízható módon ellenőrizheted: futtass néhány tipikus feladatot az eszközzel, és nézd meg saját magad az eredményt. A mesterséges intelligencia által generált kód ellenőrzéséről szóló cikk elmagyarázza, hogyan állapíthatod meg, működik-e a kód, ha nem programozol.
Végül mire érdemes figyelned?
Fő tanulság
A csúcssor mögötti feltételekre figyelj, ne csak magára a csúcssorra: milyen feladathalmazról van szó, mennyire friss, milyen a „modell plusz környezet” kombináció, milyen a gondolkodási szint, mennyibe kerül egy feladat, és mekkora a szórás. E feltételek nélkül egy puszta szám semmit sem bizonyít. És ne feledd: a mások feladatain elért őszinte százalék sem vihető át a projektedre. Az utolsó szó mindig a saját valódi feladataiddal végzett tesztelésé, az eredményed pedig jobban függ attól, hogyan dolgozol az eszközzel, mint attól, hol áll a rangsorban.
Az egész cikk fő mondanivalója röviden: a rangsorban elfoglalt hely ok arra, hogy alaposabban megnézz egy eszközt, de neked kell tovább kutatnod. A magas szám csupán azt jelzi, hogy az eszköz jól teljesített egy meghatározott zárt feladatlistán, meghatározott feltételek mellett. A százalék nem mutatja meg, hogy ezek a feltételek megfelelnek-e neked.
Olvasd el tehát, mi áll a rangsor sora mögött: milyen feladatok, mennyire frissek, milyen modell-környezet kombináció, milyen gondolkodási szint, mennyibe kerül, és hogy a különbség nem vész-e el a zajban. Az a táblázat, amely nem válaszol ezekre a kérdésekre, reklámbannerre való. A melyik eszközzel érdemes kódolni 2026-ban című értékelés elmagyarázza, hogy egyáltalán melyik eszközt válaszd a feladataidhoz.
És van valami, ami minden benchmarknál fontosabb. Még a rangsor legjobb eszköze is küszködik a rendezetlen kontextussal, tiszta kontextussal viszont jól működik. A személyes sikerarányod attól függ, mit adsz a modellnek, és hogyan fogalmazod meg a feladatot; a táblázat sora másodlagos. A rangsor segít kizárni a nyilvánvalóan gyenge lehetőségeket, de az eredményt te hozod létre.
Források
- HumanEval - openai/openai_humaneval adatkészlet (huggingface.co) - 164 Python-feladatból álló halmaz, amelyet automatizált tesztekkel ellenőriznek
A rangsorban elfoglalt hely kizárja a gyenge lehetőségeket, de a projekteden elért eredmény a módszertől függ: AI-klón plusz Second Brain plusz kontextustervezés.
A további munkához—Ailoot.
További részletek
Kérdések és válaszok: Hogyan olvassuk az AI-kódolási benchmarkokat, és hogyan kerüljük el a papíron győztes kiválasztását
Mit kell rögzíteni két benchmarksor összehasonlítása előtt?
Rögzítsd a pontos modellt, ügynökkörnyezetet és verzióját, a gondolkodási beállításokat, a feladatrészhalmazt, pontozást, dátumot és a közvetlen eredményforrást. Ezek nélkül a pontszámkülönbség nem tulajdonítható egyetlen megváltozott beállításnak.
Ugyanaz a próbált és a megoldott feladatonkénti költség?
Nem. Az elsőhöz a teljes értékelési költést oszd az összes próbált feladattal, a másodikhoz a megoldottakkal. A sikertelen próbálkozások költségét is számítsd bele, és árak összehasonlítása előtt nevezd meg a nevezőt.