Capítulo 2: Por que RAG? Problemas com LLMs Puros
Introdução
Modelos de Linguagem de Grande Porte como GPT-4, Claude e Llama são extremamente poderosos, mas possuem limitações fundamentais que os tornam inadequados para muitas aplicações empresariais sem algum tipo de complementação. Este capítulo explora essas limitações e mostra como o RAG resolve cada uma delas.
As Quatro Principais Limitações dos LLMs
1. Alucinações
O Problema: LLMs podem gerar informações falsas com confiança, que soam plausíveis. Eles são treinados para prever o próximo token, não para serem factualmente corretos.
Usuário: "Quem ganhou o Super Bowl de 2024?"
LLM (sem RAG): "O Kansas City Chiefs ganhou o Super Bowl de 2024,
derrotando o San Francisco 49ers por 25-22."
Mas e se isso estiver errado? O LLM não "sabe" - ele apenas prevê.
Por que isso acontece:
- LLMs são máquinas de probabilidade, não bancos de dados de fatos
- Os dados de treinamento contêm erros e contradições
- Não há mecanismo para verificar o conteúdo gerado
Solução com RAG:
# Com RAG, fundamentamos a resposta em fatos recuperados
retrieved_doc = "Super Bowl LVIII (2024): Kansas City Chiefs derrotou
San Francisco 49ers por 25-22 em 11 de fevereiro de 2024."
# Agora o LLM tem informações verificadas para referenciar
response = llm.generate(
f"Com base neste fato: {retrieved_doc}, responda à pergunta..."
)
2. Corte de Conhecimento
O Problema: LLMs possuem uma data de corte de conhecimento - eles não sabem sobre eventos ocorridos após a coleta dos dados de treinamento.
| Modelo | Corte de Conhecimento |
|---|---|
| GPT-4 | Setembro de 2023 |
| Claude 3 | Início de 2024 |
| Llama 2 | Julho de 2023 |
Impacto Real:
Usuário: "Qual o preço atual do Bitcoin?"
LLM (sem RAG): "Até o meu corte de conhecimento, o Bitcoin estava sendo negociado
em torno de $30.000..."
❌ Isso pode estar meses ou anos desatualizado!
Solução com RAG:
# Recupera dados atuais de uma fonte ao vivo
current_price = retrieve_from_api("bitcoin_price")
# Resultado: {"price": 97500, "timestamp": "2024-12-23"}
# Agora o LLM pode fornecer informações precisas e em tempo real
response = llm.generate(
f"O preço atual do Bitcoin é ${current_price['price']}..."
)
3. Sem Acesso a Dados Privados
O Problema: LLMs são treinados com dados públicos. Eles não têm conhecimento de:
- Documentos internos da sua empresa
- Dados privados de clientes
- Pesquisas proprietárias
- Políticas e procedimentos internos
Impacto nos Negócios:
Funcionário: "Qual é a nossa política de férias para funcionários com mais de 5 anos?"
LLM (sem RAG): "Não tenho acesso às políticas específicas da sua empresa..."
❌ O LLM é inútil para consultas internas!
Solução com RAG:
# Indexa documentos da empresa na base de conhecimento
knowledge_base.add_documents([
"Manual do Funcionário 2024.pdf",
"Políticas de RH.docx",
"Guia de Benefícios.pdf"
])
# Agora as consultas podem ser respondidas com dados privados
retrieved = knowledge_base.search("política de férias 5 anos de empresa")
# Retorna: "Funcionários com mais de 5 anos recebem 25 dias de PTO..."
response = llm.generate(f"Com base na política da empresa: {retrieved}...")
4. Limites de Tokens / Janelas de Contexto
O Problema: LLMs possuem janelas de contexto limitadas. Mesmo o GPT-4 com 128K tokens não consegue processar:
- Um banco de dados completo de contratos jurídicos
- Anos de tickets de suporte ao cliente
- Um código-fonte inteiro
Comparação de Janelas de Contexto:
| Modelo | Janela de Contexto | ~Páginas de Texto |
|---|---|---|
| GPT-3.5 | 4K tokens | ~3 páginas |
| GPT-4 | 8K-128K tokens | 6-100 páginas |
| Claude 3 | 200K tokens | ~150 páginas |
O Problema Matemático:
Sua base de conhecimento: 10.000 documentos
Documento médio: 5.000 tokens
Total: 50.000.000 tokens
Mesmo o contexto de 200K do Claude 3 comporta apenas 0,4% dos seus dados!
Solução com RAG:
# Em vez de carregar tudo, recupera apenas os documentos relevantes
def smart_retrieval(query, knowledge_base):
# Recupera apenas os 5 documentos mais relevantes
relevant_docs = knowledge_base.similarity_search(
query,
top_k=5 # ~25.000 tokens em vez de 50M
)
return relevant_docs
# Agora usamos a janela de contexto de forma eficiente
retrieved = smart_retrieval("política de férias", kb) # ~5 docs
response = llm.generate(f"Contexto: {retrieved}\n\nPergunta: ...")
Comparação Lado a Lado
Sem RAG
Problemas:
- Pode alucinar
- Limitado aos dados de treinamento
- Sem acesso a dados privados
- Risco de estouro de contexto
Com RAG
Benefícios:
- Fundamentado em fatos
- Informação em tempo real
- Acesso a dados privados
- Uso eficiente do contexto
Comparação de Custos
| Abordagem | Custo Mensal* | Precisão | Atualização |
|---|---|---|---|
| LLM Puro | $500 | 70-80% | Estático |
| RAG | $700 | 90-95% | Em tempo real |
| Fine-tuning | $5.000+ | 85-90% | Estático |
*Estimativa para uso empresarial com 10 mil consultas/dia
Quando o RAG Falha
RAG não é perfeito. Fique atento a estes cenários:
1. Falhas de Recuperação
Problema: Documentos errados recuperados
Exemplo: Usuário pergunta sobre "ação da Apple" mas recupera docs sobre maçãs (fruta)
Solução: Embeddings melhores, filtragem por metadados, busca híbrida
2. Mau Uso do Contexto
Problema: LLM ignora ou interpreta mal o contexto recuperado
Exemplo: Política recuperada diz "30 dias" mas o LLM responde "60 dias"
Solução: Prompts melhores, contexto menor, instruções explícitas
3. Base de Conhecimento Desatualizada
Problema: Base de conhecimento não está atualizada
Exemplo: Documentos têm 6 meses, informação está obsoleta
Solução: Sincronização regular, atualizações automáticas, indicadores de atualização
Tabela Resumo
| Problema | Impacto | Solução RAG |
|---|---|---|
| Alucinações | Informação falsa | Fundamentar em fatos recuperados |
| Corte de Conhecimento | Respostas desatualizadas | Conectar a dados recentes |
| Sem Dados Privados | Não responde consultas internas | Indexar docs da empresa |
| Limites de Tokens | Não processa grandes volumes | Recuperação inteligente |
Principais Lições
- LLMs possuem limitações fundamentais que impedem a adoção empresarial
- RAG resolve os maiores problemas: alucinações, corte de conhecimento, dados privados, escala
- RAG é mais econômico comparado ao fine-tuning
- RAG não é perfeito, mas traz melhorias significativas
- Entender as limitações ajuda a projetar sistemas melhores
Próximos Passos
Continue para o Capítulo 3: Arquitetura do RAG para aprender sobre as três fases do RAG.