RAG en español con RagQuAS
Objetivo
Implementar y evaluar un sistema RAG en español usando LangChain y el dataset RagQuAS. La tarea busca practicar las tres etapas principales de RAG: indexación, recuperación y generación, así como la evaluación del recuperador y del generador.
Dataset
Usarán RagQuAS: Retrieval-Augmented-Generation and Question-Answering in Spanish.
Deberán seleccionar al menos 30 ejemplos. Para cada ejemplo usarán:
- la pregunta;
- la respuesta de referencia;
- el campo
text_icomo fuente documental.
El índice debe construirse únicamente con text_i. No deben indexar respuestas de referencia ni otros campos que puedan introducir fuga de información.
Actividades
1. Adaptar el notebook de clase
Partan del notebook de la práctica y modifiquen el pipeline para trabajar con RagQuAS:
text_i → chunks → embeddings → índice vectorial → recuperación → generación
Pueden usar FAISS o ChromaDB como base vectorial.
2. Construir el índice
A partir de text_i, construyan los documentos que se van a indexar.
Reporten brevemente en el notebook:
- número de ejemplos usados;
- número de textos indexados;
- número de chunks generados;
- modelo de embeddings;
- base vectorial;
- configuración de chunking.
3. Recuperar evidencia
Para cada pregunta, recuperen los fragmentos más relevantes. Prueben al menos dos valores de k, por ejemplo: 3 y 5. Guarden los fragmentos recuperados y la posición en la que aparece el primer fragmento relevante.
4. Generar respuestas
Construyan una cadena RAG con LangChain. El prompt debe indicar que el modelo responda solo con base en el contexto recuperado.
Ejemplo:
Responde la pregunta usando únicamente el contexto proporcionado.
Si la respuesta no está en el contexto, responde:
"No hay suficiente información en los documentos recuperados".
Generen respuestas para las preguntas seleccionadas.
5. Evaluar el recuperador
Calculen: Precision@k, Recall@k, MRR. Incluyan una tabla con los resultados por pregunta y el promedio general.
6. Evaluar el generador
Comparen la respuesta generada con la respuesta de referencia de RagQuAS. Calculen las métricas: Token F1, ROUGE-L, BERTScore. Agreguen una breve evaluación cualitativa: si la respuesta es fiel al contexto, si omite información importante o si agrega información no sustentada.
7. Experimento comparativo
Realicen un experimento comparativo sencillo. Pueden comparar:
k=3vs.k=5;- dos tamaños de chunks;
- dos modelos de embeddings;
- RAG vs. generación sin RAG;
- consulta original vs. consulta reescrita.
Incluyan una tabla de resultados y una breve interpretación.
Entregable
Entregar un solo notebook. El notebook debe contener:
- Breve descripción de RagQuAS.
- Carga y selección de ejemplos.
- Construcción del índice usando
text_i. - Implementación del pipeline RAG.
- Evaluación del recuperador.
- Evaluación del generador.
- Experimento comparativo.
- Análisis crítico y conclusiones.
No incluyan claves de API directamente en el código.