Un diagrama explica todo el proceso de construcción de un sistema GAR.
Base de conocimientos de IAPublicado hace 6 meses Círculo de intercambio de inteligencia artificial 7.4K 00
Este diagrama representa claramente el esquema arquitectónico de un sistema moderno y complejo de respuesta a preguntas (QA) o de generación mejorada por recuperación (RAG). Comienza cuando un usuario formula una pregunta y continúa hasta la generación final de una respuesta, mostrando en detalle los pasos clave y las opciones tecnológicas intermedias. Podemos descomponer todo el proceso en las siguientes etapas fundamentales:

1, construcción de consultas (Query Construction)
Este es el primer paso en la interacción del usuario con el sistema y el punto de partida para que el sistema comprenda la intención del usuario. La imagen muestra cómo se construyen las consultas para distintos tipos de bases de datos:
a. Bases de datos relacionales: En el caso de las bases de datos relacionales, una forma habitual de construir consultas es la conversión de texto a SQL, lo que significa que el sistema debe traducir las preguntas en lenguaje natural del usuario en sentencias de consulta SQL estructuradas. Esto suele implicar técnicas de comprensión del lenguaje natural (NLU) y la capacidad de asignar la semántica del lenguaje natural a la sintaxis SQL y al esquema de la base de datos. La figura también menciona SQL w/ PGVector, que puede utilizarse junto con bases de datos vectoriales (PGVector es una extensión vectorial de PostgreSQL) para mejorar las consultas SQL, por ejemplo, para realizar búsquedas de similitud semántica, y ser así más flexible a la hora de tratar consultas difusas o semantizadas de los usuarios.
b. Bases de datos de grafos: Para las bases de datos de grafos, el método de construcción de consultas correspondiente es Text-to-Cypher, un lenguaje de consulta para la base de datos de grafos Neo4j, similar a SQL pero más adecuado para consultas estructuradas en grafos.Text-to-Cypher requiere la traducción de preguntas en lenguaje natural a declaraciones de consulta Cypher, lo que requiere una comprensión de la estructura de la base de datos de grafos y de las características del lenguaje de consulta de grafos. requiere comprender la estructura de las bases de datos de grafos y las características de los lenguajes de consulta de grafos.
c. base de datos vectorial (Bases de datos vectoriales): Para las bases de datos vectoriales, se ilustra el Self-query retriever, que significa que el sistema puede generar automáticamente filtros de metadatos basados en la pregunta del usuario y consultar directamente la base de datos vectorial. Las bases de datos vectoriales suelen almacenar representaciones vectoriales de texto o datos, que se recuperan mediante una búsqueda por similitud. La clave de Self-query retriever es la capacidad de extraer información estructurada para filtrar a partir de preguntas en lenguaje natural y combinarla con la búsqueda vectorial por similitud para lograr una recuperación más precisa.
Resumen de la fase de construcción de consultas: el objetivo central de esta fase es transformar las preguntas planteadas por el usuario en lenguaje natural en sentencias de consulta comprensibles y ejecutables por el sistema, con diferentes lenguajes y técnicas de consulta para diferentes tipos de almacenes de datos (relacionales, grafos, vectores). Se demuestra la compatibilidad del sistema con datos multimodales y modalidades de consulta.
2、Traducción de consultas (Query Translation)
Tras la construcción de la consulta, a veces es necesario procesar y optimizar aún más la consulta original del usuario para recuperar y comprender su intención de forma más eficiente. En la Fig. 1 se ilustran dos estrategias principales de traducción de consultas:
a. Descomposición de la consulta: las preguntas complejas pueden descomponerse en subpreguntas más pequeñas y manejables (pregunta(s) secundaria(s)). Para ello se pueden utilizar técnicas como la multi-consulta, el step-back o la fusión RAG. - Multi-consulta puede significar generar varias consultas diferentes para explorar la pregunta desde distintos ángulos. - Step-back puede referirse a responder primero a preguntas más básicas, de prerrequisito, y luego resolver progresivamente la pregunta compleja final. - RAG-Fusion puede referirse a la combinación de la generación mejorada de recuperación con técnicas de fusión de consultas para comprender mejor la intención del usuario a través de la recuperación y fusión múltiple. - La idea central es descomponer o reformular la pregunta de entrada, es decir, descomponer o reformular la pregunta de entrada para reducir la dificultad de procesar preguntas complejas.
b. Pseudodocumentos: HyDE (Hypothetical Document Embeddings) es un método típico para generar pseudodocumentos. La idea es dejar que el modelo genere un "documento hipotético" (pseudodocumento) basado en la pregunta. Este pseudodocumento no tiene por qué ser real, pero debe contener la comprensión y predicción iniciales del modelo sobre la respuesta a la pregunta. A continuación, el pseudodocumento se representa como un vector junto con el documento real, y se realiza una búsqueda por similitud.HyDE pretende ayudar al buscador de vectores a encontrar mejor el documento real relevante introduciendo el conocimiento previo del modelo.
Resumir la fase de traducción de la consulta: esta fase pretende optimizar la consulta del usuario para hacerla más adecuada para el proceso de recuperación posterior. La complejidad puede gestionarse mediante la descomposición de la consulta, y la precisión de la recuperación vectorial puede mejorarse mediante la generación de pseudodocumentos, lo que refleja la flexibilidad e inteligencia del sistema a la hora de comprender y procesar la intención del usuario.
3. Enrutamiento
Cuando el sistema recibe una consulta traducida, debe decidir a qué fuente o fuentes de datos dirigir la consulta para su recuperación. En la Fig:
a. Enrutamiento lógico: dejar que LLM elija la DB en función de la pregunta, lo que significa utilizar el Modelo de Lenguaje Grande (LLM) para determinar qué base de datos debe consultarse en función del contenido y las características de la pregunta. Por ejemplo, si la pregunta implica entidades y relaciones relacionadas con grafos de conocimiento, se dirigirá a una base de datos de grafos; si la pregunta implica consultas de datos estructurados, se dirigirá a una base de datos relacional; si la pregunta está más orientada a la búsqueda semántica, se dirigirá a una base de datos vectorial.
b. Enrutamiento semántico: incrustar la pregunta y elegir la pregunta en función de la similitud. Este enfoque incrusta primero la pregunta y luego elige una pregunta diferente en función de la similitud de los vectores de la pregunta (Prompt #1 , Prompt #2). Prompt #2). Esto significa que para diferentes tipos de preguntas o intenciones, el sistema preestablece diferentes estrategias de prompt y selecciona automáticamente el prompt más apropiado por similitud semántica para guiar el posterior proceso de recuperación o generación.
Resumir la fase de enrutamiento: la fase de enrutamiento es un paso clave en la toma de decisiones inteligentes del sistema, que selecciona la fuente de datos y la estrategia de procesamiento más adecuadas en función del contenido y las características del problema, lo que refleja la inteligencia del sistema en la gestión de recursos y la programación de tareas.
4、Indexación (Indexación)
Para una recuperación eficaz, los datos deben estar previamente indexados. La zona azul de la imagen muestra diversas estrategias de optimización de la indexación:
a. Optimización de trozos: cuando se trata de documentos largos, a menudo es necesario dividir el documento en trozos y luego indexar los trozos. la optimización de trozos se centra en cómo hacer trozos de forma más eficiente.
- División por caracteres, secciones, delimitadores semánticos: diferentes estrategias de fragmentación, por ejemplo, por número de caracteres, secciones o delimitadores semánticos.
- Semantic Splitter: subraya la importancia del chunking semántico, optimiza el tamaño de los trozos utilizados para la incrustación, hace que cada trozo sea semánticamente más completo e independiente y, por tanto, mejora la calidad de los resultados de incrustación y recuperación.
b. Indexación multirrepresentación: Summary -> {} -> Relational DB / Vectorstore Esto significa que es posible crear múltiples representaciones de un documento para su indexación, por ejemplo, además del bloque de texto original del documento, también es posible generar un resumen del mismo ( Esto significa que se pueden crear múltiples representaciones del documento para su indexación, por ejemplo, además del bloque de texto original del documento, se puede generar e indexar un resumen del mismo. Esto permite utilizar distintas representaciones para satisfacer diferentes requisitos de consulta. La figura implica que el resumen puede almacenarse en una base de datos relacional o en una base de datos vectorial.
- Documento padre, X denso: puede referirse a la indexación de un documento junto con información sobre su documento padre, así como a la representación de un documento mediante una representación densa (X denso), que puede referirse a una representación vectorial densa.
- Convertir documentos en compactos recuperación (por ejemplo, un resumen): se hace hincapié en convertir los documentos en unidades de recuperación más compactas, como los resúmenes, para mejorar la eficacia de la recuperación.
c. Incrustaciones especializadas: Ajuste fino, CoLBERT, [0, 1, ...] -> Vectorstore. Esto significa que pueden utilizarse modelos de incrustación especialmente entrenados o ajustados, como CoLBERT, para generar representaciones vectoriales de documentos y almacenarlas en una base de datos vectorial.
- Modelos de incrustación específicos del dominio y/o avanzados: hace hincapié en la posibilidad de utilizar modelos de incrustación específicos del dominio o más avanzados para obtener representaciones semánticas más precisas y mejorar la recuperación.
d. Resúmenes de indexación jerárquica: Splits -> cluser -> cluser -> ... -> RAPTOR -> Graph DB. -> RAPTOR -> Graph DB. RAPTOR (que puede referirse a un método de resumen e indexación jerárquica de documentos) construye una estructura jerárquica de resúmenes de documentos mediante clustering multicapa (cluser).
- Árbol de resúmenes de documentos a varios niveles de abstracción: Se hace hincapié en el hecho de que RAPTOR construye un árbol de resúmenes de documentos a varios niveles de abstracción.
- Almacenada en una base de datos gráfica (Graph DB), la base de datos gráfica se utiliza para almacenar y gestionar esta estructura jerárquica de índices, facilitando la búsqueda y navegación multinivel.
Resumen de la fase de indexación: la fase de indexación se ocupa de organizar y representar los datos de forma eficiente y eficaz para una recuperación rápida y precisa. Desde la optimización del chunking, las representaciones múltiples, el Embedding dedicado a los resúmenes de índices jerárquicos, refleja la diversidad y sofisticación de las estrategias de indexación.
5. Recuperación
A partir de las fuentes de datos e índices enrutados, el sistema realiza el proceso de recuperación propiamente dicho. Las zonas verdes de la imagen muestran los dos aspectos principales de la recuperación:
a. Clasificación: Pregunta -> {} -> Relevancia -> Filtro. Los documentos recuperados deben clasificarse en función de su relevancia para la consulta.
- Re-Rank, RankGPT, RAG-Fusion: se mencionan algunas técnicas avanzadas de clasificación, como Re-Rank (reordenación, que realiza una clasificación más fina sobre los resultados iniciales de la recuperación), RankGPT (clasificación con un gran modelo como GPT) y RAG-Fusion (que fusiona la clasificación con la generación de mejoras de la recuperación).
- Clasificar o filtrar / comprimir documentos en función de su relevancia: El objetivo de la clasificación puede ser clasificar directamente y devolver los documentos más relevantes, o filtrar o comprimir documentos en función de su relevancia para su posterior procesamiento. - CRAG (Context-Relevant Answer Generation) también aparece en la sesión de clasificación, el proceso de clasificación también debe tener en cuenta la información contextual.
b. Recuperación activa: {} -> CRAG -> Respuesta. Volver a recuperar y/o recuperar de nuevas fuentes de datos (por ejemplo, web) si los documentos recuperados no son relevantes. Recuperación activa significa que el sistema puede volver a recuperar activamente (Re-retrieve) o recuperar de nuevas fuentes de datos (por ejemplo, web) si los resultados de la recuperación inicial no son satisfactorios.
- El CRAG también aparece en la recuperación activa, lo que subraya aún más la importancia de la relevancia contextual y la recuperación iterativa.
- Técnicas como Self-RAG, RRR (Recuperación-Reescritura-Lectura) también pueden ser relevantes para la recuperación activa, con el objetivo de optimizar continuamente los resultados de la recuperación y la calidad de la respuesta a través de un proceso iterativo de recuperación y generación.
Resumen de la fase de recuperación: el objetivo principal de la fase de recuperación es encontrar el documento o la información más pertinente para la consulta del usuario. Desde la clasificación hasta la recuperación activa, el sistema refleja el refinamiento y la inteligencia de la estrategia de recuperación y se esfuerza por ofrecer resultados de recuperación de alta calidad.
6. Generación
En última instancia, el sistema debe generar respuestas basadas en los documentos recuperados y presentarlas al usuario. La zona morada de la imagen muestra la tecnología central en la fase de generación:
a. Recuperación activa (reaparición): {} -> Respuesta -> Auto-RAG, RRR -> Reescritura de preguntas y/o re-recuperación de documentos. la recuperación activa también juega un papel importante en la fase de generación.
- Self-RAG (Self-Retrieval Augmented Generation) es un método de generación auto-recuperación aumentada que permite a un modelo generativo realizar activamente la recuperación según sea necesario durante el proceso de generación de una respuesta y ajustar la estrategia de generación en función de los resultados de la recuperación. - RRR (Recuperación-Reescritura-Lectura) es un proceso de generación iterativo que puede incluir pasos como la recuperación, la reescritura de la pregunta y la lectura del documento para optimizar la calidad de la respuesta a través de múltiples iteraciones.
- Utilizar la calidad de la generación para informar sobre la reescritura de preguntas y/o la recuperación de documentos: se hace hincapié en que la calidad de las respuestas generadas puede utilizarse para guiar la reescritura de preguntas y la recuperación de documentos, formando un proceso de optimización de bucle cerrado.
Resumen de la fase de generación: La fase de generación es un paso clave en el resultado final de las respuestas. Las tecnologías de recuperación activa y generación mejorada por autorrecuperación (Self-RAG, RRR) hacen que el proceso de generación sea más inteligente y controlable, y pueden generar respuestas más precisas y fáciles de usar.
Resumen general: este diagrama demuestra claramente la complejidad y granularidad de un sistema GAR moderno. Abarca el proceso completo, desde la comprensión de la consulta, el enrutamiento de los datos, la optimización de la indexación, la recuperación eficiente hasta la generación de la respuesta final, y muestra las numerosas técnicas y estrategias avanzadas que pueden emplearse en cada paso.
Principales datos y tendencias.
- Soporte de múltiples bases de datos: el sistema admite bases de datos relacionales, bases de datos gráficas y bases de datos vectoriales, que pueden manejar distintos tipos de datos y requisitos de consulta.
- Optimización y traducción de consultas: mejore la capacidad del sistema para gestionar consultas complejas y semánticas mediante técnicas como la descomposición de consultas y la generación de pseudodocumentos.
- Enrutamiento inteligente: decisiones de enrutamiento mediante LLM y similitud semántica para la selección inteligente de fuentes de datos y la programación de tareas.
- Diversidad de la optimización de la indexación: desde el chunking, la representación múltiple, la incrustación dedicada hasta el índice jerárquico Digest, que refleja la diversidad de las estrategias de indexación y la optimización en profundidad.
- Perfeccionamiento y proactividad de la búsqueda: desde los algoritmos de clasificación hasta la búsqueda proactiva, el sistema se esfuerza por ofrecer resultados de búsqueda pertinentes y de alta calidad.
- Integración profunda de generación y recuperación: Self-RAG, RRR y otras técnicas demuestran que la fase de generación ya no es un simple empalme de información, sino una integración profunda con el proceso de recuperación, formando un bucle cerrado de optimización iterativa.
Este diagrama representa una tendencia importante en el desarrollo de los sistemas GAR actuales, es decir, centrarse más en la inteligencia, la modularidad y la escalabilidad del sistema. El futuro sistema GAR no se limitará a una simple "recuperación + generación", sino que se desarrollará en una dirección más inteligente, capaz de comprender mejor la intención del usuario, hacer un uso más eficaz de los datos multimodales, llevar a cabo con mayor precisión la recuperación y la generación y, en última instancia, ofrecer una experiencia de usuario mejor y más personalizada. Este diagrama proporciona un marco de referencia muy valioso para comprender y construir la próxima generación de sistemas GAR.
Referencias:
[1] GitHub: https://github.com/bRAGAI/bRAG-langchain/
[2] https://bragai.dev/
© declaración de copyright
Derechos de autor del artículo Círculo de intercambio de inteligencia artificial Todos, por favor no reproducir sin permiso.
Artículos relacionados
Sin comentarios...