CAI Technology
Menu ☰
rag · · 8 min citire

Cum evaluezi corect un sistem RAG: cele 9 metrici esențiale

Cele 9 metrici esențiale pentru a evalua un sistem RAG, pe două axe (retrieval + generation) plus verdictul uman — cu diagrame, formule, tabel de troubleshooting și cum le automatizezi în practică.

CAI Technology · Ultima revizuire: 03.07.2026
Infografic: cele 9 metrici de evaluare RAG, grupate pe 3 familii — Retrieval, Generation și Human, cu formule.

Cum evaluezi corect un sistem RAG: cele 9 metrici esențiale

Un sistem RAG (Retrieval-Augmented Generation) are două componente care pot greși independent. Dacă răspunsul e slab, trebuie să știi care parte e de vină. Acest articol rezumă cele 9 metrici esențiale, le explică vizual și arată cum le implementezi în practică — inclusiv cum le folosim deja într-un sistem real de-al nostru.

De ce ai nevoie de metrici pe DOUĂ axe

Cele două componente ale unui RAG:

  1. Retrievalce documente/chunk-uri aduce din baza de cunoștințe.
  2. Generationce răspuns produce modelul din documentele aduse.

De aceea metricile se împart în două familii + una umană:

FamilieCe măsoarăMetrici
A. RetrievalCalitatea contextului adus1. Context Precision · 2. Context Recall · 3. Context Relevance · 7. Hit@k · 8. MRR
B. GenerationCalitatea răspunsului4. Faithfulness · 5. Answer Relevance · 6. Answer Correctness
C. HumanJudecată umană finală9. Human Evaluation

Diagrama 1 — Unde se aplică fiecare metrică în pipeline

flowchart LR Q(["Intrebare user"]) --> R["Retriever<br/>embeddings + vector DB"] R -->|"top-k chunks"| RR["Reranker"] RR --> CTX["Context recuperat"] CTX --> G["LLM Generator"] G --> A(["Raspuns"]) R -. "masoara" .-> MRET A -. "masoara" .-> MGEN A --> H["9 Human Evaluation"] subgraph MRET["Metrici RETRIEVAL"] direction TB M1["1 Context Precision"] M2["2 Context Recall"] M3["3 Context Relevance"] M7["7 Hit@k"] M8["8 MRR"] end subgraph MGEN["Metrici GENERATION"] direction TB M4["4 Faithfulness"] M5["5 Answer Relevance"] M6["6 Answer Correctness"] end

Cum citești diagrama: metricile de RETRIEVAL evaluează ce iese din retriever (înainte de LLM); cele de GENERATION evaluează răspunsul final; Human Evaluation e verdictul uman peste tot.


Familia A — Metrici de RETRIEVAL

1. Context Precision — cât din ce-ai adus e relevant

Precision = chunk-uri relevante recuperate / total chunk-uri recuperate

2. Context Recall — ai adus TOT ce era relevant

Recall = chunk-uri relevante recuperate / toate chunk-urile relevante

Precision și Recall sunt în tensiune: crești k → recall ↑ dar precision ↓. Reranker-ul le împacă (aduci mult, apoi filtrezi sus).

3. Context Relevance — cât de relevante-s documentele față de întrebare

Verifică, calitativ, dacă documentele recuperate chiar au legătură cu query-ul. Mai mare = mai bine. Implementare: LLM-as-judge dă un scor de relevanță per (query, chunk).

7. Hit Rate (Hit@k) — măcar unul nimerit în top-k

Hit@k = 1 dacă un doc relevant e în top-k, altfel 0.

8. Mean Reciprocal Rank (MRR) — cât de SUS apare primul doc relevant

MRR = (1/N) · Σ (1 / rankᵢ) — unde rankᵢ = poziția primului document relevant pentru query-ul i, iar N = numărul total de query-uri.


Familia B — Metrici de GENERATION

4. Faithfulness — răspunsul e susținut de context (fără halucinații)

Verifică dacă fiecare afirmație din răspuns este acoperită de contextul recuperat. „No hallucinations.” Mai mare = mai bine.

5. Answer Relevance — răspunsul adresează întrebarea userului

Un răspuns poate fi 100% fidel contextului dar pe lângă subiect. Măsoară cât de bine răspunde la ce a întrebat userul. Mai mare = mai bine. Fix când e mic: îmbunătățește prompt-ul de generare, reformulare query.

6. Answer Correctness — corectitudine factuală față de adevărul de referință

Compară răspunsul cu un ground truth / referință. Mai mare = mai bine. Necesită un set „gold” de răspunsuri corecte. Implementare: LLM-as-judge sau potrivire semantică vs referință.


Familia C — Human Evaluation

9. Human Evaluation — judecata umană

Judecată umană de utilitate, acuratețe și grounding, pe o rubrică:

Rămâne standardul de aur pentru cazurile ambigue; se face pe un eșantion, nu pe tot.


Diagrama 2 — Taxonomia celor 9 metrici

flowchart TB ROOT["Evaluare RAG"] ROOT --> A["A. RETRIEVAL<br/>calitatea contextului"] ROOT --> B["B. GENERATION<br/>calitatea raspunsului"] ROOT --> C["C. HUMAN"] A --> A1["1 Context Precision<br/>relevante / total recuperate"] A --> A2["2 Context Recall<br/>relevante recuperate / toate relevante"] A --> A3["3 Context Relevance"] A --> A7["7 Hit@k<br/>macar unul in top-k"] A --> A8["8 MRR<br/>rangul primului relevant"] B --> B4["4 Faithfulness<br/>fara halucinatii"] B --> B5["5 Answer Relevance"] B --> B6["6 Answer Correctness<br/>vs ground truth"] C --> C9["9 Correctness / Helpfulness / Grounding / Completeness"]

Cum le implementezi în practică

MetricăCum o calculeziAi nevoie de
Context Precision / RecallCompari chunk-urile recuperate cu un set „gold” de chunk-uri relevanteSet adnotat (query → chunk-uri relevante)
Hit@k / MRRDirect din rezultatele retrieverului + gold setGold set + pozițiile returnate
Context RelevanceLLM-as-judge pe (query, chunk)Un LLM judecător
FaithfulnessLLM-as-judge (răspuns vs context) sau grounding prin embeddingsLLM judecător / embedder
Answer RelevanceLLM-as-judge (răspuns vs întrebare)LLM judecător
Answer CorrectnessLLM-as-judge (răspuns vs referință)Set „gold” de răspunsuri
Human EvaluationRubrică + evaluatori umaniOameni + ghid de notare

Unelte: biblioteca ragas (Python) acoperă din cutie Context Precision/Recall, Faithfulness, Answer Relevance, Answer Correctness (LLM-as-judge). Metricile pur de ranking (Hit@k, MRR) le calculezi cu cod simplu peste rezultatele retrieverului.


Cum le facem NOI (implementare reală)

Pipeline-ul nostru de RAG automatizează exact 2 din cele 9 metrici ca poartă de calitate, la scară:

Practic, „datasetul platinum” e construit trecând fiecare exemplu prin Faithfulness + Answer Correctness automatizate — două dintre metricile de mai sus, aplicate la sute de mii de perechi.


Praguri orientative + ce faci când o metrică e mică

SimptomMetrica micăCauză probabilăCe faci
Răspuns incompletContext RecallRetrieverul ratează infok, embeddings/chunking mai bune, hybrid search
Răspuns diluat cu zgomotContext PrecisionPrea mult gunoi recuperatReranker, ↓ k, filtre metadate
Model inventeazăFaithfulnessPrompt slab / grounding absent„Răspunde DOAR din context”, grounding gate
Răspunde pe lângăAnswer RelevanceGenerare/prompt slabÎmbunătățește promptul, reformulează query
Docul bun apare târziuMRR / Hit@kRanking slabReranker, embeddings, tuning HNSW

Rezumat de reținut

Începem cu o conversație de 30 de minute.

Audit AI-readiness gratuit pentru companii peste 50 angajați. Răspundem în 24 de ore.