Patrón de generación aumentada por recuperación (RAG)
Puede crear un patrón de generación de recuperación aumentada (RAG) para generar resultados basados en hechos que se fundamenten en la información de una base de conocimientos.
Un patrón RAG procesa el contenido de una base de conocimientos en un formato vectorial fácil de buscar. Cuando un usuario formula una pregunta, el patrón RAG recupera un conjunto de pasajes relevantes y se los proporciona al LLM. El LLM genera una respuesta objetiva a la pregunta del usuario.
Capacidades y recursos del patrón RAG
Puede crear un patrón RAG con las siguientes capacidades y recursos:
- Incrustaciones vectoriales
- Cree incrustaciones vectoriales para codificar el significado de una frase o pasaje como una representación numérica. Los vectores permiten encontrar en la base de conocimientos los pasajes de texto más similares a la pregunta formulada por el usuario. Los vectores se almacenan en bases de datos vectoriales y se recuperan mediante un índice vectorial.
- Véase Creación de un índice vectorial.
- extracción de texto
- Convierta el contenido de un PDF o una imagen en texto para vectorizarlo.
- Véase Extracción de texto de documentos.
- Pasaje recuperado reranking
- Volver a clasificar el conjunto superior de resultados recuperados por relevancia en lugar de por similitud.
- Ver pasajes de documentos de Reranking.
- Almacenes de vectores
- Elige entre el almacén de vectores Chroma en memoria, el almacén de vectores watsonx.data Milvus que se configura automáticamente u otros almacenes de vectores con los que crees conexiones.
- Véase Tipos de almacenes vectoriales.
- Modelos de codificador para incrustación y reordenación
- Elija entre los modelos de codificador de IBM y de terceros para crear incrustaciones y renumerar pasajes.
- Consulte Modelos de bases de encóder compatibles.
- Modelos básicos de inferencia
- Elija entre una gama de modelos básicos, seleccione un modelo de implantación a petición o importe e implante un modelo personalizado.
- Consulte los modelos de Foundation que se adaptan a su caso de uso.
- Muestras para adaptar
- Comience con un patrón RAG de ejemplo y adáptelo a su caso de uso.
- Consulte los modelos RAG.
Formas de trabajar
Puede escribir código para su patrón RAG con los siguientes métodos:
Puede trabajar en una experiencia sin código o de bajo código con herramientas en la interfaz de usuario:
- Prompt Lab : Puede chatear con un documento cargado o con un índice vectorial.
- AutoAI para RAG : puede automatizar la búsqueda de un patrón RAG optimizado y con calidad de producción.
- Índice vectorial : Puede crear un índice vectorial basado en uno o varios documentos.
La arquitectura del patrón de generación de recuperación mejorada
Puede ampliar la técnica de incluir el contexto en sus indicaciones utilizando la información de una base de conocimientos.
Este vídeo proporciona un método visual para aprender los conceptos y tareas de esta documentación.
Capítulos de vídeo
[ 0:08 ] Descripción del escenario
[ 0:27 ] Visión general del patrón
[ 1:03 ] Base de conocimientos
[ 1:22 ] Componente de búsqueda
[ 1:41 ] Indicación aumentada con contexto
[ 2:13 ] Generación de la salida
[ 2:31 ] Solución completa
[ 2:55 ] Consideraciones para la búsqueda
[ 3:58 ] Consideraciones para el texto de la indicación
[ 5:01 ] Consideraciones para la explicabilidad
El siguiente diagrama ilustra el patrón de generación de recuperación aumentada en tiempo de ejecución. Aunque el diagrama muestra un ejemplo de respuesta a preguntas, el mismo flujo de trabajo da soporte a otros casos de uso.
El patrón de generación de recuperación aumentada implica los siguientes pasos:
- Su base de conocimientos se preprocesa para convertir el contenido en texto plano y vectorizarlo. El preprocesamiento puede incluir la extracción de texto para convertir la información de tablas e imágenes en texto que el LLM pueda interpretar.
- Un usuario formula una pregunta.
- La pregunta se convierte en una incrustación de texto.
- En el almacén de vectores que contiene el contenido vectorizado de la base de conocimientos se buscan contenidos similares a la pregunta del usuario.
- Los resultados más relevantes de la búsqueda se añaden a la pregunta en formato de texto, junto con una instrucción, como "Responda a la siguiente pregunta utilizando sólo la información de los siguientes pasajes"
- El texto de consulta combinado (instrucción + resultados de búsqueda + pregunta) se envía al modelo de base.
- El modelo de la fundación utiliza información contextual de la pregunta para generar una respuesta objetiva.
Base de conocimiento
Su base de conocimientos puede ser cualquier colección de artefactos que contengan información, como:
- Información de proceso en páginas de wiki de empresa internas
- Archivos en GitHub
- Mensajes en una herramienta de colaboración
- Temas de la documentación del producto, que pueden incluir bloques de texto largos
- Pasajes de texto en una base de datos que soporta consultas de lenguaje de consulta estructurado (SQL), como por ejemplo Db2
- Un almacén de documentos con una colección de archivos, como los contratos legales que se almacenan como archivos PDF
- Incidencias de soporte al cliente en un sistema de gestión de contenidos
La mayoría de los almacenes vectoriales compatibles y AutoAI admiten archivos de tipo PDF, HTML, DOCX, MD o texto sin formato. Véase Puesta a tierra de los tipos de archivos de documentos.
Puede optimizar su solución GAR adaptando el contenido de su base de conocimientos para que sea más accesible a la IA. Véase Optimización de su base de conocimientos para la generación de recuperación aumentada.
Preprocesamiento de contenidos
Cuando configura su patrón RAG, preprocesa los documentos de su base de conocimientos. El preprocesamiento convierte primero el contenido en texto sin formato. Puede configurar la extracción de texto para convertir la información de tablas e imágenes en texto que el LLM pueda interpretar. A continuación, el modelo de incrustación vectoriza el texto, lo almacena en la base de datos vectorial y crea un índice vectorial para recuperar el contenido.
Cuando un usuario formula una pregunta, ese texto es vectorizado por el modelo de incrustación.
Recuperación y clasificación de contenidos
El recuperador busca en la base de datos vectorial el contenido más similar a la incrustación vectorial del texto consultado. Los pasajes recuperados se clasifican por similitud con la pregunta. Puede añadir un modelo reranking a su patrón RAG para evaluar la relevancia de los pasajes más recuperados para responder a la pregunta.
Generación de respuestas
El pasaje recuperado, la pregunta del usuario y las instrucciones se envían al modelo de base en un prompt. El modelo de base genera una respuesta y la devuelve al usuario.
Ejemplos de patrones RAG
Los siguientes ejemplos muestran cómo aplicar el patrón de generación de recuperación aumentada.
Ejemplo | Formato | Descripción | Enlace |
---|---|---|---|
Solución RAG completa | Proyecto | Este proyecto de muestra con cuadernos y otros activos que implementan una solución de preguntas y respuestas mediante el uso de la generación aumentada por recuperación. Ver las preguntas y respuestas con RAG Accelerator. | Preguntas y respuestas con el proyecto de muestra RAG Accelerator. |
Introducción simple | Cuaderno | Utiliza una pequeña base de conocimiento y un componente de búsqueda simple para demostrar el patrón básico. | Introducción a la generación aumentada por recuperación |
Introducción simple con Discovery | Cuaderno | Este cuaderno de ejemplo utiliza artículos breves en IBM Watson Discovery como base de conocimiento y la API de Discovery para realizar consultas de búsqueda. | Introducción sencilla a la generación aumentada por recuperación con watsonx.ai y Discovery |
Ejemplo con LangChain | Cuaderno | Contiene los pasos y el código para demostrar el soporte de la generación aumentada por recuperación con LangChain en watsonx.ai. Introduce mandatos para la recuperación de datos, la creación y consulta de bases de conocimiento y la prueba de modelos. | Utilizar watsonx y LangChain para responder a las preguntas mediante RAG |
Ejemplo con LangChain y una base de datos de vector Elasticsearch | Cuaderno | Muestra cómo utilizar LangChain para aplicar un modelo de inclusión a documentos en una base de datos de vector Elasticsearch . A continuación, el cuaderno indexa y utiliza el almacén de datos para generar respuestas a las preguntas entrantes. | Utilizar watsonx, Elasticsearch y LangChain para responder preguntas (RAG) |
Ejemplo con la biblioteca Elasticsearch Python | Cuaderno | Muestra cómo utilizar la biblioteca Elasticsearch Python para aplicar un modelo de inclusión a documentos en una base de datos de vectores Elasticsearch . A continuación, el cuaderno indexa y utiliza el almacén de datos para generar respuestas a las preguntas entrantes. | Utilizar watsonx y la biblioteca Python Elasticsearch para responder a preguntas (RAG) |
Ejemplo con LangChain y una base de datos SingleStoreDB | Cuaderno | Le muestra cómo aplicar la generación aumentada por recuperación a modelos de lenguaje grandes en watsonx utilizando la base de datos SingleStoreDB. | RAG con SingleStoreDB y watsonx |
Más información
Pruebe estas guías de aprendizaje:
- Solicitar un modelo de base utilizando Prompt Lab
- Solicitar un modelo de base con el patrón de generación aumentado por recuperación
Tema principal: Soluciones de IA generativa