Scroll
Sobre o Benchmark
O que é o laibench?
O laibench é o primeiro benchmark open-source dedicado exclusivamente à avaliação de geração texto-a-texto de laudos radiológicos em português brasileiro. Não avalia visão computacional — avalia a capacidade de um modelo ou agente de IA de produzir laudos radiológicos tecnicamente corretos, clinicamente consistentes e terminologicamente aderentes aos padrões CBR/ACR.

Inspirado no SWE-bench e Terminal Bench, o laibench usa avaliação baseada em execução (não métricas superficiais como BLEU/ROUGE) com um protocolo dual-phase que combina checks determinísticos reprodutíveis com verificação adversarial LLM-as-judge.
Metodologia
Como funciona a avaliação?
Entrada: O modelo recebe um descritor de exame (tc cranio sc) e achados clínicos (Esteatose moderada. Cálculo vesícula 12mm.). Deve gerar um laudo radiológico HTML completo usando apenas tags <center>, <b> e <br>.

Fase 1 — Determinística (gratuita, reprodutível): Bateria de checks automáticos baseados em regras. Cada check passa ou falha, com severidade critical, major ou minor. Falhas críticas forçam FAIL independente do score.

Fase 2 — Adversarial (LLM-as-judge): Um LLM juiz (ex: Opus 4.6) recebe o exame, achados e laudo gerado. Retorna scores por dimensão, lista de alucinações, achados ausentes e falhas críticas.

Score combinado: Para cada dimensão: score = min(determinístico, adversarial). Nem um juiz leniente nem regras permissivas podem inflar o resultado. O overall é a média ponderada sobre as 5 dimensões.

Veredicto: PASS (≥84%) | PARTIAL (≥60%) | FAIL (<60% ou falha crítica)
CRIT 30%
Resistência a alucinação. Contraste em exame sem contraste? Achados inventados? Falha crítica.
QUAL 25%
Título centralizado? Seções corretas? Sem placeholders? Sem duplicação análise/conclusão?
TERM 20%
14 termos proibidos CBR. 9 aberturas proibidas. Vocabulário por modalidade (US≠CT≠RM).
GUIDE 15%
Cobertura anatômica. TC abdome deve mencionar fígado, vesícula, pâncreas, baço, rins, etc.
RAG 10%
Título preserva modalidade+região? Lateralidade? Níveis vertebrais? Medidas? Ordem das seções?
Validação & Integridade
Como garantimos que os scores são confiáveis?
1. Checks determinísticos são reprodutíveis. Mesmo input = mesmo score. Sem variância, sem subjetividade. Código aberto — qualquer pessoa pode auditar.

2. Score conservativo. min(determinístico, adversarial) por dimensão. Um juiz generoso não salva regras ruins, e regras permissivas não escondem alucinações que o juiz detecta.

3. Leaderboards agrupados. Runs só competem se usam a mesma suite, locale, track, scaffold e juiz. Impossível comparar runs incompatíveis.

4. Validação de submissão. IDs ausentes, duplicados, outputs vazios ou JSONL malformado tornam a submissão inelgível para ranking.

5. Track system. Modelos diretos (track model), modelos via scaffold canônico (track mini-agent) e agentes custom (track agent) nunca se misturam no ranking. Como Terminal Bench: Droid compete com Droid, não com GPT-5 direto.

6. Hash de integridade. Cada suite tem um hash criptográfico dos casos. Alteração nos dados invalida todos os runs anteriores.
65.812
Laudos no Corpus
3.075
Casos de Avaliação
24
Checks Determinísticos
2
Fases de Scoring
Preprint
laibench: A Parametric Evaluation Protocol for Radiology Report Generation by Language Models
Natan Paraíso Ribeiro, Raquel Moreno, Francisco Akira — Laudos.AI, São Paulo, Brazil
Framework de avaliação CLI-first para modelos de linguagem na tarefa de geração de laudos radiológicos. Casos sintéticos revisados por radiologistas certificados. Arquitetura dual-phase: checks determinísticos + LLM-as-judge adversarial. Score = min(det, adv) por dimensão. Escala 0-100%. Leaderboards agrupados por comparable key. 3 providers (OpenRouter, OpenAI-compatible, stdin/stdout). Suporte a pt-BR e en-US.
Ranking
Global Leaderboard — Geração de Laudos Radiológicos Texto-a-Texto
Leaderboard
PosAgenteTrackScore
1
laudos.ai Agentagent95.5%
2
claude-opus-4.6 Anthropicmini-agent71.4%
3
TBDpendente
4
TBDpendente
5
TBDpendente
Agentes Submetidos
2
Casos no Dataset
3,075
Dimensões Avaliadas
5
Submeter Resultado
Como testar e submeter seu agente
1. Instalação
Requer Node.js ≥20. Clone o repositório e instale as dependências.
git clone https://github.com/Vajbratya/laibench.git
cd laibench
npm install
2. Teste rápido — modelo via OpenRouter
Roda 10 casos em ~2 min. Ideal pra testar se tudo funciona. Precisa de OPENROUTER_API_KEY.
npm run bench -- suite \
  --suite suites/lite-public.pt-BR.json \
  --provider openrouter \
  --model anthropic/claude-sonnet-4.6 \
  --run-name meu-teste \
  --out runs/meu-teste.json
3. Teste seu agente custom (como Droid no Terminal Bench)
Seu agente recebe JSON no stdin ({"exam":"...", "findings":"...", "locale":"pt-BR", "systemPrompt":"..."}) e retorna {"html":"..."} no stdout. Pode usar qualquer modelo/RAG/lógica por baixo.
npm run bench -- suite \
  --suite suites/reference-public.pt-BR.json \
  --provider command \
  --cmd "node meu-agente.mjs" \
  --agent-name "MeuAgente" \
  --track agent \
  --run-name meu-agente-v1 \
  --out runs/meu-agente.json
4. Submissão offline (predictions mode)
Gere os laudos no seu tempo. Salve em JSONL: {"instance_id":"R001","model_name_or_path":"meu-agente","model_output":"<center><b>..."}. Valide e avalie.
# Validar
npm run bench -- validate-submission \
  --suite suites/reference-public.pt-BR.json \
  --predictions predictions/meu-agente.jsonl

# Avaliar
npm run bench -- eval-submission \
  --suite suites/reference-public.pt-BR.json \
  --predictions predictions/meu-agente.jsonl \
  --run-name meu-agente \
  --model-label MeuAgente \
  --track agent \
  --out runs/meu-agente.json
5. Flags úteis
--no-system-prompt — Não envia o system prompt do benchmark (pra presets que já têm prompt próprio)
--agent-name "X" — Compete com nome custom no leaderboard
--judge-model anthropic/claude-opus-4-6 — Ativa fase adversarial com LLM judge
--concurrency 5 — Roda 5 casos em paralelo (pra suites grandes)
--price-in 3.0 --price-out 15.0 — Cost tracking (USD por 1M tokens)
6. Suites disponíveis
lite-public.pt-BR — 10 casos, iteração rápida
reference-public.pt-BR — 49 casos curados, benchmark de referência
corpus-public.pt-BR — 3.000 casos, benchmark completo
reference-public.en-US — 13 casos em inglês
verified-public.mixed — 10 casos de integridade do harness