- Un conjunto de pipelines de datos y transformaciones diseñado para usar las potentes capacidades de los LLM para extraer datos estructurados significativos a partir de texto no estructurado
- Un enfoque basado en grafos que permite preguntas y respuestas sobre conjuntos de datos nunca antes vistos
- Es una herramienta presentada en febrero, y ahora se libera como open source para ofrecer una recuperación de información más estructurada y una generación de respuestas más integral
Funciones principales
- Usa modelos de lenguaje grandes (LLM) para extraer automáticamente grafos de conocimiento ricos a partir de una colección de documentos de texto
- Este índice de datos basado en grafos puede representar la estructura semántica de los datos antes de la consulta del usuario
- Detecta de forma jerárquica las "comunidades" de nodos densamente conectados, dividiendo el grafo en múltiples niveles, desde temas de alto nivel hasta temas de bajo nivel
- Al usar un LLM para resumir cada una de estas comunidades, se genera un resumen jerárquico del conjunto de datos, lo que permite entenderlo sin necesidad de saber de antemano qué preguntas hacer
- Cada comunidad sirve como base para un resumen comunitario que describe sus entidades y relaciones
Ventajas para responder preguntas sobre todo el conjunto de datos
- ¿Cómo pueden estos "resúmenes comunitarios" ayudar con preguntas globales (preguntas sobre todo el conjunto de datos), un área donde el enfoque naive RAG basado en búsqueda vectorial se queda corto?
- Por ejemplo, preguntas como "¿Cuáles son los temas principales del conjunto de datos?" hacen que naive RAG tienda a dar respuestas engañosas
- Para responder preguntas globales, es necesario considerar todos los textos de entrada
- Los resúmenes comunitarios pueden responder este tipo de preguntas globales usando un enfoque de map-reduce que conserva todo el contenido relevante del contexto global de los datos:
- Agrupar los reportes comunitarios hasta el tamaño de la ventana de contexto del LLM
- Mapear la pregunta a cada grupo para generar respuestas comunitarias
- Reducir todas las respuestas comunitarias relevantes en una respuesta global final
Evaluación y resultados
- Para comparar este enfoque con naive RAG y con el resumen jerárquico de texto fuente, se usó el LLM GPT-4 para generar varias preguntas de sense-making centradas en actividades
- Para las respuestas generadas se eligieron 3 métricas de evaluación: comprehensiveness (cubre todos los aspectos en detalle), diversity (ofrece distintos puntos de vista), empowerment (apoya la toma de decisiones informadas)
- GraphRAG mostró un mejor desempeño que naive RAG en comprehensiveness y diversity (~70-80% de tasa de victoria)
- Además, GraphRAG mostró mejor desempeño que el resumen de texto fuente en estos aspectos, con menor costo de tokens al usar resúmenes comunitarios de nivel medio y bajo (~20-70% de uso de tokens por consulta)
- En el caso de las comunidades de más alto nivel, mostró un desempeño competitivo frente al resumen jerárquico de texto fuente, con un costo de tokens mucho menor (~2-3% de uso de tokens por consulta)
Hallazgos de investigación y dirección futura
- El ciclo inicial de investigación demostró que los LLM pueden derivar con éxito grafos de conocimiento ricos a partir de entradas de texto no estructurado
- Estos grafos pueden soportar nuevos tipos de consultas globales donde naive RAG no puede generar respuestas adecuadas y donde el resumen jerárquico de texto fuente resulta demasiado costoso
- Actualmente se están explorando varios enfoques para reducir estos costos manteniendo el costo inicial de generar el índice de grafos
- Trabajos recientes sobre el ajuste automático de prompts de extracción de LLM al dominio del problema son ejemplos de cómo reducir el trabajo previo necesario para personalizar estos prompts, enumerar tipos de entidades y crear ejemplos few-shot
- El objetivo es hacer que el enfoque RAG basado en grafos sea más accesible para usuarios y casos de uso donde es importante entender los datos de manera integral, al hacer GraphRAG y los aceleradores de solución disponibles públicamente
1 comentarios
Opiniones de Hacker News
El proyecto GraphRAG de Microsoft usa un método para construir grafos de conocimiento incluso sin bibliotecas modernas de extracción
Da mucho gusto que Microsoft haya publicado GraphRAG como código abierto
Se comparte un enlace para quienes buscan información más detallada sobre el método GraphRAG
El proyecto GraphRAG muestra que una base de datos vectorial puede ofrecer una solución RAG completa para consultas de búsqueda complejas
Los grafos de conocimiento no reemplazan la búsqueda semántica tradicional, pero sí aportan nuevas capacidades al hacer RAG
Si se entendió bien el paper, durante la indexación se ejecuta varias veces el LLM para extraer entidades y construir el índice del grafo
Se han hecho varios proyectos pequeños con grafos y LLM, y se ha confirmado que este enfoque funciona
Existe curiosidad sobre si esto está relacionado con el motor de consultas Knowledge Graph RAG de LlamaIndex
Resulta interesante que se haya elegido la guerra entre Rusia y Ucrania como ejemplo
Después de leer el paper, daban ganas de probar este proyecto