O resultado que chamou atenção
Nos três modelos do nosso experimento de filtragem, o filtro não teve efeito mensurável na taxa de falso-permite. Esperado, até certo ponto.
O que não esperávamos: para o o3-mini, o filtro foi completamente transparente nos dois sentidos. Falso-permite A = 18,8%. Falso-permite B = 18,8%. Falso-fallback A = 14,7%. Falso-fallback B = 14,7%.
Exatamente igual. O filtro processou cada resposta; não bloqueou nada que deveria, e também não bloqueou nada que não deveria.
Para comparar: o gpt-4o-mini teve zero falso-permite com ou sem filtro. O pequeno custo ali foi um leve aumento nos falso-fallbacks: paráfrases tecnicamente corretas que foram bloqueadas por sobreposição léxica insuficiente.
Com o o3-mini, o filtro simplesmente não registrou.
Como o filtro funciona
O filtro verifica dois sinais por resposta:
- Validade de citações: os IDs de documento citados precisam existir no conjunto recuperado.
- Ancoragem léxica: o texto da resposta precisa ter sobreposição suficiente de palavras com os trechos recuperados, acima de um limiar.
Os dois sinais foram projetados para capturar respostas que se desviam do material de origem. A suposição é que uma resposta alucinada vai ou citar documentos que não foram recuperados, ou usar linguagem que não aparece no contexto recuperado.
Suposição razoável. Quebra para modelos de raciocínio.
O que modelos de raciocínio fazem durante a geração
Um modelo de raciocínio não vai direto do prompt para a resposta. Ele percorre uma cadeia de raciocínio estendida antes de produzir output: decompõe a pergunta, avalia respostas candidatas, verifica consistência interna.
Esse processo naturalmente puxa vocabulário e estrutura da janela de contexto. Quando o modelo produz sua resposta final, ela foi moldada por exposição repetida aos documentos recuperados, mesmo que as afirmações factuais divirjam deles.
O resultado é uma resposta que parece vir do corpus porque, no sentido terminológico, vem. O modelo absorveu a linguagem do domínio, os nomes de entidades, os padrões de formulação; só não acertou sempre os fatos.
Por que os dois sinais falham
Validade de citações: o o3-mini cita consistentemente IDs de documento do conjunto recuperado. O processo de raciocínio inclui verificação cruzada de referências, então na resposta final os IDs citados são reais. A verificação passa; o conteúdo pode ainda estar errado.
Ancoragem léxica: a resposta tem alta sobreposição de palavras com o conteúdo recuperado porque o processo de raciocínio do modelo já internalizou esse vocabulário. Uma afirmação alucinada sobre, digamos, disponibilidade de funcionalidade vai usar os nomes de produto e a terminologia exatos extraídos dos trechos recuperados. O limiar de sobreposição é atingido.
Os dois sinais confirmam que a resposta parece o corpus. Nenhum verifica se ela concorda com o corpus. Para a maioria dos modelos, essa lacuna é pequena o suficiente para ser útil. Para modelos de raciocínio, a lacuna é justamente o problema.
O que realmente funcionaria
O sinal que o filtro precisa não é sobreposição léxica; é implicação semântica: o conteúdo recuperado sustenta as afirmações específicas da resposta?
Um cross-encoder treinado em NLI (inferência de linguagem natural) pode verificar isso diretamente. Dado uma frase da resposta e um trecho recuperado, ele retorna uma probabilidade de que o trecho implique a frase. Se nenhum trecho recuperado implica uma determinada afirmação acima do limiar, a resposta falha.
É mais caro computacionalmente que sobreposição de palavras e requer um segundo modelo no pipeline. Se esse custo é aceitável depende do uso.
A verificação de citações ainda vale manter como filtro de primeira passagem. É barata e captura modelos que citam fontes completamente fabricadas. Para modelos de raciocínio especificamente, apenas não é suficiente sozinha.