DT4H_CardioBERTa_cs_enriched
DT4H_CardioBERTa_cs_enriched is a Czech biomedical terminology encoder for clinical concept normalization and entity linking. It is initialized from [DT4H/CardioBERTa.cs] and specialized using CUI-supervised terminology pairs and metric learning.
Backbone
The backbone belongs to the CardioBERTa family from CardioLM - a multilingual suite of small language models for the cardiology domain. CardioBERTa comprises language-specific encoder models adapted to cardiology through continued pretraining on monolingual biomedical and cardiology-related corpora using Masked Language Modeling (MLM). The family covers Czech, Dutch, English, Italian, Romanian, Spanish and Swedish.
Training
| |
|---|
| Language | Czech (cs) |
| Triplet collection | enriched |
| Strategy | synonyms |
| Objective | Multi-Similarity Loss |
| Mining | All triplets, margin 0.2 |
| Pooling | CLS |
| Epochs | 1 |
| Batch size | 256 |
| Learning rate | 2e-5 |
| Max. length | 25 |
CUI-supervised synonym pairs.
Terminology statistics
| Strategy | Triplets | CUIs | Unique terms | Unique positives | Terms/CUI | Δ terms |
|---|
| synonyms | 68,973 | 68,973 | 135,148 | 68,214 | 2.00 | 0 |
| parents | 1,592,861 | 476,184 | 526,263 | 394,884 | 3.92 | +391,115 |
| grandparents | 4,689,093 | 476,969 | 526,548 | 446,760 | 9.78 | +391,400 |
This model uses 68,973 triplets, covering 68,973 CUIs and 135,148 unique normalized terms.
The training terminology is not distributed with this repository because it contains resources subject to UMLS licensing conditions. Only aggregate statistics are released.
Intended use
The model is intended for terminology embedding, biomedical candidate retrieval, concept normalization and entity linking, particularly in cardiology and clinical NLP pipelines. It is not intended for direct clinical decision-making.
Usage
1import torch
2import torch.nn.functional as F
3from transformers import AutoModel, AutoTokenizer
4
5model_id = "DT4H/DT4H_CardioBERTa_cs_enriched"
6
7tokenizer = AutoTokenizer.from_pretrained(model_id)
8model = AutoModel.from_pretrained(model_id)
9
10inputs = tokenizer(
11 "clinical concept",
12 return_tensors="pt",
13 truncation=True,
14 max_length=25,
15)
16
17with torch.no_grad():
18 output = model(**inputs)
19
20embedding = F.normalize(
21 output.last_hidden_state[:, 0, :],
22 p=2,
23 dim=1,
24)
Reference
Danu et al. CardioLM - a multilingual suite of small language models for the cardiology domain.
Developed within the DataTools4Heart (DT4H) project, Grant Agreement 101057849.