Módulo 4: Evaluación y Chunking Strategies
Crear Evaluation Datasets para RAG
Descripción breve
Un evaluation dataset permite medir objetivamente tu sistema RAG. Sin él, solo tienes intuición. Con él, tienes datos para optimizar chunking, modelos, y retrieval.
Aprenderás formatos de eval datasets, synthetic data generation, human annotation guidelines, y quality assurance. Al final, podrás crear datasets robustos.
Formato de Evaluation Dataset
Estructura básica:
{
"queries": [
{
"id": "q1",
"text": "How to install Python?",
"relevant_doc_ids": [3, 7, 12],
"difficulty": "easy"
}
],
"corpus": [
{"id": 3, "text": "Download Python from python.org..."},
{"id": 7, "text": "Use package manager: apt install python3..."}
]
}
Synthetic Data Generation
Método 1: GPT-4 para generar queries
from openai import OpenAI
import os
from dotenv import load_dotenv
load_dotenv()
client = OpenAI(api_key=os.getenv("OPENAI_API_KEY"))
def generate_queries_for_doc(doc_text: str, n_queries: int = 3):
"""Generar queries sintéticas para documento"""
prompt = f"""Given this document, generate {n_queries} questions that this document would answer.
Document:
{doc_text}
Generate questions in JSON format:
{{"queries": ["question 1", "question 2", ...]}}
"""
response = client.chat.completions.create(
model="gpt-4",
messages=[{"role": "user", "content": prompt}],
temperature=0.7
)
# Parse JSON response
import json
result = json.loads(response.choices[0].message.content)
return result['queries']
# Ejemplo
doc = "Python is a programming language. Install it from python.org."
queries = generate_queries_for_doc(doc, n_queries=3)
print(queries)
# ["How to install Python?", "Where to download Python?", "What is Python?"]
Human Annotation
Guidelines para anotadores:
# Annotation Guidelines
## Tarea
Para cada query, marca los documentos relevantes (1-5 en escala).
## Escala de relevancia:
- 0: No relevante
- 1: Marginalmente relevante
- 2: Relevante
- 3: Altamente relevante
## Ejemplos:
Query: "How to install Python?"
Doc A: "Download Python from python.org" → 3 (altamente relevante)
Doc B: "Python history: created in 1991" → 1 (marginalmente relevante)
Doc C: "JavaScript tutorial" → 0 (no relevante)
Resumen
Qué aprendiste:
- ✅ Formato de eval datasets
- ✅ Synthetic data con GPT-4
- ✅ Human annotation guidelines
Optimal: Combinar synthetic + human annotation.
En la siguiente cápsula
Cápsula 06: A/B Testing Chunking Strategies
Aprenderás a comparar estrategias sistemáticamente.
Módulo 4 - Embeddings Deep Dive Guide Evaluation datasets: base para optimización