En un ejercicio de dogfooding, le pregunté al modelo de lenguaje grande GPT-4 «¿Qué es la generación de recuperación aumentada?» usando su complemento Explorar, que es una implementación de generación de recuperación aumentada. Esto es lo que finalmente me dijo GPT-4, después de que le pedí que regenerara su respuesta: ————– — Recuperación-Generación Aumentada (RAG) es un marco de IA que tiene un impacto significativo en el campo del procesamiento del lenguaje natural (PLN). Está diseñado para mejorar la precisión y la riqueza del contenido producido por modelos de lenguaje. Aquí hay una síntesis de los puntos clave sobre RAG de varias fuentes: – RAG es un sistema que recupera datos de una base de conocimiento externa para proporcionar una base para modelos de lenguaje grandes (LLM). Esta base garantiza que la información generada por los LLM se base en datos precisos y actuales, lo cual es particularmente importante dado que los LLM a veces pueden producir resultados inconsistentes【5†fuente】. – El marco funciona como un modelo híbrido, integrando modelos generativos y de recuperación. Esta integración permite a RAG producir texto que no sólo es contextualmente preciso sino también rico en información. La capacidad de RAG para extraer información de extensas bases de datos le permite contribuir con contenido contextualmente relevante y detallado al proceso generativo【6†fuente】. – RAG aborda una limitación de los modelos de lenguaje fundamentales, que generalmente se entrenan fuera de línea en corpus de dominio amplio y no se actualizan con nueva información después de la capacitación. Esto los hace menos efectivos para tareas que requieren conocimientos de un dominio específico. Por el contrario, RAG puede acceder a los datos más recientes, lo que lo hace más adaptable y capaz de funcionar bien en aplicaciones de dominios específicos【7†fuente】. – En comparación con los modelos tradicionales de generación de texto, RAG ha demostrado ventajas notables y ha logrado un rendimiento de última generación en muchas tareas de PNL. Su capacidad para aumentar el proceso de generación con información recuperada lo convierte en una herramienta poderosa para crear texto informativo de alta calidad【8†fuente】. Las capacidades combinadas de RAG para recuperar y generar texto lo convierten en una herramienta innovadora en PNL, que mejora la relevancia y la calidad del resultado de los modelos de lenguaje. —————— Con la excepción de un par de puntos exagerados, esa es una respuesta decente. Omitió el hecho de que RAG se originó en Facebook (ahora Meta) AI Research. He obtenido resultados bastante buenos usando implementaciones de RAG para casos en los que los LLM no mejorados carecen de información actual, y especialmente en los casos en los que el LLM base se descarrila y comienza a alucinar sus propios hechos. Por otro lado, he visto a LLM alucinar incluso cuando usaban RAG. Usar fuentes externas de información (la parte de recuperación de RAG) no significa solo realizar una búsqueda en la web. También puede significar proporcionar sus propios documentos para que los use el LLM o señalar al LLM documentación web específica (no se requiere búsqueda adicional), por ejemplo, como lo describe mi colega de InfoWorld Sharon Machlis en este artículo. Los problemas: alucinaciones del LLM y contexto limitado A menudo lleva mucho tiempo utilizar recursos costosos para entrenar, a veces meses de tiempo de ejecución utilizando docenas de GPU de servidor de última generación, como NVIDIA H100. Mantener los LLM completamente actualizados mediante la recapacitación desde cero no es un comienzo, aunque el proceso menos costoso de ajustar el modelo base con datos más nuevos puede ayudar. Sin embargo, el ajuste fino a veces tiene sus inconvenientes, ya que puede reducir la funcionalidad presente en el modelo base (como las consultas de propósito general bien manejadas en Llama) al agregar nueva funcionalidad mediante el ajuste fino (como la generación de código agregada a Code Llama). ¿Qué pasa si le preguntas a un LLM que se formó con datos que finalizaron en 2022 sobre algo que ocurrió en 2023? Dos posibilidades: se dará cuenta de que no lo sabe o no lo hará. Si es lo primero, normalmente le informará sobre sus datos de entrenamiento, por ejemplo, «En mi última actualización en enero de 2022, tenía información sobre…». Si es lo último, intentará darle una respuesta basada en datos más antiguos, similares pero irrelevantes, o podría inventar cosas (alucinar). Para evitar desencadenar alucinaciones LLM, a veces es útil mencionar la fecha de un evento o una URL web relevante en el mensaje. También puede proporcionar un documento relevante, pero proporcionar documentos largos (ya sea proporcionando el texto o la URL) funciona solo hasta que se alcanza el límite de contexto del LLM y luego deja de leer. Por cierto, los límites de contexto difieren entre los modelos: dos modelos de Claude ofrecen una ventana de contexto de token de 100.000, lo que equivale a aproximadamente 75.000 palabras, que es mucho más que la mayoría de los otros LLM. La solución: fundamentar el LLM con hechos. Como puede adivinar a partir de Según el título y el comienzo de este artículo, una respuesta a ambos problemas es la generación de recuperación aumentada. En un nivel alto, RAG funciona combinando una búsqueda en Internet o en un documento con un modelo de lenguaje, de manera que se solucionen los problemas que se encontrarían al intentar realizar los dos pasos manualmente, por ejemplo, el problema de que el resultado de la búsqueda exceda el límite de contexto del modelo de lenguaje. El primer paso en RAG es utilizar la consulta para una búsqueda en Internet, un documento o una base de datos, y vectorizar la información de origen en una forma densa de alta dimensión, generalmente generando un vector de incrustación y almacenándolo en un vector. base de datos. Esta es la fase de recuperación. Luego, puede vectorizar la consulta en sí y usar FAISS u otra búsqueda de similitud, generalmente usando una métrica de coseno para la similitud, contra la base de datos de vectores, y usarla para extraer las porciones más relevantes (o los K elementos principales) de la información fuente y presentarla al LLM junto con el texto de la consulta. Esta es la fase de aumento. Finalmente, el LLM, denominado modelo seq2seq en el artículo original de Facebook AI, genera una respuesta. Esta es la fase de generación. Todo parece complicado, pero en realidad son tan solo cinco líneas de Python si usa el marco LangChain para la orquestación: desde langchain.document_loaders import WebBaseLoader desde langchain.indexes import VectorstoreIndexCreator loader = WebBaseLoader(«https:/ /www.promptingguide.ai/techniques/rag») índice = VectorstoreIndexCreator().from_loaders([loader]) index.query(«¿Qué es RAG?») Por lo tanto, RAG aborda dos problemas con modelos de lenguaje grandes: conjuntos de capacitación desactualizados y documentos de referencia que exceden las ventanas de contexto de los LLM. Al combinar la recuperación de información actual, la vectorización, el aumento de la información mediante la búsqueda por similitud de vectores y la IA generativa, puede obtener resultados más actuales, más concisos y más fundamentados que los que podría obtener utilizando la búsqueda o la IA generativa únicamente. Copyright © 2024 IDG Communications, Inc.

Source link