𝗣𝗼𝗿 𝗾𝘂𝗲 𝗺𝗲𝘂 𝗮𝗽𝗽 𝗱𝗲 𝗥𝗔𝗚 𝗰𝗼𝗻𝘁𝗶𝗻𝘂𝗮𝘃𝗮 𝗮𝗹𝘂𝗰𝗶𝗻𝗮𝗻𝗱𝗼 𝗲 𝗰𝗼𝗺𝗼 𝗲𝘂 𝗿𝗲𝘀𝗼𝗹𝘃𝗶

Alguns meses atrás, fiz uma demonstração do meu bot de suporte RAG. Ele disse a um colega que nossa política de reembolso era de 30 dias. Nossa política real é de 14 dias. O bot não hesitou. Ele não disse que não tinha certeza. Ele inventou uma resposta com total confiança.

O RAG deveria reduzir alucinações. Minha configuração apenas as deslocou. Aprendi cinco lições enquanto depurava este sistema.

  1. Pare de usar contagens fixas de caracteres para os chunks Eu usava chunks de 1000 caracteres com uma pequena sobreposição. Isso causou problemas. Um chunk frequentemente misturava regras de envio com regras de devolução. O modelo mesclava essas diferentes seções em uma única resposta errada. Solução: Mudei para chunking semântico. Dividi os dados por títulos e parágrafos. Isso mantém as informações relacionadas juntas.

  2. Similaridade não significa relevância Meu retriever buscava os 3 principais chunks com base na similaridade de cosseno. Um chunk pode parecer similar a uma pergunta sem conter a resposta. O modelo assume que tudo no contexto é verdadeiro. Solução: Adicionei uma etapa de reranking usando um cross-encoder. Também comecei a registrar os scores de recuperação. Isso mostra quando o sistema carece de uma resposta real.

  3. Diga ao modelo que tudo bem falhar Meu prompt original era simples: Use o contexto para responder à pergunta. Ele não dava instruções ao modelo para quando o contexto estivesse ausente. O modelo preenchia as lacunas com suposições. Solução: Adicionei uma instrução específica. Se a resposta não estiver no contexto, diga que não sabe. As alucinações diminuíram imediatamente.

  4. Aplique um limite de recuperação (threshold) O modelo ainda usava conhecimento geral quando a recuperação falhava. Eu esperava que o prompt funcionasse, mas esperança não é uma estratégia. Solução: Defini um limite de score rígido. Se o maior score de recuperação for muito baixo, o sistema para. Ele retorna uma mensagem de fallback em vez de deixar o modelo adivinhar.

  5. Teste para falhas, não apenas para o sucesso Eu testava apenas perguntas fáceis que eu sabia que os documentos cobriam. Ignorei consultas ambíguas e informações ausentes. As alucinações vivem nessas lacunas. Solução: Criei um conjunto de avaliação de perguntas armadilhas. São casos em que a resposta correta não está no sistema. Executo esses testes toda vez que faço uma alteração.

O RAG não interrompe as alucinações inteiramente. Ele as torna controláveis. Meu bot ainda não sabe tudo. Mas agora, quando ele não tem certeza, ele diz isso. Isso torna a ferramenta utilizável.

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