Esta sección abarca las herramientas y consideraciones para el almacenamiento y la recuperación de la base de documentos RAG. Tratamos los dos temas conjuntamente, ya que la tecnología de almacenamiento limita los mecanismos de recuperación disponibles para consultar y recuperar los datos almacenados.
IBM watsonx Discovery, impulsado por IBM Cloud Databases for Elasticsearch, es una solución empresarial completa diseñada para dar soporte y mejorar los casos de uso de búsqueda y generación aumentada por recuperación (RAG). Con capacidades robustas para búsqueda vectorial, búsqueda semántica, búsqueda federada y más, watsonx Discovery ofrece un conjunto completo de herramientas para construir aplicaciones contextuales impulsadas por IA. Se integra de manera fluida con la plataforma de IA conversacional watsonx Assistant de IBM y capas de orquestación como watsonx Orchestrate para ofrecer soluciones empresariales avanzadas.
Watsonx Discovery aprovecha IBM Cloud Databases for Elasticsearch, ofreciendo un backend potente y flexible para gestionar sus necesidades de búsqueda empresarial:
Monitorización y comprobaciones de estado: con Elasticsearch, los desarrolladores obtienen acceso a herramientas integrales de monitorización y comprobación de estado para garantizar que las incrustaciones, los metadatos, el tamaño de los fragmentos y las estructuras de los documentos estén optimizados. La página web de Elasticsearch permite una gestión y escalado fluidos, centrándose en el desarrollo de aplicaciones en lugar de tareas operativas como copias de seguridad, registro, monitorización y configuración.
Capacidades avanzadas de búsqueda: watsonx Discovery soporta una variedad de algoritmos avanzados de búsqueda, como búsqueda semántica escasa y densa, búsqueda con filtro de metadatos, búsqueda léxica, búsqueda booleana (Y/OR/NOT/SLOP), búsqueda con prefijos, búsqueda difusa y búsqueda híbrida. Estas capacidades son críticas para casos de uso complejos de RAG que involucran consultas y documentos complejos. Implemente los tipos de búsqueda avanzada descritos en este Notebook para optimizar su implementación.
Integración con marcos LLM: la compatibilidad de Elasticsearch con marcos de orquestación LLM populares, como LangChain y LlamaIndex, lo hace ideal para integrarse con watsonx Discovery para potenciar las soluciones RAG.
Watsonx Discovery es una solución versátil que admite una amplia gama de metodologías de búsqueda:
El modelo ELSER (Elastic Search Embeddings) es uno de los principales modelos de incrustación prediseñados que se utiliza para la búsqueda semántica, lo que permite la búsqueda contextual incluso sin necesidad de base de datos vectorial personalizada.
Watsonx Discovery admite la búsqueda federada en implementaciones existentes, lo que reduce la necesidad de almacenar y mantener datos duplicados. Esto permite la búsqueda y recuperación en toda la empresa a través de múltiples silos de datos.
Watsonx Discovery simplifica la extracción e indexación de contenido a través de un amplio conjunto de herramientas de ingesta de datos:
Para obtener más información, explore los siguientes recursos de ElasticSearch para acelerar su desarrollo de watsonx Discovery:
Watsonx Discovery se integra con Kibana y Enterprise Search para ofrecer una recuperación y visualización de información escalable impulsada por IA, adaptada a grandes entornos empresariales:
Kibana para visualización de datos: cree paneles de control y visualizaciones personalizados basados en los datos consumidos por watsonx Discovery. Ofrece análisis en tiempo real sobre métricas clave como la extracción de entidades, el análisis de sentimientos y la clasificación de documentos. Esto ayuda a rastrear tendencias, patrones y anomalías en datos no estructurados, agilizando el proceso de análisis y mejorando la toma de decisiones.
Enterprise Search para recuperación escalable: aproveche el PLN y la búsqueda semántica para permitir una recuperación rápida y precisa en fuentes de datos estructuradas y no estructuradas. Personalice la funcionalidad de búsqueda para indexar y recuperar de múltiples fuentes de datos, incluidos documentos, correos electrónicos y bases de datos, para crear aplicaciones de búsqueda específicas de dominio que se integren directamente en los flujos de trabajo empresariales.
Watsonx Discovery aplica soporte nativo para el control de acceso basado en roles y atributos para asegurar el acceso al contenido y la protección de los datos. Esto garantiza que solo los usuarios autorizados puedan acceder a la información confidencial, lo que protege los datos de la empresa.
Watsonx Discovery puede acoplarse a watsonx Orchestrate para mejorar los flujos de trabajo de automatización mediante la recuperación de datos conscientes del contexto. Cuando Orchestrate automatiza un proceso empresarial que requiere perspectivas a partir de datos no estructurados, aprovecha Discovery para recuperar y analizar contenido relevante, lo que le permite realizar tareas inteligentes como:
IBM watsonx.data es una potente plataforma de datos construida sobre una arquitectura de lakehouse abierta, que combina los puntos fuertes de un almacén de datos y un data lake. Ofrece un único punto de entrada para acceder a todos sus datos a través de una capa de metadatos compartida y abierta, lo que la convierte en una solución ideal para las organizaciones que buscan agilizar su gestión de datos. Con soporte para formatos de datos abiertos, capacidades integradas de incrustación vectorizada y una interfaz conversacional con IA generativa para obtener perspectivas sobre datos, watsonx.data mejora el análisis en tiempo real y los casos de uso de IA. La plataforma se integra de manera fluida con las bases de datos y herramientas existentes, al tiempo que ofrece opciones de implementación flexibles, incluidas configuraciones en la nube y en las instalaciones.
Un componente clave de IBM watsonx.data es watsonx.data Milvus, una base de datos vectorial de código abierto diseñada específicamente para almacenar, gestionar y transferir datos vectoriales de alta dimensión, como incrustaciones vectoriales. Esta base de datos vectorial altamente configurable está optimizada para indexar y recuperar vectores de forma eficiente, lo que la hace ideal para casos de uso que requieren búsquedas de similitud vectorial en aplicaciones de IA. Watsonx.data Milvus es especialmente beneficiosa para los clientes que aprovechan watsonx.ai y necesitan una integración perfecta con las capacidades de las bases de datos vectoriales, así como para aquellos interesados en implementar marcos de código abierto como LangChain, que se utiliza a menudo en patrones de generación aumentada por recuperación (RAG).
IBM watsonx.data está disponible en tres opciones de implementación para adaptarse a diversas necesidades:
Para las organizaciones que buscan aprovechar las bases de datos vectoriales, watsonx.data admite la integración con Milvus de código abierto, lo que permite capacidades avanzadas como la búsqueda de similitud vectorial, que es esencial para las aplicaciones de IA en tiempo real.
Para empezar a utilizar IBM watsonx.data, elija la opción de implementación que mejor se adapte a tus necesidades:
Proporcione una instancia.
Para la implementación on-premises:
IBM proporciona documentación para ayudarle a dar los primeros pasos con la plataforma central watsonx.data y la base de datos vectorial Milvus:
Al aprovechar las ventajas de la arquitectura abierta de watsonx.data, las capacidades de bases de datos vectoriales integradas y las características avanzadas de IA, las organizaciones pueden optimizar los procesos de ingeniería de datos, mejorar los análisis en tiempo real y desbloquear nuevas perspectivas a través de capacidades con IA. Esta plataforma unificada permite a los equipos trabajar con datos estructurados y datos no estructurados de formas innovadoras, combinando el análisis y la búsqueda vectorial de última generación bajo una única solución.
IBM watsonx Discovery es una herramienta diseñada para recuperar y analizar datos no estructurados. Su característica principal es la búsqueda por palabras clave, que permite a los usuarios buscar en grandes conjuntos de datos utilizando términos o frases específicos. A diferencia de los motores de búsqueda tradicionales, que suelen utilizar la coincidencia de texto, watsonx Discovery utiliza el contexto detrás de las palabras clave para ofrecer resultados más relevantes.
Otra capacidad importante de watsonx Discovery es la extracción de entidades, lo que significa que watsonx Discovery puede extraer automáticamente información clave como personas, ubicaciones, organizaciones y fechas de texto no estructurado. Este proceso estructura los datos para que sean fáciles de entender y se puedan incorporar directamente en las respuestas RAG.
Muchas aplicaciones de LLM requieren datos específicos del usuario que no forman parte del conjunto de entrenamiento del modelo. La principal forma de lograrlo es mediante la generación aumentada por recuperación (RAG). En este proceso, los datos externos se recuperan y se pasan al LLM al realizar el paso de generación.
LangChain admite muchos algoritmos de recuperación diferentes. LangChain admite métodos básicos como la búsqueda semántica. Sin embargo, también hemos añadido una colección de algoritmos para aumentar el rendimiento. Entre ellos figuran:
Milvus es una plataforma de IA para la automatización y la extracción de datos estructurados de documentos no estructurados y se utiliza frecuentemente con watsonx Discovery para ciertos escenarios de recuperación. Milvus puede adaptarse a varios formatos, lo que lo hace ideal para flujos de trabajo de procesamiento a gran escala. Para un ingeniero de IA, ofrece una solución escalable que reduce el esfuerzo manual en la extracción de datos al tiempo que garantiza la precisión y la eficacia.
Milvus es principalmente una base de datos vectorial diseñada para la búsqueda de similitudes en grandes conjuntos de datos, y destaca especialmente en vectores de alta dimensión. watsonx Discovery, por otro lado, está especializado en la búsqueda semántica conversacional y la comprensión/procesamiento de documentos, con un énfasis particular en las capacidades de búsqueda conversacional y semántica.
Milvus ofrece funcionalidades avanzadas como vector disperso, vector masivo, búsqueda filtrada y capacidades de búsqueda híbrida. También cuenta con una arquitectura distribuida que permite escalar hacia fuera/dentro y hacia arriba/abajo, lo que lo hace altamente escalable para grandes conjuntos de datos.
Milvus puede manejar datos vectoriales a gran escala y admite búsquedas de similitud vectorial de alto rendimiento, esenciales para las soluciones RAG que recuperan información de grandes conjuntos de datos.
Milvus se integra de manera fluida con watsonx.data, simplificando la gestión de datos para modelos de IA y aplicaciones. Esto permite casos de uso escalables de RAG en grandes conjuntos de datos controlados.
Milvus admite características avanzadas como el filtrado de metadatos, la mejora de la relevancia de los resultados de búsqueda y la mejora de la eficacia del sistema RAG.
Un almacén vectorial básico funciona bien para soluciones RAG sencillas, pero deja de ser eficaz rápidamente cuando hay varios fragmentos de información similares en el documento (que sean similares no significa que sean relevantes), cuando la información necesaria para responder a una consulta se encuentra repartida entre varios documentos o cuando está distribuida en varias secciones de un mismo documento. Algunos ejemplos para demostrarlo...
Ejemplo 1
Una empresa tiene oficinas en varios estados, cada uno con sus propias políticas de recursos humanos. La organización utiliza un formato de documento común para la información de recursos humanos en todas sus oficinas. Si la empresa incrustara sus políticas de RR. HH. en una base de datos vectorial, habría varios fragmentos para, por ejemplo, solicitar tiempo libre con diferentes textos de apoyo; lo que hace que las alucinaciones sean muy probables.
Ejemplo 2
Un contrato de servicios tiene un glosario de términos definidos que se escriben en mayúsculas a lo largo del contrato para indicar la referencia a la definición, por ejemplo, el arrendador, el período de evaluación, etc. Un análisis y fragmentación ingenuos del contrato que analizara y fragmentara el contrato de principio a fin daría como resultado interacciones como las siguientes:
Consulta: ¿Cuánto tiempo tiene Acme para pagar la factura una vez finalizados los servicios? Respuesta: El comprador dispone de diez días de gracia tras el periodo de evaluación antes de que se le facture por los servicios.
Es útil, pero seguro que suscitará más preguntas y habrá que hacer algunos cálculos rápidos para llegar a una respuesta más completa.
Ejemplo 3
Un gobierno estatal publica enmiendas a su legislación como ‘ediciones’ a leyes existentes. Por ejemplo, “Se modifica la sección 12.2 de la Ley de Control de Narcóticos para excluir el Cannabis y los productos relacionados con el Cannabis”. ¿Cómo determinará una base de datos vectorial que este fragmento de texto debe tener prioridad sobre todos los demás fragmentos relacionados con el tema del cannabis?
Una jerarquía de documentos organiza los fragmentos de documentos en categorías que agrupan los documentos relacionados; es similar a un índice o a un conjunto de carpetas en un ordenador. El uso de una jerarquía de documentos permite a una solución RAG ‘restringir’ el asunto de una consulta de usuario para que pueda recuperar solo los documentos más relevantes.
Aplicando esto al ejemplo anterior de un documento de RR. HH. multiestado, una jerarquía de documentos útil categorizaría el documento por estado, permitiendo que la solución RAG solo recupere fragmentos relevantes para un estado específico. Como se muestra en la figura siguiente, una posible jerarquía podría organizar los documentos primero por país, luego por el estado/provincia aplicable y, por último, por áreas políticas o tema. Por supuesto, esto significa que la solución tendrá que inferir el estado correspondiente a partir del estado de residencia indicado del usuario o pedirle al usuario que proporcione el estado de interés.
Las jerarquías de documentos se pueden implementar en almacenes de vectores híbridos, almacenes de vectores que admiten esquemas que comprenden tipos de datos numéricos y categóricos junto con vectores, como Milvus, utilizando campos de categoría y subcategoría como parte de los criterios de búsqueda, como se muestra en la definición de esquema de Milvus a continuación .
chunk_id = FieldSchema( name="chunk_id", dtype=DataType.INT64, auto_id=True, ) state_id = FieldSchema( name="state_id", dtype=DataType.INT64, ) chunk = FieldSchema( name="chunk", dtype=DataType.FLOAT_VECTOR, dim=2 ) schema = CollectionSchema( fields=[chunk_id, state_id, chunk], description="HR documents by state" )
Los gráficos de conocimiento capturan las relaciones entre entidades en un documento o entre documentos. A diferencia de una búsqueda por similitud en una base de datos vectorial, un grafo de conocimiento puede recuperar de forma consistente y precisa relaciones y contenidos relevantes que pueden reducir significativamente la ocurrencia de alucinaciones. Cuando se combinan con búsquedas por similitud en bases de datos vectoriales, las bases de datos de gráficos pueden permitir a las soluciones RAG agrupar el contenido relacionado de un documento o de un conjunto de documentos. La siguiente imagen muestra un gráfico de conocimiento potencial para un contrato de servicios.
Aunque el mejor gráfico de conocimiento para una solución RAG es aquel creado y mantenido por personas, el uso de un modelo de lenguaje de gran tamaño (LLM) para analizar las entidades y relaciones de un documento y crear un gráfico de conocimiento ofrece resultados sorprendentemente buenos.
Neo4j es una base de datos de gráficos de código abierto popular (GPLv3). Este tutorial guía al lector a través de la configuración y la codificación de una solución RAG mejorada con grafos de conocimiento con neo4j y Langchain.
Rohan Singh, Fahad Bhutta, Luke Major, Chris Kirby, Sacha Mongrain
Actualizado: 15 de noviembre de 2024