Almacenamiento y recuperación

Explore más de lo que RAG Cookbook tiene para ofrecer para obtener un insight más profundo de las soluciones de RAG actuales

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

Esta sección cubre herramientas y consideraciones para el almacenamiento y recuperación de la base de documentos de RAG. Abordamos 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 búsqueda empresarial y RAG

IBM Watsonx Discovery, impulsado por IBM Cloud Databases for Elasticsearch, es una solución empresarial completa diseñada para admitir y mejorar los casos de uso de búsqueda y generación aumentada por recuperación (RAG, por sus siglas en inglés). Con capacidades sólidas para la búsqueda vectorial, la búsqueda semántica, la búsqueda federada, entre otras, Watsonx Discovery proporciona un amplio conjunto de herramientas para crear aplicaciones contextuales impulsadas por IA. Se integra perfectamente con la plataforma de IA conversacional de IBM Watsonx Assistant y las capas de orquestación como Watsonx Orchestrate para ofrecer soluciones empresariales avanzadas.

¿Por qué utilizar Watsonx Discovery con Elasticsearch?

Watsonx Discovery aprovecha IBM Cloud Databases for Elasticsearch y ofrece un backend potente y flexible para gestionar las necesidades de búsqueda de su empresa:

  • Monitoreo y verificaciones de estado: con Elasticsearch, los desarrolladores obtienen acceso a herramientas completas de monitoreo y verificación de estado para garantizar que las incorporaciones, 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 un escalado fluidos, centrándose en el desarrollo de aplicaciones en lugar de en tareas operativas como copias de seguridad, registro, monitoreo y configuración.

  • Capacidades avanzadas de búsqueda: Watsonx Discovery admite 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 los casos de uso de RAG desafiantes que involucran consultas y documentos complejos. Implemente los tipos de búsqueda avanzada descritos en este Notebook para optimizar su despliegue.

  • Integración con marcos de LLM: la compatibilidad de Elasticsearch con marcos de orquestación de LLM populares, como LangChain y LlamaIndex, lo hace ideal para integrarse con Watsonx Discovery para potenciar soluciones de 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 de palabras clave
  • Búsqueda semántica
  • Búsqueda vectorial
  • Búsqueda híbrida (fusión de rangos recíprocos)

El modelo ELSER (Elastic Search Embeddings) es un modelo de incorporación prediseñado líder que se utiliza para la búsqueda semántica, lo que permite la búsqueda contextual incluso sin la necesidad de bases de datos vectoriales personalizadas.

Búsqueda federada

Watsonx Discovery admite la búsqueda federada en todos los despliegues existentes, lo que reduce la necesidad de almacenar y mantener datos duplicados. Esto permite realizar búsquedas y recuperaciones 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 una amplia suite de herramientas de ingesta de datos:

  • Extracción de contenido: admite una gran variedad de formatos de archivo, incluidos DOCX, PDF y PPTX, lo que facilita la búsqueda y la indexación de información crítica para el negocio.
  • Integración con 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 de datos y enriquecimiento: implemente potentes pipelines de ingesta para transformar y enriquecer los datos, garantizando que estén listos para la recuperación e insights de alta calidad.
Una ilustración de las características y 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 el desarrollo de Watsonx Discovery:

Visualización mejorada y Enterprise Search

Watsonx Discovery se integra con Kibana y Enterprise Search para proporcionar una recuperación y visualización de información escalable e impulsada por IA, adaptada a los entornos de las grandes empresas:

  • Kibana for Data Visualization: cree paneles y visualizaciones personalizados basados en los datos ingeridos 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 for Scalable Retrieval: 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 del 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 proteger la privacidad de datos. Esto garantiza que solo los usuarios autorizados puedan acceder a la información confidencial, protegiendo así los datos de la empresa.

Casos de uso: Watsonx Discovery y Orchestrate

Watsonx Discovery se puede combinar con watsonx Orchestrate para mejorar los flujos de trabajo de automatización a través de la recuperación de datos contextual. Cuando Orchestrate automatiza un proceso de negocio que requiere insights 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 e insights en tiempo real.

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 las fortalezas de los data warehouses y los data lakes. 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 optimizar su gestión de datos. Con compatibilidad para formatos de datos abiertos, capacidades integradas de incorporación vectorizada y una interfaz conversacional impulsada por IA generativa para insights de datos, watsonx.data mejora los análisis en tiempo real y los casos de uso de IA. La plataforma se integra perfectamente con las bases de datos y herramientas existentes, al tiempo que ofrece opciones de despliegue flexibles, incluidas configuraciones en la nube y on premises.

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 incorporaciones vectoriales. Esta base de datos vectorial altamente configurable está optimizada para indexar y recuperar vectores de manera 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 particularmente beneficioso para los clientes que aprovechan watsonx.ai y necesitan una integración perfecta con capacidades de bases de datos vectoriales, así como para aquellos interesados en implementar marcos de código abierto como LangChain, a menudo utilizado en patrones de generación aumentada por recuperación (RAG, por sus siglas en inglés).

Opciones de implementación

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

  • SaaS totalmente gestionado: disponible en IBM Cloud y AWS, lo que proporciona un enfoque directo para la configuración y el escalado.
  • Software en contenedores autogestionado: ideal para entornos on premises, aprovechando IBM Cloud Pak for Data y Red Hat OpenShift.
  • Versión para desarrolladores de footprint pequeño: adecuada para entornos de desarrollo que utilizan máquinas virtuales individuales o computadoras portátiles, lo que proporciona la flexibilidad para probar y crear 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 usar IBM watsonx.data, elija la opción de despliegue que mejor se adapte a sus requisitos:

  • Para el despliegue 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.
  • Aprovisione una instancia.

  • Para el despliegue on premises:

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

Documentación y soporte

IBM proporciona documentación para ayudarle a dar los primeros pasos con la plataforma watsonx.data y la base de datos vectorial Milvus:

Al aprovechar las ventajas de arquitectura abierta de watsonx.data, las capacidades de base de datos vectorial integradas y las características avanzadas de IA, las organizaciones pueden optimizar los procesos de ingeniería de datos, mejorar el análisis en tiempo real y desbloquear nuevos insights a través de capacidades impulsadas por IA. Esta plataforma unificada permite a los equipos trabajar con datos estructurados y no estructurados de maneras innovadoras, reuniendo analytics tradicionales y búsqueda de similitud vectorial de última generación en una única solución.

Watson Discovery

IBM Watson Discovery es una herramienta diseñada para recuperar y analizar datos no estructurados. Sus características principales son 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 tienden a utilizar la coincidencia de texto, Watson Discovery utiliza el contexto detrás de las palabras clave para ofrecer un resultado más relevante.

Otra capacidad importante de Watson Discovery es la extracción de entidades, lo que significa que Watson 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 digeribles y puedan incorporarse directamente a las respuestas de 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 lograr esto es a través de la generación aumentada por recuperación (RAG, por sus siglas en inglés). En este proceso, los datos externos se recuperan y pasan al LLM al realizar el paso de generación.

Ilustración que muestra el proceso langchain de alto nivel para la ingesta y la incorporación de documentos en una solución de 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 agregado una colección de algoritmos además de esto para aumentar el rendimiento. Estos incluyen:

 

  • Recuperador de documentos principales: esto le permite crear múltiples incorporaciones por documento principal, así como buscar fragmentos más pequeños pero devolver un contexto más grande.
  • Recuperador de autoconsultas: las preguntas de los usuarios suelen contener una referencia a algo que no es solo semántico, sino que expresa una lógica que se puede representar 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 hacer esto fácilmente.

Milvus

Milvus es una plataforma de IA para la automatización y extracción de datos estructurados de documentos no estructurados y se utiliza a menudo 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 precisión y eficiencia.

watsonx Discovery frente a 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 tanto el escalado hacia dentro y hacia fuera, como el escalado ascendente y descendente, 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 de RAG que recuperan información de grandes conjuntos de datos.

Integración de datos

Milvus se integra perfectamente con watsonx.data, simplificando la gestión de datos para modelos de IA y aplicaciones. Esto permite casos de uso de RAG escalables en grandes conjuntos de datos gobernados.

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 eficacia del sistema de RAG.

Recursos

Tutoriales de Milvus RAG

Uso de recuperadores LangChain

Recuperador de código abierto con LlamaIndex

Consejos, técnicas y recomendaciones

Cómo lidiar con la duplicación, la precedencia y la distribución

Un almacén de vectores básico funciona bien para soluciones de RAG simples, pero se descompone rápidamente cuando hay varias piezas de información similares en el documento (similar no es lo mismo que relevante), la información para responder a una consulta se distribuye en varios documentos o se distribuye en varias secciones de un documento. Algunos ejemplos para demostrar...

Ejemplo 1

Un negocio opera 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 insertara sus políticas de recursos humanos en una base de datos vectorial, habría múltiples fragmentos para, por ejemplo, solicitar tiempo libre con diferentes textos de apoyo; haciendo 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 periodo de evaluación, etc. Un análisis y fragmentación naive del contrato que analizara y fragmentara el contrato de principio a fin daría lugar a interacciones como las siguientes:

Consulta: ¿Cuánto tiempo se le permite a Acme antes de que se le facture una vez completados los servicios?

Respuesta: El comprador dispone de 10 días de gracia tras el periodo de evaluación antes de que se le facture por los servicios.

Útil, pero garantizado para crear consultas de seguimiento y alguna incorporación rápida para llegar a una respuesta más completa.

Ejemplo 3

Un gobierno estatal publica enmiendas a su legislación como “ediciones” de las 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 que tratan sobre el tema del cannabis?

Jerarquías de documentos

Una jerarquía de documentos organiza fragmentos de documentos en categorías que agrupan documentos relacionados; similar a una tabla de contenido o un conjunto de carpetas en una computadora. El uso de una jerarquía de documentos permite que una solución de RAG “acote” el tema 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 de RAG

Aplicando esto al ejemplo anterior del documento de recursos humanos de varios estados, una jerarquía de documentos útil clasificaría el documento por estado, lo que permitiría a la solución de RAG recuperar solo los fragmentos del documento relevantes para un estado específico. Como se muestra en la figura a continuación, una posible jerarquía podría organizar los documentos primero por país, luego por el estado/provincia aplicable y luego por áreas de política o tema. Por supuesto, esto significa que la solución deberá inferir el estado relevante del estado de residencia del usuario que figura en la lista o solicitar 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

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

Grafos de conocimiento

Los grafos 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 constante y precisa relaciones y contenidos relevantes que pueden reducir significativamente las alucinaciones. Cuando se combinan con búsquedas de similitud de bases de datos vectoriales, las bases de datos de grafos pueden permitir que las soluciones de RAG reúnan contenido relacionado desde dentro de un documento o en un conjunto de documentos. La siguiente imagen muestra un grafo de conocimiento potencial para un contrato de servicios.

 

Ejemplo de grafo de conocimiento para un contrato legal

Si bien el mejor grafo de conocimiento para una solución de RAG es creado y mantenido por humanos, el uso de un modelo de lenguaje grande (LLM) para analizar las entidades y relaciones en un documento y crear un grafo de conocimiento produce resultados sorprendentemente buenos.

Implementación

Neo4j

Neo4j es una popular base de datos de grafos de código abierto (GPLv3). Este tutorial guía al lector a través de la configuración y codificación de una solución de RAG mejorada con grafos de conocimiento con neo4j y Langchain.

Explore más

Obtenga los últimos patrones tecnológicos, arquitecturas de soluciones y publicaciones de 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