Pressione Esc para fechar

RAG Avançado - Corrective RAG

← Voltar para o Dia 6: RAG avançado

Corrective RAG

O que é

Corrective RAG, também chamado de CRAG, é uma abordagem de RAG que adiciona uma etapa de avaliação e correção dos resultados recuperados antes de gerar a resposta final.

Em um RAG tradicional, o sistema recupera documentos e normalmente passa os resultados para o LLM:

Pergunta
↓
Retrieval
↓
Documentos
↓
Contexto
↓
LLM
↓
Resposta

O problema é que o Retrieval pode retornar documentos pouco relevantes, incompletos ou até não encontrar informação suficiente.

O Corrective RAG introduz um mecanismo para avaliar os resultados:

Pergunta
↓
Retrieval
↓
Avaliação dos documentos
↓
Os resultados são suficientes?
├── Sim → geração da resposta
└── Não → correção / nova busca

A ideia central é que o sistema não deve assumir que o Retrieval acertou.

Ele verifica a qualidade das evidências recuperadas e, quando necessário, tenta corrigir o processo.

Como funciona

Um fluxo simplificado de Corrective RAG pode ser representado assim:

Consulta
↓
Retrieval
↓
Documentos recuperados
↓
Avaliação da relevância
↓
Classificação
├── Relevante
├── Irrelevante
└── Incerto
       ↓
Correção
       ↓
Nova busca / Web Search / Query Reformulation
       ↓
Evidências adicionais
       ↓
Contexto final
       ↓
LLM
       ↓
Resposta

A etapa mais importante é a avaliação dos documentos recuperados.

O sistema pode utilizar um modelo para verificar se determinado documento realmente contém informações úteis para responder à pergunta.

Por exemplo:

Pergunta:
"Qual foi a receita da empresa em 2025?"

Documento A:
Receita da empresa em 2025 → relevante

Documento B:
Histórico de funcionários → irrelevante

Documento C:
Receita de 2024 → parcialmente relevante

O sistema pode então decidir que possui alguma evidência, mas talvez precise buscar informações adicionais.

Uma classificação conceitual poderia ser:

Resultados recuperados
        ↓
   Avaliador
        ↓
┌───────────────┐
│ Relevantes?   │
└───────────────┘
   ↓        ↓
  Sim      Não
   ↓        ↓
Gerar    Corrigir
         Retrieval

A correção pode assumir diferentes formas.

Uma delas é reformular a consulta. Se a pergunta original não produziu bons resultados, o sistema pode gerar uma consulta mais adequada.

Outra possibilidade é utilizar uma fonte diferente. Por exemplo, se a busca na base interna não fornecer evidências suficientes, o sistema pode consultar uma fonte externa autorizada.

Retrieval interno
      ↓
Resultados insuficientes
      ↓
Query Reformulation
      ↓
Nova busca
      ↓
Ainda insuficiente?
      ↓
Busca em outra fonte
      ↓
Evidências combinadas

Isso aproxima o Corrective RAG de sistemas mais adaptativos, mas existe uma diferença importante em relação ao Agentic RAG.

Corrective RAG é focado especificamente em avaliar e corrigir a recuperação. Agentic RAG é uma abordagem mais ampla, na qual um agente pode planejar, escolher ferramentas, decompor tarefas e decidir quais ações executar.

Um sistema pode inclusive combinar os dois:

Agentic RAG
     ↓
Planeja a investigação
     ↓
Retrieval
     ↓
Corrective RAG
     ↓
Avalia os resultados
     ↓
Resultados insuficientes
     ↓
Agente decide próxima ação
     ↓
Nova busca
     ↓
Contexto final
     ↓
LLM

Um exemplo

Imagine um assistente corporativo conectado a uma base de documentos internos.

O usuário pergunta:

"Qual é o prazo de reembolso para viagens internacionais?"

O sistema faz o Retrieval e encontra:

Documento A:
Política de reembolso nacional.

Documento B:
Política de viagens de 2023.

Documento C:
Manual de solicitação de despesas.

Nenhum dos documentos responde claramente à pergunta sobre viagens internacionais.

Um RAG tradicional poderia simplesmente enviar esses documentos ao LLM. O modelo poderia tentar inferir a resposta a partir de informações incompletas.

No Corrective RAG, os documentos são avaliados:

Pergunta
↓
Retrieval
↓
Documentos
↓
Avaliação

A → parcialmente relevante
B → desatualizado
C → relevante para processo, mas não para prazo
↓
Evidências insuficientes
↓
Correção

O sistema pode então reformular a consulta:

"prazo reembolso despesas viagem exterior política internacional"

Uma nova busca pode encontrar:

Política de viagens internacionais
Seção 5: Reembolso
Prazo para solicitação: 30 dias após o retorno.

Agora existe evidência suficiente:

Primeira busca
      ↓
Resultados insuficientes
      ↓
Correção
      ↓
Nova busca
      ↓
Documento relevante
      ↓
Contexto final
      ↓
LLM
      ↓
"Segundo a política de viagens internacionais,
o pedido deve ser realizado em até 30 dias após o retorno."

Nesse exemplo, o Corrective RAG evita que o LLM trate uma recuperação ruim como se fosse uma recuperação confiável.

Por que é importante

Corrective RAG é importante porque a qualidade da resposta de um sistema RAG depende diretamente da qualidade das evidências recuperadas.

Mesmo um LLM muito bom pode produzir uma resposta inadequada se receber documentos errados ou insuficientes.

A ideia pode ser resumida assim:

RAG tradicional

Retrieval
↓
"Espero que os documentos estejam corretos"
↓
LLM

Corrective RAG

Retrieval
↓
"Vamos verificar os documentos"
↓
Resultados suficientes?
├── Sim → LLM
└── Não → Corrigir Retrieval

Isso cria uma camada de controle de qualidade sobre o Retrieval.

É especialmente útil quando a base contém documentos muito semelhantes, informações desatualizadas, consultas ambíguas ou quando a pergunta pode exigir fontes que não estejam na coleção principal.

Por outro lado, essa verificação adicional aumenta a complexidade, latência e custo do sistema. Também é necessário definir critérios confiáveis para determinar quando uma recuperação é suficientemente boa.

Uma forma de visualizar sua posição dentro da arquitetura RAG é:

Pergunta
↓
Retrieval
↓
Top-k
↓
Reranking
↓
Avaliação corretiva
↓
Contexto suficiente?
├── Sim → Contexto final → LLM
└── Não → Nova busca
              ↓
          Avaliação corretiva

Assim, o Corrective RAG representa uma evolução importante do RAG tradicional: em vez de confiar cegamente no resultado do Retrieval, o sistema verifica a qualidade das evidências e pode tentar recuperar informações melhores antes de permitir que o LLM formule a resposta.

link de compartilhamento