¿Qué es RAG? Una introducción completa a la generación aumentada por recuperación

¿Qué es RAG? Una introducción completa a la generación aumentada por recuperación

Explora la evolución y los avances de los sistemas de Generación Aumentada por Recuperación (RAG). Aprende cómo RAG mejora los Modelos de Lenguaje de Gran Escala (LLM) con conocimiento externo.

Introducción

La Generación Aumentada por Recuperación (RAG) surge como una solución prometedora para abordar los desafíos inherentes al trabajar con Modelos de Lenguaje de Gran Escala (LLM), incluyendo brechas de conocimiento del dominio, problemas de factualidad y alucinación. Al integrar fuentes de conocimiento externas como bases de datos, RAG mejora los LLM, haciéndolos particularmente valiosos en entornos ricos en conocimiento o aplicaciones específicas de dominio que requieren conocimiento actualizado. A diferencia de otros métodos, RAG no requiere reentrenar los LLM para tareas específicas, lo cual es una ventaja significativa. Su reciente popularidad, especialmente en agentes conversacionales, subraya su relevancia.

Una encuesta reciente de Gao et al. (2023) proporciona información valiosa sobre los hallazgos clave, las implicaciones prácticas y los enfoques de vanguardia de RAG. La encuesta profundiza en varios componentes de los sistemas RAG, incluyendo técnicas de recuperación, generación y aumentación, examinando sus metodologías de evaluación, aplicaciones y tecnologías asociadas.

¿Qué es RAG?

La Generación Aumentada por Recuperación (RAG) mejora el rendimiento de los modelos de lenguaje de gran escala al incorporar referencias de bases de conocimiento externas autorizadas, complementando los extensos datos de entrenamiento del modelo. Los Modelos de Lenguaje de Gran Escala (LLM) aprovechan grandes conjuntos de datos y miles de millones de parámetros para generar respuestas para tareas como respuesta a preguntas, traducción de lenguaje y finalización de texto. RAG expande las capacidades de los LLM adaptándolos a dominios específicos o bases de conocimiento organizacionales internas, todo sin necesidad de reentrenar el modelo. Este enfoque ofrece un medio rentable para mejorar la salida del LLM y garantizar su relevancia, precisión y utilidad en diversos contextos.

Componentes Clave de RAG

Podemos desglosar el proceso en los siguientes pasos/componentes:

  1. Entrada: Se refiere a la pregunta planteada al sistema LLM. Sin RAG, el LLM responde directamente a esta pregunta.
  2. Indexación: Cuando se emplea RAG, un conjunto de documentos relacionados se somete a indexación. Esto implica dividir los documentos en fragmentos, crear embeddings para estos fragmentos y luego indexarlos en un almacén de vectores. Durante la inferencia, la consulta se incrusta de manera similar.
  3. Recuperación: Los documentos relevantes se recuperan comparando la consulta con los vectores indexados, lo que resulta en una selección de “Documentos Relevantes”.
  4. Generación: Los documentos recuperados se fusionan con el prompt original para proporcionar contexto adicional. Este texto y prompt combinados se ingresan luego al modelo para generar una respuesta, lo que resulta en la salida final proporcionada al usuario.

En un ejemplo dado, confiar únicamente en el modelo sin RAG puede no responder adecuadamente debido a la falta de conocimiento actualizado. Por el contrario, utilizar RAG permite al sistema acceder a la información necesaria para responder la pregunta con precisión.

Paradigmas de RAG

En los últimos años, ha habido una evolución en los sistemas RAG, progresando desde RAG Ingenuo hasta RAG Avanzado y RAG Modular. Este avance ha tenido como objetivo superar desafíos específicos relacionados con el rendimiento, el costo y la eficiencia.

RAG Ingenuo

RAG Ingenuo opera a través del proceso convencional de indexación, recuperación y generación como se describió anteriormente. En esencia, utiliza la entrada del usuario para consultar documentos relevantes, que luego se amalgaman con un prompt y se proporcionan al modelo para generar una respuesta final. Si la aplicación implica interacciones de diálogo de múltiples turnos, el historial conversacional se puede integrar en el prompt.

Sin embargo, RAG Ingenuo tiene sus limitaciones, incluyendo problemas de baja precisión (que resultan en fragmentos recuperados desalineados) y baja exhaustividad (no recuperar todos los fragmentos relevantes). También existe el riesgo de que el LLM reciba información desactualizada, una preocupación principal que los sistemas RAG pretenden abordar inicialmente. Esto puede llevar a problemas de alucinación y a la generación de respuestas pobres e inexactas.

Además, cuando se implementa la aumentación, pueden surgir preocupaciones sobre redundancia y repetición. Manejar múltiples pasajes recuperados implica consideraciones de clasificación y conciliación de estilo y tono. Además, un desafío significativo radica en asegurar que la tarea de generación no dependa excesivamente de la información aumentada, lo que podría hacer que el modelo se limite a reiterar el contenido recuperado.

RAG Avanzado

RAG Avanzado ofrece soluciones a las deficiencias observadas en RAG Ingenuo, particularmente mejorando la calidad de la recuperación. Esta mejora abarca la optimización en los procesos de pre-recuperación, recuperación y post-recuperación.

La fase de pre-recuperación implica refinar la indexación de datos a través de cinco etapas clave: mejorar la granularidad de los datos, optimizar las estructuras de índice, agregar metadatos, optimización de alineación y recuperación mixta. Estas medidas apuntan a elevar la calidad de los datos indexados.

Se pueden lograr mejoras adicionales en la etapa de recuperación optimizando el propio modelo de embeddings. Esta optimización influye directamente en la calidad de los fragmentos de contexto. Las estrategias pueden incluir ajuste fino de embeddings para mejorar la relevancia de la recuperación o emplear embeddings dinámicos que capturan mejor los matices contextuales (por ejemplo, el modelo embeddings-ada-02 de OpenAI).

La optimización post-recuperación se centra en eludir las limitaciones de la ventana de contexto y manejar información ruidosa o distractora. La reordenación es un enfoque común para abordar estos desafíos, involucrando técnicas como reubicar el contexto relevante en los bordes del prompt o recalcular la similitud semántica entre la consulta y los fragmentos de texto relevantes. Las técnicas de compresión de prompts también pueden ayudar a manejar estos problemas.

RAG Modular

RAG Modular, como su nombre indica, mejora los módulos funcionales dentro del marco de generación aumentada por recuperación. Implica integrar módulos como un módulo de búsqueda para recuperación por similitud y aplicar ajuste fino en el recuperador. Tanto RAG Ingenuo como RAG Avanzado pueden ser vistos como instancias específicas de RAG Modular, que comprenden módulos fijos. Sin embargo, RAG Extendido introduce módulos adicionales como búsqueda, memoria, fusión, enrutamiento, predicción y adaptador de tareas, cada uno abordando desafíos distintos. Estos módulos pueden reconfigurarse para adaptarse a contextos de tareas específicas, ofreciendo a RAG Modular mayor diversidad y flexibilidad. Esta flexibilidad permite agregar, reemplazar o ajustar módulos según los requisitos de la tarea.

Con la mayor flexibilidad en la construcción de sistemas RAG, se han propuesto diversas técnicas de optimización para refinar los pipelines de RAG:

  1. Exploración de Búsqueda Híbrida: Este enfoque combina técnicas de búsqueda como búsqueda basada en palabras clave y búsqueda semántica para recuperar información relevante y rica en contexto, particularmente beneficioso para abordar diversos tipos de consultas y necesidades de información.

  2. Recuperación Recursiva y Motor de Consultas: Esto implica un proceso de recuperación recursivo que comienza con pequeños fragmentos semánticos y recupera progresivamente fragmentos más grandes para enriquecer el contexto, logrando un equilibrio entre eficiencia y riqueza de contexto.

  3. StepBack-prompt: Esta técnica de prompting permite a los LLM abstraer conceptos y principios, guiando el razonamiento hacia respuestas más fundamentadas. Adoptar esta técnica dentro de un marco RAG permite a los LLM ir más allá de instancias específicas y razonar de manera más amplia cuando sea necesario.

  4. Subconsultas: Se pueden emplear diferentes estrategias de consulta, como consultas en árbol o consultas secuenciales de fragmentos, para diversos escenarios. Por ejemplo, LlamaIndex ofrece un motor de consultas de subpreguntas, desglosando una consulta en múltiples preguntas que utilizan diferentes fuentes de datos relevantes.

  5. Embeddings de Documentos Hipotéticos (HyDE): HyDE genera una respuesta hipotética a una consulta, la incrusta y la aprovecha para recuperar documentos similares a la respuesta hipotética en lugar de usar la consulta directamente.

Marco de RAG

Esta sección proporciona un resumen de los avances significativos en los componentes que conforman un sistema RAG: Recuperación, Generación y Aumentación.

Recuperación

La recuperación dentro de un sistema RAG implica recuperar contexto altamente relevante de un recuperador, que puede mejorarse mediante diversos medios:

Mejora de Representaciones Semánticas: Mejorar las estrategias de fragmentación es crucial para seleccionar la estrategia de fragmentación más adecuada según el contenido y los requisitos de la aplicación. Diferentes modelos pueden sobresalir con diferentes tamaños de bloque, como sentence transformers para oraciones individuales y text-embedding-ada-002 para bloques que contienen 256 o 512 tokens. Es común experimentar con diferentes estrategias de fragmentación para optimizar la recuperación en un sistema RAG, considerando factores como la longitud de la pregunta del usuario, la aplicación y los límites de tokens.

Puede ser necesario ajustar modelos de embeddings para dominios especializados para asegurar que las consultas de los usuarios se comprendan con precisión. Modelos de embeddings como BGE-large-EN desarrollado por BAAI pueden ser ajustados para conocimiento del dominio o tareas específicas posteriores para optimizar la relevancia de la recuperación.

Alineación de Consultas y Documentos: Las técnicas de reescritura de consultas, como Query2Doc, ITER-RETGEN y HyDE, se centran en refinar consultas que carecen de información semántica o contienen frases imprecisas.

La transformación de embeddings optimiza los embeddings de consultas para alinearlos con un espacio latente más relacionado con la tarea en cuestión.

Alineación del Recuperador y el LLM: El ajuste fino de recuperadores utiliza señales de retroalimentación de los LLM para refinar los modelos de recuperación. Ejemplos incluyen el recuperador adaptado a aumentación (AAR), REPLUG y UPRISE.

La incorporación de adaptadores externos, como PRCA, RECOMP y PKG, ayuda en el proceso de alineación entre recuperadores y LLM.

Generación

El generador dentro de un sistema RAG juega un papel fundamental en transformar la información recuperada en texto coherente, formando en última instancia la salida final del modelo. Este proceso a menudo implica datos de entrada diversos, lo que requiere esfuerzos para refinar la adaptación del modelo de lenguaje a la entrada derivada de consultas y documentos. Estos refinamientos se pueden lograr a través de procesos post-recuperación y ajuste fino:

Post-recuperación con LLM Congelado: Este enfoque se centra en mejorar la calidad de los resultados de recuperación sin modificar el LLM mismo. Se utilizan operaciones como compresión de información y reordenación de resultados. La compresión de información ayuda a reducir el ruido, abordar las restricciones de longitud de contexto y mejorar los efectos de generación, mientras que la reordenación reordena los documentos para priorizar los elementos más relevantes en la parte superior.

Ajuste fino del LLM para RAG: Una optimización adicional o ajuste fino del generador asegura que el texto generado sea tanto natural como que aproveche efectivamente los documentos recuperados, mejorando así el rendimiento general del sistema RAG.

Aumentación

La aumentación abarca el proceso de integrar sin problemas el contexto de los pasajes recuperados con la tarea de generación en curso. Antes de profundizar en el proceso de aumentación, incluyendo sus etapas y datos, establezcamos primero una taxonomía de los componentes centrales de RAG.

La aumentación de recuperación se puede aplicar en varias etapas, incluyendo pre-entrenamiento, ajuste fino e inferencia.

Etapas de Aumentación: Por ejemplo, RETRO ejemplifica un sistema que emplea aumentación de recuperación para pre-entrenamiento a gran escala desde cero mediante la incorporación de un codificador adicional basado en conocimiento externo. El ajuste fino también se puede integrar con RAG para mejorar y refinar los sistemas RAG. Durante la etapa de inferencia, se emplean numerosas técnicas para integrar efectivamente el contenido recuperado para cumplir con requisitos de tareas específicas y refinar aún más el proceso RAG.

Fuente de Aumentación: La efectividad de un modelo RAG depende en gran medida de la selección de fuentes de datos de aumentación. Estas fuentes se pueden clasificar en datos no estructurados, estructurados y generados por LLM.

Proceso de Aumentación: Para abordar problemas complejos como el razonamiento de múltiples pasos, se han propuesto varios métodos:

  1. Recuperación iterativa: implica realizar múltiples ciclos de recuperación para enriquecer la profundidad y relevancia de la información. Enfoques notables que aprovechan este método incluyen RETRO y GAR-meets-RAG.
  2. Recuperación recursiva: construye iterativamente sobre la salida de un paso de recuperación como entrada para otro, permitiendo una exploración más profunda de información relevante para consultas complejas (por ejemplo, investigación académica y análisis de casos legales). Enfoques notables incluyen IRCoT y Tree of Clarifications.
  3. Recuperación adaptativa: personaliza el proceso de recuperación a demandas específicas identificando momentos y contenido óptimos para la recuperación. Enfoques notables que aprovechan este método incluyen FLARE y Self-RAG.

La figura a continuación proporciona una representación integral de la investigación en RAG, ilustrando varios aspectos de aumentación, incluyendo etapas, fuentes y procesos.

Evaluación de RAG

Evaluar el rendimiento de los modelos RAG en diversos escenarios de aplicación es crucial para comprender y optimizar su efectividad. Tradicionalmente, la evaluación de los sistemas RAG se ha centrado en medir su rendimiento en tareas posteriores utilizando métricas específicas de la tarea como F1 y EM. RaLLe se destaca como un marco notable utilizado para evaluar modelos de lenguaje de gran escala aumentados por recuperación en tareas intensivas en conocimiento.

Los objetivos de evaluación en RAG abarcan tanto la recuperación como la generación, con el objetivo de evaluar la calidad tanto del contexto recuperado como del contenido generado. Las métricas comúnmente empleadas para evaluar la calidad de la recuperación provienen de dominios como sistemas de recomendación y recuperación de información, incluyendo NDCG y Hit Rate. Mientras tanto, evaluar la calidad de la generación implica evaluar aspectos como relevancia y nocividad para contenido no etiquetado o precisión para contenido etiquetado. Los métodos de evaluación de RAG pueden abarcar enfoques tanto manuales como automáticos.

La evaluación de un marco RAG típicamente se centra en tres puntuaciones de calidad primarias y cuatro habilidades. Las puntuaciones de calidad abarcan medir la relevancia del contexto (precisión y especificidad del contexto recuperado), fidelidad de la respuesta (fidelidad de las respuestas al contexto recuperado) y relevancia de la respuesta (relevancia de las respuestas a las preguntas planteadas). Además, cuatro habilidades ayudan a medir la adaptabilidad y eficiencia de un sistema RAG: robustez al ruido, rechazo negativo, integración de información y robustez contrafactual. A continuación se muestra un resumen de las métricas utilizadas para evaluar diferentes facetas de un sistema RAG:

Se emplean varios benchmarks, como RGB y RECALL, para evaluar modelos RAG. Se han creado herramientas como RAGAS, ARES y TruLens para automatizar el proceso de evaluación de sistemas RAG. Algunos de estos sistemas utilizan LLM para determinar ciertas puntuaciones de calidad como se definieron anteriormente.

Desafíos y Futuro de RAG

En esta visión general, hemos explorado varios aspectos de investigación de RAG y diferentes estrategias para mejorar sus componentes de recuperación, aumentación y generación. Aquí hay varios desafíos destacados por Gao et al., 2023, a medida que continuamos desarrollando y mejorando los sistemas RAG:

  1. Longitud del Contexto: Con los LLM expandiendo continuamente el tamaño de la ventana de contexto, adaptar RAG para asegurar la captura de contexto altamente relevante y crucial plantea desafíos.
  2. Robustez: Abordar la información contrafactual y adversarial es crucial para medir y mejorar la robustez de los sistemas RAG.
  3. Enfoques Híbridos: La investigación en curso tiene como objetivo comprender mejor cómo optimizar el uso tanto de RAG como de modelos ajustados.
  4. Expansión de Roles de LLM: Hay un creciente interés en aumentar el papel y las capacidades de los LLM para mejorar aún más los sistemas RAG.
  5. Leyes de Escalado: Investigar las leyes de escalado de LLM y su aplicación a sistemas RAG sigue siendo un área que necesita mayor comprensión.
  6. RAG Listo para Producción: Desarrollar sistemas RAG de grado de producción requiere excelencia en ingeniería en varios dominios, incluyendo rendimiento, eficiencia, seguridad de datos y privacidad.
  7. RAG Multimodal: Si bien la investigación en RAG se ha centrado principalmente en tareas basadas en texto, hay un creciente interés en extender las modalidades para soportar una gama más amplia de dominios como imagen, audio, video y código.
  8. Evaluación: Construir aplicaciones complejas con RAG requiere métricas y herramientas de evaluación matizadas para evaluar relevancia contextual, creatividad, diversidad de contenido, factualidad y más. Además, hay una necesidad de mejorar la investigación y herramientas de interpretabilidad para RAG.

Cómo integrar RAG con Modelos de Lenguaje de Gran Escala

Implementar la Generación Aumentada por Recuperación (RAG) con modelos de lenguaje de gran escala (LLM) implica varios pasos, incluyendo la preparación del conjunto de datos y la integración en la configuración del LLM. Este proceso permite al LLM aprovechar las técnicas de recuperación y generar respuestas más precisas y contextualmente relevantes.

Consulta cómo integrar tu LLM con la técnica RAG en nuestro blog: Tutorial paso a paso sobre la integración de la Generación Aumentada por Recuperación (RAG) con Modelos de Lenguaje de Gran Escala

Fuente: novita.ai

Conclusión

En resumen, la evolución de los sistemas RAG ha sido rápida, marcada por la aparición de paradigmas avanzados que ofrecen personalización y mejoran el rendimiento y la utilidad en diversos dominios. La creciente demanda de aplicaciones RAG ha impulsado el desarrollo de métodos para mejorar sus diferentes componentes. Desde metodologías híbridas hasta auto-recuperación, se está explorando una amplia gama de áreas de investigación en los modelos RAG modernos.

novita.ai, la plataforma integral para la creatividad ilimitada que te brinda acceso a más de 100 APIs. Desde generación de imágenes y procesamiento de lenguaje hasta mejora de audio y manipulación de video,con pago por uso económico, te libera de las molestias del mantenimiento de GPU mientras construyes tus propios productos. Pruébalo gratis.

Lectura recomendada

¿Cuál es la diferencia entre LLM y GPT?

Predicciones Reveladas del Leaderboard de LLM 2024

Motor de Inferencia LLM de Novita AI: el mayor rendimiento y la inferencia más barata disponible