Desbloqueando o Poder dos Gráficos de Conhecimento: Explorando o Graph RAG para Melhorar a Geração Aumentada por Recuperação

Desbloqueie o poder dos grafos de conhecimento com o Graph RAG, um sistema revolucionário que combina grafos de conhecimento e Retrieval Augmented Generation (RAG) para melhorar a recuperação e a geração. Explore os detalhes técnicos, configure-o localmente e avalie as implicações de custo. Descubra como o Graph RAG aborda as limitações das abordagens RAG tradicionais.

16 de fevereiro de 2025

party-gif

Desbloqueie o poder dos grafos de conhecimento com o Graph RAG, um sistema revolucionário que combina os benefícios da Geração Aumentada por Recuperação (RAG) com a compreensão contextual dos grafos de conhecimento. Explore como essa abordagem inovadora pode aprimorar a geração de conteúdo e melhorar a precisão e a relevância de suas respostas, ao mesmo tempo em que obtém insights sobre as implicações de custo da execução do Graph RAG.

Descubra o Poder do Graph RAG: Melhorando a Geração Aumentada de Recuperação com Grafos de Conhecimento

O Graph RAG é um sistema revolucionário que combina grafos de conhecimento com Retrieval Augmented Generation (RAG) para abordar as limitações das abordagens tradicionais de RAG. Ao aproveitar os grafos de conhecimento, o Graph RAG fornece uma compreensão mais holística do corpus subjacente, permitindo respostas mais precisas e relevantes no contexto.

Os principais aspectos do Graph RAG incluem:

  1. Fase de Indexação: Durante essa fase, os documentos de origem são processados, e as entidades são extraídas e usadas para criar um grafo de conhecimento. O grafo de conhecimento representa os relacionamentos entre diferentes entidades, que são então usados para criar resumos em vários níveis de granularidade.

  2. Fase de Consulta: Quando uma consulta do usuário é fornecida, o Graph RAG seleciona o nível apropriado de comunidade (resumo) com base na consulta e recupera as informações relevantes. As respostas de várias comunidades são então combinadas para gerar a resposta final.

Entendendo o RAG Tradicional: Limitações e Motivações

O Retrieval Augmented Generation (RAG) tradicional é um método em que o modelo de linguagem recupera documentos relevantes de um grande corpus para gerar respostas mais precisas e relevantes no contexto. Essa abordagem envolve três etapas principais:

  1. Processamento e Incorporação de Documentos: Os documentos originais são divididos em pedaços menores usando uma estratégia de divisão. Em seguida, as incorporações são calculadas para cada pedaço e armazenadas em um armazenamento de vetores, que se torna a base de conhecimento.

  2. Fase de Consulta: Quando um usuário faz uma pergunta, as incorporações são calculadas para a consulta, e uma pesquisa de similaridade é realizada no armazenamento de vetores para recuperar os pedaços ou subdocumentos mais relevantes.

  3. Geração de Respostas: O contexto recuperado é combinado com a consulta original e enviado para um grande modelo de linguagem para gerar a resposta final.

Explorando os Detalhes Técnicos do Graph RAG

O Graph RAG é uma abordagem inovadora que combina grafos de conhecimento com Retrieval Augmented Generation (RAG) para abordar as limitações dos sistemas RAG tradicionais. As principais etapas envolvidas no processo do Graph RAG são as seguintes:

  1. Fase de Indexação:

    • Os documentos de origem são divididos em subdocumentos menores.
    • Dentro de cada pedaço, as entidades (como pessoas, lugares, empresas) são identificadas, e os relacionamentos entre essas entidades são extraídos.
    • Essas informações são usadas para criar um grafo de conhecimento, onde as entidades são representadas como nós, e os relacionamentos entre elas são representados como arestas.
    • O grafo de conhecimento é então usado para detectar comunidades, que são grupos de entidades intimamente relacionadas.
    • Resumos são criados para cada comunidade em diferentes níveis de detalhes, variando do global (de alto nível) ao local (mais granular).
  2. Fase de Consulta:

    • Quando uma consulta do usuário é recebida, o nível de comunidade apropriado (global, intermediário ou local) é selecionado com base no nível de detalhes necessário.
    • Os resumos das comunidades relevantes são recuperados, e essas respostas parciais são combinadas para gerar a resposta final.

Configurando o Graph RAG em sua Máquina Local

Para configurar o Graph RAG em sua máquina local, siga estas etapas:

  1. Crie um ambiente virtual Conda:

    conda create -n graphrag python=3.9
    conda activate graphrag
    
  2. Instale o pacote Graph RAG:

    pip install graphrag
    
  3. Crie um diretório para seus dados de teste:

    mkdir -p rag_test/input
    
  4. Baixe um conjunto de dados de amostra, como o texto de "A Christmas Carol" de Charles Dickens:

    python -m graphrag.index --root_dir rag_test/input --download_sample_data
    
  5. Configure suas variáveis de espaço de trabalho e configurações:

    python -m graphrag.index --root_dir rag_test/input --init_config
    

    Isso criará um arquivo settings.yml onde você pode configurar sua chave de API, modelo e outras configurações.

  6. Execute o processo de indexação para criar o grafo de conhecimento:

    python -m graphrag.index --root_dir rag_test/input
    

    Essa etapa pode levar algum tempo, pois envolve a extração de entidades, a identificação de relacionamentos e a criação de resumos da comunidade.

  7. Execute consultas de amostra:

    python -m graphrag.query --root_dir rag_test --method global --prompt "What are the main themes in this story?"
    python -m graphrag.query --root_dir rag_test --method local --prompt "What is the relationship between Scrooge and Bob Cratchit?"
    

    O método global recupera informações no nível mais alto, enquanto o método local se concentra em entidades específicas e seus relacionamentos.

Comparando as Implicações de Custo do Graph RAG e do RAG Tradicional

No exemplo fornecido, as implicações de custo do uso do Graph RAG foram significativas. O custo total do processamento do livro e da criação do Graph RAG chegou a cerca de $7, o que poderia ser proibitivamente caro para grandes corpora de dados.

Os principais fatores que contribuíram para o alto custo foram:

  1. Solicitações de API: A abordagem do Graph RAG fez um total de 570 solicitações por meio da API, principalmente para o modelo GPT-4. Em contraste, a abordagem RAG tradicional provavelmente teria um número menor de solicitações de API.

  2. Processamento de Tokens: O processo do Graph RAG envolveu o processamento de mais de 1 milhão de tokens, o que contribuiu para o custo geral.

Explorando Outras Soluções de Graph RAG: Um Mergulho Mais Profundo

Enquanto o GraphRAG da Microsoft é um sistema revolucionário, ele não é a única implementação da abordagem Graph RAG. Existem outras soluções notáveis que vale a pena explorar:

Lama Index's Knowledge Graph RAG Query Engine

O Lama Index, uma popular plataforma de gerenciamento de conhecimento de código aberto, desenvolveu sua própria implementação de um Knowledge Graph RAG Query Engine. Essa solução aproveita o poder dos grafos de conhecimento para melhorar as capacidades de recuperação e geração de grandes modelos de linguagem.

Neo4j's Graph RAG Package

O Neo4j, um dos principais fornecedores de bancos de dados de grafos, também introduziu um pacote Graph RAG. Essa solução integra os recursos de banco de dados de grafos do Neo4j com a técnica de Retrieval Augmented Generation (RAG).

Conclusão

Apesar das implicações de custo, o Graph RAG é uma abordagem inovadora que combina grafos de conhecimento com Retrieval Augmented Generation (RAG). Ele aborda algumas das limitações dos sistemas RAG tradicionais, como a compreensão contextual limitada e os problemas de escalabilidade.

A Microsoft não é a única empresa que implementou um sistema Graph RAG. Outras opções, como o Knowledge Graph RAG Query Engine do Lama Index e o pacote Graph RAG do Neo4j, também estão disponíveis. Se houver interesse, um conteúdo adicional comparando essas diferentes implementações pode ser criado.

No geral, o Graph RAG é uma tecnologia promissora, mas as implicações de custo precisam ser cuidadosamente consideradas ao decidir se você deve usá-lo em suas próprias aplicações.

Perguntas frequentes