Avanzado 13 minOptimización

Ragas: evaluar tu RAG local con chiffres

Respuesta directa

Ragas es una biblioteca Python de código abierto (licencia Apache 2.0, más de 15.000 estrellas en GitHub) que mide la calidad de una cadena de búsqueda documental: fidelidad, pertinencia de la respuesta, precisión y exhaustividad (recall) del contexto. Puede funcionar completamente con un modelo juez y un modelo de embeddings locales, lo que evita enviar tus documentos y tus respuestas a un servicio externo simplemente para evaluarlos.

Una cadena de búsqueda documental se ajusta a ciegas mientras no se disponga de cifras: se cambia el tamaño de los fragmentos, se reemplaza el modelo de embeddings y se evalúa por intuición con tres preguntas. Ragas es una biblioteca Python que permite medir estas intuiciones y que, cuando una respuesta es mala, distingue los fallos de la búsqueda de los del modelo. Puede funcionar completamente con modelos locales, lo que evita enviar tus documentos a un servicio externo para evaluarlos.

Por Mohamed Meguedmi·Actualización 2026-09-29·Probado en Windows, macOS y Linux

#¿Por qué «tiene buena pinta» no es suficiente?

Ragas es una biblioteca Python de código abierto, bajo licencia Apache 2.0, que asigna valores a la calidad de una cadena de búsqueda documental: la fidelidad de la respuesta con respecto a los pasajes proporcionados, su pertinencia respecto a la pregunta, la precisión y el recall del contexto recuperado. Así, separa el error de la búsqueda del error del modelo. Puede funcionar con un juez local, servido mediante Ollama, siempre que este modelo respete el formato de salida estructurado que le impone Ragas y que su contexto incluya toda la pregunta, los pasajes y la respuesta. Antes de adoptarla, recuerda tres puntos: sus puntuaciones sirven para comparar dos versiones del mismo sistema, no para evaluar una calidad absoluta; el conjunto de pruebas es más importante que la biblioteca; y los tutoriales en línea mezclan la antigua y la nueva API.

Cuando una respuesta es incorrecta, dos causas muy distintas se esconden detrás del mismo síntoma: o bien los pasajes recuperados no contenían la información, o bien la contenían y el modelo no respondió a lo que se le preguntaba. La corrección no es la misma: segmentación y embeddings en el primer caso, modelo y prompt en el segundo. Sin mediciones, se corrige al azar, y una mejora en tres preguntas empeora otras cinco sin que se note.

El otro escollo es la comparación. La pregunta «¿Es realmente mejor aquí el modelo de 27 mil millones de parámetros?» se resuelve volviendo a ejecutar el mismo conjunto de preguntas, no debatiendo. Eso es lo que permite una evaluación reproducible. Ragas supera las 15.000 estrellas en GitHub. La última versión publicada en PyPI es la 0.4.3, del 13 de enero de 2026, y el repositorio ha cambiado de organización en GitHub (vibrantlabsai). Fija la versión que utilizas.

#Las cuatro mediciones que cuentan

El kit RAG Local

Tus documentos, tu IA: un RAG local fiable sobre tus PDF, notas y correos — sin enviar nada a la nube.

  • Espacio en línea de por vida
  • PDF + archivos
  • Reembolsado 30 j
Lo que diagnostica cada medida
MediciónPregunta planteadaQué problema señala cuando bajaLo que se le debe proporcionar
Fidelidad¿La respuesta está completamente respaldada por los pasajes proporcionados? Puntuación: afirmaciones respaldadas divididas entre afirmaciones totales de la respuestaEl modelo inventa o extrapolaPregunta, respuesta, pasajes recuperados
Relevancia de la respuesta¿Aborda la respuesta la pregunta planteada? El juez genera tres preguntas a partir de la respuesta y luego compara su similitud con la pregunta originalEl prompt o el modelo se desvía del temaPregunta, respuesta y un modelo de embedding
Precisión del contexto¿Los pasajes útiles aparecen al principio de la clasificación? Media de la precisión en cada posiciónLa búsqueda devuelve ruido u ordena mal los resultadosPregunta, pasajes en el orden en que se recuperaron, respuesta de referencia
Recall del contexto¿Se ha recuperado todo lo necesario? Proporción de las afirmaciones de la respuesta de referencia respaldadas por los pasajesFragmentación demasiado fina, umbral demasiado estricto, embeddings de mala calidadPregunta, pasajes, respuesta de referencia

La documentación de Ragas especifica que la pertinencia de la respuesta no juzga la exactitud: mide solo la adecuación a la pregunta y penaliza las respuestas incompletas o llenas de detalles innecesarios. Por eso no reemplaza la fidelidad. Interpretar estas cifras conjuntamente es lo que las hace útiles. Un recall bajo con una fidelidad alta describe un sistema honesto pero mal alimentado: hay que trabajar la recuperación. Una fidelidad baja con un buen recall describe lo contrario: la información estaba disponible, el modelo añadió contenido inventado. Ambos problemas se corrigen en puntos opuestos de la cadena.

i
La fidelidad es la medida que se debe supervisar en primer lugar
En un entorno profesional, una respuesta inventada pero plausible cuesta más que la ausencia de respuesta. Una cadena que admite «los documentos no lo indican» es preferible a una cadena brillante que se equivoca de vez en cuando sin avisar.

#Construir un conjunto de pruebas

Es la parte que requiere trabajo y no se puede automatizar sin consecuencias. Un conjunto útil contiene preguntas realmente planteadas por los usuarios, con sus formulaciones torpes, sus abreviaturas propias y sus errores tipográficos, no preguntas reformuladas de manera pulida por la persona que escribió la documentación.

  1. 01
    Partir de preguntas reales
    Treinta a cincuenta preguntas basadas en el uso real valen más que doscientas preguntas inventadas. Incluye las que fallaron: son las más instructivas.
  2. 02
    Escribir la respuesta de referencia
    Para cada pregunta, la respuesta correcta, redactada en una o dos frases. Ragas la utiliza para estimar la exhaustividad del contexto (recall): la versión basada en un LLM toma esta referencia como sustituto de los pasajes esperados, lo que evita anotar los pasajes uno a uno.
  3. 03
    Mantener los casos sin respuesta
    Preguntas a las que el corpus no responde. Un buen sistema debe indicarlo; sin estos casos, nunca se mide esa cualidad.
  4. 04
    Fijar el conjunto de datos
    No debe evolucionar al mismo tiempo que el sistema; de lo contrario, no será posible comparar los resultados a lo largo del tiempo.

Ragas también ofrece generación asistida de conjuntos de pruebas sintéticos a partir del propio corpus: la documentación distingue entre preguntas de un salto (una sola fuente) y preguntas de varios saltos (varias fuentes que hay que relacionar), específicas o abstractas. Una guía oficial muestra cómo adaptarla a un corpus en un idioma distinto del inglés, utilizando el español como ejemplo, para iniciar una primera evaluación antes de que las preguntas reales de los usuarios hayan tenido tiempo de acumularse. Es un punto de partida práctico, nunca un sustituto: un conjunto completamente sintético no recoge las formulaciones torpes ni los errores tipográficos que, precisamente, revelan las debilidades reales de una búsqueda documental.

#Hacer todo funcionar localmente

Ragas se basa en dos modelos para evaluar: un modelo juez que lee la pregunta, los pasajes y la respuesta, y un modelo de embeddings para las medidas de similitud. La guía de inicio rápido de Ragas utiliza OpenAI por defecto, pero muestra la variante con Ollama: un cliente compatible con OpenAI dirigido a http://localhost:11434/v1 y pasado a la función llm_factory. Solo la relevancia de la respuesta requiere un modelo de embeddings: la fidelidad, la precisión del contexto y la exhaustividad del contexto solo utilizan el juez.

Dos condiciones para que el juez local sea creíble. La primera es la salida estructurada: las métricas actuales exigen al juez decisiones intermedias en un formato obligatorio (extracción de afirmaciones, veredictos). Un modelo local puede responder en prosa e incumplir este requisito, lo que genera errores de JSON o puntuaciones vacías (NaN); una guía de OneUptime recomienda probar al juez con una llamada mínima antes de cualquier campaña. Ninguna fuente oficial establece un tamaño mínimo de modelo: debes comprobarlo tú. La segunda es el contexto: Ollama aplica por defecto 4 000 tokens de contexto cuando hay menos de 24 GiB de VRAM, y la documentación recomienda aumentar el valor (variable OLLAMA_CONTEXT_LENGTH) para tareas exigentes. Un juez cuyo contexto se desborda evalúa en realidad un texto truncado.

Python: un juez local (API actual de Ragas)
# pip install ragas openai
from openai import AsyncOpenAI
from ragas.llms import llm_factory
from ragas.metrics.collections import Faithfulness, ContextRecall

# Client compatible OpenAI pointé sur Ollama (la clé est un simple libellé)
client = AsyncOpenAI(api_key="ollama", base_url="http://localhost:11434/v1")
juge = llm_factory("mistral", provider="openai", client=client)  # nom du modèle tiré avec ollama pull

fidelite = Faithfulness(llm=juge)
resultat = fidelite.score(
    user_input="Où se trouve la tour Eiffel ?",
    response="La tour Eiffel se trouve à Paris.",
    retrieved_contexts=["La tour Eiffel est située à Paris, en France."],
)
print(resultat.value)  # entre 0 et 1
→
Repetir las pruebas en lugar de volver a ejecutarlas al azar
Guarda cada campaña en un archivo fechado con la versión del sistema probado y la de Ragas. Así podrás, seis meses después, responder a «¿desde cuándo ha bajado la precisión del contexto?» en lugar de volver a descubrir el problema a raíz de una queja de un usuario.
!
API antigua, telemetría
Muchos tutoriales siguen usando LangchainLLMWrapper con la función evaluate: es la antigua API, que la documentación señala como obsoleta en 0.4 y retirada en 1.0. Otro punto: Ragas recopila por defecto datos de uso anonimizados; puedes desactivar esta recopilación estableciendo la variable RAGAS_DO_NOT_TRACK en true. Para una evaluación que deba permanecer sin conexión, activa esta opción.

#Leer los resultados sin equivocarse

Son indicadores, no calificaciones
Una fidelidad de 0,82 no significa «82 % de respuestas correctas». Este número sirve para comparar dos versiones del mismo sistema, no para certificar una calidad absoluta.
El juez tiene sesgos
El artículo de referencia sobre los jueces LLM (arXiv 2306.05685) describe sesgos de posición, de verbosidad y de preferencia por sí mismos. Mantén el mismo juez de una campaña a otra; de lo contrario, las diferencias miden al juez y no al sistema.
Una sola campaña no demuestra nada
La generación es variable. En un conjunto de pruebas pequeño, una diferencia de unas pocas centésimas puede deberse al ruido.
Lee algunos casos de forma manual
Los números indican dónde mirar; no indican qué está mal. Los diez peores casos de una campaña enseñan más que el promedio general.
Dos formas de evaluar y lo que aportan
MétodoLo que aportaSu límite
Revisión humana en algunos casosEl único verdadero control de calidad en un tema con implicaciones importantesNo es escalable, requiere tiempo de un experto en cada campaña
Modelo juez local (Ragas)Reproducible, gratuito tras la instalación, compara dos versiones rápidamenteSesgos de posición, de verbosidad y de autopreferencia; no es una puntuación de verdad absoluta
Valoración del usuario (pulgar hacia arriba)Refleja el uso real y su recopilación es gratuitaA menudo hay pocos comentarios, y un pulgar hacia arriba no indica qué etapa ha fallado

#Casos de uso concretos

Elegir un tamaño de fragmento
Volver a ejecutar el mismo conjunto de pruebas con fragmentos de 256, 512 y después 1024 tokens proporciona un valor de exhaustividad (recall) para cada configuración, en lugar de una preferencia no verificada.
Validar un cambio de modelo de embedding
Un nuevo modelo de embedding, incluso si se anuncia como mejor en un benchmark general, puede reducir la precisión del contexto en tu corpus específico; solo una serie de pruebas locales permite comprobarlo.
Justificar el añadido de un reranker
Comparar la precisión del contexto antes y después del reranking cuantifica una mejora que, de lo contrario, se queda en una impresión compartida en una reunión.
Hacer un seguimiento de una regresión tras actualizar el corpus
El añadido de nuevos documentos puede diluir la búsqueda; reproducir el juego de prueba fijo tras cada importación detecta la degradación antes de que un usuario la señale.
Elegir entre dos proveedores o arquitecturas
Ante dos propuestas competidoras para construir una misma cadena documental, una puntuación obtenida con el mismo conjunto de pruebas y el mismo corpus permite decidir más rápido que una demostración comercial.

#Organizar campañas

Frecuencia de las campañas
Después de cada cambio de segmentación, de modelo de embedding o de modelo de generación. No es necesaria una campaña diaria en un sistema estable.
Tamaño del corpus de prueba
El conjunto de preguntas sigue siendo pequeño; lo que debe ser una copia realista —o la totalidad— del corpus de producción es el corpus documental evaluado.
Costo real de una campaña
Cada métrica llama al juez varias veces (para la fidelidad: extracción de afirmaciones, luego verificación de cada una). El costo aumenta así con el número de preguntas multiplicado por el número de métricas: cronometra cinco preguntas antes de lanzar las cincuenta, luego planifica la campaña en consecuencia.

#Los límites del método

Evaluar con un modelo equivale a pedir a una inteligencia artificial que juzgue a otra inteligencia artificial: el método es útil, económico e imperfecto. Detecta regresiones y clasifica variantes; no sustituye la revisión humana en un ámbito donde hay mucho en juego y un error factual conlleva responsabilidad. Por último, cada campaña consume tiempo de cálculo: en una máquina que también atiende a los usuarios, se ejecuta cuando la carga es baja, de noche o un fin de semana, en lugar de en pleno horario de uso.

El sesgo de verbosidad merece un comentario adicional, porque es contraintuitivo. Un artículo de OneUptime explica que, en una respuesta larga, un juez tiene más oportunidades de citar las palabras clave de la rúbrica, parecer exhaustivo y ofrecer una justificación convincente. Un prompt que incita al modelo evaluado a extenderse más puede, por tanto, aumentar una puntuación sin mejorar la respuesta que recibe el usuario. En cuanto a la fidelidad, la documentación de Ragas menciona también una variante basada en HHEM-2.1-Open, un pequeño clasificador gratuito de Vectara para detectar alucinaciones: sustituye la etapa de verificación por un modelo especializado, que puedes probar si tu juez local es inestable.

La solución más sencilla es metodológica: nunca comparar una puntuación de fidelidad obtenida con un juez con una puntuación obtenida con otro juez, ni con una puntuación publicada por un tercero. La cifra solo tiene sentido dentro de una misma configuración de medición: mismo juez, mismo prompt de evaluación y misma versión de las métricas. Es una herramienta de comparación interna, no una clasificación universal.

#FAQ

¿Funciona Ragas sin modelo en la nube?+
Sí, siempre que configures explícitamente un juez local. La biblioteca, bajo licencia Apache 2.0 y con más de 15 000 estrellas en GitHub, utiliza OpenAI por defecto en su guía de inicio rápido, pero su guía muestra un cliente compatible con OpenAI configurado para conectarse a Ollama. Un modelo de embedding solo es necesario para la relevancia de la respuesta. Activa RAGAS_DO_NOT_TRACK para desactivar la telemetría.
¿Cuántas preguntas se deben incluir en un conjunto de pruebas?+
Treinta a cincuenta preguntas reales ya constituyen una base útil para detectar una regresión clara. A partir de ahí, el valor proviene de la diversidad de casos —incluidas las preguntas sin respuesta en el corpus— mucho más que del número bruto de preguntas planteadas a la cadena documental evaluada.
¿Qué medida revisar primero?+
La fidelidad, porque una respuesta inventada cuesta más que una respuesta ausente en un contexto profesional donde un error implica responsabilidad. Después, el recall del contexto, que indica si la información estaba siquiera disponible en el momento de responder, antes incluso de juzgar la formulación de la respuesta.
¿Se pueden comparar dos modelos con Ragas?+
Sí, es uno de sus usos más útiles: el mismo conjunto de preguntas, el mismo corpus, el mismo juez; solo se cambia el modelo de generación. Es la única forma seria de saber si un modelo más grande mejora las respuestas que recibes tú, basadas en tus documentos reales.
¿Es confiable un modelo juez local?+
Lo suficientemente fiable para comparar dos versiones, siempre que respete el formato de salida estructurada solicitado por Ragas (pruébalo en una llamada aislada) y que su contexto contenga todo lo que debe leer: Ollama aplica 4.000 tokens por defecto con menos de 24 GiB de VRAM. No sustituye una revisión humana en un asunto con consecuencias importantes, y presenta sesgos de posición, de verbosidad y de preferencia por sus propias respuestas.
¿Ragas puede generar automáticamente un conjunto de pruebas?+
Sí, la biblioteca ofrece la generación asistida de preguntas sintéticas a partir del corpus, útil para comenzar una primera evaluación antes de que las preguntas reales hayan tenido tiempo de acumularse. No reemplaza las preguntas realmente planteadas por los usuarios, cuyas formulaciones torpes revelan debilidades que un conjunto de preguntas limpio y sintético nunca muestra de la misma forma.
¿Esta guía te ha ayudado?

¿Un comentario, un error, una precisión? Avísanos, eso mejora la guía para todos.