/ Модель

Характеристики

Контекст
514 токенов
Параметры
152 млн
Лицензия
Apache 2.0
Архитектура
roberta · dense
Базовая модель
robbert-2023-dutch-base
Библиотека
transformers
Опубликована
19 апр 2026

nl-lokaal-middel

Разметка токеновТекст → label6 профессий

RoBERTa-модель LokaalHub для обнаружения и разметки персональных данных в нидерландском тексте перед редактированием или псевдонимизацией.

137скачиваний за 30 дней0лайковвеса обновлены19 апр 2026

Бенчмарки

Как модель справилась с задачами пользователей ailist и что о ней публикуют открытые лидерборды

Публичные оценки

Из открытых лидербордов. Сравнивайте результаты одного теста при одинаковых условиях — отсутствие оценки не значит, что модель хуже.

В подключённых источниках результатов для этой модели пока нет.

Что умеет модель

Описание составлено по карточке модели и метаданным Hugging Face

nl-lokaal-middel — разработанная LokaalHub модель распознавания персональных данных в нидерландском тексте. Это RoBERTa-модель для классификации токенов, дообученная на базе DTAI-KULeuven/robbert-2023-dutch-base; метаданные указывают 151,6 млн параметров, а README приводит оценки от 110 до 117 млн. Модель использует схему из 14 объединённых категорий PII для типичных задач редактирования и псевдонимизации, а также обучена распознавать дополнительные типы сущностей.

Модель рассчитана на поиск имени, BSN, IBAN, адреса, телефона, электронной почты и других идентификаторов в нидерландских документах, а также на роль учителя для дистилляции компактных вариантов. В README сообщается F1 0,8435 на валидации датасета ai4privacy PII 300k; контекст модели составляет 514 токенов. В карточке описаны ограничения по языку, охвату категорий, соглашениям о границах сущностей и смещению синтетических данных; для критически важных процессов рекомендуется сочетать модель с правилами. Лицензия — Apache-2.0.

Сценарии применения

  • поиск персональных данных в нидерландских документах перед редактированием
  • обнаружение BSN, IBAN, телефонов и адресов в текстах
  • разметка PII для конвейера псевдонимизации нидерландских данных
  • первичный высокочувствительный поиск персональных данных с последующей проверкой
  • генерация мягких меток для дистилляции компактной модели NER

Ограничения

Модель предназначена для нидерландского языка и не охватывает произвольные корпоративные идентификаторы или биометрические данные. Объединённые категории и границы сущностей могут не совпадать с разметкой других наборов данных; синтетические данные и покрытие имён также могут влиять на качество.

Для каких профессий подходит6

Разделы каталога профессий, в задачах которых используется эта модель

Все профессии

Также подходит для

Карточка модели

README от автора на Hugging Face, как он его опубликовал

Открыть на Hugging Face

nl-lokaal-middel

Medium-size Dutch PII NER model — 110M parameters, fine-tuned from RobBERT-2023 for high-quality redaction of personally identifiable information.

nl-lokaal-middel ("middel" = medium in Dutch) is a token-classification model that identifies personally identifiable information in Dutch text across 14 GDPR-relevant categories. It is the accuracy-first / teacher member of the LokaalHub Dutch PII family — paired with the smaller distilled nl-lokaal-klein for low-latency workloads.

At a glance

Base modelDTAI-KULeuven/robbert-2023-dutch-base
Parameters117M
Disk size473 MB (fp32)
ArchitectureRoBERTa, 12 layers, hidden 768, 12 attn heads
Max sequence512 tokens (trained at 384)
LanguageDutch (nl)
TaskToken classification (BIO, 47 labels)
LicenseApache-2.0
Training dataai4privacy/pii-masking-300k (Dutch subset) + Dutch open-source NER corpora

Quick start

from transformers import AutoTokenizer, AutoModelForTokenClassification, pipeline

model_id = "LokaalHub/nl-lokaal-middel"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForTokenClassification.from_pretrained(model_id)

ner = pipeline("ner", model=model, tokenizer=tokenizer, aggregation_strategy="simple")

text = "Mijn naam is Jan van der Berg, BSN 123456782. Bel me op 06-12345678."
for span in ner(text):
    print(f"{span['entity_group']:14} {span['word']!r:30} score={span['score']:.2f}")

When to choose nl-lokaal-middel vs nl-lokaal-klein

nl-lokaal-kleinnl-lokaal-middel (this model)
Parameters46M117M
Disk size177 MB473 MB
Typical throughput on CPU~200 tokens/s~70 tokens/s
Accuracy (Dutch 300k val, raw F1)0.77900.8435
Use whenEdge / on-device / low latency requiredBatch / server processing / accuracy-first

Both share the same 14 output categories, so you can swap between them without changing downstream code.


Design choices

1. 14 merged PII categories

nl-lokaal-middel predicts 23 entity types internally; 14 of them appear in the standard Dutch PII evaluation gold:

PERSON, BSN, IBAN, EMAIL, PHONE, USERNAME, PASSWORD, ADDRESS, CITY, POSTAL_CODE, PASSPORT, DRIVER_LICENSE, DATE_OF_BIRTH, CREDIT_CARD.

Additional categories trained but rarely annotated in public benchmarks: AGE, BTW (Dutch VAT), KVK (Chamber of Commerce), LICENSE_PLATE, ORGANIZATION, TECHNOLOGY, URL, DATE, IP_ADDRESS.

This merged scheme (e.g., combining FIRSTNAME + MIDDLENAME + LASTNAME + PREFIX → PERSON, STREET + BUILDINGNUMBER → ADDRESS) is chosen to match real redaction targets. See nl-lokaal-klein's card for full mapping tables — the schemes are identical.

2. RobBERT-2023 base, not multilingual

Built on RobBERT-2023, a Dutch-native RoBERTa trained on OSCAR-2023 (Dutch subset). This consistently outperforms multilingual bases on Dutch PII in our experiments. The BPE vocabulary is tuned for Dutch orthography, including compound words and diacritics.

3. Used as the distillation teacher for nl-lokaal-klein

Beyond its direct use, nl-lokaal-middel generated soft-label supervision for the smaller nl-lokaal-klein student.


Evaluation

All numbers use seqeval strict (IOB2 scheme). Raw model predictions — no post-processing.

Primary result — in-distribution (ai4privacy 300k validation, Dutch)

ModelParamsF1PrecisionRecall
nl-lokaal-middel (this model)110M0.84350.80700.8834
nl-lokaal-middel + filenthropist rule layer110M0.83860.80580.8742
nl-lokaal-klein (student)46M0.77900.76890.7895

In-distribution = trained on pii-masking-300k train, evaluated on validation (7,457 Dutch rows, 47,638 gold entities after 14-category merge — never seen during training).

Related work

The closest comparable open Dutch PII model is OpenMed/OpenMed-PII-Dutch-BioClinicalBERT-Base-110M-v1 (110M params, Apache-2.0), trained on ai4privacy/pii-masking-400k with a 54-label fine-grained scheme. It reports F1 0.8401 on its own 400k held-out benchmark. A direct head-to-head isn't scientifically meaningful — different test sets, different label taxonomies (54 fine-grained vs our 14 merged), different boundary conventions — but nl-lokaal-middel reaches 0.8435 on a comparable Dutch PII held-out set, suggesting parity at this model size.

Per-category breakdown (300k validation, raw model, nl-lokaal-middel)

CategorySupportPrecisionRecallF1
EMAIL2,5400.93560.97170.9533
IP_ADDRESS2,1990.87150.93450.9019
DRIVER_LICENSE2,4290.86700.93370.8991
BSN2,4390.85450.94630.8981
CITY5,1410.84960.91670.8819
USERNAME2,5710.87320.88910.8811
POSTAL_CODE1,8070.83370.92420.8766
PHONE1,9320.82450.90220.8616
PASSPORT4,5400.81070.90440.8550
PASSWORD1,4430.79700.88980.8409
ADDRESS4,5170.77610.86560.8184
PERSON8,6730.78110.81930.7997
DATE5,2420.73310.86150.7921
DATE_OF_BIRTH2,1650.63930.76300.6957
micro avg47,6380.80700.88340.8435
macro avg47,6380.81760.89440.8540

All 14 categories score F1 ≥ 0.69. High-recall profile (0.88 macro) makes this a good choice as a first-pass PII detector where missing an entity is more costly than flagging an extra one.

How to reproduce

pip install datasets transformers seqeval
python compare_models.py --dataset 300k

Label-mapping tables used by the script match the "Design choices" section above.


Training procedure

Data

Identical data mix as nl-lokaal-klein — see its card for the full table. Briefly:

  • 20% ai4privacy Dutch real spans
  • 28% teacher pseudo-labels (self-distillation on unlabeled Dutch)
  • 32% synthetic + LLM-generated (structured forms, clean prose)
  • ~20% Dutch open-source NER corpora (WikiNEuRal, MultiNERD, Gretel, Careons)

Total: ~40K samples, 25% entity-replacement augmentation.

Hyperparameter search — our own autoresearch loop

Hyperparameters were not hand-tuned. We used an in-house autoresearch agent that iterates on the config, trains, evaluates on a held-out benchmark, and either keeps or reverts each change — all autonomously. Over 100+ experiments explored learning rate, epochs, sequence length, label smoothing, B-tag weight, data mix ratios, augmentation ratio, and loss variants.

The pattern is inspired by Andrej Karpathy's minimal-loop approach to ML research — small, readable code, fast iteration, measured decisions.

Hyperparameters

OptimizerAdamW, weight decay 0.02
Learning rate2.0e-5, cosine schedule, 10% warmup
Epochs3
Batch size16 × 2 gradient accumulation = 32 effective
Max sequence length384
Label smoothing0.0
B-tag boundary weight2.0×
FP16Enabled
Seed42
HardwareApple Silicon (MPS)

Intended use

In scope

  • High-assurance GDPR redaction / pseudonymization of Dutch text where accuracy matters more than latency.
  • Teacher model for further distillation or fine-tuning into smaller variants.
  • Dutch PII research as a strong open baseline.

Out of scope

Same as nl-lokaal-klein:

  • Languages other than Dutch
  • Legal anonymization (detection ≠ removal + k-anonymity)
  • Fine-grained sub-type distinctions (first name vs last name) — intentionally merged
  • PII categories not in the trained 23 (custom corporate IDs, biometric descriptors, etc.)

Limitations & biases

  • Boundary conventions follow ai4privacy 300k. Datasets with different entity-splitting conventions (e.g., separate STREET + BUILDINGNUM entities vs our merged ADDRESS) will score lower under strict evaluation even when the model is qualitatively correct.
  • Dutch gazetteer coverage reflects CBS and open-source name lists — immigrant-origin names may recall below average.
  • Synthetic-data bias in the training mix toward form-like text.
  • Single-model caution: at 110M params this is still a moderately-sized model. For mission-critical redaction, ensemble with rule-based backstops (see filenthropist's production pipeline).

Ethical and legal considerations

Same as nl-lokaal-klein:

  • Detection ≠ removal or anonymization. Operator retains legal responsibility under GDPR (Reg. (EU) 2016/679), UAVG, and EU AI Act (Reg. (EU) 2024/1689).
  • Keep human review in the loop for legally consequential redactions.
  • No external data transmission when run locally.

Attribution & citation

Base model: RobBERT-2023-dutch-base by DTAI-KULeuven (MIT license).

Training data: ai4privacy/pii-masking-300k (CC-BY-4.0) plus Dutch open-source NER corpora.

@misc{nl_lokaal_middel_2026,
  title         = {nl-lokaal-middel: A Dutch PII NER Teacher Model},
  author        = {LokaalHub},
  year          = {2026},
  publisher     = {Hugging Face},
  url           = {https://huggingface.co/LokaalHub/nl-lokaal-middel}
}

@inproceedings{delobelle2020robbert,
  title     = {{RobBERT}: a {Dutch} {RoBERTa}-based Language Model},
  author    = {Delobelle, Pieter and Winters, Thomas and Berendt, Bettina},
  booktitle = {Findings of the Association for Computational Linguistics: EMNLP 2020},
  year      = {2020}
}

Changelog

  • v1.0 — 2026-04-19 — Initial release. Teacher checkpoint used for nl-lokaal-klein distillation.

Built in the Netherlands — optimized for Dutch privacy law, trained on Dutch data, shipped under Apache-2.0.

Как запустить

На своей GPU в ailist. Цена — по текущим предложениям провайдеров

GPU в ailist

Универсальный рантайм · transformers · token-classification

Можно запустить

Подбираем GPU…

Класс архитектуры
RobertaForTokenClassification
Ревизия весов
80beafc

0 моделей