Hallucination (in LLMs)
Uma alucinação de LLM é uma resposta fluente e confiante, mas falsa ou sem suporte na sua fonte. Porque os modelos as produzem e como a recuperação e a abstenção ajudam.
Uma alucinação em um grande modelo de linguagem (LLM) é um conteúdo gerado que parece fluente e convincente, mas é falso, não tem respaldo nas fontes do modelo ou é incompatível com a própria entrada. As alucinações vão de uma citação inventada ou uma data errada a um resumo que acrescenta afirmações que não estavam no documento de origem, e são difíceis de detectar porque uma resposta errada tem o mesmo tom de uma correta. No caso Mata v. Avianca (2023), um tribunal federal dos EUA sancionou dois advogados por apresentarem uma petição que citava seis decisões judiciais inventadas pelo ChatGPT. Alguns pesquisadores preferem o termo confabulação, pois o modelo preenche lacunas no conhecimento com texto plausível.
Tipos de alucinação#
- Alucinações intrínsecas: Conteúdo que contradiz a fonte fornecida, como um resumo que indica um ano de aprovação diferente do documento resumido. O estudo de Ji et al. usa este termo e o seguinte para classificar erros em sumarização, diálogo e tradução.
- Alucinações extrínsecas: Conteúdo que acrescenta informações que a fonte não pode confirmar, que podem ou não ser verdadeiras.
- Erros factuais em respostas abertas: Sem qualquer fonte, o modelo apresenta fatos errados, inventa referências ou mistura detalhes de várias pessoas em uma única biografia.
- Alucinações de pacotes: Assistentes de programação importam bibliotecas inexistentes. Um estudo de 576,000 amostras de código gerado por 16 modelos constatou que pelo menos 5.2% dos pacotes sugeridos por modelos comerciais e 21.7% dos sugeridos por modelos de código aberto eram alucinações. O estudo identificou 205,474 nomes de pacotes falsos exclusivos que atacantes poderiam registrar com código malicioso.
- Alucinações de objetos: Modelos de linguagem e visão (VLMs) descrevem objetos que não aparecem na imagem.
Por que os LLMs alucinam#
Um LLM gera texto prevendo o próximo token a partir de probabilidades aprendidas durante o pré-treinamento, sem uma verificação integrada em um banco de dados de fatos. Kalai et al. (2025), da OpenAI, relacionam as alucinações a duas pressões estatísticas. Durante o pré-treinamento, fatos vistos apenas uma vez, como a data de nascimento de uma pessoa pouco conhecida, não podem ser aprendidos de forma confiável: se 20% dos fatos sobre datas de nascimento aparecem exatamente uma vez nos dados de treinamento, é de se esperar que um modelo base alucine em pelo menos 20% das perguntas sobre datas de nascimento. Depois do treinamento, a maioria dos benchmarks classifica as respostas como certas ou erradas e dá zero pontos para “Não sei”. Assim, um modelo que arrisca um palpite supera um que se abstém, e o pós-treinamento ajusta os modelos para que deem palpites confiantes.
Outros fatores também contribuem. A amostragem com temperatura alta ou amostragem de núcleo ampla pode selecionar continuações de baixa probabilidade; a precisão cai quando fatos relevantes ficam enterrados em entradas longas (deterioração do contexto); e modelos treinados com base na aprovação humana tendem a aceitar uma premissa falsa na pergunta, uma forma de bajulação da IA.
Detecção e redução de alucinações#
- Geração aumentada por recuperação (RAG): O sistema recupera trechos de uma coleção confiável e instrui o modelo a responder com base neles. Um reranqueador melhora a seleção dos trechos que chegam ao prompt, embora o modelo ainda possa interpretá-los incorretamente ou ignorá-los.
- Ancoragem com citações: Cada afirmação deve citar um trecho recuperado, e um verificador, muitas vezes um segundo modelo, confirma que o trecho dá respaldo à afirmação.
- Entropia semântica: O modelo responde à mesma pergunta várias vezes; as respostas são agrupadas por significado, e uma entropia alta entre os grupos sinaliza uma possível confabulação.
- Cadeia de verificação (CoVe): O modelo prepara uma resposta, elabora perguntas para verificar as próprias afirmações, responde a elas de forma independente e revisa o rascunho.
- Recompensar a abstenção: Treinar com RLHF ou outro tipo de feedback que penalize erros confiantes mais do que “Não sei”, e avaliar os modelos da mesma forma, elimina o incentivo a arriscar um palpite.
Um sistema ancorado de perguntas e respostas combina várias dessas verificações em um ciclo:
Alucinação e conceitos relacionados#
- Viés em IA: Uma distorção sistemática nas respostas, como favorecer um grupo. Uma resposta pode não ter viés e ainda assim conter alucinações, ou ser factualmente correta e ainda assim ter viés.
- Sobreajuste: Memorizar exemplos de treinamento em detrimento da generalização. Muitas alucinações surgem da situação oposta, em que o modelo preenche uma informação que viu poucas vezes para memorizar.
- Colapso de modelos: Perda de conhecimento raro quando os modelos são treinados com dados gerados, o que pode fazer com que modelos posteriores alucinem mais sobre fatos raros.
Alucinação de objetos em modelos de linguagem e visão#
Os VLMs dependem de priors de linguagem, então um modelo de geração de legendas pode mencionar um garfo em uma mesa de jantar onde não há nenhum, pois garfos aparecem com frequência ao lado de pratos nas legendas de treinamento. A alucinação de objetos na geração de legendas para imagens é medida com a métrica CHAIR: a fração dos objetos mencionados em uma legenda que não aparecem nas anotações de referência da imagem. Uma forma de reduzir o problema é fornecer ao modelo de linguagem uma lista de objetos realmente encontrados por um detector. O trecho abaixo executa YOLO26 em uma imagem e transforma as detecções em uma restrição do prompt:
from ultralytics import YOLO
model = YOLO("yolo26n.pt")
results = model("https://ultralytics.com/images/bus.jpg")
result = results[0]
# Per-class detection counts as text, used as facts the language model must stay within
detections = result.verbose()
prompt = f"Describe this image. Mention only these detected objects: {detections}"
print(prompt)result.verbose() retorna uma contagem para cada classe detectada, portanto cada objeto nomeado no prompt tem uma caixa delimitadora correspondente. Assim, é possível sinalizar qualquer resposta que mencione outro objeto antes que ela chegue ao usuário.










