Instructions to use andresdfx/ner-prostata-xlmr with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use andresdfx/ner-prostata-xlmr with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("token-classification", model="andresdfx/ner-prostata-xlmr")# pip install -U transformers accelerate # Load model directly from transformers import AutoTokenizer, AutoModelForTokenClassification tokenizer = AutoTokenizer.from_pretrained("andresdfx/ner-prostata-xlmr") model = AutoModelForTokenClassification.from_pretrained("andresdfx/ner-prostata-xlmr", device_map="auto") - Notebooks
- Google Colab
- Kaggle
ner-prostata-xlmr
Reconoce 10 tipos de entidad en texto clínico en español sobre cáncer de próstata: edad,
fechas, tipo de cáncer, Gleason, TNM, biomarcadores, tratamientos, cirugías,
medicamentos y dosis. Es FacebookAI/xlm-roberta-base afinado para clasificación de
tokens con etiquetas BIO.
Advertencia. Las particiones del corpus se solapan: 683 de las 991 oraciones de prueba (68,9 %) y 812 de las 929 de validación (87,4 %) son idénticas a alguna de entrenamiento. En las 308 oraciones de prueba que no están en entrenamiento, el F1 por entidad es 96,99 %. Detalles en «Limitaciones».
Resultados en prueba
F1 por entidad con seqeval: una entidad cuenta como acierto sólo si coinciden inicio,
fin y tipo.
| Conjunto | Oraciones | Entidades | Precisión | Recall | F1 |
|---|---|---|---|---|---|
| Prueba completa | 991 | 1 974 | 96,92 % | 97,37 % | 97,14 % |
| Prueba no vista | 308 | 1 079 | 96,86 % | 97,13 % | 96,99 % |
La prueba no vista son las oraciones de testing_cleaned.bio que no aparecen idénticas
en training.bio.
F1 por tipo de entidad (soporte: entidades de ese tipo en cada conjunto):
| Tipo | F1 (completa) | Soporte | F1 (no vista) | Soporte |
|---|---|---|---|---|
BIOMARCADOR |
98,54 % | 208 | 97,78 % | 114 |
CANCER |
96,71 % | 364 | 98,06 % | 231 |
CIRUGIA |
89,39 % | 65 | 84,93 % | 35 |
DOSIS |
90,10 % | 189 | 91,40 % | 92 |
EDAD |
98,77 % | 80 | 97,96 % | 48 |
FECHA |
99,75 % | 401 | 99,52 % | 211 |
GLEASON |
96,57 % | 160 | 95,97 % | 136 |
MEDICAMENTO |
99,09 % | 164 | 97,78 % | 45 |
TNM |
99,47 % | 93 | 99,36 % | 78 |
TRATAMIENTO |
97,60 % | 250 | 96,59 % | 89 |
Rejilla
Se afinaron dos modelos con lotes de 8, 16 y 32. F1 por entidad en la prueba completa (en negrita, el publicado):
| Modelo | Lote 8 | Lote 16 | Lote 32 |
|---|---|---|---|
BETO (dccuchile/bert-base-spanish-wwm-cased) |
96,79 % | 96,16 % | 96,84 % |
xlm-roberta-base |
97,06 % | 97,14 % | 96,87 % |
Entre modelos y entre lotes hay menos de un punto. De XLM-RoBERTa se usó la versión base: en el punto de NER el enunciado del taller dice «XML-Roberta» sin tamaño, aunque enlace la large, y la base tiene el mismo codificador que BETO (12 capas de 768 dimensiones); sólo su vocabulario es mayor (250 002 piezas frente a 31 002), lo que la lleva a unos 278 M parámetros frente a unos 110 M.
Etiquetas
Esquema BIO: B-TIPO marca la primera palabra de una entidad, I-TIPO las siguientes y
O lo que no es entidad. Son 21 etiquetas: O más B- e I- para cada tipo.
| Tipo | Qué marca | Ejemplos anotados en el corpus | Entidades en entrenamiento |
|---|---|---|---|
BIOMARCADOR |
marcador de laboratorio, con o sin su valor | PSA, PSMA, «PSA en 9,9 ng/dl», «Creatinina 0.7» | 895 |
CANCER |
tipo de cáncer o lesión tumoral | «adenocarcinoma de próstata», «lesiones metastásicas», «metastásico óseo» | 1 207 |
CIRUGIA |
procedimiento quirúrgico | «prostatectomía radical», «orquiectomía bilateral», «linfadenectomía» | 254 |
DOSIS |
dosis, fracciones o ciclos | «20 fracciones de 3 Gy», «200mCi», «4 ciclos» | 785 |
EDAD |
edad del paciente | «72 años», «64 años» | 246 |
FECHA |
fecha o referencia temporal | «14/02/2024», «2014», «hoy» | 1 262 |
GLEASON |
puntuación de Gleason | «Gleason 3+4», «Gleason score 4+3» | 598 |
MEDICAMENTO |
fármaco | goserelina, abiraterona, docetaxel | 483 |
TNM |
estadificación TNM | «cT4N0Mx», «ct2nxm0», «M0» | 355 |
TRATAMIENTO |
tratamiento, como radioterapia u hormonoterapia | IMRT, SBRT, «bloqueo hormonal», «Lutecio-177 PSMA» | 1 130 |
Datos
Corpus de texto clínico en español sobre cáncer de próstata, en formato BIO (palabra y etiqueta separadas por tabulador), entregado por el profesor del curso. No está publicado en el Hub.
| Partición | Fichero | Oraciones |
|---|---|---|
| Entrenamiento | training.bio |
3 106 |
| Validación | validation_cleaned.bio |
929 |
| Prueba | testing_cleaned.bio |
991 |
El entrenamiento tiene 67 934 tokens, el 77,6 % con etiqueta O. Tres etiquetas
corruptas (un 0 y una cadena vacía en prueba, una , en validación) se normalizaron a
O. La etiqueta de cada palabra se asigna a su primer subtoken; los demás subtokens y
los tokens especiales se ignoran en la pérdida (-100).
Configuración
- Lote 16, hasta 8 épocas con Early Stopping (paciencia 3) sobre el F1 por entidad de validación. Se conserva la mejor época.
- Tasa de aprendizaje 3e-5 con decaimiento lineal, calentamiento del 10 %, weight decay 0,01, AdamW.
- Longitud máxima de 256 subtokens, con padding dinámico
(
DataCollatorForTokenClassification). - Semilla 42. Entrenado en fp16 en una GPU Tesla T4 de Google Colab, en 5,6 minutos.
- La rejilla de lotes se completó en varias sesiones de Colab.
Uso
from transformers import pipeline
ner = pipeline("token-classification", model="andresdfx/ner-prostata-xlmr",
aggregation_strategy="first")
texto = ("Paciente masculino de 72 años con antecedentes médicos de hipertensión "
"arterial (HTA). El puntaje de Gleason reportado fue 3+3.")
for e in ner(texto):
print(e["entity_group"], round(float(e["score"]), 3),
texto[e["start"]:e["end"]].strip(" .,;:"))
# EDAD 0.997 72 años
# GLEASON 0.999 Gleason
# GLEASON 0.996 3+3
aggregation_strategy="first" da a cada palabra la etiqueta de su primer subtoken, que
es como se entrenó. Con "simple" el pipeline etiqueta también subtokens interiores que
el modelo no aprendió a clasificar: con este mismo texto devuelve además GLEASON ado
(de «reportado»), y en otros parte palabras («a» + «denocarcinoma»). Toma el fragmento
del texto original con start y end (con transformers 5, word puede perder los
espacios). Antes de un número puede aparecer una pieza solapada del mismo tipo («9» y
«9,9 ng/dL»): conviene unir las piezas contiguas o solapadas del mismo tipo.
Limitaciones
- Solapamiento entre particiones. 683 de las 991 oraciones de prueba (68,9 %)
y 812 de las 929 de validación (87,4 %) son idénticas a alguna de
training.bio, que además tiene 823 oraciones duplicadas. El F1 de la prueba completa (97,14 %) se mide en buena parte sobre oraciones vistas. En las 308 oraciones no vistas (1 079 entidades) es 96,99 % (precisión 96,86 %, recall 97,13 %). El Early Stopping y la elección de la mejor época se guiaron por una validación casi toda vista. - Los tipos más débiles son
CIRUGIA(89,4 % de F1 en la prueba completa, 65 entidades; 84,9 % en la no vista, 35) yDOSIS(90,1 %, 189 entidades). - El texto clínico del enunciado, que es el ejemplo del widget, es una reescritura del
primer caso de
training.bio: ilustra la salida, pero no mide generalización. - El corpus etiqueta las menciones aunque estén negadas: en
training.bio, «lesiones metastásicas» en «sin evidencia de lesiones metastásicas» llevaCANCER. El modelo hace lo mismo: en el texto clínico del enunciado marca comoCANCER«lesiones metastásicas» (de «no evidenció lesiones metastásicas») y «metástasis» (de «negativa para metástasis»). Que detecte una entidad no significa que el hallazgo esté presente. - No se evaluó con textos de otra fuente. Cada configuración se entrenó con una sola semilla (42), y la publicada es la de mayor F1 en prueba de la rejilla, así que esa cifra es algo optimista.
- Es un modelo hecho para un taller académico. No debe usarse para tomar decisiones clínicas.
Autoría
Julián Andrés Castaño Espinosa. Entrega individual de la Actividad 10 (Taller de clasificación de texto y NER) de Procesamiento de Lenguaje Natural (750137), Maestría Virtual en Computación para el Desarrollo de Aplicaciones Inteligentes, Universidad del Valle, periodo 2026-II. Profesor: Raúl Ernesto Gutiérrez de Piñérez Reyes.
- Downloads last month
- 9
Model tree for andresdfx/ner-prostata-xlmr
Base model
FacebookAI/xlm-roberta-base