O que é geração aumentada por recuperação (RAG)?

Central de aprendizado4 min de leitura

Geração aumentada por recuperação, geralmente abreviada como RAG (do inglês retrieval-augmented generation), é uma forma de usar um modelo de linguagem em que documentos relevantes são recuperados primeiro e o modelo escreve sua resposta a partir deles. A etapa de recuperação acontece quando a pergunta chega, então o modelo consegue responder sobre coisas que nunca viu durante o treinamento: as notícias de ontem ou uma página de produto publicada na semana passada.

O termo vem de um artigo de 2020 de Patrick Lewis e colegas do Facebook AI Research, que combinaram um sistema de recuperação com um modelo generativo e mostraram que a dupla respondia perguntas factuais melhor do que o modelo sozinho. Desde então, a ideia se tornou o design padrão para chat sobre documentos, bots de atendimento ao cliente e, em escala de web, busca com IA.

Por que a RAG existe?

Um grande modelo de linguagem sozinho tem dois limites. Seu conhecimento termina na data dos dados de treinamento, e ele viu pouco texto sobre temas raros ou novos. Quando perguntado sobre qualquer um deles, tende a produzir uma resposta fluente com um fato errado no meio.

Retreinar o modelo todos os dias não é prático. Colocar o texto relevante diante do modelo no momento da pergunta é. Se o prompt contém o parágrafo que responde à pergunta, o modelo só precisa lê-lo e reformulá-lo, uma tarefa que ele executa de forma confiável. A RAG também torna as citações possíveis: como o sistema sabe quais trechos entregou ao modelo, ele pode mostrar ao leitor de onde veio cada afirmação.

Como a RAG funciona?

Um sistema de RAG tem uma parte offline, que prepara os documentos, e uma parte online, que roda a cada pergunta.

Indexação

Os documentos são coletados e divididos em trechos, uma etapa chamada chunking. Um trecho normalmente é um parágrafo ou uma seção, com algumas centenas de tokens. Cada trecho é armazenado com um índice de palavras-chave e, na maioria dos sistemas, um embedding: uma lista de números que posiciona o trecho em um espaço onde textos com significado parecido ficam próximos uns dos outros.

Recuperação

Quando chega uma pergunta, o sistema a transforma em uma ou mais consultas de busca e procura trechos candidatos. A busca por palavras-chave encontra trechos que compartilham termos com a consulta. A busca vetorial encontra trechos cujos embeddings estão próximos do embedding da consulta, o que captura correspondências que usam palavras diferentes para a mesma ideia. A maioria dos sistemas em produção usa as duas, uma combinação chamada busca híbrida.

A primeira passada geralmente retorna mais trechos do que o modelo consegue ler. Um reranker então avalia cada candidato em relação à pergunta com mais cuidado e mantém os melhores.

Geração

Os trechos selecionados são colocados no prompt junto com a pergunta e instruções como "responda apenas com base nas fontes abaixo e cite-as". O modelo escreve a resposta. Se o sistema registra de qual trecho cada frase foi tirada, ele pode anexar uma citação a ela.

O índice é montado uma vez, com antecedência. A recuperação, o reranking e a escrita rodam de novo a cada pergunta, e o modelo só lê o que a recuperação entrega a ele.

O que torna uma resposta de RAG boa ou ruim?

A maioria das falhas acontece antes de o modelo escrever uma palavra. Se a etapa de recuperação retorna trechos fora do tema, desatualizados ou sem o fato que responde à pergunta, o modelo não tem nada de bom com que trabalhar. Ele vai dizer que não consegue responder ou, pior, preencher a lacuna com seus dados de treinamento.

Três coisas determinam a qualidade da recuperação. O índice precisa conter os documentos certos. Os trechos precisam ser cortados de modo que cada um faça sentido sozinho. E a pontuação precisa preferir trechos que respondem à pergunta a trechos que apenas mencionam suas palavras. Como a busca com IA escolhe quais fontes citar analisa o que essa pontuação recompensa.

O que a RAG significa para um site?

Os produtos de busca com IA são sistemas de RAG cuja coleção de documentos é a web. Cada decisão de design descrita acima tem uma consequência para as páginas que eles leem.

Como a recuperação funciona por trechos, uma página é avaliada seção por seção. Uma seção que começa com uma resposta direta e se mantém em um único tema é fácil de recuperar e fácil de citar. Uma seção que depende de contexto de outra parte da página não é.

Os embeddings correspondem ao significado, não à redação exata, então uma página não precisa repetir a formulação da pergunta. Ela precisa, sim, dizer a coisa com clareza. O modelo só lê o que o recuperador retorna, então uma página que não pode ser rastreada ou indexada fica totalmente fora do sistema, por mais bem escrita que seja.

Teste grátis por 14 dias
e receba seu relatório de IA