- Um pipeline de dados e conjunto de transformações projetados para extrair dados estruturados significativos de texto não estruturado usando os poderosos recursos dos LLMs
- Uma abordagem baseada em grafos que possibilita perguntas e respostas sobre conjuntos de dados nunca vistos antes
- Ferramenta apresentada em fevereiro, agora disponibilizada como open source para oferecer recuperação de informação mais estruturada e geração de respostas mais abrangentes
Principais recursos
- Usa modelos de linguagem de grande porte (LLMs) para extrair automaticamente grafos de conhecimento ricos de coleções de documentos de texto
- Esse índice de dados baseado em grafos pode relatar a estrutura semântica dos dados antes mesmo da consulta do usuário
- Detecta "comunidades" de nós densamente conectados de forma hierárquica, dividindo o grafo em múltiplos níveis, de tópicos de alto nível a tópicos de baixo nível
- Ao usar LLMs para resumir cada uma dessas comunidades, gera-se um resumo hierárquico do conjunto de dados, permitindo compreendê-lo sem precisar saber antecipadamente quais perguntas fazer
- Cada comunidade serve como base para um resumo comunitário que descreve suas entidades e relações
Vantagens nas respostas a perguntas sobre o conjunto de dados inteiro
- Como esses "resumos comunitários" podem ajudar em perguntas globais (perguntas sobre o conjunto de dados inteiro), nas quais a abordagem naive RAG baseada em busca vetorial é insuficiente?
- Por exemplo, perguntas como "Quais são os principais temas do conjunto de dados?" fazem com que o naive RAG frequentemente forneça respostas enganosas
- Para responder a perguntas globais, é preciso considerar todos os textos de entrada
- Os resumos comunitários podem responder a essas perguntas globais usando uma abordagem map-reduce que preserva todo o conteúdo relevante do contexto global dos dados:
- Agrupar os relatórios das comunidades até o tamanho da janela de contexto do LLM
- Mapear a pergunta para cada grupo para gerar respostas da comunidade
- Reduzir todas as respostas comunitárias relevantes em uma resposta global final
Avaliação e resultados
- Para comparar essa abordagem com naive RAG e com o resumo hierárquico do texto-fonte, foram geradas várias perguntas de sense-making centradas em atividade usando o LLM GPT-4
- Para avaliar as respostas geradas, foram escolhidas 3 métricas: comprehensiveness (cobertura detalhada de todos os aspectos), diversity (oferta de diferentes perspectivas) e empowerment (apoio à tomada de decisão informada)
- O GraphRAG apresentou desempenho superior ao naive RAG em comprehensiveness e diversity (~70-80% de taxa de vitória)
- Além disso, o GraphRAG mostrou desempenho melhor do que o resumo do texto-fonte nesses aspectos, com menor custo de tokens ao usar resumos comunitários de nível intermediário e baixo (~20-70% do uso de tokens por consulta)
- No caso das comunidades de mais alto nível, mostrou desempenho competitivo com o resumo hierárquico do texto-fonte, com custo de tokens muito menor (~2-3% do uso de tokens por consulta)
Insights de pesquisa e direções futuras
- O ciclo inicial de pesquisa demonstrou que LLMs conseguem derivar com sucesso grafos de conhecimento ricos a partir de entradas de texto não estruturado
- Esses grafos podem dar suporte a novos tipos de consultas globais, para as quais o naive RAG não consegue gerar respostas adequadas e o resumo hierárquico do texto-fonte é caro demais
- Atualmente, estão sendo exploradas várias abordagens para reduzir esses custos, mantendo o custo inicial de geração do índice em grafo
- Trabalhos recentes sobre ajuste automático de prompts de extração de LLM ao domínio do problema são um exemplo de como reduzir o trabalho prévio necessário para personalizar esses prompts, enumerar tipos de entidades e criar exemplos few-shot
- O objetivo é tornar a abordagem RAG baseada em grafos mais acessível para usuários e casos de uso em que compreender os dados de forma holística é importante, ao disponibilizar publicamente o GraphRAG e aceleradores de solução
1 comentários
Opiniões do Hacker News
O projeto GraphRAG da Microsoft usa uma forma de construir grafos de conhecimento sem bibliotecas modernas de extração
Fiquei muito feliz que a Microsoft tenha lançado o GraphRAG como open source
Compartilha um link para quem está procurando informações mais detalhadas sobre o método GraphRAG
O projeto GraphRAG mostra que bancos de dados vetoriais podem oferecer uma solução RAG completa para consultas de busca complexas
Grafos de conhecimento não substituem a busca semântica tradicional, mas oferecem novas capacidades ao executar RAG
Se entendi o artigo corretamente, no momento da indexação o LLM é executado várias vezes para extrair entidades e construir o índice do grafo
Venho trabalhando em vários projetos pequenos usando grafos e LLMs, e confirmei que essa abordagem funciona
Pergunta se isso tem relação com o mecanismo de consulta Knowledge Graph RAG Query da LlamaIndex
É interessante que a guerra Rússia-Ucrânia tenha sido escolhida como exemplo
Depois de ler o artigo, quis experimentar este projeto