Kako evaluirati AI agente: testni skupovi, ocjenjivači i regresijske provjere

Praktičan vodič u šest koraka za evaluaciju AI agenata, od definiranja uspjeha i izrade testnih skupova na temelju stvarnih pogrešaka do odabira ocjenjivača, pokretanja regresijskih provjera i praćenja u produkciji.

An AI agent evaluation detects an unapproved spare-part recommendation and verifies the corrected result after a fix.

Iza svakog sjajnog AI proizvoda stoji snažan proces evaluacije AI agenata, poznat i kao evals, koji rano otkriva pogreške i osigurava da agent ispravno funkcionira. Evaluacije su ključne za AI agente koji u nečije ime izvršavaju visokorizične radnje poput povrata novca.

Izgradnja takvog procesa zahtijeva određeno tehničko znanje i vještine analize podataka. No to nije ni približno toliko zastrašujuće ili nedostupno kako možda zvuči. Kako bismo vam pomogli da započnete, pripremili smo šest praktičnih koraka za evaluaciju AI agenata i opisali česte zablude koje narušavaju taj proces.

Što znači evaluirati AI agenta?

Evaluirati AI agenta znači procijeniti njegovu uspješnost u ispravnom izvršavanju zadataka te zadovoljavaju li njegove odluke zahtjeve organizacije. U praksi su evaluacije AI agenata, odnosno evals, konkretne metrike koje organizacijama pomažu utvrditi radi li agent dovoljno pouzdano za ulogu kojoj je namijenjen.

Zamislite AI agenta za nabavu u proizvodnom pogonu koji provjerava zalihe rezervnih dijelova i priprema zahtjeve za nadopunu zaliha. Ako odobreni dio nije dostupan ili su podaci o dobavljaču zastarjeli, hoće li agent upozoriti na problem ili preporučiti neodobrenu zamjenu?

A ako promijenite njegov sustavski prompt kako biste riješili taj problem, kako znate da niste uveli novi?

Bez evaluacije voditeljima proizvoda zapravo ne preostaje ništa drugo nego nagađati. Evaluacije stoga pružaju povratni signal za mjerenje uspješnosti, uočavanje ponavljajućih problema i testiranje promjena s većom sigurnošću.

Pritom evaluacija agenta može obuhvatiti nekoliko aspekata izvođenja:

  • Kvalitetu konačnog rezultata
  • Informacije koje je agent koristio
  • Alate koje je pozvao
  • Je li se pridržavao pravila koja uređuju njegovo ponašanje

Uobičajene metrike za evaluaciju AI agenata

Evaluacije se temelje na kvalitativnim i kvantitativnim podacima. Kvalitativna evaluacija pomaže vam razumjeti što se događa i zašto, uključujući ručni pregled odluka agenta. Kvantitativna evaluacija pretvara ta zapažanja u mjerljive signale, primjerice brojanjem učestalosti određenih vrsta pogrešaka ili izračunom stope uspješnosti zadataka.

Evo popisa temeljnih metrika za evaluaciju AI agenata:

  • Uspješnost zadatka mjeri je li agent postigao željeni ishod; obično se izražava kao postotak izvođenja koja daju valjane rezultate.
  • Ispravnost radnji mjeri je li agent primjereno koristio alate, odabrao valjane argumente i poštovao dopuštenja.
  • Kvaliteta odgovora procjenjuje je li konačni rezultat točan, potpun i koristan. Može uključivati činjeničnu točnost, pridržavanje uputa te potkrepljuje li agent svoje odluke dostupnim informacijama.
  • Pouzdanost mjeri dosljednost u ponovljenim pokušajima, s različitim ulaznim podacima i u rubnim slučajevima.
  • Trošak i latencija mjere resurse potrebne za postizanje uspješnog rezultata, uključujući vrijeme izvođenja, potrošnju tokena i pozive alata.

Ovisno o tome što mjerite, evaluacije mogu procjenjivati cjelokupnu uspješnost agenta, putanju njegova izvođenja ili pojedinačne komponente kao što su pozivi alata i koraci dohvaćanja.

Korak 1: Odredite kako izgleda uspješno izvođenje agenta

Najprije izričito opišite što bi agent trebao postići — zahtjeve proizvoda. Zvuči očito, no može biti iznenađujuće teško. Za to postoji čak i naziv: jaz u specifikaciji.

Andrey Khomutov, naš viši podatkovni znanstvenik, objašnjava kako tome pristupiti:

„Počnite s dva pitanja: ‚Što bi se smatralo obavljenim poslom?‘ i ‚Što bi naizgled uspješno izvođenje učinilo neprihvatljivim?‘

Kod agenata to, s tehničkog gledišta, znači provjeriti i rezultat i način na koji su agenti do njega došli.“

Agent bi mogao dati točan odgovor pristupom procurjelom ključu odgovora ili poduzeti neovlaštene radnje dok izvršava zadatak. Khomutov ističe da su curenje odgovora i nesigurne radnje tijekom evaluacija konkretni razlozi zbog kojih ne treba suditi samo na temelju konačnog odgovora.

„Očekujem da će pregled putanje postati standardni dio skupova evaluacija agenata, a ne nešto što radimo samo kada rezultat izgleda sumnjivo“, dodaje.

Zatim uključite stručnjaka za domenu kako bi potvrdio vaše kriterije uspjeha. Osobe s praktičnim znanjem o domeni mogu procijeniti odražavaju li uvjeti koje smo postavili AI agentu uspješan ishod.

Korak 2. Izradite testni skup na temelju stvarnih zadataka i pogrešaka

Proučite stvarno ponašanje agenta kako biste razumjeli kako izgleda dobra, a kako loša izvedba. Oduprite se iskušenju da započnete generiranjem desetaka testova temeljenih samo na onome što mislite da bi moglo poći po zlu.

Hamel Husain, inženjer strojnog učenja u tvrtki Parlance Lab, i Shreya Shankar, istraživačica ML sustava i evaluacija primijenjene umjetne inteligencije, preporučuju da započnete analizom pogrešaka, tehnikom preuzetom iz strojnog učenja i podatkovne znanosti. Proces počinje kvalitativnom analizom tragova izvođenja agenta — zapisa koji prikazuju korisnikov unos, pozive alata, dohvaćene informacije i izlaz agenta.

  1. Pregledajte pojedinačne tragove i označite pogreške (otvoreno kodiranje). Neka stručnjak za domenu pregleda izvođenja agenta i zapiše kratka zapažanja o tome što je pošlo po zlu. Usredotočite se na prvu značajnu pogrešku.
  2. Grupirajte zapažanja prema vrstama pogrešaka (aksijalno kodiranje). Kad prikupite dovoljno bilježaka, upotrijebite LLM da predloži kategorije za slične pogreške. One mogu uključivati preporuke nekompatibilnih dijelova, netočno dohvaćanje podataka o zalihama i neuspjelo prosljeđivanje zadataka čovjeku.
  3. Prebrojite pojavljivanja. Svako zapažanje dodijelite jednoj kategoriji, a zatim pomoću proračunske ili zaokretne tablice izračunajte koliko se često pojavljuje svaka vrsta pogreške.
  4. Odredite prioritete rješavanja, uzimajući u obzir i učestalost i ozbiljnost.
  5. Važne pogreške pretvorite u testne slučajeve. Spremite relevantni unos, početne uvjete, očekivani ishod i kriterije ocjenjivanja kako bi se agent ponovno mogao testirati na istom scenariju.

Koliko tragova trebate pregledati? Otprilike 100, ali ne postoji čarobni broj. Stanite ranije kada dosegnete teorijsku zasićenost: točku u kojoj pregled dodatnih tragova više ne otkriva značajne nove obrasce pogrešaka.

Još niste pokrenuli aplikaciju? Sintetički primjeri mogu pomoći u izradi početnog testnog skupa, no čim postanu dostupni, trebali bi ga oblikovati stvarni korisnički podaci.

Upotreba benchmarkova u evaluaciji AI agenata

Osim izrade vlastitih testnih slučajeva, za procjenu sposobnosti agenta možete koristiti postojeće zbirke standardiziranih evaluacijskih zadataka, poznate kao benchmarkovi.

No benchmarkovi nisu nepogrešivi. Revizije benchmarka SWE-bench, pregledi benchmarkova tvrtke Epoch AI i točni odgovori koji su u benchmarku TheoPhysEval isprva odbijeni pokazuju kako pogrešno postavljeni zadaci ili očekivani odgovori mogu iskriviti rezultate evaluacije.

Kako savjetuje Khomutov, odaberite ažurne benchmarkove relevantne za vašu domenu i istražite iznenađujuće prolaze ili neuspjehe prije nego što rezultate počnete smatrati pouzdanim dokazom uspješnosti agenta.

Korak 3. Pokrenite agenta u ponovljivom testnom okruženju

Ponovljivo testno okruženje kontrolirano je okruženje u kojem AI agenta možete pokretati na istim testnim slučajevima pod istim početnim uvjetima i uspoređivati rezultate. To uključuje mapu s testnim slučajevima, Python skriptu koja pokreće agenta ili skup provjera koje ocjenjuju rezultate.

Možete započeti tako da reprezentativne ulazne podatke spremite kao JSON datoteke te pomoću Python skripte izvršite tijek rada svog agenta i provjerite njegove izlaze asercijama. Za agenta za zalihe u našem proizvodnom pogonu ponovljivo testno okruženje moglo bi izgledati ovako:

Za postavljanje ponovljivog testnog okruženja slijedite ove korake:

  1. Spremite reprezentativne ulazne podatke. Pohranite stvarne događaje ili testne slučajeve u istoj strukturi u kojoj ih vaša aplikacija prima u produkciji. U našem scenariju kao JSON datoteku spremili biste zahtjev za održavanje koji sadrži ID stroja, potreban rezervni dio i datum održavanja, zajedno sa snimkom stanja zaliha i podataka o odobrenim dijelovima.
  2. Izvršite tijek rada. Provedite svaki ulaz kroz agenta, uključujući njegove korake dohvaćanja, pozive alata i generiranje odgovora.
  3. Zabilježite rezultat i trag. Spremite konačni izlaz i relevantne međukorake (poput pretraživanja zaliha) kako biste vidjeli ne samo je li agent zakazao, nego i gdje.
  4. Ponavljajte slučajeve ovisno o ozbiljnosti i učestalosti pogreške te o tome koliko ju je teško ispraviti. LLM aplikacije su nedeterministične (iz identičnih ulaza mogu dati različite rezultate), pa uspješno izvođenje ne jamči da će i sljedeće biti uspješno. Izvijestite o udjelu uspješnih pokušaja i pregledajte pogreške.

Za potonje Khomutov savjetuje mjerenje metrika pass@1 (koliko često agent uspije iz prvog pokušaja) i pass@k (vjerojatnost da će uspjeti barem jednom u zadanom broju pokušaja). Ako izvještavate o metrici pass@k, navedite broj pokušaja jer jedan točan odgovor među nekoliko njih ne znači da agent zna koji odabrati.

Kako vam aplikacija bude rasla, za organiziranje i pokretanje testova koristite okvir za testiranje kao što je pytest te razmislite o pohrani velikih testnih skupova podataka i rezultata u bazu podataka.

Korak 4. Odaberite pravog ocjenjivača za svaku provjeru

Ocjenjivač (često nazvan i evaluator) mehanizam je u obliku dijela koda, LLM-a vođenog rubrikom za ocjenjivanje ili ljudskog recenzenta koji provjerava izlaz ili radnju agenta prema definiranom kriteriju. Ocjenjivač vraća ocjenu prolaz/pad i objašnjenje u kojem navodi relevantne dokaze.

Napomena: Rubrika za ocjenjivanje skup je kriterija i uputa koji definiraju što se smatra točnim ili prihvatljivim rezultatom.

Prava vrsta ocjenjivača ovisi o tome što pokušavate provjeriti. Evo usporedbe triju pristupa:

Ocjenjivač

Najprikladniji za

Primjer

Glavno ograničenje

Temeljen na kodu

Točne, provjerljive uvjete

Je li preporučeni rezervni dio bio na odobrenom popisu kompatibilnosti?

Ne može pouzdano procijeniti svaku subjektivnu odluku

LLM kao sudac

Procjene ovisne o kontekstu

Je li agent objasnio zašto nije mogao preporučiti zamjenu?

Njegove prosudbe mogu biti pogrešne ili nedosljedne

Čovjek

Stručnost specifičnu za domenu i nejasne slučajeve

Smatra li voditelj održavanja preporuku agenta primjerenom?

Skupa primjena u velikom opsegu

Ponekad različiti aspekti istog izvođenja mogu zahtijevati različite metode evaluacije, pa ćete možda morati kombinirati ocjenjivače.

Kako kombinirati ocjenjivače?

Zapitajte se: „Može li se rezultat provjeriti u odnosu na poznato pravilo ili očekivanu vrijednost ili je potrebna prosudba nalik ljudskoj?“

  • Ako rezultat možete točno provjeriti, počnite s ocjenjivačem temeljenim na kodu. Ocjenjivači temeljeni na kodu mogu provjeravati i strukturirane izlaze, valjane vrijednosti polja, argumente alata ili konačno stanje baze podataka.
  • Ako provjera zahtijeva tumačenje konteksta, upotrijebite pristup LLM kao sudac.
  • Za odluke specifične za domenu ili sporne odluke angažirajte ljudske recenzente.

Važno! LLM ocjenjivač može pogrešno protumačiti dokaze ili netočno primijeniti rubriku. Zato mu je potreban dodatni korak evaluacije: kalibracija prema ljudskim prosudbama.

Kalibrirajte LLM ocjenjivača prema ljudskim prosudbama.

Kalibracija u osnovi zahtijeva da stručnjak za domenu procijeni stvarna izvođenja agenta. Stručnjak zatim uspoređuje svoje prosudbe s prosudbama LLM-a i na temelju neslaganja dorađuje rubriku za ocjenjivanje.

Evo procesa kalibracije ocjenjivača u pet koraka:

  1. Prikupite primjere ulaza i izlaza agenta te relevantne tragove.
  2. Neka stručnjak za domenu neovisno procijeni zadovoljava li svaki primjer kriterij evaluacije.
  3. Pokrenite LLM ocjenjivača na tim primjerima.
  4. Usporedite prosudbe ljudi i modela.
  5. Istražite neslaganja i doradite rubriku ocjenjivača prije nego što ga testirate na novim primjerima.

Khomutov ističe i važnost zasebnog testiranja dosljednosti LLM ocjenjivača:

„Dajte mu potpuno isto spremljeno izvođenje i datoteke nekoliko puta, bez ponovnog pokretanja agenta. Tako možete razlikovati varijacije u radu agenta od varijacija u ocjenjivanju.“

Ako isti izlaz dobiva različite presude, nemojte pretpostaviti da svaka promjena rezultata potječe od agenta. Umjesto toga proučite matricu zabune koja pokazuje kada je ocjenjivač ispravno prepoznao pogreške, kada ih je propustio, a kada je prihvatljive izlaze pogrešno označio.

Ljudski pregled i dalje je ključan za utvrđivanje referentnih prosudbi, rješavanje spornih slučajeva i otkrivanje novih vrsta pogrešaka za čije prepoznavanje postojeći ocjenjivači nisu osmišljeni.

Korak 5. Usporedite verzije i provedite regresijske provjere

Pretpostavimo da analiza pogrešaka pokaže da vaš agent za zalihe često preporučuje neodobrene zamjenske dijelove. Izmijenite njegov sustavski prompt tako da zahtijeva izričitu provjeru kompatibilnosti. Izvorno neuspješan slučaj sada prolazi. No kako znate da promjena nije utjecala na druge zadatke?

Tu na scenu stupa regresijsko testiranje.

Regresijsko testiranje znači ponovno pokretanje prethodno uspješnih testnih slučajeva nakon promjene prompta, modela ili tijeka rada agenta kako bi se osiguralo da promjena nije uvela nove pogreške.

  1. Reproducirajte izvornu pogrešku pomoću spremljenog ulaza iz testnog skupa.
  2. Napravite ciljanu promjenu prompta, modela ili tijeka rada.
  3. Ponovno pokrenite neuspjeli test kako biste provjerili je li problem riješen.
  4. Pokrenite ostale testove kako biste provjerili da promjena nije narušila ponašanje koje je prije bilo uspješno.
  5. Pregledajte rezultate i istražite sve nove pogreške.

Usporedite osnovnu i ažuriranu verziju agenta koristeći iste testne slučajeve i kriterije ocjenjivanja kako biste dobili točne rezultate.

Korak 6: Pratite performanse AI agenta u produkciji

Evaluacija agenta ne završava nakon što implementirate aplikaciju. Kako objašnjavaju Husain i Shankar, isti evaluatori koje koristite tijekom razvoja mogu se pokretati i na stvarnim produkcijskim podacima kako biste mjerili kako vaš agent radi s vremenom.

To se naziva online evaluacijom i dio je šireg procesa praćenja u produkciji koji pomaže otkriti ponavljajuće i dosad nepoznate pogreške.

Proces je iterativan i obuhvaća četiri komplementarne aktivnosti:

  • Pokrenite kalibrirane LLM suce na produkcijskim tragovima. Uzmite uzorak stvarnih interakcija agenta i primijenite evaluatore koje ste već validirali usporedbom s ljudskim procjenama.
  • Pratite stope pogrešaka kroz vrijeme. Koristite kategorije pogrešaka utvrđene tijekom analize pogrešaka kako biste kvantificirali ponavljajuće probleme.
  • Nastavite ručno pregledavati tragove. Automatizirani ocjenjivači otkrivaju samo one probleme za čije su prepoznavanje osmišljeni. Ručno pregledajte uzorke stvarnih interakcija agenta kako biste otkrili nove pogreške ili neuobičajene zahtjeve korisnika.
  • Koristite A/B testiranje za mjerenje poslovnih ishoda (samo kada je to prikladno). Usporedite različite upite, modele ili tijekove rada pomoću metrika kao što su dovršenost zadataka, zadovoljstvo korisnika i vrijeme do rješenja. Taj proces pomaže utvrditi poboljšava li neka promjena stvarno iskustvo s proizvodom, a ne samo to prolazi li pojedinačne testove.

Jedna važna napomena: evaluacije ne moraju biti savršeno dotjerane. Samo trebaju biti dovoljno dobre da unaprijede vaš proizvod.

Česte zablude u evaluaciji AI agenata

  • Evaluacije su samo jedinični testovi. Nisu; jedinični testovi male su automatizirane provjere koje čine samo jedan dio evaluacije. Evaluacije uključuju i kvalitativnu analizu pogrešaka, ljudske procjene, praćenje produkcije i eksperimente za mjerenje kvalitete aplikacije.
  • Platforma za evaluaciju može sve učiniti umjesto vas. Gotovi alati mogu automatizirati neke provjere, ali ne mogu odrediti koji su obrasci neuspjeha (vrste pogrešaka ili neželjena ponašanja agenta) važni za vaš proizvod.
  • Možete prepustiti LLM-u da sve evaluira. To je velika zabluda. Analiza pogrešaka koju vode ljudi i kalibracija ocjenjivača i dalje su ključne jer LLM-ovima nedostaje poslovni kontekst potreban za otkrivanje svih problema.
  • A/B testiranje ili jednostavno korištenje agenta zamjenjuje evaluacije. Netočno. A/B testovi mogu pokazati koja verzija postiže bolje rezultate prema odabranim metrikama, ali sami po sebi ne mogu objasniti temeljne probleme.

Česta pitanja o evaluaciji AI agenata

1. Koja je razlika između evaluacije AI agenata i evaluacije LLM-ova?

Evaluacija LLM-a mjeri koliko dobro jezični model izvršava zadani zadatak, poput odgovaranja na pitanje, sažimanja dokumenta ili izdvajanja informacija. Evaluacija AI agenta procjenjuje sustav koji samostalno izvršava više koraka kako bi dovršio zadatak.

Za razliku od uobičajene evaluacije LLM-a, evaluacija agenta ispituje i konačni rezultat i slijed radnji poduzetih za njegovo postizanje, uključujući pozive alata, odluke i usklađenost s unaprijed definiranim pravilima.

2. Ključne metrike za evaluaciju AI agenata

Metrike za evaluaciju AI agenata dijele se u dvije glavne kategorije:

  • Metrike tehničke izvedbe: stopa uspješnosti zadataka, ispravnost radnji, kvaliteta odgovora, pouzdanost (pass@1 i pass@k), latencija, potrošnja tokena i trošak po uspješno izvršenom zadatku.
  • Metrike poslovanja i korisničkog iskustva: zadovoljstvo korisnika (CSAT), stopa rješavanja problema, stopa eskalacije, stopa konverzije, vrijeme dovršetka zadatka i drugi ishodi specifični za ulogu agenta.

Na primjer, agent za korisničku podršku mogao bi se ocjenjivati prema uspješnosti rješavanja problema i zadovoljstvu korisnika, dok bi se AI agent za nabavu mogao mjeriti točnošću zahtjeva za popunjavanje zaliha, stopama odobrenja i trajanjem ciklusa nabave.

Prave metrike trebale bi odražavati i koliko pouzdano agent radi i poboljšava li njegov rad poslovne ishode.

3. Koji su najbolji alati za evaluaciju AI agenata?

Uobičajene su mogućnosti:

  • Okviri za testiranje: asercije u Pythonu i pytest korisni su za pokretanje ponovljivih testnih slučajeva i provjeru točnih uvjeta, primjerice je li agent odabrao ispravan alat ili vratio valjani ID dijela.
  • Okviri za evaluaciju AI agenata: DeepEval i Googleov skup alata agent-eval podržavaju složenije evaluacije, uključujući tragove izvršavanja, ocjenjivače temeljene na LLM-ovima i automatizirano regresijsko testiranje.
  • Platforme za evaluaciju i opservabilnost: LangSmith, Arize Phoenix i MLflow pomažu timovima da pregledavaju ponašanje agenata, upravljaju skupovima podataka za evaluaciju, uspoređuju verzije agenata i prate performanse u produkciji.

4. Kako automatizirati evaluacije AI agenata?

Evaluacije AI agenata možete automatizirati izradom ponovljivih testova, primjenom automatiziranih ocjenjivača i integracijom tih provjera u razvojne i produkcijske tijekove rada:

  1. Izradite skup podataka za evaluaciju: prikupite reprezentativne korisničke zadatke, očekivane ishode, poznate pogreške i tragove izvršavanja agenta. Uključite rubne slučajeve kao što su neuspjeli pozivi alata, informacije koje nedostaju i neovlaštene radnje.
  2. Automatizirajte izvršavanje testova i ocjenjivanje: koristite okvire poput pytest ili DeepEval za pokretanje testnih slučajeva i primjenu provjera temeljenih na kodu ili LLM ocjenjivača. Prije nego što se oslonite na ocjene LLM ocjenjivača, provjerite ih u odnosu na ljudske procjene.
  3. Integrirajte evaluacije u CI/CD: neka se regresijski testovi automatski ponovno pokreću kada razvojni programeri ažuriraju upite, modele, alate ili tijek rada agenta. Usporedite rezultate s osnovnom verzijom i postavite pragove kvalitete koji sprječavaju objavu nove verzije ako kritične provjere ne prođu.
  4. Primijenite kalibrirane ocjenjivače na uzorke produkcijskih tragova, pratite stope pogrešaka i druge metrike performansi te ručnim pregledom istražite nove pogreške.