Este é o segundo artigo da série sobre GraphRAG. Acesse o primeiro artigo clicando aqui.
Dois Tipos de Representação do Conhecimento – Vetores e Grafos
O núcleo do RAG típico – pesquisa vetorial – processa um pedaço de texto como entrada e retorna texto conceitualmente semelhante a partir de um banco de dados vetorial. Isso é agradavelmente automático e muito útil para diversas tarefas.
O que você talvez não pense toda vez que fizer isso é a aparência de um vetor ou o que o cálculo de similaridade está fazendo. Vejamos uma maçã em termos humanos, termos vetoriais e termos de grafos:
A representação humana é complexa e multidimensional e não é algo que possamos captar totalmente no papel. Vamos conceder alguma licença poética e imaginar que esta imagem lindamente tentadora representa uma maçã em toda a sua glória perceptiva e conceitual.
A representação vetorial da maçã é uma matriz de números – uma construção do domínio estatístico. A magia dos vetores é que cada um deles captura a essência do texto correspondente em forma codificada. No entanto, em um contexto RAG, eles só são valiosos quando você precisa identificar o quão semelhante um punhado de palavras é a outro.
Fazer isso é tão simples quanto executar um cálculo de similaridade (também conhecido como matemática vetorial) e obter uma correspondência.
No entanto, se você quiser entender o que está dentro de um vetor, entender o que está ao seu redor, entender as coisas representadas em seu texto ou entender como qualquer uma delas se encaixa em um contexto mais amplo, então os vetores como representação simplesmente não são capazes de fazer isso.
Os grafos de conhecimento, por outro lado, são representações declarativas – ou em termos de IA, simbólicas – do mundo. Como resultado, tanto humanos quanto máquinas podem compreender e raciocinar com base em grafos de conhecimento. Além disso, você pode consultar, visualizar, anotar, corrigir e aumentar grafos de conhecimento. Um grafo de conhecimento representa o seu modelo – a parte do mundo que representa o domínio com o qual você está trabalhando.
GraphRAG x RAG
Não é uma competição 🙂.
Consultas vetoriais e de grafos agregam valor ao RAG. Conforme apontado pelo fundador do LlamaIndex, Jerry Liu, é útil pensar no GraphRAG como grafos incluindo vetores. Isso é diferente do “RAG somente vetorial”, que é estritamente baseado na semelhança com embeddings baseadas em palavras no texto.
Fundamentalmente, GraphRAG é RAG, onde o caminho de recuperação inclui um grafo de conhecimento. Como você pode ver abaixo, o padrão principal do GraphRAG é simples. É basicamente a mesma arquitetura do RAG com vetores, mas com um gráfico de conhecimento inserido na imagem.
Padrão GraphRAGNa imagem acima, você vê uma consulta baseada em grafo sendo acionada. Opcionalmente, pode incluir um componente de similaridade vetorial. Você pode optar por armazenar seus grafos e vetores separadamente em dois bancos de dados distintos ou usar um banco de dados de grafos como o Neo4j, que também suporta pesquisa vetorial.
Um dos padrões comuns para usar GraphRAG é o seguinte:
- Faça uma pesquisa vetorial ou por palavra-chave para encontrar um conjunto inicial de nós.
- Percorra o grafo para trazer de volta informações sobre nós relacionados.
- Opcionalmente, reclassifique os documentos usando um algoritmo de classificação baseado em grafo, como o PageRank.
Os padrões variam de acordo com o caso de uso e, como tudo em Inteligência Artificial hoje, o GraphRAG está provando ser um espaço rico, com novas descobertas surgindo a cada semana.
Ciclo de Vida do GraphRAG
Um aplicativo de IA Generativa que usa GraphRAG segue o mesmo padrão de qualquer aplicativo RAG, com uma etapa adicional de “criar grafo” no início:
Criar um grafo é análogo a agrupar documentos e carregá-los em um banco de dados vetorial. Os avanços nas ferramentas tornaram a criação de grafos literalmente muito fácil. A boa notícia é tripla:
1- Os grafos são altamente iterativos – você pode começar com um “grafo mínimo viável” e expandir a partir daí.
2- Uma vez que seus dados estão em um grafo de conhecimento, fica muito fácil evoluir. Você pode adicionar mais tipos de dados para colher os benefícios dos efeitos da rede de dados. Você também pode melhorar a qualidade dos dados para aumentar o valor dos resultados da sua aplicação.
3- Esta parte da pilha está melhorando rapidamente, o que significa que a criação de grafos só ficará mais fácil à medida que as ferramentas se tornarem mais sofisticadas.
Adicionar a etapa de criação do grafo à imagem anterior fornece um pipeline semelhante a este:
Vamos falar sobre os benefícios do GraphRAG no próximo artigo.
David Matos
Referências:
IA Generativa e LLMs Para Processamento de Linguagem Natural
The GraphRAG Manifesto: Adding Knowledge to GenAI
GraphRAG: A New Approach for Question & Answering on Private Data