Pular para o conteúdo principal

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.

ModeloCorte de Conhecimento
GPT-4Setembro de 2023
Claude 3Início de 2024
Llama 2Julho 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:

ModeloJanela de Contexto~Páginas de Texto
GPT-3.54K tokens~3 páginas
GPT-48K-128K tokens6-100 páginas
Claude 3200K 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​

AbordagemCusto Mensal*PrecisãoAtualização
LLM Puro$50070-80%Estático
RAG$70090-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​

ProblemaImpactoSolução RAG
AlucinaçõesInformação falsaFundamentar em fatos recuperados
Corte de ConhecimentoRespostas desatualizadasConectar a dados recentes
Sem Dados PrivadosNão responde consultas internasIndexar docs da empresa
Limites de TokensNão processa grandes volumesRecuperação inteligente

Principais Lições​

  1. LLMs possuem limitações fundamentais que impedem a adoção empresarial
  2. RAG resolve os maiores problemas: alucinações, corte de conhecimento, dados privados, escala
  3. RAG é mais econômico comparado ao fine-tuning
  4. RAG não é perfeito, mas traz melhorias significativas
  5. 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.