Како евалуирати AI агенте: тест-скупови, оцјењивачи и регресионе провјере

Практичан водич у шест корака за евалуацију AI агената – од дефинисања успјеха и прављења тест-скупова на основу стварних неуспјеха до избора оцјењивача, покретања регресионих провјера и праћења у продукцији.

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

Иза сваког сјајног AI производа стоји снажан процес евалуације AI агента, познат као evals, који рано открива грешке и обезбјеђује исправно функционисање агента. Евалуације су кључне за AI агенте који извршавају високоризичне радње, попут повраћаја новца у нечије име.

Изградња тог процеса захтијева одређено техничко знање и вјештине анализе података. Али то није ни приближно толико застрашујуће или неприступачно колико можда звучи. Да бисмо вам помогли да почнете, представили смо шест практичних корака за евалуацију AI агената и уобичајене заблуде које нарушавају тај процес.

Шта значи евалуирати AI агента?

Евалуација AI агента значи процјену тога колико добро агент исправно извршава задатке и да ли његове одлуке испуњавају захтјеве организације. У практичном смислу, евалуације AI агената, или evals, су конкретне метрике које помажу организацијама да утврде да ли агент ради довољно поуздано за улогу којој је намијењен.

Замислите AI агента за набавку у производном погону који провјерава залихе резервних дијелова и припрема захтјеве за допуну залиха. Ако одобрени дио није доступан или су подаци о добављачу застарјели, да ли ће агент указати на проблем или ће препоручити неодобрену замјену?

А ако промијените његов системски промпт да бисте ријешили тај проблем, како знате да нисте увели нови?

Без евалуације, продукт менаџерима практично преостаје само да нагађају. Стога евалуације пружају повратни сигнал за мјерење учинка, уочавање проблема који се понављају и тестирање измјена с већим поуздањем.

Уз то, евалуација агента може испитати неколико аспеката једног извршавања:

  • Квалитет коначног резултата
  • Информације које је агент користио
  • Алате које је позвао
  • Да ли је поштовао правила која уређују његово понашање

Уобичајене метрике за евалуацију AI агената

Евалуације се ослањају на квалитативне и квантитативне податке. Квалитативна евалуација вам помаже да разумијете шта се дешава и зашто, укључујући ручни преглед одлука агента. Квантитативна евалуација претвара та запажања у мјерљиве сигнале, као што је бројање учесталости одређених типова грешака или израчунавање стопе успјешности задатака.

Ево списка основних метрика за евалуацију AI агената:

  • Успјешност задатка мјери да ли је агент постигао жељени исход; обично се изражава као проценат извршавања која дају исправне резултате.
  • Исправност радњи мјери да ли је агент на одговарајући начин користио алате, бирао исправне аргументе и поштовао дозволе.
  • Квалитет одговора процјењује да ли је коначни излаз тачан, потпун и користан. То може обухватити чињеничну тачност, придржавање упутстава и то да ли агент поткрепљује своје одлуке доступним информацијама.
  • Поузданост мјери досљедност кроз поновљене покушаје, различите улазе и граничне случајеве.
  • Трошак и латенција мјере ресурсе потребне за постизање успјешног резултата, укључујући вријеме извршавања, потрошњу токена и позиве алата.

У зависности од тога шта мјерите, евалуације могу процјењивати учинак агента од почетка до краја, путању његовог извршавања или појединачне компоненте, као што су позиви алата и кораци претраживања.

Корак 1: Одредите како изгледа успјешно извршавање агента

Прво, експлицитно опишите шта агент треба да постигне — захтјеве производа. Звучи очигледно, али може бити изненађујуће тешко. За то чак постоји и назив: јаз у спецификацији.

Ево како томе приступити, каже Andrey Khomutov, наш виши научник за податке:

„Почните са два питања: „Шта би се сматрало обављеним послом?“ и „Шта би привидно успјешно извршавање учинило неприхватљивим?“

Код агената, с техничке тачке гледишта, то значи провјеру и резултата и начина на који су агенти до њега дошли.“

Агент може дати тачан одговор тако што приступи процурелом кључу одговора или предузети неовлашћене радње током извршавања задатка. Khomutov истиче да су цурење одговора и небезбједне радње током евалуација конкретни разлози да се не оцјењује само коначни одговор.

„Очекујем да ће инспекција путање постати стандардни дио пакета евалуација агената, умјесто нечега што радимо само када резултат дјелује сумњиво“, додаје он.

Затим укључите стручњака за домен да потврди ваше критеријуме успјеха. Људи с практичним знањем из те области могу процијенити да ли услови које смо поставили AI агенту одражавају успјешан исход.

Корак 2. Направите скуп тестова на основу стварних задатака и грешака

Испитајте стварно понашање агента да бисте разумјели како изгледа добар, а како лош учинак. Одолите искушењу да почнете генерисањем десетина тестова заснованих само на ономе што мислите да би могло поћи наопако.

Hamel Husain, ML инжењер у компанији Parlance Lab, и Shreya Shankar, истраживачица ML система и евалуација примијењене вјештачке интелигенције, препоручују да се почне анализом грешака, техником преузетом из машинског учења и науке о подацима. Процес почиње квалитативном анализом трагова извршавања агента — записа који приказују унос корисника, позиве алата, преузете информације и излаз агента.

  1. Прегледајте појединачне трагове и означите грешке (отворено кодирање). Нека стручњак за домен прегледа извршавања агента и запише кратка запажања о томе шта је пошло наопако. Фокусирајте се на прву значајну грешку.
  2. Групишите запажања у типове грешака (аксијално кодирање). Када прикупите довољно биљешки, употријебите LLM да предложи категорије за сличне грешке. То могу бити препоруке некомпатибилних дијелова, нетачно преузимање података о залихама и неуспјела предаја случаја човјеку.
  3. Пребројте појављивања. Свако запажање разврстајте у категорију, а затим помоћу табеларног прорачуна или пивот табеле израчунајте колико се често појављује сваки тип грешке.
  4. Одредите приоритете за рјешавање, узимајући у обзир и учесталост и озбиљност.
  5. Претворите важне грешке у тест случајеве. Сачувајте релевантан улаз, почетне услове, очекивани исход и критеријуме оцјењивања како би агент поново могао бити тестиран у истом сценарију.

Колико трагова треба да прегледате? Отприлике 100, али не постоји магичан број. Зауставите се раније када достигнете теоријско засићење: тачку у којој преглед додатних трагова више не открива значајне нове обрасце грешака.

Још нисте покренули апликацију? Синтетички примјери могу помоћи у изградњи почетног скупа тестова, мада би стварни кориснички подаци требало да га обликују чим постану доступни.

Употреба бенчмаркова у евалуацији AI агената

Осим креирања сопствених тест случајева, за процјену способности агента можете користити постојеће збирке стандардизованих задатака за евалуацију, познате као бенчмаркови.

Али бенчмаркови нису непогрешиви. Ревизије бенчмарка SWE-bench, прегледи бенчмаркова организације Epoch AI и тачни одговори који су у бенчмарку TheoPhysEval првобитно одбијени показују како неисправни задаци или очекивани одговори могу искривити резултате евалуације.

Како савјетује Khomutov, бирајте ажурне бенчмаркове релевантне за ваш домен и истражите изненађујуће успјехе или неуспјехе прије него што резултате третирате као поуздан доказ учинка агента.

Корак 3. Покрените агента у поновљивом тестном окружењу

Поновљиво тестно окружење је контролисана поставка у којој можете покретати AI агента на истим тест случајевима, под истим почетним условима, и упоређивати резултате. То обухвата фасциклу с тест случајевима, Python скрипту која покреће агента или скуп провјера које процјењују резултате.

Можете почети тако што ћете репрезентативне улазе чувати као JSON датотеке и користити Python скрипту да извршите ток рада агента и провјерите његове излазе помоћу тврдњи (assertions). За агента за залихе у нашем производном погону, поновљиво тестно окружење могло би изгледати овако:

Да бисте поставили поновљиво тестно окружење, слиједите ове кораке:

  1. Сачувајте репрезентативне улазе. Чувајте стварне догађаје или тест случајеве у истој структури коју ваша апликација прима у продукцији. У нашем сценарију, сачували бисте захтјев за одржавање који садржи ID машине, потребни резервни дио и датум одржавања као JSON датотеку, заједно са снимком стања залиха и података о одобреним дијеловима.
  2. Извршите ток рада. Провуците сваки улаз кроз агента, укључујући његове кораке претраживања, позиве алата и генерисање одговора.
  3. Забиљежите резултат и траг. Сачувајте коначни излаз и релевантне међукораке (као што су упити о залихама) како бисте видјели не само да ли је агент погријешио, већ и гдје.
  4. Понављајте случајеве у зависности од озбиљности и учесталости грешака, као и од тога колико је тешко ријешити проблем. LLM апликације су недетерминистичке (могу дати различите резултате за идентичне улазе), па успјешно извршавање не гарантује да ће и сљедеће бити успјешно. Наведите удио успјешних покушаја и прегледајте неуспјехе.

За ово друго, Khomutov савјетује мјерење метрика pass@1 (колико често агент успије из једног покушаја) и pass@k (вјероватноћа да ће успјети барем једном у одређеном броју покушаја). Ако наводите pass@k, назначите број покушаја, јер један тачан одговор међу неколико не значи да агент зна који да изабере.

Како ваша апликација расте, користите тест оквир попут pytest за организовање и покретање тестова и размислите о чувању великих скупова тест података и резултата у бази података.

Корак 4. Изаберите одговарајућег оцјењивача за сваку провјеру

Оцјењивач (често називан и евалуатор) је механизам у облику дијела кода, LLM-а вођеног рубриком за оцјењивање или људског рецензента који провјерава излаз или радњу агента у односу на дефинисани критеријум. Оцјењивач враћа оцјену „прошло/пало“ и објашњење у коме наводи релевантне доказе.

Напомена: Рубрика за оцјењивање је скуп критеријума и упутстава који дефинишу шта се сматра тачним или прихватљивим резултатом.

Одговарајући тип оцјењивача зависи од тога шта покушавате да провјерите. Ево како се три приступа пореде:

Оцјењивач

Најпогоднији за

Примјер

Главно ограничење

Заснован на коду

Тачни услови који се могу провјерити

Да ли се препоручени резервни дио налазио на одобреној листи компатибилности?

Не може поуздано процијенити сваку субјективну одлуку

LLM као судија

Процјене зависне од контекста

Да ли је агент објаснио зашто није могао да препоручи замјену?

Његове процјене могу бити погрешне или недосљедне

Човјек

Стручност у одређеном домену и неизвјесни случајеви

Да ли менаџер одржавања сматра препоруку агента одговарајућом?

Скупо за примјену у великом обиму

Понекад различити аспекти истог извршавања захтијевају различите методе евалуације, па ћете можда морати да комбинујете оцјењиваче.

Како комбиновати оцјењиваче?

Запитајте се: „Да ли се резултат може провјерити у односу на познато правило или очекивану вриједност, или захтијева процјену налик људској?“

  • Ако резултат можете прецизно провјерити, почните са оцјењивачем заснованим на коду. Оцјењивачи засновани на коду могу провјеравати и структурисане излазе, исправне вриједности поља, аргументе алата или коначно стање базе података.
  • Ако провјера захтијева тумачење контекста, користите LLM као судију.
  • За одлуке специфичне за домен или спорне одлуке ангажујте људске рецензенте.

Важно! LLM оцјењивач може погрешно протумачити доказе или нетачно примијенити рубрику. Зато му је потребан додатни корак евалуације: калибрација према људским процјенама.

Калибришите LLM оцјењивача према људским процјенама.

У суштини, калибрација захтијева да стручњак за домен процијени стварна извршавања агента. Стручњак затим упоређује своје процјене са процјенама LLM-а и дорађује рубрику за оцјењивање на основу неслагања.

Ево процеса калибрације оцјењивача у пет корака:

  1. Прикупите примјере улаза и излаза агента, као и релевантних трагова.
  2. Нека стручњак за домен самостално процијени да ли сваки примјер испуњава критеријум евалуације.
  3. Покрените LLM оцјењивача на тим примјерима.
  4. Упоредите процјене човјека и модела.
  5. Истражите неслагања и дорадите рубрику оцјењивача прије него што га тестирате на новим примјерима.

Khomutov такође наглашава колико је важно засебно тестирати досљедност LLM оцјењивача:

„Дајте му потпуно исто сачувано извршавање и исте датотеке неколико пута, без поновног покретања агента. Тако можете раздвојити варијације у раду агента од варијација у оцјењивању.“

Ако исти излаз добије различите пресуде, немојте претпостављати да свака промјена оцјене потиче од агента. Умјесто тога, анализирајте матрицу конфузије која показује када је оцјењивач исправно препознао грешке, када их је пропустио, а када је погрешно означио прихватљиве излазе.

Људски преглед остаје кључан за утврђивање референтних процјена, рјешавање спорних случајева и уочавање нових типова грешака које постојећи оцјењивачи нису осмишљени да препознају.

Корак 5. Упоредите верзије и спроведите регресионе провјере

Претпоставимо да анализа грешака покаже да ваш агент за залихе често препоручује неодобрене резервне дијелове. Мијењате његов системски промпт тако да захтијева експлицитну провјеру компатибилности. Првобитни случај који није пролазио сада пролази. Али како знате да измјена није утицала на друге задатке?

Ту на сцену ступа регресионо тестирање.

Регресионо тестирање подразумијева поновно покретање претходно успјешних тест случајева након измјене промпта, модела или тока рада агента, како би се осигурало да измјена није унијела нове грешке.

  1. Репродукујте првобитну грешку помоћу сачуваног улаза из скупа тестова.
  2. Унесите циљану измјену у промпт, модел или ток рада.
  3. Поново покрените тест који није пролазио да бисте провјерили да ли је проблем ријешен.
  4. Покрените остале тестове да бисте провјерили да промјена није покварила понашање које је раније исправно функционисало.
  5. Прегледајте резултате и истражите све нове неуспјехе.

Упоредите основну и ажурирану верзију агента користећи исте тест-случајеве и критеријуме оцјењивања како бисте добили тачне резултате.

Корак 6: Пратите перформансе AI агента у продукцији

Евалуација агента не престаје када пустите апликацију у рад. Како објашњавају Хусаин и Шанкар, исти евалуатори које користите током развоја могу се покретати и над стварним продукцијским подацима како би се измјерило колико добро ваш агент ради током времена.

Ово је познато као онлајн евалуација и представља један дио ширег процеса праћења у продукцији који помаже да се открију неуспјеси који се понављају, као и они који раније нису били познати.

Процес је итеративан и обухвата четири комплементарне активности:

  • Покрените калибрисане LLM судије над продукцијским траговима. Узмите узорак стварних интеракција агента и примијените евалуаторе које сте већ валидирали у односу на људске процјене.
  • Пратите стопе неуспјеха током времена. Користите категорије неуспјеха утврђене током анализе грешака да бисте квантификовали проблеме који се понављају.
  • Наставите да ручно прегледате трагове. Аутоматизовани оцјењивачи откривају само проблеме за чије су препознавање дизајнирани. Ручно прегледајте узорке стварних интеракција агента да бисте открили нове грешке или необичне захтјеве корисника.
  • Користите A/B тестирање за мјерење пословних исхода (само када је то прикладно). Упоређујте различите промптове, моделе или токове рада помоћу метрика као што су довршавање задатака, задовољство корисника и вријеме до рјешавања. Овај процес помаже да се утврди да ли промјена побољшава стварно искуство коришћења производа, а не само да ли пролази појединачне тестове.

Једна важна напомена: евалуације не морају бити савршене. Треба само да буду довољно добре да побољшају ваш производ.

Честе заблуде о евалуацији AI агената

  • Евалуације су само јединични тестови. Нису; јединични тестови су мале, аутоматизоване провјере које чине само један дио евалуације. Евалуације обухватају и квалитативну анализу грешака, људске процјене, праћење у продукцији и експерименте за мјерење квалитета апликације.
  • Платформа за евалуацију може све да уради умјесто вас. Готови алати могу аутоматизовати неке провјере, али не могу да одреде који су обрасци неуспјеха (врсте грешака или нежељена понашања агента) важни за ваш производ.
  • Можете препустити LLM-у да евалуира све. То је велика заблуда. Анализа грешака коју воде људи и калибрација оцјењивача остају кључне, јер LLM-овима недостаје пословни контекст потребан да би открили сваки проблем.
  • A/B тестирање или једноставно коришћење агента замјењује евалуације. Нетачно. A/B тестови могу показати која верзија даје боље резултате према одабраним метрикама, али сами по себи не могу објаснити узроке проблема.

Често постављана питања о евалуацији AI агената

1. Која је разлика између евалуације AI агената и евалуације LLM-ова?

Евалуација LLM-ова мјери колико добро језички модел обавља одређени задатак, као што је одговарање на питање, сажимање документа или издвајање информација. Евалуација AI агената процјењује систем који самостално извршава више корака да би довршио задатак.

За разлику од уобичајене евалуације LLM-ова, евалуација агената испитује и коначни резултат и редослијед радњи предузетих да би се до њега дошло, укључујући позиве алата, одлуке и поштовање унапријед дефинисаних правила.

2. Кључне метрике за евалуацију AI агената

Метрике за евалуацију AI агената дијеле се у двије широке категорије:

  • Метрике техничких перформанси: стопа успјешности задатака, исправност радњи, квалитет одговора, поузданост (pass@1 и pass@k), латенција, потрошња токена и трошак по успјешно обављеном задатку.
  • Пословне метрике и метрике корисничког искуства: задовољство корисника (CSAT), стопа рјешавања проблема, стопа ескалације, стопа конверзије, вријеме потребно за довршавање задатка и други исходи специфични за улогу агента.

На примјер, агент за корисничку подршку може се евалуирати према успјешности рјешавања проблема и задовољству корисника, док се AI агент за набавку може мјерити тачношћу захтјева за допуну залиха, стопама одобрења и трајањем циклуса набавке.

Одговарајуће метрике треба да одражавају и колико поуздано агент ради и да ли његов рад побољшава пословне исходе.

3. Који су најбољи алати за евалуацију AI агената?

Међу уобичајеним опцијама су:

  • Оквири за тестирање: Python assert наредбе и pytest корисни су за покретање поновљивих тест-случајева и провјеру тачно одређених услова, на примјер да ли је агент изабрао одговарајући алат или вратио важећи ID дијела.
  • Оквири за евалуацију AI агената: DeepEval и Google-ов agent-eval toolkit подржавају сложеније евалуације, укључујући трагове извршавања, оцјењиваче засноване на LLM-овима и аутоматизовано регресионо тестирање.
  • Платформе за евалуацију и опсервабилност: LangSmith, Arize Phoenix и MLflow помажу тимовима да прегледају понашање агената, управљају скуповима података за евалуацију, упоређују верзије агената и прате перформансе у продукцији.

4. Како аутоматизовати евалуације AI агената?

Евалуације AI агената можете аутоматизовати тако што ћете направити поновљиве тестове, примијенити аутоматизоване оцјењиваче и интегрисати те провјере у развојне и продукцијске токове рада:

  1. Направите скуп података за евалуацију: Прикупите репрезентативне корисничке задатке, очекиване исходе, познате неуспјехе и трагове извршавања агента. Укључите граничне случајеве као што су неуспјели позиви алата, информације које недостају и неовлашћене радње.
  2. Аутоматизујте извршавање тестова и оцјењивање: Користите оквире као што су pytest или DeepEval за покретање тест-случајева и примјену провјера заснованих на коду или LLM оцјењивача. Валидирајте LLM оцјењиваче у односу на људске процјене прије него што се ослоните на њихове оцјене.
  3. Интегришите евалуације у CI/CD: Подесите аутоматско поновно покретање регресионих тестова када програмери ажурирају промптове, моделе, алате или ток рада агента. Упоредите резултате са основном верзијом и утврдите прагове квалитета који спрјечавају објављивање када критичне провјере не прођу.
  4. Примијените калибрисане оцјењиваче на узорке продукцијских трагова, пратите стопе неуспјеха и друге метрике перформанси и истражите нове грешке ручним прегледом.