Dacă sistemul tău RAG nu are set de evals, fiecare schimbare de prompt e un release pe vibe-uri. Vestea bună: poți construi un set de evals util într-o săptămână. Nu unul perfect — unul util. Perfectul e capcana care ține echipele să nu aibă deloc evals.
Iată rețeta pe care o folosim pe engagement-uri unde clientul are 0–5 evals în ziua unu și are nevoie de 200 până la sfârșitul săptămânii.
Forma
Vrei trei lucruri:
- Un corpus înghețat — documentele reale peste care face retrieval sistemul tău, capturate într-un moment în timp.
- 200 de întrebări pe care un utilizator real le-ar putea pune, cu răspunsuri și citări ground-truth.
- Un set held-out — 30 din cele 200, închise sub cheie, nefolosite niciodată pentru tuning.
Setul held-out e cel mai important și cel mai des sărit. Revenim la el.
Ziua 1–2: Extrage întrebări reale
Sări peste workshop-urile „ce ar întreba utilizatorii?". Produc întrebări pe care niciun utilizator nu le-a pus vreodată. Du-te la surse:
- Tichetele de suport care menționează orice subiect pe care îl acoperă RAG-ul.
- Log-urile de search din bara de căutare existentă, dacă ai una.
- Canalele de Slack unde lumea pune întrebarea intern.
- Log-urile de chat din sistemul LLM curent, dacă ai unul în rulare.
Țintește 250 de întrebări brute. Deduplică, normalizează formularea, aruncă-le pe cele evident out-of-scope. Vei ajunge pe la ~200.
Ziua 3: Etichetează pentru dificultate și subiect
Pune fiecare întrebare într-o găleată:
- Dificultate: trivială (răspunsul e într-un paragraf), medie (răspunsul cere sintetizarea a 2–3 documente), grea (cere înțelegerea unei proceduri sau reguli).
- Aria de subiect — de obicei 5–15 găleți, în funcție de domeniu.
- Flag de adversarial — întrebări concepute să declanșeze moduri de eșec cunoscute (out-of-scope, info contradictorie, info recent actualizată).
Vrei un mix. Un set 90% trivial îți va spune că sistemul tău e grozav, iar tu vei face deploy la o regresie pentru că cazurile medii și grele s-au stricat.
Ziua 4: Ground truth
Pentru fiecare întrebare îți trebuie:
- Răspunsul așteptat — scris, 1–3 propoziții, răspunsul pe care l-ar da un expert de domeniu.
- Pasajele de suport — pointeri (ID-uri de document, intervale de linii, ID-uri de chunk) către părțile din corpus care ar trebui să fie aduse pentru a răspunde la întrebare.
Asta e partea lentă. Planifică ~3 minute per întrebare = ~10 ore pentru 200 de întrebări. Doi oameni în paralel, jumătate de săptămână. Folosește un expert de domeniu.
Merită. Asta e partea care transformă „LLM-ul a zis ceva plauzibil" în „LLM-ul a citat sursa corectă și a dat răspunsul corect."
Ziua 5: Baseline-uri + metrici
Rulează sistemul tău curent (sau un stub dacă nu ai unul) pe cele 170 de întrebări vizibile. Înregistrează:
- Retrieval@k: au inclus top-k chunk-uri aduse pasajele de suport așteptate?
- Corectitudinea răspunsului: notată de un judge LLM contra răspunsului așteptat, cu referința held-out. Calibrează judge-ul contra ~30 de note umane ca să te asiguri că nu doar ștampilează.
- Precizia citării: din citările întoarse, ce fracțiune chiar susțin afirmația?
Acum ai baseline-uri. Fiecare schimbare viitoare de prompt sau retrieval apare ca o delta față de astea.
Setul „nu optimiza asta"
Cele 30 de întrebări held-out există dintr-un singur motiv: să te prinzi pe tine însuți.
Fiecare echipă care construiește un set de evals începe eventual să tuneze sistemul contra setului de evals. Rev nou de prompt, rulezi evals, scorul a crescut, livrezi. Trei luni mai târziu, scorul tău în set e 95% și satisfacția utilizatorilor e neschimbată, pentru că ai făcut overfitting.
Cele 30 de întrebări held-out se rulează doar la health check-uri trimestriale. Dacă regresează în timp ce restul setului se îmbunătățește, ăla e alarma de fum pentru overfitting. Sunt un check pe check.
Nu te uita la ele. Nu adăuga la ele. Nu le substitui cu echivalente. Încuie-le într-un seif.
Ce câștigi din asta
- Un semnal reproductibil care blochează schimbările de prompt și retrieval.
- Un baseline cu care poți compara la evaluarea versiunilor noi de LLM.
- Un răspuns defensabil la „de unde știi că RAG-ul tău e bun?"
Construiește v1 într-o săptămână. Iterează întrebările lunar. Înlocuiește setul held-out o dată pe an.
Nu vei avea niciodată timp să construiești setul perfect de evals. Cu siguranță ai timp să-l construiești pe cel util.