Token Classification
Transformers
Safetensors
Portuguese
Spanish
xlm-roberta
ner
portuguese
spanish
medical
clinical
healthcare
brazil
cross-lingual
openmed-br
Eval Results (legacy)
Instructions to use BrazilAI/openmed-br-large-pt with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use BrazilAI/openmed-br-large-pt with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("token-classification", model="BrazilAI/openmed-br-large-pt")# Load model directly from transformers import AutoTokenizer, AutoModelForTokenClassification tokenizer = AutoTokenizer.from_pretrained("BrazilAI/openmed-br-large-pt") model = AutoModelForTokenClassification.from_pretrained("BrazilAI/openmed-br-large-pt") - Notebooks
- Google Colab
- Kaggle
| language: | |
| - pt | |
| - es | |
| license: cc-by-4.0 | |
| library_name: transformers | |
| pipeline_tag: token-classification | |
| tags: | |
| - ner | |
| - token-classification | |
| - portuguese | |
| - spanish | |
| - medical | |
| - clinical | |
| - healthcare | |
| - brazil | |
| - cross-lingual | |
| - openmed-br | |
| base_model: xlm-roberta-base | |
| datasets: | |
| - MultiCoNER/multiconer_v2 | |
| - IEETA/SPACCC-Spanish-NER | |
| metrics: | |
| - seqeval | |
| model-index: | |
| - name: openmed-br-large-pt | |
| results: | |
| - task: {type: token-classification, name: Named Entity Recognition} | |
| dataset: {name: MultiCoNER v2 (Portuguese, medical held-out), type: MultiCoNER/multiconer_v2} | |
| metrics: | |
| - {type: f1, value: 0.674, name: F1 (entity-level)} | |
| - {type: precision, value: 0.636, name: Precision} | |
| - {type: recall, value: 0.716, name: Recall} | |
| # 🇧🇷 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`](https://huggingface.co/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`](https://huggingface.co/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](https://huggingface.co/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 | |
| ```python | |
| 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`](https://huggingface.co/BrazilAI/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`](https://huggingface.co/BrazilAI/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. | |
| ```bibtex | |
| @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**. | |