Utilizando o Neo4j Graph Database para Inteligência Artificial no Azure.

Novas técnicas tornam os bancos de dados de gráficos uma ferramenta poderosa para incorporar grandes modelos de linguagem em dados confidenciais.

Após a empolgação inicial com os chatbots, percebemos que a inteligência artificial generativa é valiosa, pois possibilita a interação com aplicações e serviços por meio de linguagem natural. Ao integrar nossos modelos de linguagem a fontes de dados específicas, conseguimos contornar os desafios associados ao uso exclusivo de dados de treinamento.
Apesar de ser viável personalizar um LLM para conjuntos de dados específicos, o processo pode ser dispendioso e demorado, além de limitar sua aplicação a um período determinado. Para obter respostas precisas e rápidas, é recomendado utilizar a geração aumentada de recuperação (RAG) ao lidar com os dados.
Essencial: o centro dos Copilots da Microsoft
As redes neurais subjacentes ao poder do LLM são essencialmente motores de busca vetorial avançados que extrapolam trajetórias de vetores semânticos em um espaço de várias dimensões, onde a complexidade do modelo aumenta com a dimensão. Portanto, ao utilizar o RAG, é necessário possuir uma representação vetorial dos dados que possa criar prompts e também fornecer os vetores usados para gerar a saída de um LLM. É por isso que essa técnica é fundamental para impulsionar os diversos Copilots da Microsoft.
Já abordei essas estratégias anteriormente, mencionando o Azure AI Studio Prompt Flow, a estrutura de agente inteligente Microsoft Semantic Kernel, o impulso Open AI-powered da Plataforma de Energia em seu Q e A Maker Copilot Studio, entre outros. Em todas essas estratégias, é essencial incluir um banco de dados vetorial em suas aplicações. Esse recurso permite utilizar as ferramentas de incorporação usadas por um LLM para criar vetores de texto a fim de acelerar a pesquisa e fornecer as informações necessárias para guiar um fluxo de trabalho RAG. Ao mesmo tempo, o RAG e abordagens similares garantem a segurança dos dados corporativos, mantendo-os nos servidores e protegidos contra acesso não autorizado por meio de controles baseados em funções.
Enquanto a Microsoft continua a incluir recursos de pesquisa vetorial e índice de vetores em seus próprios bancos de dados, e também suporta lojas de vetores de terceiros no Azure, uma tecnologia de banco de dados fundamental está ausente na narrativa do RAG. Estes bancos de dados em falta são os bancos de dados de grafos, uma abordagem NoSQL que oferece uma maneira simples de representar seus dados de forma vetorial, com a vantagem adicional de codificar relacionamentos nos vértices que conectam os nós de grafos que armazenam seus dados.
Incluindo imagens no Azure AI usando Neo4j
Bases de dados visuais, como essa, não devem ser confundidas com o Microsoft Graph. Embora usem um modelo de nó para consultas, não o fazem para inferir relações entre os nós. Essas bases de dados são mais sofisticadas e, embora possam ser consultadas usando GraphQL, possuem um processo de consulta mais complexo, envolvendo ferramentas como o motor de consulta Gremlin.
Uma das plataformas de banco de dados em grafo mais populares, o Neo4j, recentemente lançou suporte para sua versão empresarial, Aura, no Azure. Disponível no Azure Marketplace, esta versão SaaS facilita o acesso aos dados sem a necessidade de configurações complexas. Existem duas opções de memória disponíveis, garantindo que as instâncias estejam sempre acessíveis quando necessário. Embora não seja uma opção econômica, o Neo4j simplifica o trabalho com grandes volumes de dados, poupando tempo ao lidar com grandes conjuntos de dados na nuvem.
Desenvolvendo representações visuais para analisar as informações de seus dados.
O Neo4j se destaca pelo conceito de gráfico de conhecimento, que transforma informações não estruturadas em nós de um gráfico organizado. Isso permite visualizar facilmente conexões entre diferentes conjuntos de dados, como um manual de produtos e a lista de materiais utilizados na fabricação. Em vez de identificar apenas uma peça para substituição, a abordagem do gráfico de dependência fornece uma visão completa das interações e dos passos necessários para realizar a correção.
Uma ferramenta como o Neo4j pode ser utilizada em conjunto com um grande conjunto de dados, como o Microsoft’s Fabric, oferecendo uma abordagem adicional para construir as fontes de informação de um aplicativo RAG. Com a ferramenta de visualização de gráficos inclusa no Neo4j, é possível explorar as complexidades dos conjuntos de dados, identificando os links entre as informações e obtendo uma visualização mais flexível e compreensível dos dados.
Um ponto relevante a destacar sobre um gráfico de conhecimento é a possibilidade de filtrar as informações não necessárias para sua aplicação, utilizando as relações do próprio gráfico. Isso simplifica a análise e agiliza a busca, ao limitar os resultados aos relacionamentos específicos e, assim, diminuir as chances de erros na saída do LLM.
Uma possibilidade interessante é a utilização de LLMs para auxiliar na criação desses diagramas de conhecimento. As ferramentas de resumo de informação conseguem identificar entidades específicas no banco de dados de diagramas e, depois, fornecem os links necessários para estabelecer conexões entre elas. Essa abordagem permite expandir de forma rápida os modelos de dados já existentes nos diagramas, tornando-os mais úteis em aplicativos com inteligência artificial. Além disso, é possível utilizar as APIs do Azure Open AI para adicionar um conjunto de incorporações aos dados, permitindo explorar os dados por meio de pesquisa vetorial em um fluxo de trabalho com LangChain ou Kernel Semantic.
Utilizando gráficos na inteligência artificial: GraphRAG
A verdadeira vantagem de utilizar um banco de dados de gráficos em conjunto com um extenso modelo de linguagem se destaca com uma nova abordagem conhecida como GraphRAG, derivada do já conhecido RAG. Criado pela Microsoft Research, o GraphRAG utiliza gráficos de conhecimento para aprimorar a análise de dados privados, superando as limitações de um método RAG convencional ao empregar o gráfico de conhecimento para conectar informações relacionadas e produzir respostas mais complexas.
Uma consideração importante ao lidar com grandes volumes de dados confidenciais usando um LLM é a extensão da janela de contexto. É oneroso computacionalmente utilizar a quantidade de tokens necessária para fornecer muitos dados como parte de uma solicitação. É necessário adotar uma abordagem RAG para superar essa limitação, e o GraphRAG vai além, possibilitando oferecer um contexto muito mais amplo em torno da sua consulta.
A pesquisa GraphRAG original utiliza um banco de dados de notícias, que não é analisado de maneira eficaz por um RAG convencional. No entanto, ao utilizar um gráfico de conhecimento, é mais simples extrair entidades e relacionamentos das fontes, possibilitando que o aplicativo selecione e resuma histórias de notícias que incluem os termos de pesquisa. Isso permite fornecer muito mais contexto ao LLM. A estrutura do banco de dados do gráfico naturalmente agrupa entidades semânticas semelhantes e fornece um contexto mais profundo nas relações codificadas nos vértices entre esses nós.
Em vez de buscar palavras semelhantes como em um mecanismo de busca convencional, o GraphRAG possibilita a obtenção de informações de todo o conjunto de dados em uso, seja transcrições de chamadas de suporte ou todos os documentos ligados a um projeto específico.
Apesar de a pesquisa inicial empregar automação para criar e organizar o gráfico de conhecimento, existe a possibilidade de utilizar o Neo4j no Microsoft Fabric para lidar com grandes conjuntos de dados, permitindo a visualização dos dados para que cientistas de dados e analistas de negócios possam desenvolver seus próprios conjuntos, o que pode facilitar a criação de aplicativos GraphRAG que sejam orientados tanto pelo que é relevante para a empresa quanto pelos padrões subjacentes nos dados.
Ter acesso a um banco de dados de gráficos como Neo4j no Azure Marketplace oferece uma ferramenta que auxilia na compreensão e visualização das relações nos dados, de maneira a ser útil tanto para humanos quanto para máquinas. Ao integrá-lo com a Fabric, é possível desenvolver aplicações em larga escala que utilizam o conhecimento de contexto e a tecnologia LLM, permitindo obter insights mais profundos dos dados de forma que as abordagens convencionais possam não capturar. Será interessante observar se a Microsoft irá adotar o GraphRAG em sua própria ferramenta Prompt Flow LLM.