Por que meu app de RAG alucinou e como eu corrigi isso

Uma vez, fiz uma demonstração do meu bot de suporte RAG para uma colega.

O bot disse a ela que nossa política de reembolso era de 30 dias.

Nossa política real é de 14 dias.

O bot não disse que não tinha certeza. Ele inventou uma resposta com total confiança.

O RAG deveria interromper as alucinações. Minha configuração apenas as deslocou.

Eu corrigi isso seguindo cinco passos.

  1. Corrija sua estratégia de chunking

Eu costumava dividir os documentos por contagem de caracteres. Isso foi um erro.

Um chunk frequentemente misturava tópicos diferentes, como envio e devoluções. O modelo mesclava esses temas em respostas erradas.

A correção: mudei para semantic chunking. Agora divido o texto por títulos e parágrafos.

  1. Pare de confiar apenas em scores de similaridade

Meu retriever buscava os três principais chunks com base na similaridade de cosseno.

Similar não é o mesmo que relevante. Um chunk pode parecer similar a uma pergunta, mas não conter a resposta.

A correção: adicionei uma etapa de reranking com um cross-encoder. Isso me ajudou a perceber quando o sistema não tinha dados reais.

  1. Dê permissão ao modelo para falhar

Meu prompt antigo dizia apenas: Use o contexto para responder à pergunta.

Se o contexto não continha a resposta, o modelo preenchia as lacunas com suposições.

A correção: adicionei uma instrução direta. Se a resposta não estiver no contexto, diga que não sabe. Isso, por si só, interrompeu a maioria das alucinações.

  1. Defina um limite de recuperação (threshold)

Às vezes, o modelo usava conhecimento geral quando a recuperação falhava. Eu esperava que o prompt funcionasse, mas esperança não é uma estratégia.

A correção: adicionei um corte de pontuação (score cutoff). Se o score de recuperação for muito baixo, o sistema retorna uma resposta de fallback. Sem contexto significa sem resposta.

  1. Teste para falhas, não para sucessos

Eu costumava testar apenas perguntas fáceis. Ignorava consultas ambíguas e informações ausentes.

A correção: construí um conjunto de avaliação com perguntas armadilha. São casos onde a resposta está ausente. Executar esses testes regularmente mostra exatamente onde seu sistema falha.

O RAG não elimina as alucinações. Ele as torna controláveis.

Meu bot ainda não conhece todos os detalhes. Mas agora, ele admite quando não tem certeza. Isso o torna utilizável.

Fonte: https://dev.to/pallavi_sharma_10c1a6f1da/why-my-rag-app-kept-hallucinating-and-how-i-fixed-it-3i10

Comunidade de aprendizado opcional: https://t.me/GyaanSetuAi