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.
- 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.
- 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.
- 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.
- 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.
- 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