Ir al contenido
Experimentando con GraphRAG: Integración de grafos de conocimiento en canalizaciones RAG

Experimentando con GraphRAG: Integración de grafos de conocimiento en canalizaciones RAG

← Todos los Posts

Recientemente, mi equipo y yo hemos estado experimentando con la implementación de distintos aspectos de los pipelines GraphRAG y LazyGraphRAG de Microsoft. Estos enfoques ofrecen soluciones atractivas a algunas de las limitaciones de los sistemas de Generación Aumentada con Recuperación (RAG), sobre todo cuando las consultas requieren una comprensión de alto nivel de un corpus en lugar de limitarse a recuperar datos concretos. ## El desafío de RAG Un colega lo expresó bien: los modelos de lenguaje de gran tamaño (LLMs) son excelentes para el conocimiento general y las tareas de generación de lenguaje, pero carecen de conocimiento contextual sobre dominios específicos. Una de las principales vías para mitigar este problema es mediante técnicas como RAG, en las que se emplea búsqueda semántica u otros métodos afines para recuperar información relevante que ayude a responder la consulta. Durante mucho tiempo, cuando necesitaba añadir una base de conocimientos a un LLM, lo hacía del mismo modo en que construía pipelines de búsqueda semántica en varias empresas de comercio electrónico: utilizaba modelos, ya fuera de uso general o ajustados, para buscar en una base de datos vectorial, a veces complementados con herramientas que aportaban información más reciente. Estas técnicas han contribuido a mitigar los tipos de alucinación más graves que eran habituales cuando ChatGPT se popularizó. ¿Buscas una receta en particular? Podemos recuperar instancias de esa receta en nuestra base de datos para proporcionar al LLM el contexto adecuado y centrar su respuesta en conocimiento específico del dominio. ## Las limitaciones del RAG tradicional El RAG tradicional responde bien a preguntas directas y concretas, pero se resiente ante cuestiones más amplias y abstractas. Por ejemplo, al consultar un corpus de órdenes presidenciales: - Una consulta concreta como «¿Qué orden ejecutiva abordó la aplicación de la ley de inmigración en 2023?» funciona bien y recupera documentos y pasajes relevantes.

  • En cambio, preguntas globales como «¿Cuáles son los principales temas de todas las órdenes ejecutivas?» o «¿Cómo han evolucionado las prioridades políticas con el tiempo?» resultan poco satisfactorias. ¿Por qué sucede? El RAG tradicional busca documentos que “suenen” como la consulta. Tomemos la pregunta «¿Cuáles son los principales temas de todas las órdenes ejecutivas?» como ejemplo. Ese enfoque haría una búsqueda semántica en todo el corpus y recuperaría entidades que mencionen «grandes cambios en ICE» o «Major Sugi es ascendido». Luego resumiría ese conjunto sesgado. No hay resumen posterior capaz de arreglar esto, porque el modelo nunca vio todo el panorama conceptual desde el principio. Esta limitación se hace especialmente evidente cuando la tarea exige una comprensión holística de un gran corpus, que es justamente donde técnicas más recientes como GraphRAG de Microsoft entran en juego. ## GraphRAG: el enfoque basado en grafos de Microsoft GraphRAG de Microsoft, presentado en un artículo reciente, aprovecha grafos de conocimiento para la recuperación de información y, con ello, amplía la base de conocimientos de un LLM. A grandes rasgos, el enfoque es: 1. Tomar un corpus de datos (texto de internet, catálogos de productos, órdenes ejecutivas, etc.). 2. Usar un LLM para extraer de esos datos arbitrarios una estructura de grafo de conocimiento.
  1. Ejecutar algoritmos de detección de comunidades en el grafo para inferir agrupaciones de alto nivel. 4. Resumir cada comunidad a partir de los datos de todas las entidades y de sus entradas. 5. Cuando un usuario envía una consulta, utilizar la información a nivel de nodo y de comunidad para responder. La ventaja de este enfoque es que la información a nivel de comunidad agrupa nodos y las entradas asociadas a ellos, de modo que los LLMs deben realizar menos trabajo de agregación y pueden centrarse en la generación de texto mientras se apoyan en una mezcla de datos de nodos y comunidades. ## LazyGraphRAG: un enfoque más eficiente Tras GraphRAG, Microsoft lanzó LazyGraphRAG, que intenta minimizar el número de llamadas a los LLMs —una optimización sensata. El enfoque LazyGraphRAG: 1. Construir un pipeline RAG y realizar búsqueda semántica en el corpus. 2. Una vez identificado un subconjunto relevante del corpus, procesar ese subconjunto con un LLM para construir un grafo de conocimiento. 3. Detectar comunidades y generar resúmenes de cada comunidad para ese subconjunto. 4. Usar esas estructuras para RAG. Este método desplaza las llamadas a los LLMs hacia el final del pipeline, lo que supone una sobrecarga computacional en tiempo de consulta, ya que los grafos de conocimiento y los resúmenes de comunidad no se construyen hasta que el usuario lanza la petición. En cierto modo, resulta conceptualmente más sólido, pero también más costoso que el enfoque que hemos implementado. ## Nuestra implementación: un punto intermedio Para nuestras pruebas, hemos creado un enfoque híbrido que se sitúa entre los métodos originales de GraphRAG y LazyGraphRAG. Nuestro pipeline funciona así: 1. Fase de preprocesamiento: - Construimos el grafo de conocimiento por adelantado extrayendo entidades y relaciones del corpus. - Ejecutamos detección de comunidades para identificar agrupaciones de información relacionada y creamos resúmenes para cada comunidad.
  2. Procesamiento en tiempo de consulta: - Cuando un usuario plantea una pregunta, usamos búsqueda semántica para encontrar los nodos o las comunidades más relevantes. - Este enfoque focalizado nos permite extraer contexto de nuestro grafo precomputado sin procesar todo el conjunto de datos. ¿Por qué elegimos este enfoque? Ofrece varias ventajas: - Eficiencia: al realizar el trabajo computacional pesado por adelantado, reducimos la latencia en tiempo de consulta. - Lo mejor de ambos mundos: obtenemos la rica estructura de los grafos de conocimiento con la velocidad de la búsqueda semántica. - Rentable: a diferencia de GraphRAG, que procesa el conjunto de datos completo con LLMs, y de LazyGraphRAG, que construye los grafos sobre la marcha, nuestro enfoque reduce los costes operativos al equilibrar trabajo previo y rapidez de consulta. - Posibles desventajas: la principal es que generamos los resúmenes de comunidad con antelación, mientras que LazyGraphRAG difiere esa tarea hasta el momento de la consulta. Gracias a nuestra experiencia en la construcción de sistemas de búsqueda para comercio electrónico, entendimos que consultar todas las comunidades sería ineficiente. La búsqueda semántica nos permite acotar rápidamente la información relevante y garantiza que solo procesemos lo que importa para cada consulta. ## Experimentando con la construcción de grafos de conocimiento Una de las cosas más interesantes de trabajar con grafos de conocimiento es su flexibilidad. Como bromeaba un artículo que leí, carecen casi por completo de estructura: prácticamente cualquier cosa puede enmarcarse como un grafo. La visión artificial, por ejemplo, podría verse como un grafo 2D de imágenes organizadas por canales RGB. El lenguaje podría entenderse como un grafo direccional 1D, donde cada palabra enlaza con la siguiente. Si lo miras el tiempo suficiente, todo es un grafo… y, al mismo tiempo, nada lo es. En nuestro pipeline GraphRAG usamos LLMs para enriquecer los datos con atributos sin formato predefinido. En un catálogo de comercio electrónico, por ejemplo, extraemos color, estampado, estilo y tallas de un producto. Para órdenes ejecutivas, identificamos agencias pertinentes, áreas de política e individuos mencionados. Hemos obtenido buenos resultados tanto con grafos diseñados específicamente para cada dominio como con grafos más genéricos que abarcan distintos dominios. Esto nos aporta la flexibilidad necesaria para crear grafos de conocimiento arbitrarios según el caso de uso. ## Resultados y observaciones El RAG tradicional es bueno respondiendo consultas específicas, pero no ofrece suficiente contexto de alto nivel. Con nuestra implementación del pipeline GraphRAG hemos observado un rendimiento superior en consultas que requieren agregación y análisis de tendencias. Curiosamente, en todas estas formulaciones la estructura del grafo deja de utilizarse después de la detección de comunidades y los resúmenes. Por ahora esto es aceptable y es una de las razones por las que hemos experimentado con grafos de conocimiento más genéricos: nos permiten procesar un corpus arbitrario para un agente especializado en un dominio determinado. ## Conclusión y trabajo futuro Nuestra experimentación con GraphRAG y LazyGraphRAG demuestra que integrar grafos de conocimiento en pipelines RAG puede mejorar significativamente la capacidad de los LLMs para ofrecer tanto respuestas específicas como conclusiones de alto nivel basadas en datos agregados. Al construir el grafo de conocimiento por adelantado —mediante detección de comunidades y resumen— y luego apoyarnos en búsqueda semántica rápida en tiempo de consulta, obtenemos un sistema que entrega respuestas completas sin incurrir en el coste total de un procesamiento exhaustivo con LLMs. Este enfoque no solo aborda los desafíos inherentes a los sistemas RAG tradicionales, sino que también ofrece una solución escalable y rentable para una amplia gama de casos de uso. De cara al futuro, vemos un gran potencial en ampliar este enfoque: - Formulaciones de grafos mejoradas: a medida que refinemos nuestro método, esperamos desarrollar representaciones de grafos aún más sofisticadas que capturen no solo las relaciones estáticas entre entidades, sino también sus interacciones dinámicas a lo largo del tiempo. Esto será clave en dominios donde el contexto evoluciona con rapidez. - Integración profunda de estructuras de grafo: existe un amplio margen para aprovechar las Redes Neuronales de Grafos (GNN) e integrar de forma más profunda las estructuras de grafo en el proceso de razonamiento de los LLMs. Ya sea incorporando directamente las salidas de las GNN o inspirándonos en sistemas de recomendación como PinSage, los sistemas futuros podrían combinar estas perspectivas basadas en grafos para mejorar aún más la precisión y la relevancia. - Actualizaciones automáticas de grafos y análisis en tiempo real: las implementaciones futuras podrían centrarse en actualizar dinámicamente los grafos de conocimiento a medida que llegue nueva información, lo que permitiría un análisis en tiempo real y mantendría una comprensión continuamente actualizada del dominio subyacente. - Razonamiento híbrido y explicabilidad: al combinar la naturaleza estructurada de los grafos con las capacidades generativas de los LLMs, existe la oportunidad de crear sistemas que no solo generen respuestas más ricas, sino que también ofrezcan mayor transparencia al rastrear el razonamiento hasta comunidades o nodos específicos del grafo, aumentando así la confianza y la interpretabilidad de los usuarios. En resumen, nuestro trabajo representa un paso importante hacia sistemas más inteligentes y conscientes del contexto. Creemos que la combinación de representaciones de grafos estructurados con búsqueda semántica en pipelines RAG permitirá a los sistemas interpretar y representar con mayor precisión la información compleja e interconectada que define nuestro mundo.
4 posts · 8.723 words · ~43 min total read · 11 tags · hugo 0.148.2 · eb1f81b · built Feb 3 22:49
2389 Radio
2389 RADIO Select a station