Modelos de linguagem de grande porte (LLMs) revolucionaram a IA Generativa, mas ainda sofrem de alucinações – respostas factualmente incorretas geradas devido a limitações no conhecimento armazenado nos parâmetros do modelo.
Para mitigar esse problema, surgiu o método Retrieval-Augmented Generation (RAG ou Geração Aumentada por Recuperação), que integra mecanismos de busca de informações externas ao processo de geração. Em essência, o RAG permite que o modelo obtenha dados relevantes de bases de conhecimento ou documentos, tornando as respostas mais precisas, atualizadas e contextuais.
No entanto, o RAG tradicional pressupõe que os documentos recuperados são pertinentes e corretos. Caso a recuperação traga conteúdo irrelevante ou enganoso, o modelo pode acabar gerando respostas incorretas, pois confia cegamente nesses documentos. Essa dependência levanta a preocupação: o que acontece se a etapa de busca falhar?
É nesse contexto que surge o Corrective RAG (CRAG) – Corrective Retrieval-Augmented Generation, ou em tradução livre RAG Corretivo. O CRAG é uma estratégia avançada dentro do universo de possibilidades do RAG que foca em aprimorar a precisão e relevância das respostas incorporando mecanismos de autoavaliação e correção dos documentos recuperados. Diferentemente do RAG tradicional, o CRAG verifica ativamente a relevância e acurácia das fontes antes de gerar a resposta, refinando ou complementando a busca quando necessário. Em outras palavras, o CRAG adiciona uma camada “corretiva” ao processo de geração: ele identifica possíveis erros ou lacunas na etapa de recuperação e os resolve proativamente, tornando a geração de texto final muito mais robusta e confiável.
Como o CRAG Funciona?
Embora o funcionamento interno do CRAG envolva técnicas avançadas, podemos entendê-lo de forma simplificada em algumas etapas. O objetivo central é garantir que o modelo use apenas informações confiáveis e relevantes ao responder, corrigindo o curso se necessário. A seguir, descrevemos o fluxo do CRAG passo a passo:
Recuperação Inicial de Documentos: O processo começa de forma semelhante ao RAG tradicional. Dada uma pergunta ou consulta do usuário, o sistema realiza uma busca inicial em uma base de conhecimento estática (por exemplo, um índice de documentos internos) e recupera os documentos potencialmente relevantes relacionados à consulta. Essa etapa fornece um conjunto de contexto inicial para a IA usar na geração da resposta.
Avaliação de Relevância: Em vez de confiar imediatamente nesses documentos, o CRAG emprega um avaliador de recuperação leve – um componente cuja função é analisar a qualidade e relevância dos documentos recuperados. Esse avaliador pode atribuir uma pontuação de confiança ou classificar cada documento em categorias como “relevante”, “irrelevante” ou “ambíguo”. Com base nessa avaliação, o sistema decide como proceder. Por exemplo, se uma proporção significativa dos documentos for considerada irrelevante (digamos, mais de ~70%), o CRAG interpreta isso como um sinal de que a busca inicial falhou em atender à consulta adequadamente e aciona medidas corretivas. Caso contrário, se os documentos recuperados forem em sua maioria relevantes, o processo segue adiante para a geração da resposta usando esse material.
Busca Suplementar Corretiva: Se o avaliador indicar que os documentos iniciais são insuficientes ou pouco confiáveis, o CRAG realiza buscas adicionais para complementar ou corrigir o conjunto de conhecimento. Nessa fase, o sistema pode reformular a pergunta original (query) para torná-la mais alinhada a uma busca eficaz. Por exemplo, ele pode acrescentar palavras-chave ou contexto à consulta, a fim de melhorar a qualidade dos resultados de busca. Em seguida, o CRAG efetua uma busca ampliada, muitas vezes recorrendo a fontes externas ou de grande escala, como uma pesquisa na web, para trazer informações atualizadas e diversificadas. Esse passo corretivo garante que, se a base de conhecimento local for incompleta ou limitada, o sistema ainda assim consiga obter dados relevantes de outras fontes. O resultado é um conjunto expandido de evidências possivelmente mais pertinentes à pergunta original.
Filtragem e Refinamento das Informações: De posse de um conjunto de documentos (da busca inicial e possivelmente da busca suplementar), o CRAG aplica um processo de refinamento antes de gerar a resposta final. Isso envolve filtrar conteúdos irrelevantes e destacar as informações-chave nos documentos obtidos. Uma técnica utilizada é conhecida como “decompose-then-recompose” (decompor e recompor): os documentos recuperados são divididos em trechos menores, ou “faixas de conhecimento”, que são então avaliados individualmente. Trechos considerados não relacionados ou redundantes são descartados, enquanto os elementos relevantes são mantidos. Em seguida, o sistema recompõe os fragmentos essenciais, agora livre de ruído, formando um contexto coerente e conciso para o modelo gerar a resposta. Esse refinamento garante que o modelo foque apenas no conteúdo que realmente importa, reduzindo a chance de se desviar para informações incorretas.
Geração da Resposta: Por fim, com um contexto limpo, confiável e enriquecido em mãos, o modelo generativo (LLM) produz a resposta ao usuário. Nesta etapa, o LLM utiliza exclusivamente (ou dá prioridade a) as informações filtradas e validadas nas etapas anteriores. Como resultado, a resposta gerada tende a ser coerente com as fontes verificadas, factualmente correta e contextualizada.
O CRAG age como um ciclo de realimentação dentro do pipeline de geração: se algo faltar ou estiver errado nos dados de suporte, o sistema se autocorrige antes de entregar a resposta final, elevando a qualidade e a robustez da geração de texto e reduzindo a chance de alucinações do modelo de IA Generativa.
No próximo artigo veremos os casos de uso do Corrective RAG (CRAG).
David Matos
Referências: