Modelos y plataformas de IA
Una inmersión profunda en la Generación con Recuperación de Información en LLM
Imagina que eres un Analista y tienes acceso a un Modelo de Lenguaje Grande. Estás emocionado por las posibilidades que te brinda en tu flujo de trabajo. Pero luego, le preguntas sobre los últimos precios de las acciones o la tasa de inflación actual, y te responde con:
“Lo siento, pero no puedo proporcionar datos en tiempo real o posteriores a mi fecha de entrenamiento. Mi última fecha de entrenamiento es enero de 2022”.
Los Modelos de Lenguaje Grande, a pesar de su poder lingüístico, carecen de la capacidad de comprender el “ahora“. Y en un mundo que se mueve rápidamente, el “ahora” es todo.
La investigación ha demostrado que los modelos de lenguaje preentrenados grandes (LLM) también son repositorios de conocimiento factual.
Se han entrenado con tanto datos que han absorbido una gran cantidad de hechos y cifras. Cuando se ajustan, pueden lograr resultados notables en una variedad de tareas de NLP.
Pero aquí está el problema: su capacidad para acceder y manipular este conocimiento almacenado no es siempre perfecta. Especialmente cuando la tarea en cuestión es intensiva en conocimiento, estos modelos pueden quedarse atrás de arquitecturas más especializadas. Es como tener una biblioteca con todos los libros del mundo, pero sin catálogo para encontrar lo que necesitas.
OpenAI’s ChatGPT obtiene una actualización de navegación
El anuncio reciente de OpenAI sobre la capacidad de navegación de ChatGPT es un gran avance en la dirección de la Generación con Recuperación de Información (RAG). Con ChatGPT ahora capaz de buscar en Internet para obtener información actual y autorizada, refleja el enfoque de RAG de extraer dinámicamente datos de fuentes externas para proporcionar respuestas enriquecidas.
https://twitter.com/OpenAI/status/1707077710047216095
Actualmente disponible para usuarios Plus y Empresariales, OpenAI planea implementar esta función para todos los usuarios pronto. Los usuarios pueden activarla seleccionando ‘Navegar con Bing’ en la opción GPT-4.
La ingeniería de prompts es efectiva pero insuficiente
Los prompts sirven como la puerta de entrada al conocimiento de los LLM. Guían al modelo, proporcionando una dirección para la respuesta. Sin embargo, crear un prompt efectivo no es la solución completa para obtener lo que deseas de un LLM. Aún así, veamos algunas buenas prácticas a considerar al escribir un prompt:
- Claridad: Un prompt bien definido elimina la ambigüedad. Debe ser directo, asegurando que el modelo comprenda la intención del usuario. Esta claridad a menudo se traduce en respuestas más coherentes y relevantes.
- Contexto: Especialmente para entradas extensas, la colocación de la instrucción puede influir en la salida. Por ejemplo, mover la instrucción al final de un prompt largo puede a menudo producir mejores resultados.
- Precisión en la instrucción: La fuerza de la pregunta, a menudo transmitida a través del marco “quién, qué, dónde, cuándo, por qué, cómo”, puede guiar al modelo hacia una respuesta más enfocada. Además, especificar el formato de salida deseado o el tamaño puede refinar aún más la salida del modelo.
- Manejo de la incertidumbre: Es esencial guiar al modelo sobre cómo responder cuando no está seguro. Por ejemplo, instruir al modelo a responder con “No lo sé” cuando esté incierto puede prevenir que genere respuestas inexactas o “alucinadas“.
- Pensamiento paso a paso: Para instrucciones complejas, guiar al modelo para que piense sistemáticamente o divida la tarea en subtareas puede conducir a salidas más completas y precisas.
En relación con la importancia de los prompts en la guía de ChatGPT, un artículo exhaustivo se puede encontrar en Unite.ai.
Desafíos en los Modelos de Generación de Inteligencia Artificial
La ingeniería de prompts implica ajustar las directivas dadas al modelo para mejorar su rendimiento. Es una forma muy rentable de aumentar la precisión de la aplicación de Inteligencia Artificial Generativa, requiriendo solo ajustes menores de código. Mientras que la ingeniería de prompts puede mejorar significativamente las salidas, es crucial comprender las limitaciones inherentes de los grandes modelos de lenguaje (LLM). Dos desafíos principales son las alucinaciones y los cortes de conocimiento.
- Alucinaciones: Esto se refiere a instancias en las que el modelo devuelve una respuesta confiada pero incorrecta o fabricada. Aunque los LLM avanzados tienen mecanismos incorporados para reconocer y evitar tales salidas.
- Cortes de conocimiento: Cada modelo LLM tiene una fecha de fin de entrenamiento, después de la cual no es consciente de eventos o desarrollos. Esta limitación significa que el conocimiento del modelo está congelado en el punto de su última fecha de entrenamiento. Por ejemplo, un modelo entrenado hasta 2022 no conocería los eventos de 2023.
La generación con recuperación de información (RAG) ofrece una solución a estos desafíos. Permite que los modelos accedan a información externa, mitigando problemas de alucinaciones al proporcionar acceso a datos propietarios o específicos de dominio. Para los cortes de conocimiento, RAG puede acceder a información actual más allá de la fecha de entrenamiento del modelo, asegurando que la salida esté actualizada.
También permite que el LLM extraiga datos de diversas fuentes externas en tiempo real. Esto podría ser bases de conocimiento, bases de datos o incluso la vasta extensión de Internet.
Introducción a la Generación con Recuperación de Información
La generación con recuperación de información (RAG) es un marco, más que una tecnología específica, que permite a los Modelos de Lenguaje Grande acceder a datos que no se entrenaron. Hay varias formas de implementar RAG, y la mejor opción depende de la tarea específica y la naturaleza de los datos.
El marco de RAG opera de manera estructurada:
Entrada de prompt
El proceso comienza con la entrada del usuario o prompt. Esto podría ser una pregunta o una afirmación que busca información específica.
Recuperación de fuentes externas
En lugar de generar una respuesta directamente basada en su entrenamiento, el modelo, con la ayuda de un componente de recuperación, busca a través de fuentes de datos externas. Estas fuentes pueden variar desde bases de conocimiento, bases de datos y almacenes de documentos hasta datos accesibles en Internet.
Comprensión de la recuperación
En esencia, la recuperación refleja una operación de búsqueda. Se trata de extraer la información más pertinente en respuesta a la entrada del usuario. Este proceso se puede dividir en dos etapas:
- Indexación: Sin duda, la parte más desafiante de todo el viaje de RAG es indexar la base de conocimiento. El proceso de indexación se puede dividir ampliamente en dos fases: Carga y División. En herramientas como LangChain, estos procesos se denominan “cargadores” y “divisores“. Los cargadores recuperan contenido de diversas fuentes, ya sean páginas web o PDF. Una vez recuperado, los divisores segmentan este contenido en fragmentos manejables, optimizándolos para incrustación y búsqueda.
- Consulta: Esta es la acción de extraer los fragmentos de conocimiento más relevantes basados en un término de búsqueda.
Mientras que hay muchas formas de abordar la recuperación, desde la coincidencia de texto simple hasta el uso de motores de búsqueda como Google (GOOGL ), los sistemas modernos de Generación con Recuperación de Información (RAG) dependen de la búsqueda semántica. En el corazón de la búsqueda semántica yace el concepto de incrustaciones.
Las incrustaciones son centrales para cómo los Modelos de Lenguaje Grande (LLM) comprenden el lenguaje. Cuando los humanos intentan articular cómo derivan significado de las palabras, la explicación a menudo se remonta a la comprensión inherente. Profundamente dentro de nuestras estructuras cognitivas, reconocemos que “niño” y “niña” son sinónimos, o que “rojo” y “verde” denotan colores.
Ampliación del prompt
La información recuperada se combina entonces con el prompt original, creando un prompt ampliado o expandido. Este prompt ampliado proporciona al modelo con contexto adicional, lo cual es especialmente valioso si los datos son específicos de dominio o no forman parte del corpus de entrenamiento original del modelo.
Generación de la completitud
Con el prompt ampliado en mano, el modelo entonces genera una completitud o respuesta. Esta respuesta no se basa solo en el entrenamiento del modelo, sino que también está informada por los datos en tiempo real recuperados.
Arquitectura del primer LLM de RAG
El artículo de investigación publicado por Meta en 2020 “Generación con Recuperación de Información para Tareas de NLP Intensivas en Conocimiento” proporciona una visión profunda en esta técnica. El modelo de Generación con Recuperación de Información (RAG) amplía el proceso de generación tradicional con un mecanismo de recuperación o búsqueda externo. Esto permite al modelo extraer información relevante de vastos corpus de datos, mejorando su capacidad para generar respuestas contextualmente precisas.
Aquí está cómo funciona:
- Memoria paramétrica: Esta es la modelo de lenguaje tradicional, como un modelo secuencia a secuencia. Se ha entrenado con vastas cantidades de datos y sabe mucho.
- Memoria no paramétrica: Piensa en esto como un motor de búsqueda. Es un índice de vector denso de, digamos, Wikipedia, que se puede acceder usando un recuperador neuronal.
Cuando se combinan, estos dos crean un modelo preciso. El modelo RAG primero recupera información relevante de su memoria no paramétrica y luego usa su conocimiento paramétrico para dar una respuesta coherente.
1. Proceso de dos pasos:
El LLM de RAG opera en un proceso de dos pasos:
- Recuperación: El modelo primero busca documentos o pasajes relevantes de un gran conjunto de datos. Esto se hace usando un mecanismo de recuperación denso, que emplea incrustaciones para representar tanto la consulta como los documentos. Las incrustaciones se utilizan para calcular puntuaciones de similitud, y se recuperan los documentos mejor clasificados.
- Generación: Con los documentos relevantes en mano, se canalizan hacia un generador de secuencia a secuencia junto con la consulta inicial. Este generador luego crea la salida final, dibujando contexto de ambos la consulta y los documentos recuperados.
2. Recuperación densa:
Los sistemas de recuperación tradicionales a menudo confían en representaciones dispersas como TF-IDF. Sin embargo, el LLM de RAG emplea representaciones densas, donde tanto la consulta como los documentos se incrustan en espacios vectoriales continuos. Esto permite comparaciones de similitud más matizadas, capturando relaciones semánticas más allá del simple emparejamiento de palabras clave.
3. Generación de secuencia a secuencia:
Los documentos recuperados actúan como un contexto extendido para el modelo de generación. Este modelo, a menudo basado en arquitecturas como Transformadores, luego genera la salida final, asegurando que sea coherente y contextualmente relevante.
Búsqueda de documentos
Indexación y recuperación de documentos
Para una recuperación de información eficiente, especialmente de documentos grandes, los datos a menudo se almacenan en una base de datos vectorial. Cada pieza de datos o documento se indexa según un vector de incrustación, que captura la esencia semántica del contenido. Un indexado eficiente garantiza una recuperación rápida de información relevante basada en el prompt de entrada.
Bases de datos vectoriales

Fuente: Redis
Las bases de datos vectoriales, a veces denominadas almacenamiento vectorial, son bases de datos personalizadas para almacenar y recuperar datos vectoriales. En el ámbito de la IA y la informática, los vectores son esencialmente listas de números que simbolizan puntos en un espacio multidimensional. A diferencia de las bases de datos tradicionales, que están más adaptadas a datos tabulares, las bases de datos vectoriales brillan en la gestión de datos que naturalmente se ajustan a un formato vectorial, como las incrustaciones de modelos de IA.
Algunas bases de datos vectoriales notables incluyen Annoy, Faiss de Meta, Milvus y Pinecone. Estas bases de datos son fundamentales en aplicaciones de IA, ayudando en tareas que van desde sistemas de recomendación hasta búsquedas de imágenes. Plataformas como AWS también ofrecen servicios adaptados para necesidades de bases de datos vectoriales, como Amazon (AMZN ) OpenSearch Service y Amazon RDS para PostgreSQL. Estos servicios están optimizados para casos de uso específicos, garantizando un indexado y consulta eficientes.
División para relevancia
Dado que muchos documentos pueden ser extensos, a menudo se utiliza una técnica llamada “división”. Esto implica dividir documentos grandes en fragmentos más pequeños y semánticamente coherentes. Estos fragmentos se indexan y recuperan según sea necesario, asegurando que las porciones más relevantes de un documento se utilicen para la ampliación del prompt.
Consideraciones de la ventana de contexto
Cada LLM opera dentro de una ventana de contexto, que es esencialmente la cantidad máxima de información que puede considerar al mismo tiempo. Si las fuentes de datos externas proporcionan información que excede esta ventana, es necesario dividirla en fragmentos más pequeños que quepan dentro de la ventana de contexto del modelo.
Beneficios de utilizar la Generación con Recuperación de Información
- Precisión mejorada: Al aprovechar fuentes de datos externas, el LLM de RAG puede generar respuestas que no solo se basan en sus datos de entrenamiento, sino que también están informadas por la información más relevante y actualizada disponible en el corpus de recuperación.
- Superar brechas de conocimiento: RAG aborda efectivamente las limitaciones de conocimiento inherentes de los LLM, ya sea debido a la fecha de corte de entrenamiento del modelo o a la ausencia de datos específicos de dominio en su corpus de entrenamiento.
- Versatilidad: RAG se puede integrar con diversas fuentes de datos externas, desde bases de datos propietarias dentro de una organización hasta datos accesibles públicamente en Internet. Esto lo hace adaptable a una amplia gama de aplicaciones y sectores.
- Reducción de alucinaciones: Uno de los desafíos con los LLM es el potencial de “alucinaciones” o la generación de información factualmente incorrecta o fabricada. Al proporcionar contexto de datos en tiempo real, RAG puede reducir significativamente las posibilidades de tales salidas.
- Escalabilidad: Uno de los beneficios principales del LLM de RAG es su capacidad para escalar. Al separar los procesos de recuperación y generación, el modelo puede manejar eficientemente grandes conjuntos de datos, lo que lo hace adecuado para aplicaciones del mundo real donde los datos son abundantes.
Desafíos y consideraciones
- Carga computacional: El proceso de dos pasos puede ser computacionalmente intensivo, especialmente al tratar con grandes conjuntos de datos.
- Dependencia de datos: La calidad de los documentos recuperados impacta directamente la calidad de la generación. Por lo tanto, tener un corpus de recuperación integral y bien curado es crucial.
Conclusión
Al integrar los procesos de recuperación y generación, la Generación con Recuperación de Información ofrece una solución robusta a tareas intensivas en conocimiento, asegurando salidas que son tanto informadas como contextualmente relevantes.
La verdadera promesa de RAG radica en sus posibles aplicaciones en el mundo real. Para sectores como la salud, donde la información oportuna y precisa puede ser crucial, RAG ofrece la capacidad de extraer y generar conocimientos de vastas literaturas médicas de manera fluida. En el ámbito financiero, donde los mercados evolucionan por minutos, RAG puede proporcionar conocimientos basados en datos en tiempo real, ayudando en la toma de decisiones informadas. Además, en la academia y la investigación, los académicos pueden aprovechar RAG para escanear vastos repositorios de información, haciendo que las revisiones de literatura y el análisis de datos sean más eficientes.

















