Cómo evaluar RAG si no tienes datos de referencia | de Jenn J. | septiembre de 2024

Cómo evaluar RAG si no tienes datos de referencia | de Jenn J. | septiembre de 2024

Cuando se trata de evaluar un sistema RAG sin datos reales, otro enfoque es crear su propio conjunto de datos. Suena desalentador, pero existen varias estrategias para facilitar este proceso, desde encontrar conjuntos de datos similares hasta aprovechar la retroalimentación humana e incluso la generación de datos sintéticos. Veamos cómo puedes hacerlo.

Encuentre conjuntos de datos similares en línea

Esto puede parecer obvio, y la mayoría de las personas que han llegado a la conclusión de que no tienen un conjunto de datos de referencia ya han agotado esta opción. Pero aún así vale la pena mencionar que puede haber conjuntos de datos similares a los que necesita. Es posible que estén en un dominio empresarial diferente al de su caso de uso, pero es posible que estén en el formato de preguntas y respuestas con el que está trabajando. Sitios como Kaggle ofrecen una amplia variedad de conjuntos de datos públicos y es posible que se sorprenda de saber cuántos de ellos coinciden con su espacio problemático.

Ejemplo:

Crear manualmente datos reales sobre el terreno

Si no puede encontrar exactamente lo que necesita en línea, siempre puede crear datos reales manualmente. Aquí es donde resulta útil la opinión de los expertos en el dominio. ¿Recuerda los comentarios de expertos en dominios de los que hablamos antes? Puede utilizar estos comentarios para crear su propio miniconjunto de datos.

Al seleccionar una colección de ejemplos revisados ​​por humanos, donde los resultados han sido validados en cuanto a relevancia, precisión e integridad, crea una base para ampliar su conjunto de datos con fines de evaluación.

También hay un excelente artículo de Katherine Munro sobre un enfoque experimental para el desarrollo ágil de chatbots.

Formación LLM para convertirse en juez

Una vez que tenga su conjunto mínimo de datos reales, puede ir más allá capacitando a un LLM para que actúe como juez y evalúe los resultados de su modelo.

Pero antes de recurrir a un LLM para que actúe como juez, primero debemos asegurarnos de que evalúe los resultados de nuestro modelo con precisión, o al menos de manera confiable. Así es como puedes hacerlo:

  1. Cree ejemplos revisados ​​por humanos: Dependiendo de su caso de uso, de 20 a 30 ejemplos deberían ser suficientes para tener una buena idea de qué tan confiable es el LLM en comparación. Consulte la sección anterior sobre los mejores criterios de evaluación y cómo medir calificaciones contradictorias.
  2. Crea tu juez LLM: Pídale a un LLM que le dé calificaciones según los mismos criterios que transmite a sus expertos en la materia. Tome la calificación y compare cómo las calificaciones de LLM se alinean con las calificaciones humanas. Nuevamente, puede utilizar métricas como las de Pearson para ayudarlo a evaluar. Una puntuación de correlación alta indicará que el LLM se desempeña tan bien como un juez.
  3. Aplicar mejores prácticas de ingeniería rápida: La ingeniería rápida puede hacer o deshacer este proceso. Técnicas como calentar el LLM con contexto o proporcionar algunos ejemplos (aprendizaje de pocas tomas) pueden mejorar significativamente la precisión de los modelos durante la evaluación.

Otra forma de mejorar la calidad y cantidad de sus conjuntos de datos reales es segmentar sus documentos en temas o grupos semánticos. En lugar de examinar documentos completos en su conjunto, divídalos en segmentos más pequeños y centrados.

Por ejemplo, digamos que tiene un documento (documentId: 123) que menciona:

«Después del lanzamiento del producto ABC, la empresa XYZ registró un aumento del 10 % en los ingresos en el primer trimestre de 2024».

Esta oración contiene dos datos distintos:

  1. Lanzamiento del producto ABC
  2. Un aumento del 10% en la facturación en el primer trimestre de 2024

Ahora puede enriquecer cada tema con su propia consulta y contexto. Por ejemplo :

  • Consulta 1: «¿Qué producto lanzó la empresa XYZ?» »
  • Contexto 1: “Lanzamiento del producto ABC”
  • Consulta 2: “¿Cuál fue la evolución de la facturación en el primer trimestre de 2024? »
  • Contexto 2: «La empresa XYZ informó un aumento del 10% en los ingresos en el primer trimestre de 2024»

Al dividir los datos en temas específicos como este, no solo crea más puntos de datos para la capacitación, sino que también hace que su conjunto de datos sea más preciso y enfocado. Además, si desea rastrear cada consulta hasta el documento original para mayor confiabilidad, puede agregar fácilmente metadatos a cada segmento de contexto. Por ejemplo :

  • Consulta 1: «¿Qué producto lanzó la empresa XYZ?» »
  • Contexto 1: “Lanzamiento del producto ABC (ID del documento: 123)”
  • Consulta 2: “¿Cuál fue la evolución de la facturación en el primer trimestre de 2024? »
  • Contexto 2: «La empresa XYZ informó un aumento del 10% en los ingresos en el primer trimestre de 2024 (documentId: 123)»

De esta manera, cada segmento está vinculado a su fuente, lo que hace que su conjunto de datos sea aún más útil para la evaluación y la capacitación.

Si todo lo demás falla o necesita más datos de los que puede recopilar manualmente, generar datos sintéticos puede cambiar las reglas del juego. Utilizando técnicas como el aumento de datos o incluso modelos GPT, puede crear nuevos puntos de datos basados ​​en sus ejemplos existentes. Por ejemplo, puede tomar un conjunto básico de consultas y contextos y modificarlos ligeramente para crear variaciones.

Por ejemplo, comenzando con la consulta:

  • «¿Qué producto lanzó la empresa XYZ?» »

Podrías generar sintéticamente variaciones como:

  • “¿Qué producto lanzó la empresa XYZ? »
  • “¿Cómo se llamaba el producto lanzado por la empresa XYZ? »

Esto puede ayudarle a crear un conjunto de datos mucho más grande sin tener que escribir manualmente nuevos ejemplos desde cero.

También existen marcos que pueden automatizar el proceso de generación de datos sintéticos que exploraremos en la última sección.

Ahora que ha recopilado o creado su conjunto de datos, es hora de pasar a la fase de evaluación. El modelo RAG involucra dos áreas clave: recuperación y generación. Ambos elementos son importantes y comprender cómo evaluar cada uno de ellos le ayudará a perfeccionar su modelo para satisfacer mejor sus necesidades.

Evaluación de recuperación: ¿Qué tan relevantes son los datos recuperados?

El paso de recuperación en RAG es crucial: si su modelo no logra extraer la información correcta, tendrá dificultades para generar respuestas precisas. Aquí hay dos métricas clave en las que deberá centrarse:

  • Relevancia del contexto: Esto le permite medir qué tan bien el contexto recuperado coincide con la consulta. En esencia, estás preguntando: ¿Es esta información realmente relevante para la pregunta formulada? Puede utilizar su conjunto de datos para calcular puntuaciones de relevancia, ya sea mediante juicio humano o comparando medidas de similitud (como la similitud de cosenos) entre la consulta y el documento recuperado.
  • Recordatorio del contexto: El recuerdo contextual se centra en la cantidad de información relevante recuperada. Es posible que se haya recuperado el documento correcto, pero solo se haya incluido parte de la información necesaria. Para evaluar la recuperación, debe verificar si el contexto extraído por su modelo contiene toda la información clave para responder completamente la consulta. Idealmente, desea un alto nivel de recuperación: su recuperación debe recuperar la información que necesita y no debe omitirse nada esencial.

Evaluación de la producción: ¿Es la respuesta precisa y útil?

Una vez recuperada la información correcta, el siguiente paso es generar una respuesta que no sólo responda a la consulta, sino que lo haga de forma fiel y clara. Aquí dos aspectos esenciales a evaluar:

  • Lealtad: Esto ayuda a determinar si la respuesta generada refleja con precisión el contexto recuperado. Básicamente, desea evitar las alucinaciones, que es cuando el modelo inventa información que no estaba en los datos recuperados. Fidelidad significa garantizar que la respuesta se base en los hechos presentados por los documentos recuperados por su modelo.
  • Relevancia de la respuesta: Esto se refiere a qué tan bien coincide la respuesta generada con la consulta. Incluso si la información es fiel al contexto recuperado, debe ser relevante para la pregunta formulada. No desea que su modelo extraiga información correcta que no responda del todo a la pregunta del usuario.

Realizar una valoración ponderada

Una vez que haya evaluado tanto la recuperación como la generación, puede dar un paso más combinando estas evaluaciones de forma ponderada. Tal vez le importe más la relevancia que el recuerdo, o tal vez la lealtad sea su principal prioridad. Puede asignar diferentes pesos a cada métrica según su caso de uso específico.

Por ejemplo:

  • Recuperación: 60% de relevancia del contexto + 40% de recuerdo del contexto
  • Generación: 70% lealtad + 30% relevancia de las respuestas

Este tipo de calificación ponderada le brinda la posibilidad de priorizar los elementos más importantes para su aplicación. Si su modelo necesita ser 100% preciso (como en contextos legales o médicos), puede darle más importancia a la fidelidad. Por otro lado, si la integridad es más importante, puedes centrarte en recordar.

Si crear su propio sistema de revisión parece difícil, no se preocupe: existen excelentes marcos de trabajo que ya han hecho gran parte del trabajo por usted. Estos marcos tienen métricas integradas diseñadas específicamente para evaluar los sistemas RAG, lo que facilita la evaluación del rendimiento de recuperación y generación. Veamos algunos de los más útiles.

RAGAS es un marco diseñado específicamente para evaluar el desempeño de los modelos RAG. Incluye métricas que evalúan tanto la recuperación como la generación, proporcionando una forma integral de medir el rendimiento de su sistema en cada etapa. También ofrece generación de datos de prueba sintéticos utilizando un paradigma de generación escalable.

Inspirado en obras como Evol-InstruirRagas logra esto utilizando un paradigma de generación evolutiva, donde se formulan preguntas con diferentes características como razonamiento, condicionamiento, multicontexto, etc. se desarrollan sistemáticamente a partir del conjunto de documentos aportados. — Documentación RAGAS

ARES es otra herramienta poderosa que combina la generación de datos sintéticos con la evaluación basada en LLM. ARES utiliza datos sintéticos (datos generados por modelos de IA en lugar de recopilados a partir de interacciones reales) para crear un conjunto de datos que puede usarse para probar y perfeccionar su sistema RAG.

El marco también incluye un juez LLM que, como vimos anteriormente, puede ayudar a evaluar los resultados del modelo comparándolos con anotaciones humanas u otros datos de referencia.

Incluso sin datos reales, estas estrategias pueden ayudarle a evaluar eficazmente un sistema RAG. Ya sea que utilice umbrales de similitud de vectores, múltiples LLM, el LLM como juez, medidas de recuperación o marcos, cada enfoque le permite medir el rendimiento y mejorar los resultados de su modelo. La clave es encontrar lo que funcione mejor para sus necesidades específicas y no tener miedo de modificar cosas a lo largo del camino. 🙂