Capítulo 1: O que é RAG?
Introdução
Retrieval-Augmented Generation (RAG) é uma técnica que aprimora os Large Language Models (LLMs) fornecendo informações relevantes recuperadas de fontes externas de conhecimento. Em vez de depender apenas dos dados de treinamento do modelo, sistemas RAG buscam documentos relevantes e os utilizam para gerar respostas mais precisas, atualizadas e contextualmente relevantes.
O Conceito Central
Pense em RAG como uma prova com consulta:
- Sem RAG (Livro Fechado): O LLM responde às perguntas usando apenas o que memorizou durante o treinamento
- Com RAG (Livro Aberto): O LLM pode buscar informações relevantes antes de responder
Etimologia e História
O termo "Retrieval-Augmented Generation" foi criado por Lewis et al. em seu artigo de 2020 "Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks".
Principais marcos:
- 2020: Artigo original sobre RAG publicado pelo Facebook AI Research
- 2021: Melhorias em Dense Passage Retrieval (DPR)
- 2022: Bancos de dados vetoriais se tornam mainstream
- 2023: LangChain e LlamaIndex popularizam pipelines RAG
- 2024: Técnicas avançadas de RAG (HyDE, Multi-Query, etc.)
RAG vs Outras Abordagens
RAG vs Fine-Tuning
| Aspecto | RAG | Fine-Tuning |
|---|---|---|
| Atualização de dados | Em tempo real | Requer novo treinamento |
| Custo | Menor | Maior |
| Melhor para | Conhecimento dinâmico | Mudanças comportamentais |
| Transparência | Pode citar fontes | Caixa preta |
| Complexidade de configuração | Moderada | Maior |
RAG vs Prompt Engineering
| Aspecto | RAG | Prompt Engineering |
|---|---|---|
| Tamanho do contexto | Pode lidar com grandes bases de conhecimento | Limitado pela janela de contexto |
| Precisão | Maior para consultas factuais | Depende do conhecimento do modelo |
| Caso de uso | Tarefas intensivas em conhecimento | Tarefas gerais |
Os Dois Componentes
1. Retriever
O retriever é responsável por encontrar informações relevantes:
# Simplified retriever concept
def retrieve(query, knowledge_base, top_k=5):
"""
Find the most relevant documents for a query
"""
# Convert query to embedding
query_embedding = embed(query)
# Search knowledge base
results = knowledge_base.similarity_search(
query_embedding,
top_k=top_k
)
return results
2. Generator
O generator utiliza o contexto recuperado para produzir respostas:
# Simplified generator concept
def generate(query, retrieved_docs, llm):
"""
Generate a response using retrieved context
"""
# Build prompt with context
context = "\n".join([doc.content for doc in retrieved_docs])
prompt = f"""Based on the following context, answer the question.
Context:
{context}
Question: {query}
Answer:"""
# Generate response
response = llm.generate(prompt)
return response
Analogia com o Mundo Real
Imagine que você é um agente de suporte ao cliente:
Sem RAG:
Você responde às perguntas de memória, podendo fornecer informações desatualizadas ou incorretas.
Com RAG:
Antes de responder, você busca rapidamente na base de conhecimento da empresa, encontra o documento de política relevante e fornece uma resposta precisa com referência.
Quando Usar RAG
RAG é ideal quando você precisa de:
✅ Informações atualizadas - Documentos da empresa, notícias, pesquisas
✅ Conhecimento específico de domínio - Documentos médicos, jurídicos, técnicos
✅ Atribuição de fonte - Citar de onde veio a informação
✅ Acesso a dados privados - Informações internas da empresa
✅ Redução de alucinações - Respostas fundamentadas em fatos
RAG pode não ser a melhor escolha quando:
❌ Escrita criativa - Poesia, ficção, brainstorming
❌ Conversas gerais - Bate-papo casual não precisa de recuperação
❌ Mudanças comportamentais - Ensinar um novo estilo ao modelo (use fine-tuning)
Aplicações na Indústria
Suporte ao Cliente
Usuário: "Qual é a política de devolução para eletrônicos?"
RAG: Recupera a política de devolução atual → Gera resposta precisa
Pesquisa Jurídica
Usuário: "Encontre jurisprudência sobre propriedade intelectual em software"
RAG: Recupera casos relevantes → Resume as conclusões
Informação Médica
Usuário: "Quais são os efeitos colaterais do medicamento X?"
RAG: Recupera documentos da FDA → Fornece lista precisa
Busca Corporativa
Usuário: "O que foi discutido na reunião do conselho do último trimestre?"
RAG: Recupera a ata da reunião → Resume os principais pontos
Terminologia Chave
| Termo | Definição |
|---|---|
| Retrieval | Processo de encontrar documentos relevantes |
| Augmentation | Adição do contexto recuperado ao prompt |
| Generation | LLM produzindo uma resposta |
| Knowledge Base | Coleção de documentos para busca |
| Embedding | Representação vetorial de texto |
| Semantic Search | Busca de documentos por significado, não por palavras-chave |
Resumo
- RAG combina recuperação e geração para melhores respostas de IA
- Resolve limitações importantes dos LLMs como conhecimento desatualizado e alucinações
- Dois componentes principais: Retriever (encontra docs) + Generator (produz resposta)
- Ideal para tarefas intensivas em conhecimento que exigem precisão e citações
- Diferente de fine-tuning - RAG é para conhecimento, fine-tuning para comportamento
Próximos Passos
Continue para Capítulo 2: Por que RAG? para entender os problemas específicos que o RAG resolve.