Instructions to use SlayerLab/NERGAL with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use SlayerLab/NERGAL with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("token-classification", model="SlayerLab/NERGAL")# pip install -U transformers accelerate # Load model directly from transformers import AutoTokenizer, AutoModelForTokenClassification tokenizer = AutoTokenizer.from_pretrained("SlayerLab/NERGAL") model = AutoModelForTokenClassification.from_pretrained("SlayerLab/NERGAL", device_map="auto") - Notebooks
- Google Colab
- Kaggle
Commit History
11 days ago
-
2.0.1: a [PERSON] placeholder ends an other-number label
Same weights, threshold and API. Rules SHA c1b924a8: a Kod/NIP/REGON/PESEL/KRS/ISBN label no longer reaches a number across [PERSON], so re-scrubbing names-on output masks a phone after a masked name. Phone cues still cross [PERSON]. A first scrub of raw text gives 2.0.0's rule spans, names on or off. Gates vs 2.0.0 rules: 841-dev + invented 0/845 changed; names-on re-scrub 0/841; bench replay 12/12 cohorts equal; full Dynaword corpus 0/4,144,908 changed. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>960c515 -
2.0.0: CUDA release gate numbers
Shipped runtime on an RTX 4090 (Hub v2.0.0 snapshot): names cost 9% at 1 process and 11% at 3 processes; CHANGELOG release gates and the card's Cost paragraph now cite these instead of the prototype. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>8329d5b -
2.0.0
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>be6377b
12 days ago
-
2.0.0: opt-in FastPDN person names (names/, CC-BY-4.0)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>dc40291 -
2.0.0: ranked union, person spans
PHONE > PII > PERSON on overlap; person token ranges expand to whole words and merge into spans; scrub_spans counts person. Names off: output unchanged. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>7ab6996 -
2.0.0: [PHONE] replaces [Telefon]; [Telefon] stays a rules boundary
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>75130f0 -
Card: 315-span comparison, condensed
Comparison table rescored on the 315-span 841-dev gold with every model through the 1.2.0 recipe (spans at 0.95, phone policy v3 cut, 1.2.0 rules); stored spans, no inference. The fine-tuned GLiNER union is now the more precise union (39 vs 80 false characters) and is stated as such. Removed the /354 version table (per-version numbers stay in CHANGELOG.md), the selection figures and the historical seed table. Weights, code and hybrid.json unchanged. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>bbe063e -
1.2.0: phone policy v3 at mask time
Same weights, threshold and API. Rules 1.1.3 (candidate 73c185f7, comments reworded): one span per number of 7+ digits, standalone numbers under 7 digits not masked. Model phone spans are cut by the same _phone_spans before the union (nergal.model_keep). Card basis moves to gold restated to policy v3 plus gold_check_v4 (315 spans). 841-dev, 1.1.2 -> 1.2.0 on that gold: whole 303/315 unchanged, rules FP 83 -> 24, union FP 333 -> 80. No whole value lost in any benchmark cohort. Dynaword reviewed delta: phone whole 57 -> 65 of 70, 0 lost. Full Dynaword: masked characters -10,766 (0.21%). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>bbd1d02
16 days ago
-
1.1.2: email boundary rules
Rules only; same weights, threshold and API. An address match ends before a glued www. host or at a capital glued onto a lowercase domain ending; @-mention lists are not addresses. Card basis moves to amended gold (gold_check_v2), 1.1.1 restated on it. 841-dev union FP 133 -> 80, rules FP 108 -> 24, whole 326/354 unchanged. Full Dynaword: 165 documents change, no mask dropped. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>e0caa8b -
1.1.1: grouped national phones without a label
Rules only; same weights, threshold and API. 841-dev 326/354 whole (324), 0 new false characters; cue-less phone test 66/111 phones (37), scored once. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>4464d47
18 days ago
-
1.1.0: batch API (predict_many, scrub_many), opt-in float16 (#2)
- Prepare 1.1.0: batch API (predict_many, scrub_many), opt-in float16 (fdc79fca5b4800a95c0eddeb2c18f9fdd1dd59e3) - 1.1.0 card: throughput in TL;DR (7b7f961957267e4439c13c67c51b634fd7fbc76b)78cc85a -
limits
3f67c66 -
1.0.3: registry and label-note rules, placeholder and card fixes (#1)
- Prepare 1.0.3: registry and label-note rules, placeholder and card fixes (6eee92ef79115a4a40eedb615aacf457bdd54868)2bf5c25
26 days ago
-
Fix public tokenizer batch shape before 1.0.2 release
510b295 -
Release 1.0.2: conservative labelled country-area phone fix
15eb2b4 -
Release 1.0.1: prefix-only glued-email trim.
Same epoch-5 weights; 841-dev union FP 133→123 with no gold loss. Co-authored-by: Cursor <cursoragent@cursor.com>7ce967b
27 days ago
-
Document synthetic test_nergal.py
Verified signature856b119 -
Add synthetic NERGAL unit tests
Verified signature4039e77 -
Add 841-dev naked vs hybrid comparison with GLiNER and GLiNER 2.5
Verified signatureff286c1 -
Add hybrid PII scripts: nergal.py and frozen scrub_pii.py
Verified signature3615219 -
Add hybrid PII scripts: nergal.py and frozen scrub_pii.py
Verified signaturedf08a46 -
Add hybrid PII scripts: nergal.py and frozen scrub_pii.py
Verified signature97bea30 -
Add NERGAL epoch-5 hybrid PII snapshot
Verified signaturecaa10a8 -
initial commit
Verified signature407ef5f