La evaluación de las aplicaciones LLM, particularmente aquellas que utilizan RAG (Recuperación-Generación Aumentada), es crucial pero a menudo se descuida. Sin una evaluación adecuada, es casi imposible confirmar si el recuperador de su sistema es efectivo, si las respuestas del LLM se basan en las fuentes (o son alucinantes) y si el tamaño del contexto es óptimo.
Dado que las pruebas iniciales carecen de los datos de usuario reales necesarios para una línea de base, una solución práctica son los conjuntos de datos de evaluación sintéticos. Este artículo le mostrará cómo generar estos casos de prueba realistas utilizando DeepEval, un marco de código abierto que simplifica la evaluación de LLM, lo que le permite comparar su canal RAG antes de que entre en funcionamiento. Consulta los CÓDIGOS COMPLETOS aquí.
Instalando las dependencias
Clave API de OpenAI
Dado que DeepEval aprovecha modelos de lenguaje externos para realizar sus métricas de evaluación detalladas, se requiere una clave API de OpenAI para ejecutar este tutorial.
Si es nuevo en la plataforma OpenAI, es posible que deba agregar detalles de facturación y realizar un pequeño pago mínimo (normalmente $5) para activar completamente su acceso a la API.
Definiendo el texto
En este paso, estamos creando manualmente una variable de texto que actuará como nuestro documento fuente para generar datos de evaluación sintéticos.
Este texto combina contenido fáctico diverso en múltiples dominios, incluidos biología, física, historia, exploración espacial, ciencias ambientales, medicina, informática y civilizaciones antiguas, para garantizar que el LLM tenga material rico y variado con el que trabajar.
El sintetizador de DeepEval más tarde:
Divida este texto en fragmentos semánticamente coherentes, seleccione contextos significativos adecuados para generar preguntas y produzca pares “dorados” sintéticos (entrada, salida_esperada) que simulen consultas de usuarios reales y respuestas ideales de LLM.
Después de definir la variable de texto, la guardamos como un archivo .txt para que DeepEval pueda leerla y procesarla más tarde. Puede utilizar cualquier otro documento de texto de su elección, como un artículo de Wikipedia, un resumen de una investigación o una publicación de blog técnico, siempre que contenga contenido informativo y bien estructurado. Consulta los CÓDIGOS COMPLETOS aquí.
Generación de datos de evaluación sintéticos
En este código, utilizamos la clase Synthesizer de la biblioteca DeepEval para generar automáticamente datos de evaluación sintéticos, también llamados goldens, a partir de un documento existente. El modelo “gpt-4.1-nano” se selecciona por su naturaleza liviana. Proporcionamos la ruta a nuestro documento (ejemplo.txt), que contiene contenido factual y descriptivo sobre diversos temas como física, ecología e informática. El sintetizador procesa este texto para crear pares de preguntas y respuestas significativos (dorados) que luego pueden usarse para probar y comparar el desempeño de LLM en tareas de comprensión o recuperación.
El guión genera con éxito hasta seis goldens sintéticos. Los ejemplos generados son bastante ricos; por ejemplo, una entrada pide “Evaluar las capacidades cognitivas de los córvidos en tareas de reconocimiento facial”, mientras que otra explora “La contribución de oxígeno del Amazonas y su papel en los ecosistemas”. Cada resultado incluye una respuesta esperada coherente y fragmentos contextuales derivados directamente del documento, lo que demuestra cómo DeepEval puede producir automáticamente conjuntos de datos sintéticos de alta calidad para la evaluación de LLM. Consulta los CÓDIGOS COMPLETOS aquí.
Uso de EvolutionConfig para controlar la complejidad de la entrada
En este paso, configuramos EvolutionConfig para influir en cómo el sintetizador DeepEval genera entradas más complejas y diversas. Al asignar ponderaciones a diferentes tipos de evolución, como RAZONAMIENTO, MULTICONTEXTO, COMPARATIVO, HIPOTÉTICO e IN_BREADTH, guiamos el modelo para crear preguntas que varían en estilo de razonamiento, uso del contexto y profundidad.
El parámetro num_evolutions especifica cuántas estrategias de evolución se aplicarán a cada fragmento de texto, lo que permitirá sintetizar múltiples perspectivas a partir del mismo material fuente. Este enfoque ayuda a generar conjuntos de datos de evaluación más completos que ponen a prueba la capacidad de un LLM para manejar consultas matizadas y multifacéticas.
El resultado demuestra cómo esta configuración afecta a los goldens generados. Por ejemplo, una entrada pregunta sobre el uso de herramientas y el reconocimiento facial de los cuervos, lo que llevó al LLM a producir una respuesta detallada que cubra la resolución de problemas y el comportamiento adaptativo. Otra aportación compara el disco de oro de la Voyager 1 con la Biblioteca de Alejandría, lo que requiere un razonamiento en múltiples contextos y significados históricos.
Cada oro incluye el contexto original, tipos de evolución aplicados (p. ej., hipotético, en amplitud, razonamiento) y una puntuación de calidad sintética. Incluso con un solo documento, este enfoque basado en la evolución crea ejemplos de evaluación sintética diversos y de alta calidad para probar el desempeño del LLM. Consulta los CÓDIGOS COMPLETOS aquí.
Esta capacidad de generar datos sintéticos complejos y de alta calidad es la forma en que superamos el obstáculo inicial de la falta de interacciones reales con el usuario. Al aprovechar el sintetizador de DeepEval, especialmente cuando nos guiamos por EvolutionConfig, vamos mucho más allá de simples pares de preguntas y respuestas.
El marco nos permite crear casos de prueba rigurosos que exploran los límites del sistema RAG, cubriendo todo, desde comparaciones multicontexto y escenarios hipotéticos hasta razonamientos complejos.
Este rico conjunto de datos personalizado proporciona una base consistente y diversa para la evaluación comparativa, lo que le permite iterar continuamente en sus componentes de recuperación y generación, generar confianza en las capacidades de conexión a tierra de su canalización RAG y garantizar que brinde un rendimiento confiable mucho antes de que maneje su primera consulta en vivo. Consulta los CÓDIGOS COMPLETOS aquí.
El bucle de mejora iterativo de RAG anterior utiliza datos sintéticos de DeepEval para establecer un ciclo de prueba continuo y riguroso para su canalización. Al calcular métricas esenciales como la conexión a tierra y el contexto, obtiene la retroalimentación necesaria para refinar de forma iterativa los componentes de su recuperador y modelo. Este proceso sistemático garantiza que usted obtenga un sistema RAG verificado y de alta confianza que mantenga la confiabilidad antes de la implementación.
Consulta los CÓDIGOS COMPLETOS aquí. No dude en consultar nuestra página de GitHub para tutoriales, códigos y cuadernos. Además, no dude en seguirnos en Twitter y no olvide unirse a nuestro SubReddit de más de 100.000 ML y suscribirse a nuestro boletín. ¡Esperar! estas en telegrama? Ahora también puedes unirte a nosotros en Telegram.
Soy graduado en ingeniería civil (2022) de Jamia Millia Islamia, Nueva Delhi, y tengo un gran interés en la ciencia de datos, especialmente las redes neuronales y su aplicación en diversas áreas.
🙌 Siga MARKTECHPOST: agréguenos como fuente preferida en Google.