
Ragas թե DeepEval․ նույն RAG գնահատականը կարող է տարբեր որոշում տալ CI-ում

Ragas-ը հարմար ընտրություն է, երբ պետք է տվյալաշարի առանձին հարցերով հասկանալ որոնման և պատասխանի սխալները։ DeepEval-ը հատկապես ուղիղ ճանապարհ է, երբ յուրաքանչյուր հարցի գնահատումը պետք է դառնա CI թեստ․ նրա RAG գնահատման ուղեցույցում assert_test()-ով ձախողված չափանիշը ձախողում է թեստը։ Երկու գործիքն էլ թույլ են տալիս գնահատել RAG համակարգը, սակայն թողարկման որոշումը կախված է նրանից, թե ինչպես են միավորները կապվում շեմին։
Նույն հարցերը, պատասխանները և որոնված հատվածները կարելի է ներկայացնել երկու գրադարանով, բայց նույնանուն score-ը դեռ նույն չափումը չէ։ Համեմատության համար պետք է համընկնեն գնահատվող պատասխանները, որոնված նյութը, սպասվող պատասխանը, դատող մոդելը և ձախողման կանոնը։ Հակառակ դեպքում տարբեր թվերի պատճառը կարող է լինել գնահատման եղանակը, իսկ նույն թվերը կարող են CI-ում տարբեր որոշման հանգեցնել։
Նույն հարցերը՝ երկու տվյալային մոդելով
Վերցնենք պայմանական փոքր տվյալաշար՝ խանութի վերադարձի կանոնների մասին։ Մի հարցի համար որոնված հատվածում նշված է, որ ապրանքը վերադարձվում է գնման օրվանից տասնչորս օրվա ընթացքում, և համակարգը ճիշտ է պատասխանում։ Մյուս հարցի հատվածը պահանջում է գնման կտրոն, մինչդեռ համակարգը պատասխանում է, թե կտրոն պետք չէ։ Յուրաքանչյուր օրինակի հետ պահվում են հենց այն հատվածները, որոնք հասանելի էին համակարգին պատասխանը կազմելիս։
Ragas-ի գնահատման օրինակը տվյալաշարի տողը կազմում է user_input, retrieved_contexts, response և reference դաշտերով, ապա տողերը փոխանցում EvaluationDataset-ին։ Պայմանական հավաքածուում user_input-ը հարցն է, retrieved_contexts-ը՝ այդ պահին որոնված հատվածները, response-ը՝ տրված պատասխանը։ Reference դաշտում կարելի է պահել կանոնին համապատասխան սպասվող պատասխանը, որպեսզի դրա կարիքն ունեցող չափանիշը համեմատության հիմք ունենա։ Այս կառուցվածքը թույլ է տալիս ընդհանուր արդյունքից վերադառնալ կոնկրետ հարցին ու տեսնել, թե որ մասում է առաջացել շեղումը։
DeepEval-ում Golden-ը պահում է թեստի մուտքը, իսկ գործարկման արդյունքը ներկայացվում է LLMTestCase-ով։ Նույն օրինակի input-ը կլինի հարցը, actual_output-ը՝ RAG համակարգի պատասխանը, retrieval_context-ը՝ որոնված հատվածները, և անհրաժեշտ չափանիշների համար կավելացվի expected_output-ը։ Կարևոր է նաև գործարկման պահը. եթե Ragas-ը գնահատում է նախապես պահված պատասխանները, իսկ DeepEval-ի թեստը նորից է կանչում արդեն փոփոխված համակարգը, տվյալաշարի հարցերի նույնությունը չի նշանակում, որ գնահատվել են նույն ելքերը։
Ինչ են չափում նման անուններով ցուցանիշները
Ragas-ի չափանիշների ցանկում կան context precision, context recall, noise sensitivity, response relevancy և faithfulness։ Առաջին երկուսը վերաբերում են որոնված նյութի օգտակարությանը և անհրաժեշտ տեղեկության ընդգրկմանը, մինչդեռ faithfulness-ը քննում է պատասխանի պնդումների հիմնավորվածությունը այդ նյութով։ Response relevancy-ն պատասխանը դիտարկում է հարցին համապատասխանելու տեսանկյունից։ Այդ հարցերը փոխկապակցված են, բայց մեկ լավ արդյունքը մյուսի լավ արդյունք չի երաշխավորում։
DeepEval-ի contextual precision-ը և Ragas-ի context precision-ը մոտ են նպատակի մակարդակում. երկուսն էլ ուշադրություն են դարձնում օգտակար որոնված հատվածներին։ Սակայն DeepEval-ի contextual precision-ի նկարագրությամբ դատող մոդելը expected_output-ի օգնությամբ գնահատում է յուրաքանչյուր հատվածի օգտակարությունը, իսկ վերջնական միավորը հաշվի է առնում դրանց հերթականությունը։ Ուստի նույն օգտակար հատվածը շարքի սկզբում կամ վերջում հայտնվելիս կարող է տարբեր արդյունք տալ։ Գնահատականի վրա ազդում են նաև սպասվող պատասխանի ձևակերպումն ու ընտրված գնահատման ռեժիմը։
Նման տարբերություն պետք է սպասել նաև recall և faithfulness անվանումների դեպքում։ Recall-ի համար վճռական է, թե ինչ տեղեկություն է համարվում պարտադիր և ինչպես է այն ներկայացված հղումային կամ սպասվող պատասխանում։ Faithfulness-ի դեպքում կենտրոնում տրված պատասխանի կապն է որոնված հատվածների հետ. պայմանական օրինակի՝ կտրոնը չպահանջելու պնդումը հակասում է հասանելի հատվածին։ Եթե կտրոնի պահանջը որոնված հատվածներում ընդհանրապես չլիներ, խնդիրը նախ պետք էր փնտրել որոնման մեջ։ Իսկ լիովին հիմնավորված, բայց չափազանց կարճ պատասխանը կարող է բարձր faithfulness ստանալ՝ միաժամանակ բաց թողնելով հարցի համար անհրաժեշտ տեղեկությունը։
Ինչպես է գնահատականը դառնում CI-ի որոշում
Ragas-ի տվյալաշարային արդյունքից թիմը կարող է կառուցել սեփական CI կանոնը՝ օրինակ համեմատելով ընտրված չափանիշի միջինը շեմի հետ։ DeepEval-ի pytest ոճի ընթացքը շեմը կապում է առանձին թեստի չափանիշին, ու անհաջող օրինակը կարող է կանգնեցնել գործարկումը։ Սա գործիքների բացարձակ բաժանում չէ. DeepEval-ն ունի նաև evaluate()՝ առանց pytest թեստի գնահատելու համար, իսկ Ragas-ի արդյունքն էլ կարելի է ներառել CI-ում։ Տարբերությունն այն է, թե որ որոշման կանոնն է նախագծում արդեն պատրաստ և որը պետք է առանձին գրել։
Պայմանական օրինակով ենթադրենք, որ նույն երկու պատասխանների ընտրված միավորները 0,4 և 0,9 են։ Եթե Ragas-ի արդյունքի վրա գրված կանոնը պահանջում է, որ միջինը լինի առնվազն 0,6, ապա 0,65 միջինը թույլ կտա թողարկումը։ Եթե DeepEval-ի թեստում նույն 0,6 շեմը կիրառվում է յուրաքանչյուր օրինակի նկատմամբ, 0,4 միավորով օրինակը կձախողի թեստը։ Թվերը իրական չափման արդյունք չեն. դրանք ցույց են տալիս, որ նույնիսկ նույն միավորների դեպքում միջինի և առանձին ձախողման կանոնները տարբեր որոշում են տալիս։
Այդ պատճառով շեմը պետք է կապել այն սխալին, որը թողարկման համար էական է։ Եթե մեկ չհիմնավորված պատասխանը բավական է թողարկումը կանգնեցնելու համար, ընդհանուր միջինը կարող է թաքցնել այդ դեպքը։ Եթե նպատակն առաջին հերթին որոնման փոփոխության ընդհանուր ազդեցությունը տեսնելն է, տվյալաշարի պատկերը օգտակար է, բայց այն պետք է լրացվի կոնկրետ ձախողված հարցերի դիտարկմամբ։ Երկու գրադարանների գնահատականները կողք կողքի դնելիս նույն դատող մոդելն օգտագործելը նվազեցնում է տարբերության մեկ աղբյուրը, սակայն չի նույնացնում չափանիշների հրահանգներն ու հաշվարկը։
Ինչ սահման ունի մարդկանց հետ համընկնումը
2026 թվականի կիրառական հետազոտությունը Ragas-ի, DeepEval-ի, RAGChecker-ի և Opik-ի չափանիշները համեմատել է մարդկանց գնահատականների ու որոնման recall-ի հետ՝ հեռահաղորդակցության փաստաթղթերից կազմված 96 հարցի հիման վրա։ Որոշ գեներացման չափանիշներ թույլ կապ են ցույց տվել մարդկանց ընդհանուր գնահատականի հետ։ Հետազոտության բացատրություններից մեկն այն է, որ առանց հղումային պատասխանի աշխատող չափանիշը չի կարող ամբողջությամբ չափել պատասխանի այն լրիվությունը, որը մարդը հաշվի է առնում։
Այդ արդյունքը չի տալիս գործիքների ընդհանուր վարկանիշ։ Ուսումնասիրվել է մեկ RAG համակարգ, իսկ հարցերի տվյալաշարը հրապարակային չէ։ Նույնիսկ մարդկանց գնահատականի հետ բարձր հարաբերակցությունը կարող է մասամբ արտացոլել հարցերի բարդությունը և ինքնին չի ցույց տալիս, թե չափանիշը ինչպես կարձագանքի համակարգի նոր տարբերակին։ Հետևաբար մարդկանց գնահատականների հետ համընկնումը կարևոր ազդակ է չափանիշ ընտրելիս, բայց թողարկման շեմը հիմնավորելու համար պետք է տեսնել նաև, թե այն ինչպես է տարանջատում տվյալ նախագծի անընդունելի պատասխանները։
Որ ընտրությունն է համապատասխանում աշխատանքին
Եթե առաջնային հարցն այն է, թե որ հարցում է որոնումը թերացել և որ պատասխանում է մոդելը շեղվել աղբյուրից, Ragas-ի տվյալաշարային ընթացքը հարմար մեկնակետ է։ Եթե արդեն կա թեստերով կառավարվող թողարկում, և որոշակի օրինակի ձախողումը պետք է անմիջապես ձախողի CI գործարկումը, DeepEval-ի assert_test()-ը տալիս է այդ կապը։ Երկու ընտրության դեպքում էլ չափանիշի անունը միայն մեկնակետ է. որոշման իմաստը որոշում են պահված մուտքերը, գնահատման իրականացումը և այն կանոնը, որով առանձին միավորը վերածվում է թողարկման թույլտվության։
Կարդացեք նաև:
Առնչվող հոդվածներ


Anthropic-ում կրտսեր տեխնիկական նորակոչիկների բաժինը 27%-ից դարձել է 9%

pgvector թե Pinecone․ պատրաստ Postgres-ը կարող է փոխել արագության ընտրությունը

Qdrant թե Milvus․ քիչ հիշողությունը շրջում է արագության հաղթողին

RAG թե fine-tuning․ փաստերի համար վերապատրաստումը հաճախ սխալ ընտրություն է

Playwright թե Cypress․ արագ թեստը կարող է պահանջել նոր աշխատանքային հոսք
Բաժանորդագրվեք մեր տեղեկագրին
Ստացեք Web3-ի, ԱԲ-ի և կրիպտոյի վերջին լուրերն անմիջապես ձեր էլ. փոստին։