Search
  • en
  • es
  • es
    Search
    Open menu Open menu

    Introducción

    Como dice Microsoft, el mayor desafío a la par que la mayor oportunidad de los LLM sea ampliar sus poderosas capacidades para resolver problemas más allá de los datos con lo que se han formado y lograr resultados comparables con datos que el LLM nunca ha visto.  

    Esto abre nuevas posibilidades en la investigación de datos, y uno de los grandes avances es GraphRAG. Te explicamos en qué consiste y cómo funciona.  

    ¿Qué es GraphRAG?

    Retrieval-Augmented Generation (RAG) is a technique for searching information based on a user query and providing the results as a reference for generating an AI response.

    This technique is an important part of most LLM-based tools and most RAG approaches use vector similarity as a search technique.

    A baseline RAG typically integrates a vector database and an LLM, where the vector database stores and retrieves contextual information for user queries, and the LLM generates answers based on the retrieved context. While this approach works well in many cases, it presents difficulties with complex tasks such as multi-hop reasoning or answering queries that require connecting different pieces of information.  

    The main challenge faced by a RAG is that it retrieves text based on semantic similarity and does not directly answer complex queries where specific details may not be explicitly mentioned in the dataset. This limitation makes it difficult to find the exact information needed, often requiring costly and impractical solutions such as manually creating batteries of frequently asked questions and answers.

    To address these challenges, we found GraphRAG, developed by Microsoft, which uses LLM-generated knowledge graphs to provide substantial improvements in question-and-answer performance when performing complex information document analysis.

    This research points out the power of rapid augmentation when performing discovery on private datasets. These private datasets are defined as data that LLM is not trained on and has never seen business documents or communications before. The graph created by GraphRAG is used in conjunction with Graph Machine Leaning to perform rapid augmentation at query time. This achieves a substantial improvement in answering the two classes of possible queries, demonstrating an intelligence or mastery that outperforms other approaches previously applied to private data sets 

    Application of RAG to private datasets

    Microsoft Search has presented research using the Violent Incident Information from News Articles (VINA) dataset. This dataset was chosen because of its complexity and the presence of differing opinions and biased information.

    They have used thousands of news articles from Russian and Ukrainian news sources from June 2023, translated into English, to create a private dataset on which they have performed their LLM-based retrieval. As the dataset is too large to fit in an LLM context window, a RAG approach is needed.

    They start with an exploratory query to a reference RAG system and GraphRAG. The results are that both systems work well, so as a conclusion we can draw that, for a reference query, RAG is sufficient.

    With a query that requires joining the dots, the base RAG does not answer this question and gives an error. In comparison, the GraphRAG method discovered an entity in the query. This allows the LLM to rely on the graph and generate a superior response containing provenance through links to the original supporting text. By using the knowledge graph generated by LLM, GraphRAG greatly improves the “retrieval” part of RAG by populating the context window with content of higher relevance, resulting in better answers and capturing the provenance of the evidence. 

    Microsoft GraphRAG: Cómo funciona

    Como decíamos más arriba, Project GraphRAG es la apuesta de Microsoft Research con la que han conseguido la técnica más avanzada del mercado para comprender en profundidad conjuntos de datos de texto mediante la combinación de extracción de texto, análisis de red y generación y resumen de LLM en un único sistema de extremo a extremo.  

    A diferencia de un RAG básico que utiliza una base de datos vectorial para recuperar texto semánticamente similar, GraphRAG mejora el mecanismo al incorporar gráficos de conocimiento (KG). Estos gráficos son estructuras de datos que almacenan y vinculan datos relacionados o no relacionados en función de sus relaciones.

    Una canalización de GraphRAG suele constar de dos procesos: indexación y consulta. 

    Indexación

    Este proceso incluye cuatro pasos clave: 

    1. Segmentación de unidades de texto: todo el corpus de entrada se divide en varias unidades de texto, los cuales pueden ser párrafos, oraciones u otras unidades lógicas. Al segmentar documentos extensos en fragmentos más pequeños, podemos extraer y conservar información más detallada sobre estos datos de entrada.  
    2. Extracción de entidades, relaciones y afirmaciones: utiliza LLM para identificar y extraer todas las entidades, sus relaciones y las afirmaciones clave expresadas en el texto de cada unidad. 
    3. Agrupamiento jerárquico: utiliza la técnica Leiden para realizar un agrupamiento jerárquico en los gráficos de conocimiento iniciales. Así, las entidades de cada grupo se asignan a diferentes comunidades para realizar un análisis más profundo.  
    4. Resumen de la generación de comunidad: genera resúmenes para cada comunidad (grupo de nodos dentro del gráfico conectados entre sí) y sus miembros utilizando un enfoque de abajo hacia arriba. Estos incluyen las principales entidades dentro de la comunidad, sus relaciones y afirmaciones clave.  

    Consulta

    Nos encontramos con dos flujos de trabajo de consulta diferentes diseñados para diferentes consultas: 

    • Búsqueda global: para razonar sobre cuestiones holísticas relacionadas con todo el corpus de datos aprovechando los resúmenes de la comunidad. Es la más recomendable cuando los usuarios hacen preguntas sobre entidades específicas e incluye las siguientes fases: 
      • Historial de consultas y conversaciones del usuario
      • Lotes de informes de la comunidad
      • Respuestas intermedias calificadas (RIR)
      • Clasificación y filtrado
      • Respuesta final
    • Búsqueda local: para razonar sobre entidades específicas mediante la difusión de sus vecinos y conceptos asociados: 
      • Consulta del usuario 
      • Búsqueda de entidades similares 
      • Mapeo de unidad de texto a entidad 
      • Extracción entidad-relación 
      • Mapeo entidad-covariable 
      • Mapeo de informes entidad-comunidad 
      • Utilización de historial de conversaciones 
      • Generación de respuesta 

    Ajuste automático de GraphRAG

    GraphRAG utiliza LLM para crear un gráfico de conocimiento integral que detalla las entidades y sus relaciones a partir de cualquier colección de documentos de texto. Este gráfico permite aprovechar la estructura semántica de los datos y generar respuestas a consultas complejas que requieren una comprensión amplia de todo el texto. 

    GraphRAG 1.0

    Microsoft lanzó la versión preliminar de GraphRAG en julio de 2024 y, desde entonces y gracias a la increíble acogida y colaboración de la comunidad, han ido mejorando el servicio; lo que ha culminado con el lanzamiento oficial de GraphRAG 1.0. 

    Las principales mejores tienen que ver con las refactorizaciones ergonómicas y la disponibilidad: 

    • Configuración más sencilla para nuevos proyectos: han reducido la fricción en la configuración agregando un comando que genera un archivo de configuración inicial simplificado con toda la configuración básica requerida ya establecida.  
    • Interfaz de comandos nueva y ampliada: han conseguido una mejor documentación en línea y experiencia CLI más completa, ofreciendo una experiencia más optimizada.  
    • Capa API consolidada: aún en fase provisional, está destinada a ser el punto de entrada principal para los desarrolladores que deseen integrar la funcionalidad de GrapRAG en sus propias aplicaciones sin una personalización profunda de la clase de consulta o canalización.  
    • Modelos de datos simplificado: GraphRAG crea varios artefactos de salida para almacenar el modelo de conocimiento indexado. Se han incorporado correcciones para agregar claridad y coherencia, eliminar campos redundantes o no utilizados, mejorar el espacio de almacenamiento y simplificar los modelos de datos.  
    • Tiendas de vectores optimizadas: las incrustaciones y sus almacenes de vectores son algunos de los principales impulsores de las necesidades de almacenamiento del modelo. Con la nueva actualización de la canalización, se ha creado un almacén de vectores predeterminado durante la indexación, por lo que no se necesita posprocesamiento, y la biblioteca de consultas comparte esta configuración para un uso sin inconvenientes.  
    • Estructura de código más plana y clara: se ha simplificado la base del código para que sea más fácil de mantener y más accesible para usuarios externos. Al reducir los flujos de trabajo, hay menos artefactos de salida sin usar, duplicación de datos reducida y menos operaciones de E/S de disco. También ha reducido la huella en memoria de la secuencia de comandos, lo que permite a los usuarios indexar y analizar conjuntos de datos más grandes con GraphRAG. 
    • Ingesta incremental: se ha incluido un nuevo comando de actualización en la CLI que calcula los deltas entre un índice existente y el contenido recién agregado y fusiona de manera inteligente las actualizaciones para minimizar la reindexación.  
    • Disponibilidad y migración: GraphRAG 1.0 ya está disponible en GitHub y publicado en PyPI, por lo que es recomendable migrar a esta versión, la cual ofrece una experiencia optimizada que incluye múltiples mejoras, tanto para usuarios como para desarrolladores.  

    Si quieres estar al día de las últimas novedades en IA y otras tecnologías, ¡suscríbete a nuestra newsletter!

    Elena Canorea

    Communications Lead