Pular para o conteúdo principal

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​

AspectoRAGFine-Tuning
Atualização de dadosEm tempo realRequer novo treinamento
CustoMenorMaior
Melhor paraConhecimento dinâmicoMudanças comportamentais
TransparênciaPode citar fontesCaixa preta
Complexidade de configuraçãoModeradaMaior

RAG vs Prompt Engineering​

AspectoRAGPrompt Engineering
Tamanho do contextoPode lidar com grandes bases de conhecimentoLimitado pela janela de contexto
PrecisãoMaior para consultas factuaisDepende do conhecimento do modelo
Caso de usoTarefas intensivas em conhecimentoTarefas 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​

TermoDefinição
RetrievalProcesso de encontrar documentos relevantes
AugmentationAdição do contexto recuperado ao prompt
GenerationLLM produzindo uma resposta
Knowledge BaseColeção de documentos para busca
EmbeddingRepresentação vetorial de texto
Semantic SearchBusca 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.