🇧🇷 OpenMed-BR Clinical NER — Large (PT · cross-lingual PT+ES)

Reconhecimento de entidades clínicas em português, reforçado com corpora clínicos ouro em espanhol (transferência cross-lingual). É o modelo de maior F1 da família OpenMed-BR. Extrai doenças, sinais/sintomas, medicamentos, procedimentos e estruturas anatômicas.

Tarefa Token classification / NER (5 tipos)
Idioma Português (BR), com treino cross-lingual PT+ES
Base xlm-roberta-base (MIT, multilíngue)
F1 (held-out PT) 0.674
Licença CC BY 4.0
Irmão BrazilAI/openmed-br-clinical-pt (roda em CPU; melhor em medicamento)

Por que isto importa

O Brasil produz um volume enorme de texto clínico — evoluções, anamneses, laudos — e quase tudo fica em texto livre. Mesmo com 97,6% das UBS em prontuário eletrônico, o conteúdo não é estruturado. Isso trava codificação, faturamento, pesquisa e continuidade do cuidado. No setor privado, glosas somaram R$ 5,8 bi em 2024 (15,9% do faturado, só ~2% justificadas) — em grande parte, problema de documentação.

O primeiro passo para atacar qualquer um desses problemas é transformar texto clínico em entidades estruturadas. Recursos de referência em inglês (ex.: OpenMed) não cobrem NER clínico em português — o OpenMed-BR existe para preencher esse vazio, de forma aberta.

Este modelo Large usa uma ideia-chave: como corpus clínico ouro em português é escasso, ele importa conhecimento de corpora clínicos espanhóis (grandes e abertos) via um encoder multilíngue. Português e espanhol são próximos, e a transferência cross-lingual eleva bastante o desempenho.

O que o modelo reconhece

Entidade Exemplos
DOENCA pneumonia, diabetes mellitus, insuficiência cardíaca
SINAL_SINTOMA febre, dor abdominal, dispneia, obnubilação
MEDICAMENTO azitromicina, metformina, omeprazol
PROCEDIMENTO tomografia de tórax, colonoscopia, hemograma
ANATOMIA tórax, abdome, antebraço

Aplicações

  • Assistente de codificação — sugerir CID-10/CIAP-2, TUSS/SIGTAP e OBM/CATMAT a partir da nota clínica (o modelo extrai a entidade; o mapeamento ao código é a camada seguinte), acelerando faturamento e reduzindo glosa.
  • Prevenção de glosa — conferir se o que está na evolução foi registrado na guia.
  • Estruturação de prontuário — listas de problemas, medicações e procedimentos.
  • Pesquisa e vigilância — coortes e indicadores a partir de texto em escala.
  • Pipeline de privacidade — combinar com o PII do OpenMed para anonimizar (LGPD).

Como usar

from transformers import pipeline

ner = pipeline("token-classification",
               model="BrazilAI/openmed-br-large-pt",
               aggregation_strategy="simple")

texto = "Paciente com pneumonia; solicitada tomografia de tórax e avaliada dor abdominal."
for e in ner(texto):
    print(e["entity_group"], "->", e["word"], round(e["score"], 2))

Recomenda-se GPU para inferência em lote (é maior que o irmão Efficient).

Como foi treinado

  1. Base xlm-roberta-base (multilíngue, tokenizer que lida bem com PT).
  2. Ouro PT — fatia médica do MultiCoNER v2 (anotação humana).
  3. Prata PT — destilação dos modelos clínicos pucpr/clinicalnerpt-* (SemClinBr).
  4. Ouro ES (cross-lingual) — corpora clínicos espanhóis abertos: DisTEMIST (doenças), MedProcNER (procedimentos), SympTEMIST (sintomas), projetados para o mesmo esquema de 5 tipos.

Avaliação sempre no mesmo teste PT held-out, para comparabilidade entre modelos.

Resultados (teste PT held-out, seqeval, nível de entidade)

Tipo F1 vs. Efficient
ANATOMIA 0.786 +0.07
DOENCA 0.744 +0.18
PROCEDIMENTO 0.643 +0.21
SINAL_SINTOMA 0.526 +0.11
MEDICAMENTO 0.537 −0.13
Geral 0.674 +0.08

Leitura honesta: o cross-lingual elevou muito DOENÇA, PROCEDIMENTO e SINAL_SINTOMA. MEDICAMENTO é o ponto fraco — esta versão não inclui corpus espanhol de fármacos (PharmaCoNER), então para medicamento o irmão openmed-br-clinical-pt vai melhor (0.67). Teste held-out pequeno (77 frases) → honesto, porém ruidoso.

Qual modelo escolher

Precisa de… Use
Maior F1 geral, doença/procedimento/sintoma este (large-pt, GPU)
Rodar em CPU, baixo custo, foco em medicamento openmed-br-clinical-pt

Uso responsável (leia antes de aplicar em saúde)

  • Não é dispositivo médico. Ferramenta assistiva de documentação/estruturação, com humano no circuito. Uso não-diagnóstico/administrativo fica fora da ANVISA RDC 657/2022; sugestão diagnóstica/terapêutica a paciente entra em regulação (SaMD).
  • LGPD — dado de saúde é sensível: contexto de tutela da saúde (Art. 11, II, "f") ou anonimização prévia. Prefira execução local.
  • Revisão humana obrigatória — não use para decisão clínica.

Roadmap

  • PharmaCoNER (fármacos ES) no mix → fechar o gap de MEDICAMENTO (meta: geral >0.70).
  • Ligação das entidades a CID-10 / TUSS / SIGTAP / OBM.
  • Treino/avaliação sobre texto clínico real em PT rumo ao SOTA (~0.76).

Atribuição e citação (obrigatória — CC BY 4.0)

  • Base: xlm-roberta-base (MIT).
  • Ouro PT: MultiCoNER v2 — Fetahu et al., arXiv:2310.13213; SemEval-2023 Task 2, arXiv:2305.06586 (CC BY 4.0).
  • Ouro ES (CC BY 4.0): DisTEMIST (Zenodo 7614764), MedProcNER (Zenodo 8224056), SympTEMIST (Zenodo 8223653) — BioASQ/BSC.
  • Prata PT (professores): BioBERTpt / clinicalnerpt / SemClinBr — Schneider et al., 2020 (ClinicalNLP@EMNLP); Oliveira et al., J. Biomed. Semantics, 2022; HAILab-PUCPR.
@misc{openmedbr_large_pt,
  title  = {OpenMed-BR Clinical NER (Large, PT cross-lingual)},
  author = {OpenMed-BR / BrazilAI},
  year   = {2026},
  howpublished = {\url{https://huggingface.co/BrazilAI/openmed-br-large-pt}}
}

Licença

CC BY 4.0 — uso livre (inclusive comercial) com atribuição.

Downloads last month
17
Safetensors
Model size
0.3B params
Tensor type
F32
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for BrazilAI/openmed-br-large-pt

Finetuned
(4110)
this model

Datasets used to train BrazilAI/openmed-br-large-pt

Papers for BrazilAI/openmed-br-large-pt

Evaluation results