CoolFace
Modelpublic

SINAI/ALIA-MrBERT-es-snomed-dental-ner-multiclass-ctx8192

sourceHugging Faceapache-2.0updated 3mo agoView on Hugging Face
0likes16downloads
Model Card

ALIA MrBERT-es Snomed Dental Multiclass NER Model (Context 8192)

This repository contains ALIA-MrBERT-es-snomed-dental-ner-multiclass-ctx8192, a Spanish dentistry domain multiclass Named Entity Recognition (NER) model. It is built upon MrBERT-es, a bilingual (Spanish-English) foundational language model based on the ModernBERT architecture, and fine-tuned on dentistry-specific clinical data.

Unlike binary or single-class entity extraction models, this model is a direct multiclass token classifier. It detects dental clinical entities and assigns them directly to their corresponding SNOMED CT codes in a single inference step, utilizing a BIO (Beginning, Inside, Outside) tagging schema tailored for each concept.

[!WARNING] DISCLAIMER: This model is a domain-specific proof-of-concept designed to demonstrate multiclass entity recognition and direct coding in the Spanish dentistry domain. Clinical decisions should always be verified by qualified dental professionals and clinical experts. The model should not be used as a standalone diagnostic tool.

Model Details

Model Lineage

ModernBERT (architecture)
       ↓
  MrBERT-es (BSC-LT)
  Bilingual ES/EN encoder
  150M parameters
       ↓
  ALIA-MrBERT-es-snomed-dental-ner-multiclass-ctx8192 (UJA)
  Dentistry Multiclass Named Entity Recognition fine-tuning
  ~400 SNOMED CT clinical codes (Direct Coding)

Key Features

  • —🦷 Domain: Spanish dental and dentistry clinical reports.
  • —📐 Architecture: ModernBERT adapted for Multiclass Token Classification (NER).
  • —📏 Long context: Up to 8,192 tokens, enabling complete clinical histories or multi-turn dental dialogues to be processed in a single pass.
  • —🏷️ Direct SNOMED CT Coding: Classifies tokens directly into specific SNOMED CT concepts, bypassing the need for a separate downstream entity linking step.
  • —⚙️ BIO Schema: Assigns B-{SNOMED_CODE} and I-{SNOMED_CODE} tags to extract exact entity boundaries and classifications simultaneously.

Architecture

This model utilizes the ModernBERT architecture, extended with a multiclass token classification head:

Base ArchitectureModernBERT
Total Parameters~150M
Hidden size768
Intermediate size1,152
Attention heads12
Hidden layers22
Context length8,192 tokens
Vocabulary size51,200
Precisionbfloat16
Positional encodingRoPE
Activation functionGeLU
Attention typeMixed (global every 3 layers + sliding window)
Classification HeadMulticlass Token Classification (Linear + Softmax)
Label Space~815 labels (BIO tags for ~400 concepts + O)

Training

Training Script & Strategy

The model was fine-tuned using the training pipeline defined in train_multiclass.py. The strategy maps spans in the dental corpus to BIO-formatted labels of the form B-{SNOMED_CODE} and I-{SNOMED_CODE}, where each code corresponds to one of the dental clinical terms.

  • —Loss Function: Cross-Entropy Loss at the token level (ignoring padding tokens with a label of -100).
  • —Evaluation Metric: Strict Token Micro-F1, which calculates True Positives, False Positives, and False Negatives globally. If the model predicts an entity with an incorrect SNOMED CT code, it is penalized as both a False Positive for the predicted class and a False Negative for the gold class.

Training Hyperparameters

The model was trained using the following parameters:

HyperparameterValueDescription
Learning Rate (LR)3×10⁻⁵Nominal learning rate for multiclass token classification
Global Batch Size16Batch size per training step
Max Epochs50Maximum training epochs
OptimizerAdamWWeight decay optimizer
Weight Decay0.01L2 regularization coefficient
Precisionbf16Bfloat16 mixed precision for training efficiency
Max Sequence Length8,192Maximum sequence length processed
Evaluation StrategyepochEvaluation performed at the end of each epoch
Early Stopping3 epochsPatience for early stopping based on validation F1-score
Validation Split0.05Test split size for evaluation during training

Intended Use

Direct Use

  • —End-to-end Dental Entity Extraction and Coding: Identifying and mapping dental pathologies, anatomy, and procedures directly to SNOMED CT codes in a single step.
  • —Clinical Text Structuring: Structuring unstructured dental patient files into standardized SNOMED CT term representations.

Out-of-Scope Use

  • —General clinical Named Entity Recognition outside of dentistry.
  • —Non-Spanish clinical texts.
  • —Text-generation tasks (this is an encoder-only model).
  • —Automated diagnostic or treatment decisions without human expert validation.

How to Use

With HuggingFace pipeline

python
from transformers import pipeline

# Load the multiclass token classification pipeline
ner_pipeline = pipeline(
    "token-classification",
    model="SINAI/ALIA-MrBERT-es-snomed-dental-ner-multiclass-ctx8192",
    aggregation_strategy="simple"
)

# Clinical text example
clinical_text = "El paciente presenta caries dental en el canino inferior derecho y apiñamiento severo."

# Run inference
entities = ner_pipeline(clinical_text)
for entity in entities:
    print(f"Texto: {entity['word']} | Código SNOMED: {entity['entity_group']} | Confianza: {entity['score']:.4f}")

With transformers (Manual Inference)

python
import torch
from transformers import AutoTokenizer, AutoModelForTokenClassification

model_name = "SINAI/ALIA-MrBERT-es-snomed-dental-ner-multiclass-ctx8192"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForTokenClassification.from_pretrained(model_name)

text = "Paciente refiere abrasión dental y requiere un puente de dentina."
inputs = tokenizer(text, return_tensors="pt", truncation=True, max_length=8192)

with torch.no_grad():
    outputs = model(**inputs)

predictions = torch.argmax(outputs.logits, dim=-1)
tokens = tokenizer.convert_ids_to_tokens(inputs["input_ids"][0])

for token, pred_id in zip(tokens, predictions[0].tolist()):
    label = model.config.id2label[pred_id]
    if label != "O":
        print(f"Token: {token:15} -> Label: {label}")

Evaluation

The model was evaluated using a train/test split containing 80% training and 20% testing data, representing a total of 6,022 entities in the test set.

Metrics

The token-level multiclass Named Entity Recognition performance on the test set is as follows:

MetricValue
Precision96.83%
Recall95.83%
F1-score96.33%

Supported SNOMED CT Codes

This model is trained to recognize and directly code the following clinical terms from the Spanish dentistry domain:

Término clínico (Texto)Código SNOMED CT
abrasión47222000
abrasión dental47222000
acentuada24484000
adelgazamiento109706009
agregado óseo61838003
aleta de mordida241046008
alteración18307000
altura del hueso remanente710083001
altura del hueso remanente deficiente710083001
altura ósea769045007
alveolar731114003
alvéolo1240400004
ameloblastoma unilocular278385006
ameloblastoma unilocular infectado20462008
amelo-cementaria245707008
amplio1359828000
anastomosan41796003
anatomía patológica1255732006
anatomía radicular85077000
anquilosis36504009
antrolitos470756000
apical43674008
ápice16626007
apiñamiento12351004
apolillado129736006
artefacto oscuro47973001
aspecto granulado15933001
aspergilosis65553006
ATM53620006
atrofia ósea53174001
aumento del espacio periodontal109630002
basal57195005
basilar33898000
beam hardening47973001
bifurcación110586005
bifurcación radicular245737004
bilateral51440002
lateral51440002
biopsia86273004
birradicular convergente109463000
birradicular divergente109462005
borde57183005
reborde57183005
borde incisal245645004
bordes irregulares129736006
borrosidad111516008
brecha edéntula278650002
buco-sinusual1156269004
búsqueda de conducto234707000
calcificación18115005
calculo pulpar57602001
cámara245740004
cara245740004
cámara pulpar245740004
cambio degenerativo pulpar22361007
canal del nervio dentario inferior7854005
canal mandibular7854005
canal nasopalatino367625000
canales mandibulares7854005
canino45208001
caninos45208001
capuchón pericoronario22240003
capuchones foliculares110975002
cara vestibular245647007
caries80967001
caries dental80967001
cavidad antral110975002
cavidad glenoidea46385009
cavidad pulpar72236009
cefálico66787007
cemento ósea6043006
cementoósea6043006
cervical716360003
cicatriz ósea12402003
cierre112695004
circular354652004
colapso271787007
complicación endo periodontal2556008
comprometida246332000
compromiso de furca110585009
compromiso severo de furca110585009
concéntrica255465008
concomitante68405009
concrescencia33504000
conducto368876003
conducto accesorio90956000
conducto DV245750003
conducto ML245749003
conducto MV245748006
conducto vestibular245747001
conservado11163003
conservada11163003
contacto11723008
continuas255238004
contorno radicular mesial245716007
convergente263727000
corona75628001
coronario75628001
corona conservada278552004
cortes axiales24422004
corticada129746008
cortical87791003
corticalizadas260409000
cráter oseo179003002
crestas245699009
crestas alveolares129143008
Crónica90734009
cuadrante mandibular245551001
cuerno pulpar245742007
cuernos pulpares245742007
cuerpo extraño19227008
curvatura298360005
curvatura60301000
defecto óseo109706009
degenerativo pulpar22361007
dehiscencia11108009
densidad osea385342005
dentición mixta245545006
dentigero9245008
dentina de la cámara84540008
desajuste marginal399898009
desalojo de dispositivo128538000
diente cónico1162597008
dilaceración62568001
disminuido1250004
displasia25723000
dispositivo hiperdenso129744006
dispositivo metálico4816004
dispositivo metálico intraconducto4816004
distal46053002
divergente263741009
edéntula278650002
edéntulas278650002
edéntulo278650002
eminencia303403006
En formación90555008
en formación90555008
encapsulado59135002
endodóntico55670007
endoperiodontal55670007
engrosamiento263899003
ensanchado90522003
ensanchamiento90522003
ensanchando90522003
entrada de263558002
erosión82212003
erupción397797004
erupcionada397797004
erupcionado397797004
eruptivo397797004
escaso trabeculado449781000
espacio cameral245740004
espacio del ligamento periodontal245775004
espacio folicular110975002
espacio medular46535001
espacio sinusal271745005
espigo463864000
espigo metálico463864000
espina nasal anterior767496007
estadio de maduración364673002
estrechos134223000
estructura dentaria38199008
estudio histopatológico252416005
evolución extraósea234949000
evolución intraósea397797004
fenestra257825001
fenestración257825001
fibrodontoma ameloblástico84983008
fibroma osificante25603007
finalidad protésica971009
fisiológica1360005
fistula118622000
fisura47393002
foramen276742007
forma de cuña310423000
formación radicular1259298002
fosa nasal53912006
fosas nasales53912006
fractura72704001
fragmento29140007
fuerza eruptiva110294004
gingival372457001
giroversion38089000
granulado385043007
Granuloma45647009
heterogéneo1359749008
Hipercementosis78537008
hiperdensa129744006
hipermovilidad263778007
hiperplasia folicular43961000
hipodenso129746008
homogeneo255384007
hueso esponjoso20870005
hueso medular46535001
idiopática54690008
imagen isodensa129745007
imagenologico363679005
imagenológico de normalidad17621005
impactación235104008
impacta235104008
semi-impactado1148577004
semi-incluido1148577004
implante1303757005
implante dental1303757005
implante dental rehabilitado1371558003
impresiona pérdida mineral128420001
incipiente25721003
incisivos78509001
inclinado278653000
incluida235104008
inclusión235104008
completo255594003
incompleta255599008
incompleto255599008
infiltración47351003
informe de corte371525003
infraoclusión234973008
injerto óseo80983001
inserción738993004
integridad32082000
intraóseo417255000
invertidos263787003
irregulares49608001
isodensa129745007
isodensidad129745007
lamina dura450722007
lámina dura450722007
laxo12554006
lesión52988006
ligamento periodontal245775004
limite amelocementario58592000
Línea no radiodensa129746008
lingual255579002
lobuladas62655004
lumen113342003
luz poco visible415582006
malposición81256000
mandibula91609006
Mandíbula91609006
marcado46998006
material desadaptado109728009
material hiperdenso129744006
material hipodenso129746008
maxilar70925003
membrana sinusal87550002
mesial710099007
Mesiodens17802000
mesio-distal245679003
Mesioinclinada699457000
mesiovestibular245662009
mesio-vestibular245662009
mesolingulo inclinada278676002
microdoncia32337007
mineral87918000
ML245749003
molar76928009
mucositis95361005
Multirradicular19231000000000
muñón protésico706370006
MV245748006
nervio dentario inferior49792003
neumatización47173002
nivel de tercio medio261133007
no radiodensa129746008
objeto extraño19227008
oblicua21114003
obliteración15524008
obliterado89925002
obturación50173008
obturado50173008
oclusal710098004
oclusales710098004
ocupado118247008
odontoma complejo29020002
orientación cefálica1209182005
osteólisis203522001
osteolítica30425001
osteolítico30425001
palatina72203008
palatino72203008
papila dental726069006
parcialmente255609007
pared lateral277154009
patrón de reabsorción externo41918006
patrón imagenológico de normalidad168500000
patrón remodelado370549005
penetrante53568006
perdida de estructura dentaria234977009
pérdida de tejido mineralizado128420001
pérdida ósea312894000
pérdida total del tejido coronal234977009
perfil radicular245712009
perforación36191001
perfora36191001
pericoronario ensanchado22240003
peri-implantares699422003
periodonto1230218002
permeabilidad82540007
perno77444004
pieza dentaria supernumeraria367534004
pilar de prótesis fija707144009
pin intraradicular272346006
piso de fosa nasal279549004
plano axial399061009
póntico260930001
pónticos260930001
posición asimétrica4128009
posición horizontal24020000
posición oblicua399366008
post extracción128926000
premolar76424003
proceso de cicatrización48677004
proceso osteolítico perirradicular34282009
protuberancia49557009
protuberancias49557009
proximal40415009
puente de dentina109601009
quiste367643001
radicular85084008
radio densa129744006
radiodensa129744006
radioedensa129744006
radiolúcida263850002
raices curvas110333006
raíces vestibulares85077000
Raíz DV245734006
Raíz MV245733000
raíz única245729007
rama ascendente mandibular23938008
rasgos imagenológicos258106000
rayos X363680008
reabsorbidos22200009
reabsorción ósea70931000
reborde alveolar109703001
reborde basilar11048003
recidiva246455001
reducción de la luz415582006
relación de proximidad40415009
relleno311933008
relleno óseo118417008
Remanente radicular66569006
remodelado370549005
residual65320000
respuesta endoperiodontal235006007
respuesta ósea30397001
respuesta periodontal2556008
restauración173307000
retención mucosa1260280009
retención mucoso6078006
retenida196419009
retenido196419009
retraso eruptivo5639000
rizálisis avanzada109588005
seno maxilar15924003
seudoquiste13467000
sin datos a destacar281900007
sínfisis336205008
sinuoso70984001
sinusitis36971009
solución de continuidad247442005
soporte óseo272673000
submucosa68439008
sumergido234973008
superficies articulares70746003
supernumeraria367534004
supernumerario367534004
tabla ósea271003
tallado mecánico coronario234740009
tejidos blandos95937008
temporario21644001
tercio272427006
tercio medio261133007
tomográfico312251004
Torus70033004
trabeculas oseas20870005
trabéculas20870005
transmigración50033000
transposición405257002
trayecto fistuloso1360029003
trifurca245738009
tubular13336003
tumor queratoquistico odontogenico713277006
unilocular66715007
unirradicular245729007
vértica cuspideo28255003
vertical33096000
vértice cuspideo28255003
vestibular302990001
vestíbulo109773002
vestíbulo inclinación278666000
vitalometría12282003
vitalométrica12282003
zona apical16626007
zona basal91609006
zona de furca110585009
zonas de densidad129744006
zonas de densidad dentaria129744006
birradicular19221000122103
periradicular19221000122103
compromiso zona de furca110585009
densidad dental385342005
cara proximal245651009
enamel76993005
tejido coronal76993005
perlas de esmalte3783004

Limitations and Biases

Known Limitations

  • —Large Label Space: Classifying tokens into ~815 possible classes (BIO tags for ~400 concepts) is a highly complex task. While it allows direct mapping, rare concepts with limited training representation may show lower extraction performance compared to more frequent terms like caries.
  • —Domain Focus: Highly specialized for Spanish dental reports and maxillofacial descriptions.
  • —Syntactic Context: Mappings rely on contextual clues. Out-of-context dental lists or non-standard abbreviations may be misclassified.

Biases

  • —Training data primarily mirrors institutional writing conventions and regional terminology variations from the clinic source.

Additional Information

License

Apache License, Version 2.0

Citation

If you use this model in your research, please cite:

bibtex
@misc{ALIA-MrBERT-es-snomed-dental-ner-multiclass-ctx8192,
  title        = {ALIA MrBERT-es Snomed Dental Multiclass NER Model},
  author       = {SINAI Research Group, Universidad de Jaén},
  year         = {2026},
  publisher    = {HuggingFace},
  howpublished = {\url{https://huggingface.co/SINAI/ALIA-MrBERT-es-snomed-dental-ner-multiclass-ctx8192}}
}

Please also cite the base model:

bibtex
@misc{tamayo2026mrbertmodernmultilingualencoders,
      title={MrBERT: Modern Multilingual Encoders via Vocabulary, Domain, and Dimensional Adaptation}, 
      author={Daniel Tamayo and Iñaki Lacunza and Paula Rivera-Hidalgo and Severino Da Dalt and Javier Aula-Blasco and Aitor Gonzalez-Agirre and Marta Villegas},
      year={2026},
      eprint={2602.21379},
      archivePrefix={arXiv},
      primaryClass={cs.CL},
      url={https://arxiv.org/abs/2602.21379}, 
}

Funding

This work is funded by the Ministerio para la Transformación Digital y de la Función Pública - Funded by EU – NextGenerationEU within the framework of the project ALIA.

Acknowledgments

This dataset has been generated thanks to CEATIC (Centro de Estudios Avanzados en Tecnologías de la Información y de la Comunicación) – UJA (Universidad de Jaén) which provided the needed computational resources on its clusters.


Contact: ALIA Project - SINAI Research Group - Universidad de Jaén

More Information: SINAI Research Group | ALIA-UJA Project