Volver al inicio

GraphRAG y Ollama: Grafos de Conocimiento para Generación Avanzada de Respuestas

Explora GraphRAG y Ollama para crear sistemas RAG avanzados. Aprende cómo los grafos de conocimiento mejoran la precisión de las respuestas, superando las limitaciones de la búsqueda vectorial.

GraphRAG y Ollama: Construyendo Sistemas RAG Avanzados sobre Grafos de Conocimiento
Advertisement 728x90

GraphRAG y Ollama: Generación de Respuestas Mejorada con Grafos de Conocimiento

Los sistemas RAG (Generación Aumentada por Recuperación) empresariales modernos están en constante evolución, esforzándose por superar las limitaciones de la búsqueda vectorial tradicional. Microsoft GraphRAG presenta una solución prometedora que aprovecha los grafos de conocimiento para una comprensión más profunda del contexto y la recuperación de información. En este artículo, exploraremos la experiencia práctica con GraphRAG, su integración con modelos de lenguaje locales a través de Ollama, y demostraremos sus capacidades utilizando un ejemplo de análisis de texto ambientado en el mundo ciberpunk. El objetivo es mostrar cómo los enfoques basados en grafos pueden mejorar significativamente la precisión y la relevancia de las respuestas en sistemas de información complejos, ofreciendo un nuevo nivel de búsqueda semántica y análisis de datos.

De la Búsqueda Vectorial a los Grafos de Conocimiento

En el núcleo de muchos sistemas RAG reside la búsqueda vectorial que, a pesar de su eficacia, presenta varias limitaciones, especialmente al tratar con consultas complejas y entidades ambiguas. GraphRAG ofrece un enfoque alternativo al construir un grafo de conocimiento integral basado en documentos fuente. Este grafo se compone de entidades (objetos, personas, ubicaciones) y relaciones entre ellas, lo que permite al sistema capturar no solo la presencia de palabras clave, sino también sus relaciones semánticas dentro del contexto. Este enfoque mejora significativamente la precisión y la profundidad de la información recuperada.

El proceso de construcción de un grafo de conocimiento en GraphRAG implica la extracción de entidades y relaciones del texto. Se pueden utilizar herramientas especializadas, como Gephi con el plugin Leiden, para visualizar y analizar la estructura de dicho grafo. Esto no solo permite visualizar las interconexiones, sino también descubrir comunidades o clústeres ocultos de entidades que GraphRAG identifica y describe automáticamente. Es importante señalar que, durante la construcción del grafo, pueden surgir desafíos con la resolución de entidades cuando términos similares pero no idénticos (por ejemplo, "Molly Millions" y "Molly") no se fusionan automáticamente, lo que requiere un mayor refinamiento del algoritmo o corrección manual.

Google AdInline article slot

GraphRAG también genera descripciones de comunidades, que se almacenan en archivos community_reports.parquet. Estas descripciones son de vital importancia para la búsqueda global, ya que permiten a los LLM obtener una comprensión de alto nivel de los clústeres temáticos dentro de los datos. Este enfoque supera significativamente la simple búsqueda de fragmentos de texto, proporcionando material más estructurado y contextualmente enriquecido para la generación de respuestas.

Estrategias de Consulta en GraphRAG

GraphRAG ofrece varias estrategias de búsqueda, cada una optimizada para diferentes tipos de consultas. La flexibilidad del sistema se logra mediante la capacidad de ajustar los prompts, por ejemplo, en los archivos local_search_system_prompt.txt y global_search_reduce_system_prompt.txt. Esto permite adaptar el comportamiento del sistema a tareas y lenguajes específicos, asegurando la relevancia de las respuestas incluso cuando las preguntas se formulan en diferentes idiomas, siempre que el LLM y el embedding lo soporten.

Búsqueda Global

La búsqueda global está diseñada para responder preguntas amplias que requieren una comprensión de todo el conjunto de datos. Opera de manera similar a MapReduce, revisando las descripciones de las comunidades extraídas del grafo de conocimiento. Esto permite respuestas generalizadas, pero profundas y contextualmente completas.

Google AdInline article slot

Ejemplo de consulta:

graphrag query "What are the top cyberpunk elements in this story?"

La respuesta de ejemplo demuestra cómo el sistema agrega información de varias partes del grafo, haciendo referencia a elementos específicos mediante human_readable_id. Esto permite al usuario profundizar en los datos fuente si es necesario, utilizando estos identificadores:

  • Integración de Tecnología y Biología: El uso del neuroperturbador de Lewis y el pulgar protésico de Yakuza demuestra cómo la tecnología penetra el cuerpo e influye en el control y la interacción con el entorno. Tales elementos son una manifestación vívida del tema ciberpunk, donde los límites entre lo orgánico y lo sintético se difuminan [Datos: Informes (5, 7, 12, 2, +más)].
  • Paisajes Urbanos Distópicos: La narrativa describe espacios urbanos distópicos, como Nighttown y Drome, que simbolizan la ruina, la anarquía y las redes criminales clandestinas. [Datos: Informes (1, 8, 2, +más)].
  • Competencia Corporativa y Acuerdos Ilícitos: Elementos de espionaje corporativo y transacciones tecnológicas ilegales, como el acuerdo de equipos de microondas entre la banda de reggae aria y el programa Yakuza, resaltan el tema del control corporativo y los conflictos de alto riesgo. [Datos: Informes (0, 12, 2, +más)].
  • Contraste entre Baja y Alta Tecnología: El simbolismo de la baja tecnología, asociada con LO TEK y su uso de productos como los filtros Yiheyuan, contrasta con las mejoras cibernéticas avanzadas. [Datos: Informes (9, 2, +más)].
  • Seres Ciber-Orgánicos y Habilidades Técnicas: Personajes como Jones —un ciber-delfín con un pasado militar— y Molly Millions con sus habilidades de combate en el uso de módulos de control, demuestran la síntesis de lo orgánico y lo sintético. [Datos: Informes (11, 7, 2, +más)].

Búsqueda Local

La búsqueda local, a diferencia de la global, se centra en interrelaciones específicas entre entidades. Combina datos relevantes del grafo de conocimiento con fragmentos de documentos fuente, lo que la hace ideal para preguntas detalladas sobre objetos o personas específicas. Este modo es particularmente útil cuando se requiere una comprensión profunda de los roles y relaciones de elementos individuales dentro del sistema.

Google AdInline article slot

Ejemplo de consulta:

graphrag query "Who is JONES and what are his main relationships?" -m local

La respuesta de ejemplo muestra las relaciones detalladas:

Jones es un personaje descrito como un delfín cibernético con capacidades sensoriales avanzadas, asociado con el objeto "Funland". Sus funciones principales incluyen la gestión de un reservorio de agua dulce y la colaboración con "Calm". Jones desempeña un papel clave en las operaciones de recuperación de datos, especialmente en colaboración con Molly y Johnny, donde su fisiología única permite el acceso a datos del chip de Johnny [Datos: Entidades (28, 33); Relaciones (44, 51, +más)].

Las principales relaciones de Jones incluyen:

  • Con Molly Millions: Participación en la operación para extraer datos del chip de Johnny, demostrando sus habilidades técnicas [Datos: Entidades (33); Relaciones (44, 51, +más)].
  • Con Johnny: Interacción dentro de la operación de extracción de datos, donde Jones utiliza sus sensores para acceder a la información [Datos: Entidades (33); Relaciones (44, 51, +más)].
  • Con "Squid" (Dispositivos de Interferencia Cuántica Superconductores): Uso del dispositivo "Squid" para leer rastros, lo que está relacionado con tecnologías militares [Datos: Entidades (19); Relaciones (25, +más)].
  • Con Yakuza: Conexión indirecta a través de la preocupación de Yakuza de que "Squid" pudiera extraer rastros de su programa de la mente de Johnny [Datos: Relaciones (25); Entidades (19)].

El Papel de Ollama y Otros Modos de Búsqueda

El uso de Ollama en conjunto con GraphRAG permite el despliegue local de modelos de lenguaje, lo cual es particularmente relevante para proyectos con recursos computacionales limitados o requisitos estrictos de privacidad de datos. Ollama demuestra la capacidad de trabajar eficazmente incluso con modelos 4B, proporcionando funcionalidad de sistema RAG sin la necesidad de costosos LLM basados en la nube. Esto reduce significativamente la barrera de entrada para experimentar y desplegar sistemas RAG basados en grafos en un entorno empresarial.

Además de la búsqueda global y local, GraphRAG también ofrece los modos BASIC y DRIFT:

  • Búsqueda BASIC: Representa una búsqueda vectorial estándar a través de fragmentos de documentos. Sirve como línea base para comparar el rendimiento y la calidad de las respuestas con enfoques basados en grafos más complejos.
  • Búsqueda DRIFT: Esta característica se posiciona como una ventaja clave de GraphRAG, asemejándose a la Expansión de Consultas en sistemas RAG tradicionales. Sin embargo, es importante señalar que la Búsqueda DRIFT es intensiva en recursos y tarda significativamente más en ejecutarse, lo que puede ser crítico para sistemas con altos requisitos de tiempo de respuesta.

Conclusiones Clave

  • Superación de las Limitaciones de la Búsqueda Vectorial: GraphRAG utiliza grafos de conocimiento para un análisis semántico profundo y la recuperación de información, superando los métodos vectoriales tradicionales en precisión y contexto.
  • Despliegue Local con Ollama: La integración con Ollama permite a GraphRAG utilizar eficazmente modelos de lenguaje locales, reduciendo los costos computacionales y mejorando la privacidad de los datos.
  • Diversas Estrategias de Búsqueda: El sistema ofrece modos de búsqueda global, local, BASIC y DRIFT, cada uno optimizado para tipos de consulta específicos, desde amplias hasta detalladas.
  • Configuración y Adaptación Flexible: La capacidad de modificar los prompts y analizar los grafos de conocimiento generados (graph.graphml, community_reports.parquet) proporciona un alto grado de control y adaptación para las necesidades específicas del proyecto.
  • Mayor Relevancia de las Respuestas: Al estructurar el conocimiento como un grafo y aplicar algoritmos de consulta avanzados, GraphRAG mejora significativamente la calidad y la relevancia de las respuestas generadas, haciéndolas más informativas y precisas.

— Editorial Team

Advertisement 728x90

Leer después