Cómo evaluar RAG si no se dispone de datos de verdad de campo | por 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 generar datos de manera sintética. Analicemos cómo puede hacerlo.

Cómo encontrar conjuntos de datos similares en línea

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 verdad fundamental ya han agotado esta opción. Pero vale la pena mencionar que puede haber conjuntos de datos similares a lo que necesitas. Quizás se trate de un dominio empresarial diferente al de tu caso de uso, pero está en el formato de pregunta-respuesta con el que estás trabajando. Sitios como Kaggle tienen una gran variedad de conjuntos de datos públicos, y es posible que te sorprendas de cuántos se alinean con tu espacio de problemas.

Ejemplo:

Creación manual de datos de verdad fundamental

Si no puede encontrar exactamente lo que necesita en línea, siempre puede crear datos reales manualmente. Aquí es donde la retroalimentación de las personas que participan en el proceso resulta útil. ¿Recuerda la retroalimentación de los expertos del dominio de la que hablamos antes? Puede usar esa retroalimentación para crear su propio miniconjunto de datos.

Al seleccionar una colección de ejemplos revisados ​​por humanos (donde se ha validado la relevancia, la exactitud y la integridad de los resultados), usted crea una base para ampliar su conjunto de datos para su evaluación.

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

Formación de un LLM como juez

Una vez que tenga su conjunto de datos de verdad fundamental mínimo, puede llevar las cosas un paso más allá entrenando un LLM para que actúe como juez y evalúe los resultados de su modelo.

Pero antes de confiar en un LLM para que actúe como juez, primero debemos asegurarnos de que esté evaluando los resultados de nuestro modelo de manera precisa, o al menos confiable. A continuación, le indicamos cómo puede abordarlo:

  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 cuán confiable es el LLM en comparación. Consulte la sección anterior sobre los mejores criterios para calificar y cómo medir las calificaciones conflictivas.
  2. Crea tu Juez LLM: Pídele a un LLM que dé calificaciones basadas en los mismos criterios que les diste a tus expertos en el área. Toma la calificación y compara cómo las calificaciones del LLM se alinean con las calificaciones humanas. Nuevamente, puedes usar métricas como las métricas de Pearson para ayudar a evaluar. Una puntuación de correlación alta indicará que el LLM está teniendo un desempeño tan bueno como el de un juez.
  3. Aplicar Mejores prácticas de ingeniería rápida:La ingeniería rápida puede hacer o deshacer este proceso. Las técnicas como precalentar el LLM con contexto o proporcionar algunos ejemplos (aprendizaje de pocos intentos) pueden mejorar drásticamente la precisión de los modelos al momento de evaluarlos.

Otra forma de aumentar la calidad y la cantidad de sus conjuntos de datos de verdad fundamental es segmentar sus documentos en temas o grupos semánticos. En lugar de analizar los documentos en su totalidad, divídalos en segmentos más pequeños y más específicos.

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

“Tras el lanzamiento del producto ABC, la empresa XYZ registró un aumento del 10 % en sus ingresos durante el primer trimestre de 2024”.

Esta frase contiene dos piezas de información distintas:

  1. Lanzamiento del producto ABC
  2. Un aumento del 10% en los ingresos para el primer trimestre de 2024

Ahora, puedes ampliar 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 el cambio en los ingresos para el primer trimestre de 2024?”
  • Contexto 2: “La empresa XYZ registró un aumento del 10 % en sus 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 el entrenamiento, sino que también hace que su conjunto de datos sea más preciso y específico. 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 (documentId: 123)”
  • Consulta 2: “¿Cuál fue el cambio en los ingresos para el primer trimestre de 2024?”
  • Contexto 2: “La empresa XYZ registró un aumento del 10 % en sus 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 el entrenamiento.

Si todo lo demás falla o si necesita más datos de los que puede recopilar manualmente, la generación de datos sintéticos puede ser un punto de inflexión. Mediante técnicas como la ampliación 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 fue introducido por 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 la sobrecarga manual de escribir nuevos ejemplos desde cero.

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

Ahora que ha recopilado o creado su conjunto de datos, es hora de sumergirse en la fase de evaluación. El modelo RAG involucra dos áreas clave: recuperación y generación. Ambas son importantes y comprender cómo evaluar cada una lo ayudará a ajustar su modelo para satisfacer mejor sus necesidades.

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

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

  • Relevancia del contexto: Esto mide qué tan bien se alinea el contexto recuperado con la consulta. Básicamente, estás preguntando: ¿Es esta información realmente relevante a la pregunta planteada? Puede utilizar su conjunto de datos para calcular puntuaciones de relevancia, ya sea mediante el juicio humano o comparando métricas de similitud (como la similitud del coseno) entre la consulta y el documento recuperado.
  • Recordatorio del contexto: La recuperación del contexto se centra en la cantidad de información relevante que se recuperó. Es posible que se haya extraído el documento correcto, pero que solo se haya incluido una parte de la información necesaria. Para evaluar la recuperación, debe comprobar si el contexto extraído por su modelo contiene todos los datos clave para responder por completo a la consulta. Lo ideal es que la recuperación tenga un alto nivel de recuperación: su recuperación debe captar la información que necesita y no debe dejar de lado nada crítico.

Evaluación de la generación: ¿La respuesta es precisa y útil?

Una vez que se ha obtenido 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. A continuación, se presentan dos aspectos críticos que se deben evaluar:

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

Realizar una evaluación ponderada

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

Por ejemplo:

  • Recuperación: 60% relevancia del contexto + 40% recuerdo del contexto
  • Generación: 70% fidelidad + 30% relevancia de la respuesta

Este tipo de evaluación ponderada le brinda flexibilidad para priorizar lo que más importa para su aplicación. Si su modelo debe ser 100 % exacto en cuanto a los hechos (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, puede centrarse en la recordación.

Si crear su propio sistema de evaluación le parece abrumador, no se preocupe: existen algunos marcos de trabajo excelentes que ya han hecho gran parte del trabajo pesado por usted. Estos marcos de trabajo vienen con métricas integradas diseñadas específicamente para evaluar 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 rendimiento de los modelos RAG. Incluye métricas que evalúan tanto la recuperación como la generación, lo que ofrece una forma integral de medir el rendimiento de su sistema en cada paso. También ofrece la generación de datos de prueba sintéticos mediante el empleo de un paradigma de generación evolutiva.

Inspirado en obras como Evolu-InstruccionesRagas logra esto empleando un paradigma de generación evolutiva, donde preguntas con diferentes características como razonamiento, condicionamiento, multicontexto y más se elaboran sistemáticamente a partir del conjunto de documentos proporcionado. — Documentación de 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 del mundo real) para crear un conjunto de datos que se puede utilizar para probar y refinar su sistema RAG.

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

Incluso sin datos de verdad de campo, estas estrategias pueden ayudarlo a evaluar de manera eficaz un sistema RAG. Ya sea que utilice umbrales de similitud de vectores, múltiples LLM, LLM como juez, métricas de recuperación o marcos, cada enfoque le brinda una forma de medir el rendimiento y mejorar los resultados de su modelo. La clave es encontrar lo que funciona mejor para sus necesidades específicas y no tener miedo de modificar las cosas sobre la marcha. 🙂