Saltar para o conteúdo principal
Versão: 2.0.0

Nós Gaia com conhecimentos a longo prazo

A aplicação LLM requer memórias de longo e de curto prazo. A memória de longo prazo inclui conhecimentos factuais, factos históricos, histórias de fundo, etc. É preferível acrescentá-los ao contexto sob a forma de capítulos completos, em vez de pequenos pedaços de texto, para manter a coerência interna dos conhecimentos.

RAG é uma técnica importante para injetar conhecimento contextual numa aplicação LLM. Melhora a exatidão e reduz a alucinação das LLMs. Uma aplicação RAG eficaz combina a memória de curto prazo em tempo real e específica do utilizador (pedaços) com a memória de longo prazo estável (capítulos) no contexto do pedido.

Uma vez que a memória de longo prazo da aplicação é estável (ou mesmo imutável), empacotamo-la numa base de dados vetorial fortemente acoplada ao LLM. A aplicação cliente reúne a memória de curto prazo no prompt e é complementada com a memória de longo prazo no servidor LLM. Chamamos a esta abordagem "RAG do lado do servidor".

A longa duração do contexto suportada pelos LLMs modernos é especialmente adequada para conhecimentos de longo prazo que são melhor representados por capítulos de texto.

Um nó Gaia é um serviço LLM compatível com OpenAI que se baseia em conhecimentos de longo prazo do lado do servidor. A aplicação cliente pode simplesmente conversar com ele ou fornecer memória em tempo real/curto prazo, uma vez que o LLM já tem conhecimento do domínio ou do contexto.

Por exemplo, se perguntar ao ChatGPT o que é a Camada 2, a resposta é que a Camada 2 é um conceito da rede de computadores. No entanto, se perguntar a um especialista em blockchain, ele responde que a camada 2 é uma forma de escalar a rede Ethereum original. Essa é a diferença entre um LLM genérico e LLMs com conhecimento suplementar.

Abordaremos a preparação do conhecimento externo e a forma como um LLM complementado com conhecimento completa uma conversa. Se já aprendeu como funciona uma aplicação RAG, vá a Construir uma aplicação RAG com Gaia para começar a construir uma.

  1. Crie incorporações para o seu próprio conhecimento como a memória de longo prazo.
  2. Ciclo de vida de uma consulta do utilizador num LLM complementado com conhecimento.

Para esta solução, utilizaremos

  • um modelo de conversação como o Llama-3-8B para gerar respostas ao utilizador.
  • um modelo de incorporação de texto como o nomic-embed-text para criar e recuperar incorporações.
  • um banco de dados vetorial como o Qdrant para armazenar os embeddings.

Fluxo de trabalho para criar incorporações de conhecimentos

O primeiro passo é criar embeddings para a nossa base de conhecimentos e armazenar os embeddings num vetor DB.

criar-embedding

Em primeiro lugar, dividimos o texto longo em secções (ou seja, pedaços). Todos os LLMs têm um comprimento máximo de contexto. O modelo não consegue ler o contexto se o texto for demasiado longo. A regra mais utilizada para um nó Gaia é juntar o conteúdo de um capítulo. Não se esqueça de inserir uma linha em branco entre dois blocos. Também podes utilizar outros algoritmos para dividir o teu texto em pedaços.

Depois de dividir o documento em pedaços, podemos converter esses pedaços em ligações, tirando partido do modelo de ligação. O modelo de incorporação é treinado para criar incorporações com base no texto e procurar incorporações semelhantes. Utilizaremos esta última função no processo de consulta do utilizador.

Além disso, precisaremos de uma base de dados vetorial para armazenar os embeddings, de modo a podermos recuperá-los rapidamente em qualquer altura.

Num nó Gaia, obteremos um instantâneo da base de dados com os embeddings a utilizar finalmente. Veja como criar os seus embeddings utilizando a ferramenta Web Gaia, a partir de um ficheiro de texto simples e de um ficheiro markdown.

Ciclo de vida de uma consulta do utilizador numa LLM complementada com conhecimento

Em seguida, vamos conhecer o ciclo de vida de uma consulta do utilizador numa LLM complementada com conhecimento. Tomaremos como exemplo um nó Gaia com conhecimento Gaia.

utilizador-query-rag

Fazer uma pergunta

quando enviar uma pergunta em linguagem humana para o nó, o modelo de incorporação converterá primeiro a sua pergunta em incorporação.

Obter incorporações semelhantes

Em seguida, o modelo de incorporação procurará todas as incorporações armazenadas no vetor Qdrant DB e recuperará as incorporações que são semelhantes às incorporações da pergunta.

Resposta à consulta do utilizador

O nó de incorporação devolverá as incorporações recuperadas ao modelo de conversação. O modelo de conversação utilizará os embeddings recuperados e as suas perguntas de entrada como contexto para responder finalmente às suas perguntas.