GraphRAG (PT)

From Systems analysis Wiki
Jump to navigation Jump to search

GraphRAG é um paradigma avançado de Retrieval-Augmented Generation (RAG) que, em vez da busca tradicional por fragmentos de texto dispersos (chunks), utiliza um grafo de conhecimento (Knowledge Graph, KG)[1]. A estrutura de grafo representa explicitamente as conexões entre entidades e a hierarquia de conceitos de um domínio, permitindo que LLMs realizem extração de conhecimento lógico em múltiplos passos e formulem respostas mais contextualizadas e explicáveis[2].

A abordagem GraphRAG demonstra uma vantagem significativa sobre o RAG clássico ao lidar com consultas complexas e de múltiplos passos (multi-hop), nas quais a resposta depende da combinação de vários fatos distribuídos por diferentes documentos[3].

Limitações do RAG clássico e as vantagens do grafo

O RAG clássico, baseado em busca vetorial sobre texto não estruturado, enfrenta várias limitações fundamentais que se tornam críticas em cenários corporativos complexos:

  • Ausência de conexões estruturais: O RAG tradicional processa chunks de texto como unidades isoladas e não percebe as conexões explícitas entre eles. Isso o torna ineficaz para consultas multi-hop, onde a resposta exige percorrer uma cadeia de fatos (A→B→C), mas a busca encontra apenas os elos inicial e final (A e C), omitindo os intermediários[1].
  • Ambiguidade semântica: Em domínios altamente especializados (medicina, direito, engenharia), os termos possuem significados específicos. A busca vetorial, ao capturar o tema geral, pode interpretar incorretamente o papel de um objeto específico, levando à recuperação de contexto irrelevante.
  • Explicabilidade limitada: O RAG clássico fornece fragmentos de documentos, mas não evidências explícitas de como esses fragmentos se conectam em uma cadeia lógica. O GraphRAG, por outro lado, torna esse processo transparente, fornecendo o caminho no grafo como prova e exigindo que as afirmações sejam vinculadas a fontes (citação)[4].

GraphRAG resolve esses problemas ao representar o conhecimento como uma rede de entidades e relações conectadas, o que permite ao sistema não apenas encontrar texto semelhante, mas também realizar inferências lógicas com base em um modelo formalizado do domínio de conhecimento.

Arquitetura do GraphRAG

O pipeline geral do GraphRAG expande o RAG clássico, adicionando etapas para a construção e utilização de um grafo de conhecimento. Ele é dividido em duas fases principais: preparação offline e processamento de consultas online.

Etapa 1: Ingestão e indexação (offline)

Nesta etapa, os dados brutos (documentos, bancos de dados) são transformados em duas representações complementares: uma baseada em grafo e outra vetorial.

  1. Extração de conhecimento: Fatos estruturados são extraídos dos textos por meio de um pipeline de PLN:
    • Named Entity Recognition (NER): Identificação de menções a entidades (pessoas, organizações, produtos).
    • Entity Linking (EL): Vinculação de menções a identificadores canônicos no grafo para resolver ambiguidades (por exemplo, "João S." e "J. Silva" se tornam um único nó)[5].
    • Relation Extraction (RE): Identificação de relações entre entidades (por exemplo, Empresa XadquiriuStartup Y).
  2. Modelagem e armazenamento do grafo: As triplas extraídas (sujeito-predicado-objeto) são carregadas em um banco de dados de grafo. A escolha do modelo (Property Graph ou RDF) depende da tarefa. É crucial armazenar a proveniência (provenance) de cada fato — um link para o documento e o fragmento de texto original[3]. Metadados sobre tempo (valid_from/valid_to) e confiança (confidence) também podem ser adicionados ao grafo.
  3. Indexação híbrida: Paralelamente ao grafo, é criado um índice vetorial para os fragmentos de texto originais. Isso permite combinar a busca estruturada no grafo com a busca semântica no texto.

Etapa 2: Processamento da consulta e geração da resposta (online)

  1. Análise da consulta: A consulta do usuário é analisada para extrair entidades-chave, que servem como "pontos de entrada" no grafo.
  2. Extração de subgrafo: Em vez de buscar chunks individuais, o GraphRAG encontra um subgrafo relevante — uma porção conectada do grafo em torno dos "pontos de entrada" que contém informações para a resposta. Para isso, são utilizados algoritmos como a travessia k-hop ou o Personalized PageRank (PPR)[6].
  3. Busca híbrida e fusão de resultados: Paralelamente à extração do subgrafo, é realizada uma busca no índice vetorial e/ou lexical (BM25). Os resultados do grafo e do texto são combinados e passados para a próxima etapa.
  4. Rerranking (Re-ranking): A lista combinada de candidatos (nós do grafo e chunks de texto) é reclassificada usando um modelo mais preciso (por exemplo, um cross-encoder) para selecionar as informações mais relevantes. Isso ajuda a filtrar o ruído e a aumentar a precisão[7].
  5. Empacotamento do contexto e geração: O contexto selecionado e reclassificado (subgrafo e textos) é convertido em um formato compreensível para o LLM (por exemplo, uma lista de afirmações com indicação das fontes). Esse contexto enriquecido é fornecido no prompt para a geração da resposta final.
  6. Rastreabilidade e citação: Graças à conexão "fato ↔ fonte" no grafo, a resposta gerada contém links precisos para os documentos que comprovam cada tese. Isso garante alta fundamentação e transparência.

Tabela comparativa de componentes

Análise comparativa dos componentes-chave da arquitetura GraphRAG
Componente/Aspecto Variantes de implementação Vantagens Desvantagens/Riscos Quando é preferível
Modelo do grafo de conhecimento RDF/OWL Ontologia rigorosa, inferências lógicas (reasoning), compatibilidade com Linked Open Data. Complexo para armazenar atributos de relações (tempo, fonte) sem entidades adicionais (reification). Domínios semanticamente ricos com ontologias existentes; necessidade de dedução.
Property Graph (Neo4j, etc.) Flexibilidade, propriedades arbitrárias em nós/arestas, alto desempenho. Exige um esquema claro definido manualmente ou há risco de "desordem"; sem padrão unificado. Início rápido com dados não estruturados; integração com documentos (banco de dados multimodal).
Extração de subgrafo k‑hop BFS / DFS Cobre todos os nós até a profundidade k, simples de implementar. "Explosão" do grafo: crescimento exponencial do número de nós; pode retornar muito ruído. Grafos pequenos ou travessia com profundidade de 1–2; estruturas hierárquicas.
Personalized PageRank (PPR) Foca em nós realmente conectados, filtrando o ruído[6]. Pode omitir um nó distante, mas importante (se houver poucos caminhos, mas ele for crítico). Redes complexas com muitos caminhos (grafo social, grafo de citações).
Busca híbrida Lista combinada (fusão escalar com peso λ) Ajustar os pesos λ permite balancear precisão/recall para a tarefa específica[8]. Um λ fixo não é ideal para todos os tipos de consulta. Na fase de prototipagem; quando se sabe que uma fonte é inerentemente mais importante.
Cross‑encoder rerank Aumento significativo na precisão; capacidade de considerar interdependências complexas. Aumenta a latência; requer dados para treinamento ou o uso de modelos pré-treinados[7]. Cenários de alta precisão (direito, medicina), onde o contexto mais relevante é crucial.
Segurança dos dados Filtragem de subgrafo (RBAC/ABAC) Controle granular (até o nível do nó) impede vazamentos. "Zonas cegas": se um nó importante for removido, a resposta pode ficar incompleta. Em ambientes corporativos com requisitos rigorosos de acesso (PII, GDPR, segredos comerciais).

Rastreabilidade, confiança e segurança

Uma das principais vantagens do GraphRAG é a capacidade de apresentar cadeias de evidência transparentes. Em vez de uma resposta de "caixa-preta", o sistema pode mostrar o caminho do raciocínio: "O fato A é mencionado em [doc1]. Ele está ligado ao fato B em [doc2], e B, de acordo com [doc3], leva a C", o que aumenta a confiança do usuário e simplifica a depuração.

Além disso, a estrutura de grafo permite implementar um controle de acesso granular (RBAC/ABAC). Cada nó ou aresta no grafo pode ter um rótulo de acesso. Ao extrair o subgrafo, o sistema filtra automaticamente os dados aos quais o usuário não tem permissão, garantindo a segurança em domínios sensíveis (finanças, RH, medicina).

Avaliação de qualidade

A avaliação de um sistema GraphRAG é multifacetada e inclui métricas para cada componente:

  • Métricas de extração de conhecimento: F1-score para NER e RE, para avaliar a qualidade da construção do grafo.
  • Métricas de extração de subgrafo: Subgraph Recall@K (proporção de casos em que os nós/arestas necessários para a resposta foram incluídos no subgrafo extraído) e Path Precision/Recall para questões multi-hop.
  • Métricas da resposta do LLM:
    • Faithfulness / Groundedness: até que ponto a resposta se baseia estritamente no contexto fornecido.
    • Avaliação humana: avaliação por especialistas com base em critérios de correção, completude e coerência.

Para automatizar a avaliação, são utilizados benchmarks especializados (por exemplo, WebQuestionsSP, GrailQA) e frameworks (como o RAGAS)[9].

Ver também

  • Retrieval-Augmented Generation (RAG)
  • Grafo de conhecimento
  • Banco de dados vetorial
  • Embedding
  • Agente de IA
  • Avaliação e benchmarks de LLM

Literatura

  • Zhang, Q. et al. (2025). A Survey of Graph Retrieval‑Augmented Generation for Customized Large Language Models. arXiv:2501.13958.
  • Xu, Z. et al. (2024). Retrieval‑Augmented Generation with Knowledge Graphs for Customer Service Question Answering. arXiv:2404.17723.
  • Hu, Y. et al. (2024). GRAG: Graph Retrieval‑Augmented Generation. arXiv:2405.16506.
  • Nakano, R. et al. (2021). WebGPT: Browser‑assisted Question‑Answering with Human Feedback. arXiv:2112.09332.
  • Yang, R. et al. (2025). KG‑IRAG: A Knowledge Graph‑Based Iterative Retrieval‑Augmented Generation Framework for Temporal Reasoning. arXiv:2503.14234.
  • Song, Y. et al. (2023). Advancements in Complex Knowledge Graph Question Answering: A Survey. DOI:10.3390/electronics12214395.
  • Nogueira, R.; Cho, K. (2019). Passage Re‑ranking with BERT. arXiv:1901.04085.
  • Hsu, H.‑L.; Tzeng, J. (2025). DAT: Dynamic Alpha Tuning for Hybrid Retrieval in Retrieval‑Augmented Generation. arXiv:2503.23013.
  • Lewis, P. et al. (2020). Retrieval‑Augmented Generation for Knowledge‑Intensive NLP Tasks. arXiv:2005.11401.
  • Karpukhin, V. et al. (2020). Dense Passage Retrieval for Open‑Domain Question Answering. arXiv:2004.04906.
  • Sun, H. et al. (2018). Open‑Domain Question Answering Using Early Fusion of Knowledge Bases and Text (GRAFT‑Net). arXiv:1809.00782.
  • Sun, H.; Bedrax‑Weiss, T.; Cohen, W. W. (2019). PullNet: Open‑Domain Question Answering with Iterative Retrieval on Knowledge Bases and Text. arXiv:1904.09537.
  • He, X. et al. (2024). G‑Retriever: Retrieval‑Augmented Generation for Textual Graph Understanding and Question Answering. arXiv:2402.07630.
  • Es, S.; James, J.; Espinosa‑Anke, L.; Schockaert, S. (2024). RAGAs: Automated Evaluation of Retrieval Augmented Generation. ACL:2024.eacl-demo.16.

Notas

  1. 1.0 1.1 Zhang, Q., et al. A Survey of Graph Retrieval-Augmented Generation for Customized Large Language Models. arXiv, 2025. arXiv:2501.13958.
  2. Xu, Z., et al. Retrieval-Augmented Generation with Knowledge Graphs for Customer Service Question Answering. SIGIR, 2024. arXiv:2404.17723; DOI: 10.1145/3626772.3661370.
  3. 3.0 3.1 Hu, Y., et al. GRAG: Graph Retrieval‑Augmented Generation. arXiv, 2024. arXiv:2405.16506; também em Findings of NAACL 2025: ACL Anthology.
  4. Nakano, R., et al. WebGPT: Browser‑assisted question‑answering with human feedback. arXiv, 2021. arXiv:2112.09332.
  5. Yang, R., et al. KG‑IRAG: A Knowledge Graph‑Based Iterative Retrieval‑Augmented Generation Framework for Temporal Reasoning. arXiv, 2025. arXiv:2503.14234.
  6. 6.0 6.1 Song, Y., Li, W., Dai, G., Shang, X. Advancements in Complex Knowledge Graph Question Answering: A Survey. Electronics, 2023. DOI: 10.3390/electronics12214395.
  7. 7.0 7.1 Nogueira, R., Cho, K. Passage Re‑ranking with BERT. arXiv, 2019. arXiv:1901.04085.
  8. Hsu, H.‑L.; Tzeng, J. DAT: Dynamic Alpha Tuning for Hybrid Retrieval in Retrieval‑Augmented Generation. arXiv, 2025. arXiv:2503.23013.
  9. Es, S.; James, J.; Espinosa Anke, L.; Schockaert, S. RAGAs: Automated Evaluation of Retrieval Augmented Generation. EACL (System Demonstrations), 2024. ACL:2024.eacl-demo.16; também preprint: arXiv:2309.15217.