Guias

O que é RAG? Geração aumentada por recuperação explicada de forma simples

O RAG (retrieval-augmented generation, ou geração aumentada por recuperação) é uma forma de fazer com que um modelo de IA responda a perguntas usando as tuas próprias informações. Quando alguém faz uma pergunta, a tua app pesquisa primeiro nos teus documentos as passagens mais relevantes e depois entrega essas passagens ao modelo juntamente com a pergunta. O modelo escreve a resposta a partir desse texto, em vez de depender apenas do que aprendeu durante o treino.

Porque é que o RAG importa quando crias com IA

Um grande modelo de linguagem sabe muito sobre o mundo em geral, mas nada sobre o teu negócio: os teus preços, as tuas políticas, o manual do produto, os pedidos de apoio da semana passada. Além disso, tem uma data de corte no treino, por isso não conhece nada de recente. Se lhe perguntares, pode produzir uma resposta confiante, plausível e errada.

Tens três opções gerais para resolver isso:

AbordagemO que fazIndicada para
Colocar tudo no promptEnviar todos os documentos com cada perguntaPouco texto, algumas páginas
RAGPesquisar nos documentos e enviar apenas as partes relevantesColeções grandes ou em mudança: centros de apoio, manuais, notas
Fine-tuningTreinar o modelo com mais exemplosTom, formato e tarefas repetidas, não factos que mudam

Os modelos atuais aceitam prompts longos, por isso, para um FAQ curto, a primeira opção costuma servir. O RAG justifica-se quando tens mais texto do que queres enviar sempre, porque cada palavra que envias custa dinheiro e tempo (vê como são cobradas as APIs de LLM).

Se estás a criar uma funcionalidade de «conversar com a nossa documentação», um assistente de apoio ou uma ferramenta interna de conhecimento, quase de certeza que estás a criar alguma forma de RAG.

Uma analogia do dia a dia

Imagina um exame de consulta. Um aluno que tem de responder de memória pode trocar detalhes ou inventar. Um aluno que pode folhear primeiro as páginas certas, lê-las e só depois responder é muito mais fiável, desde que encontre as páginas certas.

  • O aluno é o modelo de linguagem.
  • O manual são os teus documentos.
  • Folhear as páginas certas é a recuperação.
  • Escrever a resposta a partir dessas páginas é a geração.

O RAG é a versão de consulta. E, como no exame, a qualidade da resposta depende muito de as páginas certas terem sido encontradas.

Como funciona o RAG, passo a passo

Uma configuração típica de RAG tem duas fases.

Preparar os teus documentos (feito com antecedência):

  1. Recolher o material de origem: artigos de apoio, PDF, políticas, dados de produtos.
  2. Fragmentar (chunk): dividir os documentos longos em pedaços mais pequenos, muitas vezes de alguns parágrafos cada, para que a pesquisa devolva apenas a parte relevante.
  3. Criar embeddings de cada fragmento: enviá-lo para um modelo de embeddings, que transforma o texto num embedding, uma longa lista de números que capta o seu significado. Textos sobre temas parecidos ficam com números parecidos.
  4. Guardar os fragmentos e os respetivos embeddings numa base de dados que pesquise por semelhança (muitas vezes chamada base de dados vetorial ou índice vetorial).

Responder a uma pergunta (feito sempre):

  1. Criar o embedding da pergunta com o mesmo modelo de embeddings.
  2. Recuperar os fragmentos cujos embeddings estão mais próximos do da pergunta, por exemplo os cinco primeiros.
  3. Construir o prompt: instruções, os fragmentos recuperados e a pergunta.
  4. Gerar: o modelo de linguagem escreve uma resposta com base nesses fragmentos, idealmente indicando quais usou.

Pesquisar pelo significado é o que faz isto funcionar: uma pergunta sobre «recuperar o meu dinheiro» pode encontrar um fragmento intitulado «Política de reembolso», mesmo sem partilharem nenhuma palavra.

Um exemplo prático: o assistente de apoio de um ginásio

Suponhamos que um ginásio tem 40 artigos de apoio e quer um assistente de chat no seu site. Um sócio pergunta: «Posso congelar a minha inscrição enquanto estou em viagem?»

A app cria o embedding da pergunta e recupera os três fragmentos mais próximos. Um deles diz:

Congelamento de inscrição: Os sócios com planos mensais podem congelar
a inscrição até 2 meses por ano. Pedem-no na receção ou na app
pelo menos 7 dias antes do início do congelamento.

O prompt enviado ao modelo fica mais ou menos assim:

És o assistente de apoio do Ginásio Northside.
Responde apenas com base nas fontes abaixo. Se a resposta não estiver
nelas, diz que não sabes e sugere contactar a receção.
Indica qual fonte usaste.

[Fonte 1: Congelamento de inscrição] Os sócios com planos mensais...
[Fonte 2: Cancelar a inscrição] ...
[Fonte 3: Passes de convidado] ...

Pergunta: Posso congelar a minha inscrição enquanto estou em viagem?

E o modelo responde: «Sim — num plano mensal podes congelar a inscrição até dois meses por ano. Pede-o na receção ou na app com pelo menos 7 dias de antecedência (fonte: Congelamento de inscrição).»

O ginásio não treinou nada. Quando altera a política de congelamento, atualiza o artigo, a app volta a criar o embedding desse fragmento e a resposta seguinte já reflete a alteração.

Termos-chave

TermoSignificado
LLMLarge language model (grande modelo de linguagem): a IA que escreve a resposta. Vê o que é um LLM.
EmbeddingUma lista de números que representa o significado de um texto.
Modelo de embeddingsUm modelo que produz embeddings. Normalmente é separado do modelo de chat e muito mais barato.
Fragmento (chunk)Um pedaço de documento, com um tamanho que permite ser recuperado sozinho.
Base de dados vetorial / pesquisa vetorialArmazenamento que encontra itens com embeddings semelhantes. Algumas bases de dados normais também a oferecem, como o Postgres através da extensão pgvector.
Top-kQuantos fragmentos são recuperados por pergunta.
Pesquisa híbridaCombinar a pesquisa por significado com a pesquisa normal por palavras-chave, o que ajuda com termos exatos como códigos de produto.
Janela de contextoA quantidade máxima de texto que um modelo consegue receber num único pedido.
Fundamentação / citaçõesLigar a resposta a fontes específicas recuperadas e mostrá-las.

Erros comuns e ideias erradas

  • «O RAG treina o modelo com os meus dados.» Não treina. Nada no modelo muda; ele apenas lê texto adicional no momento da pergunta.
  • «O RAG significa que não há mais alucinações.» Significa que há menos. Se a recuperação falhar o fragmento certo, ou se a resposta não estiver nos teus documentos, o modelo pode continuar a adivinhar. Instrui-o a dizer «não sei» e testa com perguntas cuja resposta conheces.
  • «Preciso de uma base de dados vetorial especial.» Muitas vezes não precisas. Para quantidades moderadas de dados, uma extensão vetorial na base de dados que já tens, ou mesmo uma pesquisa simples por palavras-chave, pode bastar.
  • «Fragmentos maiores são melhores.» Se forem grandes demais, envias muito texto irrelevante (mais custo, mais confusão); se forem pequenos demais, um fragmento perde o contexto que lhe dava significado. Conta com ajustes.
  • «Basta carregar tudo.» Documentos desatualizados, duplicados ou contraditórios produzem respostas contraditórias. Limpar o material de origem é muitas vezes a melhoria mais importante que podes fazer.
  • «Qualquer pessoa pode ver qualquer documento.» Só acontece se o construíres assim. Se alguns documentos forem privados para certos utilizadores, a própria pesquisa tem de filtrar por quem está a perguntar, caso contrário o assistente pode citar os dados de um cliente a outro.

Quanto custa

Uma funcionalidade de RAG tem normalmente três custos recorrentes: criar embeddings dos documentos (pequeno e quase sempre pontual), criar o embedding de cada pergunta (mínimo) e a chamada ao modelo de linguagem (o custo principal, que cresce com o número de fragmentos enviados). A isto soma-se o armazenamento na tua base de dados. O teu fornecedor de IA cobra estes valores na tua própria conta, por isso define um limite de gastos lá.

O que pedir ao teu criador de apps com IA

  • «Antes de construir RAG, verifica: o nosso conteúdo é suficientemente pequeno para o incluir simplesmente no prompt?»
  • «Divide os artigos de apoio em fragmentos de alguns parágrafos, guarda o título e o link da fonte de cada fragmento e armazena os embeddings na nossa base de dados.»
  • «Usa pesquisa híbrida (por significado mais palavras-chave) para que os códigos de produto continuem a corresponder.»
  • «Diz ao modelo para responder apenas com base nas fontes recuperadas, para avisar quando não sabe e para mostrar as fontes por baixo de cada resposta.»
  • «Pesquisa apenas nos documentos que o utilizador autenticado tem permissão para ver.»
  • «Volta a criar o embedding de um documento automaticamente sempre que for editado.»
  • «Guarda a chave do fornecedor de IA no servidor, num segredo, nunca no browser.»
  • «Regista cada pergunta, os fragmentos recuperados e a resposta, para eu poder rever as respostas más.»

RAG na Mythex

A Mythex não inclui um produto pronto de base de conhecimento ou de RAG. O que faz é escrever o código de um dentro da tua app: tu trazes os teus documentos e a tua própria chave do fornecedor de IA, guardada como segredo do projeto, e o agente constrói as partes de recuperação e de chat, usando a base de dados Postgres do projeto para armazenamento. O uso do fornecedor de IA é faturado na tua conta desse fornecedor, não em créditos da Mythex. A documentação sugere começar com uma funcionalidade de IA simples e acrescentar RAG depois de ela funcionar. Vê criar uma app de IA e os nossos guias sobre como criar uma app de chatbot com IA e como adicionar funcionalidades de IA à tua app.

Perguntas

O que é RAG, em termos simples?

RAG (retrieval-augmented generation, ou geração aumentada por recuperação) é uma forma de fazer com que um modelo de IA responda com base nas tuas próprias informações. Antes de o modelo responder, a tua app pesquisa os teus documentos pelas passagens mais relevantes para a pergunta e inclui-as no prompt, para que a resposta se baseie nesse texto e não apenas no que o modelo aprendeu durante o treino.

O RAG treina a IA com os meus dados?

Não. O RAG não altera o modelo de forma alguma. Procura o texto relevante no momento em que a pergunta é feita e envia-o ao modelo juntamente com a pergunta. Se atualizares um documento, a resposta seguinte pode usar logo a nova versão.

O RAG é o mesmo que fine-tuning?

Não. O fine-tuning altera o comportamento de um modelo ao treiná-lo com mais exemplos, o que é mais lento e melhor para estilo ou formato. O RAG dá ao modelo factos para ler no momento da pergunta, o que é melhor para conhecimento que muda ou que tem de ser citado com exatidão.

O RAG acaba com as alucinações da IA?

Reduz as alucinações, mas não as elimina. Se a pesquisa encontrar as passagens erradas, ou se a resposta não estiver nos teus documentos, o modelo pode continuar a adivinhar. As boas apps de RAG dizem ao modelo que avise quando não sabe e mostram as fontes que usou.

Mythex · Pricing · Crie qualquer coisa com IA · Modelos de sites e apps · Mythex comparado · Glossário de criação de apps com IA · Ferramentas grátis para criar apps com IA · English

English አማርኛ العربية Български বাংলা Bosanski Català Čeština Dansk Deutsch Ελληνικά Español Español (España) Eesti فارسی Suomi Français Français (Canada) ગુજરાતી हिन्दी Hrvatski Magyar Հայերեն Bahasa Indonesia Íslenska Italiano 日本語 ქართული Қазақ тілі ಕನ್ನಡ 한국어 Lietuvių Latviešu Македонски മലയാളം Монгол मराठी Bahasa Melayu မြန်မာ Norsk bokmål Nederlands ਪੰਜਾਬੀ Polski Português (Brasil) Română Русский Slovenčina Slovenščina Soomaali Shqip Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 简体中文 繁體中文(香港) 繁體中文(台灣)