Instructions to use ralzate/beto-prostata-ner with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use ralzate/beto-prostata-ner with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("token-classification", model="ralzate/beto-prostata-ner")# Load model directly from transformers import AutoTokenizer, AutoModelForTokenClassification tokenizer = AutoTokenizer.from_pretrained("ralzate/beto-prostata-ner") model = AutoModelForTokenClassification.from_pretrained("ralzate/beto-prostata-ner") - Notebooks
- Google Colab
- Kaggle
BETO fine-tuned para NER de cáncer de próstata (español)
Modelo de Reconocimiento de Entidades Nombradas (NER) que extrae información clínica de textos en español sobre cáncer de próstata. Es un fine-tuning de BETO (BERT entrenado desde cero en español) para clasificación de tokens en formato BIO con 21 etiquetas.
F1 en test: 0.976 (seqeval, micro) · Precision 0.973 · Recall 0.978 · Accuracy 0.995
🎯 Para qué sirve
Detecta y clasifica, palabra por palabra, 10 tipos de entidades clínicas en informes y notas médicas de oncología prostática:
| Entidad | Qué captura | Ejemplo |
|---|---|---|
EDAD |
Edad del paciente | 72 años |
CANCER |
Tipo/diagnóstico de cáncer | adenocarcinoma de próstata |
GLEASON |
Escala de Gleason | Gleason 3+3 |
BIOMARCADOR |
Biomarcadores (PSA, etc.) | PSA de 9.9 ng/dL |
TNM |
Estadificación TNM | T2N0M0 |
TRATAMIENTO |
Tratamientos | radioterapia |
MEDICAMENTO |
Fármacos | bicalutamida |
DOSIS |
Dosis | 50 mg diarios |
CIRUGIA |
Procedimientos quirúrgicos | prostatectomía radical |
FECHA |
Fechas | marzo de 2023 |
Cada entidad se etiqueta en esquema BIO (B- inicio, I- continuación, O fuera),
para 21 etiquetas en total.
🚀 Uso rápido
from transformers import pipeline
ner = pipeline("token-classification", model="ralzate/beto-prostata-ner",
aggregation_strategy="simple")
texto = ("Paciente masculino de 72 años con adenocarcinoma de próstata, "
"Gleason 3+3 y PSA de 9.9 ng/dL. Se inicia radioterapia y bicalutamida 50 mg.")
for e in ner(texto):
print(f"{e['entity_group']:14s} {e['score']*100:5.1f}% {e['word']}")
Salida esperada (entidades como EDAD, CANCER, GLEASON, BIOMARCADOR,
TRATAMIENTO, MEDICAMENTO, DOSIS).
📊 Resultados (conjunto de test, seqeval)
Barrido de batch size con 6 épocas y early stopping:
| batch size | Precision | Recall | F1 |
|---|---|---|---|
| 8 (recomendado) | 0.9732 | 0.9781 | 0.9757 |
| 16 | 0.9627 | 0.9705 | 0.9666 |
| 32 | 0.9488 | 0.9603 | 0.9545 |
Este repositorio publica la mejor configuración (batch size 8). El F1 baja levemente al aumentar el lote porque, con 6 épocas, los lotes pequeños dan más pasos de optimización.
Comparación con XLM-RoBERTa
En el mismo dataset, BETO supera a XLM-RoBERTa-base (multilingüe) en todo el barrido (F1 0.955–0.976 vs 0.850–0.936). En NER clínico en español, un encoder nativo en español y compacto rinde mejor que un multilingüe más grande: la especialización lingüística pesa más que el tamaño.
🧠 Detalles de entrenamiento
| Modelo base | dccuchile/bert-base-spanish-wwm-cased (BETO, ~110M parámetros) |
| Tarea | Token Classification (NER), 21 etiquetas BIO |
| Dominio | Texto clínico de cáncer de próstata en español |
| Épocas | 6 (con early stopping, paciencia 2, métrica F1) |
| Learning rate | 2e-5 |
| Batch size | 8 (este checkpoint) |
| Longitud máxima | 128 subtokens |
| Optimizador | AdamW, weight decay 0.01, warmup 0.1 |
| Métrica | seqeval (precision/recall/F1 a nivel de entidad) |
| Hardware | Apple M1 Pro (MPS), entrenamiento local |
| Alineación | etiqueta en el primer subtoken de cada palabra; resto a -100 |
⚠️ Limitaciones
- Entrenado en un dominio específico (cáncer de próstata en español); fuera de ese dominio el rendimiento puede caer.
- El conjunto de datos es de tamaño moderado; entidades poco frecuentes pueden tener menor recall.
- No sustituye el criterio clínico profesional. Pensado como apoyo a la extracción de información, no para decisiones médicas autónomas.
- Hereda los posibles sesgos de BETO y del corpus clínico de entrenamiento.
🏷️ Etiquetas
O
B-EDAD, I-EDAD, B-CANCER, I-CANCER, B-GLEASON, I-GLEASON,
B-BIOMARCADOR, I-BIOMARCADOR, B-TNM, I-TNM, B-TRATAMIENTO, I-TRATAMIENTO,
B-MEDICAMENTO, I-MEDICAMENTO, B-DOSIS, I-DOSIS, B-CIRUGIA, I-CIRUGIA, B-FECHA, I-FECHA
📚 Cita
Si usas este modelo, cita también a BETO:
@inproceedings{canete2020beto,
title={Spanish Pre-Trained BERT Model and Evaluation Data},
author={Cañete, José and Chaperon, Gabriel and Fuentes, Rodrigo and Ho, Jou-Hui and Kang, Hojin and Pérez, Jorge},
booktitle={PML4DC at ICLR 2020},
year={2020}
}
Modelo afinado y publicado como parte de un proyecto de PLN en español (clasificación y NER con Transformers). Reproducible en hardware modesto (Apple Silicon) mediante fine-tuning completo para BETO y LoRA para modelos grandes.
- Downloads last month
- 47
Model tree for ralzate/beto-prostata-ner
Base model
dccuchile/bert-base-spanish-wwm-casedEvaluation results
- F1 (micro, seqeval)self-reported0.976
- Precisionself-reported0.973
- Recallself-reported0.978