Hushmark BERTurk Span 112M is a 112,422,957-parameter, fixed-taxonomy Turkish
named-entity recognition model. It fully fine-tunes the cased Turkish BERT encoder from
dbmdz/bert-base-turkish-cased
and adds a custom non-overlapping word-span classifier.
This private release is a challenger checkpoint, not the currently adopted Hushmark
production model. It substantially outperformed hushmark-tr-289m on the new locked
synthetic holdout, but runtime integration, ONNX parity, production-like evaluation, and
shadow testing are still required before promotion.
Intended use
The model proposes spans for the 12 NER-owned Hushmark entity types:
Hushmark type
Model label
PERSON
person
ADDRESS
full address
ORG
organization
DOB
date of birth
HEALTH
medical condition
RELIGION
religious belief
ETHNICITY
ethnic origin
POLITICAL
political opinion
SEXUAL_LIFE
sexual orientation
CRIMINAL
criminal record
BIOMETRIC_REF
biometric data
UNION
trade union membership
The taxonomy is closed: adding or changing a label requires retraining the span head.
Deterministic identifiers and secrets remain the responsibility of Hushmark validators.
Policy, masking, blocking, and audit decisions are outside this model.
This model is a detection aid, not an anonymization or legal-compliance guarantee. Do
not use its predictions as the sole basis for legal, employment, healthcare, credit, or
other high-impact decisions.
Usage
The repository contains a small standalone loader because this is a custom span model,
not a standard AutoModelForTokenClassification checkpoint.
Inputs are limited to 256 BERT subword tokens and candidate spans to 24 word units.
Longer inputs must be chunked by the caller. Inference returns non-overlapping spans.
Architecture
Base encoder: dbmdz/bert-base-turkish-cased
Pinned base revision: b6e1de16c983e0f2c70664591ea3f22810072608
Parameters: 112,422,957
Fully fine-tuned encoder; not a LoRA or PEFT adapter
Span representation: start, end, mean-pooled word vectors, and width embedding
Classifier: GELU MLP over 12 labels plus background
Maximum input length: 256 subword tokens
Maximum span width: 24 word units
Artifact size: 450,470,897 bytes
Training data
No customer data or downloaded research documents were used. Training combined:
200,592 deterministic legacy Hushmark synthetic records used for hushmark-tr-289m;
28,000 project-generated Turkish synthetic records from Hushmark Combined35k,
containing 20,000 positive and 8,000 hard-negative examples.
The union contains 228,592 unique records with zero cross-source ID and normalized-content
overlap. Epoch sampling used a predeclared 70% legacy / 30% new replay ratio. The new
dataset is Apache-2.0 for project-generated outputs.
Training configuration
The full run used one NVIDIA A100-SXM4-80GB, BF16, batch size 32, seed 20260809,
encoder learning rate 1e-5, head learning rate 5e-5, 500 warm-up steps, and early
stopping. The best checkpoint was selected at step 4,000; training stopped at step 8,000
after 572.599 seconds. Peak allocated GPU memory was 3,203,504,640 bytes.
Evaluation
Strict span F1 on the untouched locked synthetic suites:
Suite
BERTurk candidate
hushmark-tr-289m
Legacy 12-type NER macro F1
1.000000
0.994124
New PERSON/ADDRESS/DOB macro F1
0.975286
0.536787
New micro F1
0.986301
0.617954
Empty-gold false-positive spans
37
545
On the new suite, candidate per-type strict F1 was PERSON=1.0, ADDRESS=1.0, and
DOB=0.925859.
The recorded formal adoption verdict is false: the legacy policy required an absolute
+0.05 macro-F1 improvement, while the incumbent already scored 0.994124. This is a
policy-limit result rather than a measured regression; no threshold or hyperparameter was
changed after opening either locked set. See EVALUATION.json for machine-readable detail.
Limitations
Training and evaluation data are synthetic and partly template-adjacent.
High locked scores do not establish robustness on arbitrary production Turkish.
A qualitative natural-language smoke example caused both this candidate and the
incumbent to miss an address span.
The evidence does not cover every dialect, typo, OCR artifact, code-switching pattern,
or organization-specific document.
The fixed taxonomy cannot perform GLiNER-style zero-shot label expansion.