Almacenamiento y recuperación

Explore más a fondo lo que ofrece el RAG Cookbook para obtener una perspectiva más profunda de las soluciones RAG actuales

Un espacio principal recoloreado que utiliza como base el espacio principal watsonx para atención al cliente.
Visión general

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.

Herramientas de IBM

IBM® watsonx Discovery: solución integral de Enterprise Search y RAG

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.

¿Por qué usar watsonx Discovery con Elasticsearch?

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.

Métodos de búsqueda compatibles con watsonx Discovery

Watsonx Discovery es una solución versátil que admite una amplia gama de metodologías de búsqueda:

  • Búsqueda por palabra clave
  • Búsqueda semántica
  • Búsqueda de vectores
  • Búsqueda híbrida (fusión de clasificación recíproca)

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.

Búsqueda federada

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.

Capacidades de indexación e ingesta de datos enriquecidos

Watsonx Discovery simplifica la extracción e indexación de contenido a través de un amplio conjunto de herramientas de ingesta de datos:

  • Extracción de contenidos: admite una gran variedad de formatos de archivo, como DOCX, PDF y PPTX, lo que facilita el descubrimiento y la indexación de la información crítica para la empresa.
  • Integración de terceros: conéctese a una amplia gama de fuentes de datos mediante conectores prediseñados, lo que permite una integración perfecta en el ecosistema de datos de su empresa.
  • Transformación y enriquecimiento de datos: implemente potentes pipelines de ingesta para transformar y enriquecer los datos y garantizar que están preparados para una recuperación y unas perspectivas de alta calidad.
Una ilustración de las características y las capacidades de watsonx Discovery en relación con las bases de datos vectoriales

Para obtener más información, explore los siguientes recursos de ElasticSearch para acelerar su desarrollo de watsonx Discovery:

Visualización mejorada y Enterprise Search

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.

Privacidad y seguridad

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.

Casos de uso: watsonx Discovery y Orchestrate

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:

  • Responder a las consultas con respuestas precisas y respaldadas por datos.
  • Ejecutar flujos de trabajo que dependen de la recuperación de datos en tiempo real y de las perspectivas.

IBM® watsonx.data: un almacén de datos moderno con capacidades integradas de bases de datos vectoriales

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).

Opciones de implementación

IBM watsonx.data está disponible en tres opciones de implementación para adaptarse a diversas necesidades:

  • SaaS totalmente gestionado: disponible en IBM Cloud y AWS, que proporciona un enfoque de no intervención para la configuración y el escalado.
  • Software autogestionado en contenedores: ideal para entornos on-premises, aprovechando IBM Cloud Pak for Data y Red Hat OpenShift.
  • Versión para desarrolladores de bajo consumo: adecuada para entornos de desarrollo que utilizan máquinas virtuales individuales u ordenadores portátiles, proporcionando la flexibilidad necesaria para realizar pruebas y prototipos localmente.

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.

Primeros pasos

Para empezar a utilizar IBM watsonx.data, elija la opción de implementación que mejor se adapte a tus necesidades:

  • Para la implementación en IBM Cloud:
  • Visite la página del catálogo de IBM Cloud para watsonx.data.
  • Seleccione un plan que se ajuste a sus necesidades.
  • Proporcione una instancia.

  • Para la implementación on-premises:

  • Obtenga claves de activación para IBM watsonx.data en IBM Cloud Pak for Data.
  • Obtenga derechos de Red Hat OpenShift.
  • Siga la guía de implementación para configurar el software.

Documentación y soporte

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.

Watson Discovery

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.

Herramientas de código abierto

LangChain

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.

Ilustración que muestra el proceso de LangChain de alto nivel para la ingesta y el incrustación de documentos en una solución RAG

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:

 

  • Recuperador de documentos principales: esto le da la opción de crear varias incrustaciones por documento principal, lo que le permite buscar fragmentos más pequeños pero obtener un contexto más amplio.
  • Recuperador de autoconsulta: las preguntas de los usuarios suelen contener una referencia a algo que no es solo semántico, sino que expresa alguna lógica que puede representarse mejor como un filtro de metadatos. La autoconsulta le permite analizar la parte semántica de una consulta a partir de otros filtros de metadatos presentes en la consulta.
  • Recuperador de conjunto: a veces es posible que desee recuperar documentos de varias fuentes diferentes o utilizar varios algoritmos diferentes. El recuperador de conjunto le permite hacerlo fácilmente.

Milvus

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.

watsonx Discovery vs. Milvus

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.

Funcionalidad

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.

Ventajas clave

Escalado

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.

Integración 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.

Características avanzadas

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.

Recursos

Tutoriales de RAG de Milvus

Uso de recuperadores de LangChain

Recuperador de código abierto con LlamaIndex

Consejos, técnicas y recomendaciones

Lidiar con la duplicación, la precedencia y la distribución

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?

Jerarquías de documentos

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.

Estructura general de una jerarquía de documentos para una solución RAG

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.

Un ejemplo de una jerarquía de documentos de políticas corporativas para una corporación que opera en múltiples jurisdicciones.

Implementación

Almacén de vectores híbridos

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"
)

Gráficos de conocimiento

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.

 

Ejemplo de gráfico de conocimiento para un contrato legal

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.

Implementación

Neo4j

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.

Explore más

Obtenga los últimos patrones tecnológicos, arquitecturas de soluciones y publicaciones sobre arquitectura de IBM.

  1. Ir al IBM Architecture Center
Colaboradores

 

Rohan Singh, Fahad Bhutta, Luke Major, Chris Kirby, Sacha Mongrain

Actualizado: 15 de noviembre de 2024