
Ragas või DeepEval: sama nimega mõõdikud ei anna sama kvaliteediväravat

Kui tahad teada, milliste küsimuste puhul RAG-süsteemi vastus või leitud kontekst alt veab, alusta salvestatud näidete analüüsist Ragasega. Kui vajad kokkulepitud lävendiga testi, mis saab CI-jooksu nurjata, sobib DeepEval: DeepEvali RAG-juhend kirjeldab nii mõõdikuid kui ka testide käivitamist käsuga deepeval test run. Sama nimega mõõdiku skoori ei saa siiski ühest raamistikust teise kvaliteedilävendina kopeerida.
Mõlemaga saab hinnata üksikuid näiteid ja andmestikke; valik sõltub sellest, millist töövoogu on vaja. Ragase hindamisjuhend näitab, kuidas küsimusest, vastusest, leitud lõikudest ja viitevastusest koostada hindamisandmestik ning sellele mõõdikud käivitada. DeepEval on mugav siis, kui sama valim peab andma testile läbimise või läbikukkumise otsuse, kuid selleks tuleb lävend eraldi põhjendada.
Mida sarnased mõõdikunimed tähendavad?
Ragase Faithfulness ja DeepEvali FaithfulnessMetric küsivad mõlemad, kas vastuse väited toetuvad leitud kontekstile. See on teistsugune küsimus kui vastuse asjakohasus: vastus võib käsitleda õiget teemat, kuid lisada fakti, mida ükski leitud lõik ei toeta. Samuti võib vastus jääda kontekstile truuks, kuigi otsing ei leidnud kasutaja küsimusele vajalikku teavet.
Otsingupoolel tuleb eristada lõikude asjakohasust ja vajaliku teabe katvust. DeepEvali ContextualRelevancyMetric käsitleb leitud lõikude seost sisendiga; ContextualRecallMetric vajab oodatud vastust, mille suhtes hinnata, kas oluline teave jõudis konteksti. Ragase LLMContextRecall kasutab samuti viitevastust. Vastuse ja otsingu mõõdikute eraldi vaatamine aitab näha, kas probleem tekkis teabe leidmisel või vastuse koostamisel.
DeepEvali RAGAS-mõõdiku kirjeldus eristab Ragase teegil põhinevat RagasMetricut DeepEvali enda RAG-mõõdikutest: viimaste juures saab vaadata hindaja põhjendusi ning kasutada DeepEvali vahemälu, pytesti tuge ja veakäsitlust. RagasMetric koondab omakorda eri mõõdikud üheks tulemuseks. Kui mõõdik, hindajamudel või selle töötlus muutub, võib sama näide saada teistsuguse tulemuse; senist läbimislävendit ei saa üksnes nime põhjal kehtima jätta.
Ühine väike hindamisandmestik
Võrdluse lähtekohaks sobib salvestatud RAG-väljund, mitte igal hindamisjooksul uuesti tehtud otsing. Iga rida sisaldab kasutaja küsimust, tegelikku vastust ja just selle vastuse koostamisel kasutatud tekstilõike. Kui tahad hinnata ka vajaliku teabe katvust, lisa inimese kontrollitud viitevastus. Säilita lõikude järjekord: teise otsingutulemuse või muudetud vastuse hindamine oleks juba teine katse.
Üks tinglik näide on küsimus „Millal konto suletakse?”. Salvestatud lõik ütleb, et konto suletakse kasutaja taotluse järel, kuid RAG-süsteemi vastus väidab, et see toimub automaatselt. Viitevastus sisaldab taotluse tingimust. Selle rea puhul saab eraldi uurida, kas otsing tõi vajaliku tingimuse kaasa ja kas genereeritud vastus jäi leitud teksti piiresse. Näide kirjeldab sisendeid, mitte kummagi tööriista mõõdetud skoori.
Väikeses kogus võiks olla ka näiteid, kus vastus on toetatud, kuid kontekst on küsimuse jaoks puudulik, ning näiteid, kus otsing tõi õige teabe, kuid vastus kaldus sellest kõrvale. Need on hindamiskogu koostamise soovitused, mitte uued testitulemused. Salvesta koos ridadega RAG-süsteemi versioon, hindajamudel ja kasutatud mõõdikud, et hilisem muutus oleks seotud õige põhjusega.
Kaks seadistust samade ridade jaoks
Ragas andmestiku uurimiseks. Teisenda iga salvestatud rida väljadeks user_input, retrieved_contexts, response ja reference ning koosta neist EvaluationDataset.from_list. Käivita evaluate, andes ette sama hindajamudeli LangchainLLMWrapperi kaudu ning valides näiteks Faithfulness() ja LLMContextRecall(). Esimene suunab tähelepanu kontekstist toetamata vastuseväidetele, teine kasutab viitevastust leitud teabe katvuse hindamiseks. Hoia tulemused seotud algsete ridadega, sest keskmine võib peita üksikud tõsised vead.
DeepEval CI-kontrolliks. Teisenda täpselt samad salvestatud väljad LLMTestCase objektidesse: user_input vastab väljale input, response väljale actual_output, retrieved_contexts väljale retrieval_context ja reference väljale expected_output. Seo testjuhud pytesti parameetritega ning kutsu iga juhtumi jaoks välja assert_test, kasutades näiteks FaithfulnessMetricut ja ContextualRecallMetricut. Käivita testfail käsuga deepeval test run test_rag.py. Lävend määra valitud mõõdikule ja hindajamudelile pärast näidete käsitsi läbivaatamist; suvaline vaikimisi piir ei kirjelda teie rakenduse vastuvõetavat viga.
Need kaks seadistust kasutavad sama küsimust, vastust, konteksti ja viitevastust, kuid nende tulemused vastavad raamistiku enda hindamisprotseduurile. Võrdlemiseks vaata kõigepealt, kas probleemsete ridade järjestus ja põhjused on arusaadavad. Kui mõõdikud lahknevad, kontrolli algset vastust ja lõike ning otsusta, millist omadust CI-värav tegelikult kaitsma peab. Ragase skoori arvväärtus ei muutu DeepEvali lävendiks isegi siis, kui mõõdikute nimed kõlavad sarnaselt.
Kohtunikmudeli kulu ja hindamisvead
LLM-il põhineva hindamise kulu kasvab koos hindamisridade, mõõdikute ja hindajale saadetava tekstiga. Pikkade leitud lõikude või mitme mõõdiku lisamine võib suurendada nii päringute hulka kui ka viivitust. Seetõttu sobib sagedasse CI-jooksu väike püsiv regressioonikogu, samal ajal kui laiem andmestik võib jääda eraldi analüüsiks. Mõõdikute vahemälu võib korduvat tööd vähendada, kuid eelarve jaoks tuleb arvestada oma mudeli, sisendite ja käivitussagedusega.
Vigane kohtuniku väljund, puuduv skoor või hindamiskutse tõrge ei tähenda, et RAG-vastus oli hea või halb. Märgi selline juhtum hindamata jäänuks ja säilita veateade eraldi kvaliteediskoorist. Eriti tähtis on see automaatses väravas: kui puuduv tulemus loetakse läbimiseks, ei kontrolli test enam kokkulepitud omadust. DeepEvali struktureeritud väljundi ja veakäsitluse võimalused aitavad seda olukorda hallata, kuid valitud hindajamudeli käitumine tuleb seadistuses arvesse võtta.
Milline töövoog valida?
- Kui alles selgitad, kas probleem on otsingus, vastuses või hindamisnäidetes, kasuta andmestikupõhist analüüsi. Ragas annab selleks selge lähtekoha koos RAG-ile suunatud mõõdikutega.
- Kui väljalase peab püsiva näidiskogu alusel automaatselt läbima või läbi kukkuma, kasuta DeepEvali pytestiga seotud teste. Hoia testiga koos näidete versioon, hindajamudel ja just selle mõõdiku jaoks kalibreeritud lävend.
- Kui jälgid tootmises muutuvaid küsimusi, kogu küsimus, vastus ja leitud lõigud eraldi hindamisvalimisse. Korduvaid ning inimese kinnitatud tõrkeid saab lisada püsivasse regressioonikogusse; muutuv tootmisvoog ise ei ole stabiilne CI-test.
Ragas ja DeepEval võivad seega olla sama RAG-süsteemi töövoos kõrvuti. Nende ühine alus on salvestatud hindamisnäide; kvaliteedivärava otsus sõltub konkreetsest mõõdikust, hindajast ja selle näidiskogu peal põhjendatud lävendist.
Loe ka:
Seotud artiklid


Progress toob RAG-agendi Teamsi — vastus võib ulatuda CRM-i

Dockeri ENV võib jätta võtme image’isse — kasuta build secret’it

Facebook kaotas 43,9 miljoni rikkumisega kohtuasja — trahv pole veel teada

ERC loob AI-le eraldi hindamispaneeli — rakendusuuring sinna ei mahu

Claude Code või Codex: ühe võitja asemel otsustab ülesande tüüp
Telli meie uudiskiri
Saa värskeimad Web3, AI ja krüptouudised otse oma postkasti.