RAG Evaluation Pipeline: golden dataset Italian
RAG è deterministic solo in infrastructure, non in output quality. Un sistema RAG ben-architettato può comunque fallire silenziosamente: documento retrieval sbagliato, reranking inefficiente, hallucination del modello. Nel 2026, la valutazione RAG è pratica obbligatoria in produzione. Questa guida documenta: RAGAS framework (faithfulness, relevance, F1 metrics), setup golden dataset italiano 100 q/a pair con annotations, continuous evaluation loop automatizzata, monitoring dashboard Prometheus, alerta SLA violations. Include dataset template e Python scripts pronto-per-uso per startup PMI.
1. Problema: come misurare qualità RAG?
Prompt: "Spiega diritto amministrativo italiano". Response corretta vs sbagliata non è binario. Dimensioni di qualità:
- Faithfulness: Response è coerente con documenti retrieval? Se retrieval = [doc1, doc2], allora risposta NON deve contenere informazioni non in [doc1, doc2] (hallucination check).
- Relevance: Documenti retrieval sono pertinenti alla query? Es. "Come aprire azienda?" retrieves "Tassa IVA 2026" → relevance bassa.
- Completeness: Risposta copre tutti aspetti della query? Es. "Quali sono diritti e doveri?" deve includere entrambi, no solo diritti.
- Accuracy: Informazioni factual sono corrette? Richiede fact-checking vs trusted sources (es. sito Agenzia Entrate).
Metodo legacy (fallato): human review. 100 response review = 40 ore. Monthly = €2-5k cost.
Soluzione 2026: RAGAS framework automatizza valutazione usando LLM-as-judge (modello giudice valuta modello generatore). Costo: $0 se LLM on-prem (Ollama), o €0.05-0.10/valutazione se OpenAI.
2. RAGAS framework: metriche core
RAGAS (Retrieval-Augmented Generation Assessment) è framework 2023 da AIPlus, diventato de-facto standard 2024-2026.
4 metriche principali:
- Faithfulness [0, 1]: "Risposta è supportata da retrieval?" LLM valuta quante claims nella risposta appaiono nei doc. Formula: claims_supported / claims_totali. Threshold ≥0.85 per produzione.
- Answer Relevance [0, 1]: "Risposta risponde alla query?" LLM estrae query implicita da risposta, calcola cosine-similarity vs query originale. Threshold ≥0.75.
- Context Precision [0, 1]: "Tra top-10 retrieved doc, quanti sono rilevanti?" Ranking metric. Threshold ≥0.70.
- Context Recall [0, 1]: "Sono stati retrieval tutti doc necessari?" Richiede reference documents pre-annotated. Threshold ≥0.80.
Utilizzo pratico:
# Installa RAGAS
pip install ragas==0.1.2
from ragas.metrics import faithfulness, context_relevance, context_recall
from ragas import evaluate
# Dataset: lista di (query, response, context_doc_list, reference_answer)
dataset = [
{
"query": "Quali sono i diritti fondamentali nella Costituzione italiana?",
"response": "La Costituzione italiana riconosce diritti civili, politici e sociali nel Titolo I.",
"context": ["Titolo I della Costituzione copre diritti e doveri dei cittadini..."],
"reference": "Diritti civili: libertà persona, diritti politici: voto..."
},
# ... 99 altri esempi
]
# Valuta su tutte 100 richieste
results = evaluate(
dataset,
metrics=[faithfulness, context_relevance, context_recall],
model_name="gpt-3.5-turbo" # o "ollama/llama3.1:8b"
)
print(f"Avg Faithfulness: {results['faithfulness'].mean():.3f}")
print(f"Avg Context Relevance: {results['context_relevance'].mean():.3f}")
print(f"Avg Context Recall: {results['context_recall'].mean():.3f}")
# Output esperato (buon sistema RAG)
# Avg Faithfulness: 0.88
# Avg Context Relevance: 0.79
# Avg Context Recall: 0.85
3. Golden dataset italiano: 100 q/a pair con annotations
Creare golden dataset (reference di verità) è foundational. Template per dataset italiano:
[
{
"id": "IT_LAW_001",
"category": "diritto_amministrativo",
"query": "Quali sono i principi fondamentali del diritto amministrativo italiano?",
"reference_answer": "Il diritto amministrativo italiano si basa su tre principi fondamentali: 1) Legalità - PA deve agire secondo legge; 2) Imparzialità - no discriminazione; 3) Trasparenza - accesso ai dati pubblici. Normativa: Art. 1 CEPA, art. 97 Cost.",
"documents": [
{
"id": "doc_001",
"content": "I principi fondamentali della pubblica amministrazione italiana sono stabiliti dall'art. 97 della Costituzione e dal Codice dell'Amministrazione Digitale. Tra essi: legalità (azione secondo legge), imparzialità (no discriminazione), trasparenza, economicità e efficienza.",
"relevance": 1.0
},
{
"id": "doc_002",
"content": "La Corte di Cassazione nel 2019 ha ribadito che la PA deve rispettare i principi costituzionali di buona amministrazione.",
"relevance": 0.7
}
],
"expected_metrics": {
"faithfulness_min": 0.85,
"context_relevance_min": 0.75,
"context_recall_min": 0.80
}
},
{
"id": "IT_LAW_002",
"category": "diritto_tributario",
"query": "Come si calcola l'IRPEF per un lavoratore dipendente italiano nel 2026?",
"reference_answer": "IRPEF 2026: Aliquota progressiva da 23% (fino €28k) a 43% (oltre €75k). Formula: (Reddito lordo - Deduzioni) × Aliquota - Detrazioni fiscali. Esempio: Reddito €50k, aliquota 35%, detrazioni €7k = tassa €17.5k - €7k = €10.5k netto.",
"documents": [
{
"id": "doc_003",
"content": "L'IRPEF 2026 ha 5 scaglioni: 23% fino €28.000, 35% €28-50k, 43% oltre €75k. Deduzioni standard €95.000 for single.",
"relevance": 1.0
}
],
"expected_metrics": {
"faithfulness_min": 0.90,
"context_relevance_min": 0.80
}
}
// ... 98 altri
]

Commenti
Caricamento commenti...
Accedi per commentare