

Alucinação é a palavra errada para o que continuo encontrando. Isso implica que o modelo está confuso ou com defeito. A descrição mais precisa é uma incorrecção confiante: o modelo produz resultados que parecem plausíveis, numa prosa bem formada, sem citar nada, sem qualquer cobertura, e a afirmação é simplesmente falsa.
Tenho construído e operado um sistema de IA que gera apresentações estruturadas a partir de texto fornecido pelo usuário. Esse sistema executa cerca de 1.000 chamadas de inferência por dia em APIs OpenAI e Anthropic. Com o tempo, desenvolvi um conjunto funcional de padrões para detectar, lidar e reduzir erros confiantes. Este artigo documenta o que funciona na produção e por quê.
O problema central: por que os modelos parecem certos quando estão errados
Grandes modelos de linguagem são treinados em textos que recompensam a confiança. O tom autoritário se correlaciona com o texto que os humanos classificam como de alta qualidade. O modelo aprende, com efeito, que a cobertura é um sinal de produção de qualidade inferior. Isso cria uma tendência sistemática para parecer certo.
Ao mesmo tempo, o modelo não tem acesso à verdade básica no momento da inferência. Ele não consegue distinguir entre uma afirmação que memorizou corretamente e uma interpolação plausível que gerou na hora. Por dentro, ambos sentem o mesmo. Do lado da saída, ambos parecem iguais.
Isso é mais importante em três cenários:
- Afirmações numéricas: o modelo gera estatísticas, porcentagens ou datas a partir de sua distribuição de treinamento, e não de suas informações.
- Nomes próprios: nomes de pessoas, empresas e produtos são reconstruídos probabilisticamente, levando a grafias sutilmente erradas ou identidades mescladas.
- Restrições estruturais: quando você pede ao modelo para seguir um esquema JSON ou um formato de saída específico, ele obedece na maioria das vezes, mas muda quando o formato entra em conflito com seu treinamento anterior.
Padrão 1: Aplicação de esquema sobre instrução imediata
A maneira menos confiável de obter resultados estruturados de um LLM é descrever o formato em prosa. Retornar um objeto JSON com chaves de título, marcadores e resumo funciona até que isso não aconteça. O modelo pode adicionar chaves extras, envolver o objeto em cercas de código de remarcação ou descartar silenciosamente uma chave que ele decidiu ser redundante.
O padrão mais confiável é usar o modo de saída estruturado quando a API oferece suporte ou validar em um esquema imediatamente após a inferência e rejeitar e tentar novamente se a saída falhar na validação. No meu sistema, toda chamada de inferência para conteúdo estruturado passa por um modelo Pydantic. Uma validação com falha aciona uma nova tentativa automática com o erro de validação anexado ao immediate como contexto. Isso reduz as falhas de formatação de aproximadamente 8% para menos de 0,5%.
O princípio elementary: não descreva o que você deseja. Restrinja o espaço de saída para que o modelo não possa produzir mais nada.
Padrão 2: Afirmações de aterramento no immediate, não no modelo
Se um fato importa, tem que estar no immediate. O modo de falha aqui é sutil: o immediate pode mencionar um tópico, e o modelo preenche detalhes de suporte da memória de treinamento, e não do immediate. O tópico está correto; os detalhes são inventados.
A solução é um aterramento agressivo. Para meu caso de uso, quando um usuário fornece o texto fonte, o immediate do sistema instrui explicitamente o modelo que todo o conteúdo da saída deve ser diretamente suportado pelo materials fonte fornecido, que não deve adicionar fatos, estatísticas ou afirmações não presentes na fonte, e que se a fonte não suportar uma afirmação, o modelo deve omiti-la em vez de inventá-la.
Em seguida, o materials de origem é incluído na íntegra, antes da instrução da tarefa. A ordem é importante. O materials que aparece anteriormente na janela de contexto recebe mais peso no mecanismo de atenção, portanto, colocar a fonte da verdade em primeiro lugar e a instrução da tarefa em segundo reduz a confabulação de forma mensurável.
Padrão 3: Estratégia de Temperatura e Amostragem
A temperatura não controla a precisão; controla a diversidade. Uma configuração de baixa temperatura de 0,2 ou menos torna o modelo mais determinístico, mas não o torna mais factual. Se a conclusão mais provável do modelo estiver errada, uma temperatura mais baixa apenas o tornará errado de forma mais consistente.
O que a temperatura faz de útil é reduzir a variação no formato. Para tarefas de saída estruturada, executo em temperaturas de 0,2 a 0,4. Para conteúdo criativo, corro de 0,7 a 0,9. Para extração factual do texto fonte fornecido, corro em 0,1. A lógica nesse último caso não é a precisão em si, mas a consistência: se o materials de origem contiver o fato, quero que o modelo extraia o mesmo fato em todas as chamadas.
Compostos de amostragem High-p com temperatura. A temperatura de operação 0,1 e top-p 0,95 anula efetivamente a maior parte do benefício da baixa temperatura, porque o núcleo é grande o suficiente para incluir muitos tokens. Para casos de uso de alta consistência, defino ambos como baixos: temperatura 0,1, p superior 0,1. Ocasionalmente, isso produz uma prosa ligeiramente afetada, mas é a compensação certa quando o resultado alimenta um artefato estruturado.
Padrão 4: Cadeia de Pensamento como Sinal de Confiabilidade
A solicitação de cadeia de pensamento geralmente é apresentada como uma forma de melhorar a precisão do raciocínio. Isso é verdade, mas tem uma segunda utilidade: o traço de raciocínio é um sinal de confiabilidade.
Quando peço ao modelo que raciocine sobre uma tarefa antes de produzir o resultado last, posso inspecionar o rastreamento em busca de sinais de alerta. Um modelo que expressa a incerteza no seu raciocínio e depois afirma a afirmação incerta no seu resultado last é um resultado mais fraco do que aquele cujo traço de raciocínio é consistente com a sua conclusão. Agora executo um immediate secundário leve para pontuar o traço de raciocínio: o modelo expressou incerteza em algum ponto de seu raciocínio e, em caso afirmativo, quais afirmações deveriam ser sinalizadas para revisão humana?
Isso adiciona latência e custo, por isso aplico-o apenas a resultados de alto risco. Mas para um sistema de IA de produção onde a qualidade da produção afeta diretamente a retenção de usuários, o custo é justificado.
Padrão 5: Geração Aumentada por Recuperação como Âncora da Verdade Elementary
Quando o texto fornecido pelo usuário é longo o suficiente para não caber em uma única janela de contexto, a abordagem ingênua é resumir ou truncar. Ambos criam problemas de confiabilidade. A sumarização introduz um julgamento modelo sobre o que é importante; o truncamento descarta arbitrariamente o conteúdo.
O RAG resolve isso mantendo a fonte authentic em um índice de recuperação e puxando pedaços relevantes para a janela de contexto no momento da inferência. O modelo baseia-se no texto recuperado e não no seu próprio resumo do documento completo.
No meu sistema, os pedaços são armazenados com sua posição de origem incorporada como metadados. Quando o modelo gera uma declaração que rastreia um pedaço recuperado, a declaração pode ser verificada de volta à origem por posição. Isso permite a verificação pontual sem reexecutar a inferência.
O que não funciona
Três padrões que são frequentemente recomendados, mas não confiáveis na produção:
Votação de autoconsistência: executar o mesmo immediate N vezes e obter o resultado majoritário. Se o modelo tiver uma tendência sistemática no tempo de treinamento em direção a uma resposta errada específica, essa resposta sempre ganha a votação. A autoconsistência capta a variação aleatória, mas não o viés sistemático.
Pedir ao modelo para avaliar a sua própria confiança: o modelo atribui alta confiança às respostas erradas aproximadamente na mesma proporção que as respostas corretas. A autoavaliação de confiança não é calibrada.
Incitações negativas, como não ter alucinações ou não inventar fatos. Esta instrução não tem efeito mensurável. O modelo não possui um modo de alucinação separado, que pode ser desativado mediante solicitação.
A linha de base prática
Para um recurso de IA de produção que requer resultados confiáveis, a pilha de confiabilidade mínima viável é:
- Aplicação de esquema: modo de saída estruturado ou validação de esquema pós-inferência imediata com uma nova tentativa automatizada.
- Fundamentação explícita: materials de origem no immediate, com proibição de afirmações não apoiadas pela fonte.
- Metadados de posição de origem em pedaços: para que qualquer conteúdo recuperado seja auditável.
- Disciplina de temperatura: temperatura baixa para tarefas estruturadas ou factuais, mais alta apenas onde a variação criativa é realmente desejada.
- Ganchos de revisão humana: encaminham o subconjunto de resultados que falham na validação do esquema ou acionam uma heurística de baixa confiança para uma fila de revisão, em vez de atendê-los diretamente.
Nenhum destes individualmente resolve o problema. Juntos, eles reduzem a incorreção confiante de uma ocorrência frequente a uma exceção gerenciável. A confiabilidade da saída do LLM não é uma propriedade binária, e os profissionais que a tratam como tal criam sistemas que parecem bons em demonstrações e falham na produção.
Conclusão
Os modelos estão melhorando. Mas a questão elementary, que um modelo não consegue distinguir entre o que sabe e o que está gerando, é arquitetônica, e não um bug a ser corrigido na próxima versão.
Os profissionais que fornecem recursos de IA confiáveis são aqueles que tratam o modelo como um componente de um sistema, não como um oráculo. Eles investem na infraestrutura circundante: recuperação, validação, aterramento e revisão de roteamento. O modelo faz aquilo em que é bom; o sistema lida com as propriedades de confiabilidade que o modelo não pode fornecer por si mesmo.