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.
- Crie incorporações para o seu próprio conhecimento como a memória de longo prazo.
- 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.
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.
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.