Detecte Alucinações de LLM com HCPD: Zero-Source, 88% AUROC

Detecte Alucinações de LLM com HCPD: Zero-Source, 88% AUROC

HCPD é o método do ICML 2026 que detecta alucinações de LLM apenas a partir do texto de pergunta-resposta, sem logits, sem estados ocultos, sem consulta a bases de conhecimento — e atinge 88,19% de AUROC no Llama-3.1-8B (89,62% no Qwen3-8B), cerca de 10 pontos acima do melhor baseline concorrente. O código de treinamento e avaliação é totalmente open source no GitHub, construído sobre o stack open-r1 com GRPO + LoRA + vLLM. Este guia cobre o mecanismo, a estrutura do repositório e os comandos exatos para reproduzir os resultados.

Por que você deveria se importar

Alucinação é o principal obstáculo para colocar saídas de LLM em produção, seja na educação, na saúde ou em qualquer superfície de apoio à decisão. A maioria dos detectores “trapaceia” de duas formas: lê probabilidades de saída ou representações internas, ou faz fact-checking contra uma base de conhecimento. Nenhuma das duas funciona quando você chama uma API black-box e só vê o texto final, e verificações baseadas em referência são lentas e frágeis quando a cobertura é escassa. O HCPD foi construído para esse cenário zero-source: dado apenas o par (pergunta, resposta), ele decide se a resposta pode ser confiável. Isso cobre todo modelo que você não controla, incluindo modelos implantados localmente que divergem silenciosamente da versão oficial.

Como o HCPD funciona

O núcleo é o mecanismo Human-like Criteria Probing (HCP), que transforma a detecção em uma avaliação dinâmica e explicável, em vez de um classificador fixo:

  • Critérios adaptativos - o agente parte de cinco dimensões genéricas (correção factual, consistência lógica, precisão semântica, consistência temporal, conformidade social) e, em seguida, gera critérios mais granulares com um peso de importância por critério para cada par (q, a) específico. Uma pergunta de história, por exemplo, dá peso alto a pessoas, lugares e datas.
  • Pontuação ponderada - cada critério recebe uma nota, e a soma ponderada se torna o escore final de veracidade. Os critérios, os pesos e a análise por dimensão são todos emitidos, então o veredito é auditável.
  • Alinhamento de recompensa com GRPO - prompting sozinho não é estável o suficiente, então o agente de pontuação é treinado com GRPO. Os rótulos de supervisão fraca vêm da consistência semântica (BLEURT) entre as respostas candidatas e a referência, mapeados para uma escala fina de 1 a 10, sem anotação humana cara.
  • Agregação multi-amostragem - na inferência, várias avaliações completas rodam em paralelo e são agregadas, reduzindo a variância da geração de amostra única.

O GRPO aqui é da mesma família de RL usada em modelos de código por self-play que melhoram sem rótulos humanos — um sinal de recompensa substitui a supervisão manual.

O que você encontra no repositório

O repositório TRISKEL10N/HCPD é um fork do open-r1. O agente de pontuação é o Qwen2.5-7B-Instruct; os alvos avaliados são Llama-3.1-8B e Qwen3-8B; os benchmarks são TriviaQA, SciQ, NQ Open e CoQA. Os requisitos são 2x GPUs NVIDIA de 80GB, CUDA 12.4, Python 3.11 e PyTorch 2.6. O treinamento usa LoRA (r=8, alpha=32) com GRPO, vLLM colocalizado para rollouts e uma recompensa baseada em BLEURT.

Configuração e validação rápida

# 1. Instale o ambiente
bash setup.sh
conda activate HCPD

# 2. Construa os datasets de alucinação (download automático para ./.cache)
bash generate_datasets.sh

# 3. Verifique com os checkpoints pré-treinados publicados (Google Drive)
bash quick_validation.sh

O quick_validation.sh roda o haldet_eval_vllm.py nos quatro datasets e nos dois modelos alvo usando os checkpoints LoRA publicados. Em GPUs mais modestas, rode um dataset primeiro antes do sweep completo.

Treine e avalie um modelo alvo

Os scripts de execução mostram o pipeline completo. Aqui está o script do TriviaQA, enxugado e comentado:

# agente de pontuação a ser alinhado
MODEL_PATH="Qwen/Qwen2.5-7B-Instruct"
export VLLM_WORKER_MULTIPROC_METHOD="spawn"

# Treino: GRPO + LoRA, vLLM colocalizado para geração de rollouts
accelerate launch --config_file recipes/accelerate_configs/zero3.yaml \
  src/open_r1/haldet_grpo.py \
  --config recipes/Qwen2.5-7B-Instruct/grpo/config_demo.yaml \
  --seed 42 --vllm_mode colocate --vllm_gpu_memory_utilization 0.5 \
  --metric_type bleurt --dataset_name TriviaQA_llama3.1-8B \
  --learning_rate 0.0002 --beta 0.05 --model_name_or_path $MODEL_PATH

# Avaliação: loop pelos 10 checkpoints salvos
for idx in {1..10}; do
  python src/open_r1/haldet_eval_vllm.py \
    --base_model $MODEL_PATH --dataset_name TriviaQA_llama3.1-8B \
    --lora_path "data_bleurt/seed_42/.../checkpoint-$((1245*idx))" \
    --seed 42 --metric_type bleurt
done

Knobs importantes em recipes/Qwen2.5-7B-Instruct/grpo/config_demo.yaml: num_generations=10 rollouts por prompt, max_prompt_length=512, reward_funcs=score_align e LoRA em todas as projeções de atenção.

Dicas práticas

  • Funciona com qualquer modelo black-box. O HCPD precisa apenas da pergunta e da resposta, então roda contra GPT, Claude, Gemini ou qualquer API sem acesso especial. Para servir localmente com rapidez, veja o guia de aceleração de inferência local com OpenVINO.
  • Audite os vereditos. Os critérios, pesos e escores por dimensão emitidos são úteis para compliance e para depurar por que uma resposta RAG foi sinalizada.
  • Ajuste a agregação. A multi-amostragem troca latência por estabilidade — menos amostras em caminhos de baixa latência, mais em cenários de alto risco.
  • Retreine no seu domínio. O esquema de supervisão fraca permite reconstruir a recompensa com seus próprios dados de Q&A e realinhar o agente de pontuação de forma barata.

FAQ

P: Preciso de acesso aos logits ou às partes internas do modelo alvo?
R: Não. O HCPD é um detector zero-source — ele lê apenas o texto da pergunta e da resposta, e é por isso que funciona com APIs black-box.

P: Qual é a precisão?
R: 88,19% de AUROC no Llama-3.1-8B e 89,62% no Qwen3-8B em quatro benchmarks de QA, cerca de 10 pontos acima do melhor baseline concorrente.

P: Que GPU preciso para reproduzir o treinamento?
R: A configuração do artigo usa 2x GPUs NVIDIA de 80GB com CUDA 12.4. Para um smoke test, rode primeiro o quick_validation.sh com os checkpoints publicados.

Recursos

Notícias Relacionadas