Ako (ne)čítať benchmarky a leaderboardy
Je jednoduché spoľahnúť sa na jedno číslo z leaderboardu pri výbere modelu pre váš prípad použitia. Toto číslo však môže skrývať omnoho viac, než ukazuje. Dôležité je pozrieť sa aj na to, akú výpovednú hodnotu majú použité benchmarky a aké schopnosti sa pri nich vyhodnocujú.
Na internete sa nachádza veľké množstvo benchmarkov a úlohou každého z nich je vyhodnocovať iné aspekty modelov umelej inteligencie. Niektoré benchmarky sa zameriavajú na schopnosť nasledovať inštrukcie (ang. instruction following), iné na schopnosť pracovať s obrázkami. Nie každý benchmark je však pre vás užitočný, vždy to závisí od toho, na čo daný model chcete používať. Ale čo je vlastne benchmark? Benchmark predstavuje objektívny a reprodukovateľný spôsob vyhodnocovania schopností modelov, či už ide o jazykové modely, embedding modely, alebo rôzne ďalšie. Preto je dôležité si najprv ujasniť, čo chceme vyhodnotiť: firmy sa totiž často spoliehajú skôr na pôsobivé demo než na overiteľné dáta.
Typy benchmarkov
Benchmarky môžeme rozdeliť na dva základné typy podľa toho, čo je ich cieľom vyhodnotiť. Prvý typ pozostáva z benchmarkov, ktoré vyhodnocujú špecifické vlastnosti alebo konkrétnu doménu. Medzi typické domény patrí napríklad oblasť práva alebo telekomunikácií. Medzi špecifické vlastnosti zas agentické správanie, používanie nástrojov jazykovými modelmi, embeddingy alebo aj jazykovo špecifické benchmarky, ako je tomu napríklad pri slovenčine. Ich účelom je vyhodnotiť modely na jednej konkrétnej úlohe alebo schopnosti, ktorá môže byť nápomocná pre ďalšie prípady použitia, napríklad pre firmy alebo výskum. Ak napríklad vyvíjate coding agenta, viac vám povie špecializovaný benchmark ako SWE-bench, ktorý testuje riešenie reálnych softvérových úloh, než všeobecné skóre z jazykového leaderboardu. Na druhej strane existujú benchmarky, ktoré vyhodnocujú modely vo všeobecnosti. Ich cieľom je posúdiť viacero schopností naraz a poskytnúť tak obraz o tom, ktorý model toho dokáže najviac. Zvyčajne ide o jazykové benchmarky, ktoré majú za úlohu vyhodnotiť generatívne schopnosti na širšom spektre úloh: od klasifikácie cez nasledovanie inštrukcií a programovanie až po pokročilé logické uvažovanie (ang. advanced reasoning). Vyhodnocovanie jazykových modelov je však o niečo komplikovanejšie, o čom si povieme viac neskôr.
Doteraz sme rozoberali benchmarky, no s čím sa stretávame častejšie, sú tzv. rebríčky najlepších (ang. leaderboards). V čom sa ale líši leaderboard od benchmarku? Leaderboard predstavuje prezentačnú vrstvu nad výsledkami jedného alebo viacerých benchmarkov, ktorá určuje poradie modelov, zvyčajne od najlepšieho po najhorší. Pri leaderboardoch, ktoré spájajú výsledky z viacerých benchmarkov, si však treba dávať pozor na to, ako výsledky čítať: agregované skóre totiž môže skrývať rozdiely v metodológii vyhodnocovania, napríklad rôzne prompty alebo vyhodnocovanie na rôznych dátach. Predstavme si dva modely s rovnakým agregovaným skóre 75 %, kde prvý dosahuje 95 % vo faktickej presnosti a 55 % v riešení matematických úloh, druhý presne opačne. Ak model potrebujeme na sumarizáciu firemných zmlúv, kde je kľúčová faktická presnosť, je prvý model jednoznačne lepšou voľbou, hoci agregované skóre naznačuje, že sú si rovné. Ak leaderboard kombinuje viacero benchmarkov do jediného čísla, znižuje to jeho transparentnosť aj výpovednú hodnotu, pretože za týmto číslom sa môže skrývať oveľa viac, než sa na prvý pohľad zdá.
Na čo sú benchmarky dobré a na čo slúžia?
Na čo sú teda benchmarky vôbec dobré a pre koho sú určené? Predstavte si, že vo svojej firme máte nasadený model, či už zakúpený od inej spoločnosti alebo vlastný. Pomocou benchmarkov si viete overiť schopnosti daných modelov na rôznych typoch úloh, a to najmä na tých, ktoré sú pre vás najpodstatnejšie.
Konkrétny príklad: firma chce postaviť chatbota nad internou dokumentáciou, ktorý bude fungovať na princípe RAG (retrieval-augmented generation). Ide teda o systém, ktorý najprv vyhľadá relevantné časti dokumentov v dokumentácii (časť „retrieval“) a až následne na ich základe vygeneruje odpoveď (časť „generation“). Kvalita takéhoto systému stojí a padá na embedding modeli, ktorý zabezpečuje vyhľadávanie. Ak model nesprávne vyhodnotí súvislosť medzi otázkou a dokumentmi, chatbot dostane na vstup nesprávny kontext a odpoveď bude zlá, aj keby bola generatívna časť inak veľmi kvalitná. Práve tu prichádzajú na rad embedding benchmarky, čiže benchmarky vektorových reprezentácií textu (napríklad SkMTEB pre slovenčinu). Tieto benchmarky umožnia porovnať viacero kandidátskych modelov na úlohách blízkych retrieval časti a vybrať ten, ktorý bude pre váš konkrétny prípad použitia najspoľahlivejší, namiesto spoliehania sa na všeobecné skóre z medzinárodného leaderboardu, ktorý slovenčinu nemusí vôbec pokrývať.
Vyhodnocovanie nám tiež pomáha zistiť, či na trhu neexistuje výkonnejší model (prípadne aj cenovo výhodnejší), alebo či náš vlastný model dobre zvláda úlohy, na ktoré bol určený, bez toho, aby stratil schopnosti v iných oblastiach, ktoré sú pre nás v praxi užitočné. Benchmarky a leaderboardy sú tak vhodným nástrojom na porovnávanie našich modelov s ostatnými. Na základe tohto porovnania sa vieme rozhodnúť, ktorý model nasadiť do produkcie. A ak už nejaký model používame, dokážeme jasne zdôvodniť, prečo zostať pri ňom alebo prečo prejsť na iný, čo je užitočné najmä pri internom rozhodovaní.
Čo robí benchmark kvalitným?
Keďže benchmark by mal poskytovať informácie, na základe ktorých môžu jednotlivci a organizácie robiť dôležité rozhodnutia, mal by spĺňať viaceré kvalitatívne charakteristiky.
Jedným z hlavných aspektov kvalitného benchmarku je pokrytie úloh. To závisí predovšetkým od toho, či ide o špecifický alebo generický benchmark, no cieľom je vždy pokryť čo najrozmanitejšie spektrum úloh. Pri všeobecných benchmarkoch sa snažíme pokryť viacero typov úloh: od klasifikácie cez generovanie odpovede na otázky s voľným textom až po agentické správanie alebo logické uvažovanie. Pri benchmarkoch zameraných na špecifické úlohy alebo domény je cieľom pokryť viaceré aspekty danej oblasti vrátane hraničných prípadov. Benchmark pre právnu doménu by tak mal okrem štandardných otázok obsahovať aj prípady s protichodnými alebo neúplnými ustanoveniami v zmluvách, teda situácie, s ktorými sa model reálne stretne pri analýze dokumentov. Pri jazykovo špecifických benchmarkoch zasa chceme, aby dáta obsahovali kontext relevantný pre daný jazyk. Pri slovenčine by sme sa teda mali zamerať na slovenskú gramatiku a jazykové nuansy, a napríklad, nepýtať sa v slovenčine na otázky špecifické pre americký kontext.
Druhým predpokladom kvalitného benchmarku sú kvalitné dáta. Dáta by predovšetkým mali predstavovať reálnu vzorku, s ktorou by sa model mohol stretnúť v produkčnom nasadení. Ako už bolo spomenuté, pri slovenčine by sme teda nemali vyhodnocovať na otázkach špecifických pre USA. Zároveň je dôležité dbať na to, aby dáta, na ktorých benchmark vyhodnocuje, neboli zároveň dátami, na ktorých boli modely trénované (tzv. data leakage). Overenie kvality dát je však často problematické. Najmä pokiaľ ide o to, či dané dáta neboli súčasťou trénovania, nakoľko veľké jazykové modely už totiž videli väčšinu internetu. Z tohto dôvodu existujú prístupy, ako zistiť, či dáta z nášho benchmarku boli použité pri trénovaní, napríklad identifikáciou pomocou tzv. canary stringu (unikátneho reťazca vloženého do dát, podľa ktorého sa dá neskôr overiť, či sa objavil v trénovacích dátach modelu).
Posledný aspekt, ktorý spomenieme, sa týka robustnej metodológie. Kvalitný benchmark by mal mať detailne premyslené, ako sa modely vyhodnocujú. Dôležité teda nie je len to, čo hodnotíme, ale aj ako. Benchmark, ktorý vyhodnocuje na jedinej šablóne príkazu alebo bez opakovaných behov, nám veľa o schopnostiach modelov nepovie, keďže aj malé rozdiely v inštrukciách dokážu zmeniť výsledky a finálne poradie modelov. Už samotná zmena formulácie zo „Vyberte správnu odpoveď“ na „Ktorá z nasledujúcich možností je správna?“ dokáže výsledok niektorých modelov posunúť o niekoľko percentuálnych bodov. Metodológia by preto mala byť robustná. Mala by obsahovať rozmanitosť inštrukcií a viacero setupov, či už s poskytnutím príkladov alebo bez nich.
Rovnako dôležité je aj to, ako sa vyhodnocujú samotné výsledky. Existujú napríklad benchmarky, ktoré vyhodnocujú správnosť odpovede na základe logitov (pravdepodobnosti tokenov), čo je svojím spôsobom metodologicky správne, no reálne to neodzrkadľuje, ako sa veľké jazykové modely používajú v praxi. Jazykový model v reálnom nasadení odpovedá cez generovaný text, nie cez pravdepodobnosti tokenov. Aj keď je správna odpoveď z ponúkaných možností pravdepodobnejšia než ostatné, neznamená to, že ju model skutočne vygeneruje. Výsledkom môže byť, že benchmark ukáže vyššie skóre než aké model reálne dosiahne v produkcii. Preto je potrebné brať do úvahy, nakoľko robustné je vyhodnocovanie a či skutočne odzrkadľuje spôsob, akým sa modely používajú v praxi.
Ako interpretovať benchmarky a ich výsledky?
Finálne skóre závisí od viacerých faktorov: aké metriky boli použité, na akej konkrétnej podmnožine dát prebehlo meranie a ako sa jednotlivé výsledky agregovali. Iný výsledok dostaneme, ak dáme rovnakú váhu všetkým úlohám, a iný, ak agregujeme podľa veľkosti vzorky. V druhom prípade môžu úlohy s väčším množstvom dát skresliť celkový výsledok. Rovnaký benchmark tak môže poskytnúť rôzne výsledky podľa toho, ako bol meraný (napríklad rozdiel medzi vyhodnotením na základe logitov a presnou zhodou s vygenerovaným textom). Ide teda o rovnaký benchmark, ale odlišný spôsob získania výsledkov. Jeden bude dosahovať lepšie výsledky, druhý horšie.
Už spomínaný priemer dokáže skryť aj slabiny modelov iným spôsobom. Okrem problému s agregáciou výsledkov, je tu totiž aj druhý aspekt, ktorý priemerný výsledok nezohľadňuje. Priemer nám povie len časť príbehu. Dôležité je však vedieť aj to, ako sa jednotlivým modelom darí na konkrétnych úlohách alebo oblastiach. Niektoré modely môžu byť lepšie na logické uvažovanie a matematické úlohy, iné zas na agentické úlohy, používanie nástrojov alebo programovanie. Preto je potrebné pozerať sa na širší kontext, ktorý je pre náš konkrétny prípad relevantný.
Záver
Benchmarky nám pomáhajú pri rozhodovaní o tom, ktorý model je pre náš účel ten správny. Všetko však závisí od toho, či sme zvolili vhodný benchmark, či vieme jeho výsledky správne interpretovať a či nám dáva reálny obraz o tom, ako sa modely v praxi používajú. Pri niektorých benchmarkoch dnes už väčšina modelov dosahuje výsledky niekde medzi 80 a 90 %, a rozdiely medzi nimi sú preto minimálne. Hovoríme vtedy, že benchmark je saturovaný – teda že narazil na svoj strop a prestáva dostatočne rozlišovať kvalitu jednotlivých modelov. V takom prípade je vhodnejšie siahnuť po inom, náročnejšom benchmarku, ktorý ešte umožňuje objektívnejšie porovnanie naprieč modelmi. Dosiahnuť 100 % skóre vo väčšine prípadov nie je reálne dosiahnuteľné, takže ak sa výsledky modelov medzi sebou dlhodobo výrazne nelíšia, je to ďalší signál, že daný benchmark je saturovaný.
V rámci našej iniciatívy vzniklo viacero benchmarkov zameraných na slovenčinu s cieľom vyhodnotiť rôzne typy schopností modelov, či už ide o benchmark na porozumenie slovenskému jazyku (skLEP), alebo o benchmark textových reprezentácii (SkMTEB), ktorý môže slúžiť ako referenčný bod pri výbere modelov pre RAG aplikácie v slovenčine.