IrishCore-GlobalPointer-135M-v1-rc2
IrishCore-GlobalPointer-135M-v1-rc2 is a raw-only Irish PII masking model derived from OpenMed/OpenMed-PII-mLiteClinical-Base-135M-v1.
It targets explicit masking with placeholders such as [PII:PPSN], [PII:EMAIL], and [PII:POSTCODE] for:
PPSNACCOUNT_NUMBERBANK_ROUTING_NUMBERCREDIT_DEBIT_CARDPASSPORT_NUMBERPOSTCODEPHONE_NUMBEREMAILFIRST_NAMELAST_NAMESWIFT_BIC
The main target is English plus Irish Gaelic text in citizen-support, public-sector, and HSE-style flows. The repo ships both the full transformers checkpoint and a dynamic q8 ONNX artifact for CPU deployment.
What This Model Is
This release is a compact span-matrix extractor built on top of the OpenMed mLiteClinical encoder.
Short version:
- Base OpenMed: plain BIO token classification
- DiffMask: token-span extraction with per-token presence plus boundary heads
- GlobalPointer: direct typed span scoring over the token grid
This release is fully raw-only:
- no regex scanner layer
- no checksum validator layer
- no post-hoc repair decoder
The published behavior is fully defined by the weights plus the bundled score-only decoder in common.py.
Architecture
- Encoder: DistilBERT-size encoder from
OpenMed/OpenMed-PII-mLiteClinical-Base-135M-v1 - Span head: GlobalPointer-style typed span matrix
- Positional encoding inside the span head: RoPE
- Training objective: positive-weighted BCE with hard-negative mining over valid upper-triangular spans
- Runtime: one forward pass plus score-only span decoding
Unlike the DiffMask line, this release does not use diffusion-style training. It directly predicts whether each (start_token, end_token) pair is an entity span for each released label.
Why This Line Exists
The main reason for this architecture change was to improve the cases where earlier raw-only lines were fragile:
- mixed messages containing 2-3 PII types together
- Eircode and IBAN/card boundaries in realistic support text
- PPSN and phone/entity overlap cases
- broader generalization on unseen nearby phrasing
The tradeoff is straightforward:
- accuracy is materially better on the hard Irish/UAT suites
- CPU q8 speed is slower than the DiffMask q8 line
Included Artifacts
- full
transformerscheckpoint in the repo root - dynamic q8 ONNX artifact in
onnx/model_quantized.onnx inference_mask.pyinference_mask_onnx.py- benchmark JSON and summaries in
eval/ - release provenance in
training_sources.json
Benchmark Summary
Gov Chatbot Red-Team
| Suite | Full F1 | Q8 F1 | Q8 Exact F1 | Q8 Failures |
|---|---|---|---|---|
| Gov chatbot red-team | 1.0000 | 1.0000 | 1.0000 | 0.0000 |
| Gov chatbot gap holdout | 1.0000 | 1.0000 | 1.0000 | 0.0000 |
This Release
| Suite | Full F1 | Q8 F1 | Q8 ex/s |
|---|---|---|---|
| Irish core | 0.9934 | 0.9934 | 231.2222 |
| UAT exact | 1.0000 | 1.0000 | 118.6042 |
| Fresh holdout | 0.9841 | 0.9841 | 217.1171 |
| Hardening exact | 1.0000 | 1.0000 | 230.3011 |
| Edge | 1.0000 | 1.0000 | 213.9085 |
| Multilingual PPSN overall | 0.9326 | 0.9326 | 170.3796 |
| Multilingual PPSN label-only | 0.9940 | 0.9940 | — |
Closest Public Comparisons
| Repo | Stack | Q8 Core F1 | Q8 Hardening F1 | Q8 Multilingual F1 | Q8 Core ex/s |
|---|---|---|---|---|---|
temsa/IrishCore-GlobalPointer-135M-v1-rc2 |
GlobalPointer raw-only span-matrix | 0.9934 | 1.0000 | 0.9326 | 231.2222 |
temsa/IrishCore-DiffMask-135M-v1-rc6 |
DiffMask raw-only token-span | 0.9733 | 0.9756 | 0.9274 | 130.3415 |
temsa/OpenMed-mLiteClinical-IrishCorePII-135M-v2-rc8 |
Raw-only token-span | 0.9737 | — | 0.9176 | 46.1420 |
Practical reading:
- This release is the strongest raw-only checkpoint in this repo family on the hard Irish/UAT/holdout suites.
- The q8 CPU artifact keeps the same accuracy on the main suites used for release.
- The multilingual benchmark's overall score is lower than the
PPSNlabel-only score because that suite penalizes extra name detections as false positives. On the label that matters there,PPSN, this release is strong.
Usage
Full checkpoint
python3 inference_mask.py \
--model temsa/IrishCore-GlobalPointer-135M-v1-rc2 \
--text "My PPSN is 1234567T, my Eircode is D02 XY45, and my phone is 087 123 4567." \
--json
ONNX q8 CPU artifact
python3 inference_mask_onnx.py \
--model temsa/IrishCore-GlobalPointer-135M-v1-rc2 \
--text "My PPSN is 1234567T, my Eircode is D02 XY45, and my phone is 087 123 4567." \
--json
Both scripts emit:
- extracted spans with offsets and labels
- masked text using
[PII:LABEL]
How It Differs From Other OpenMed-Derived Lines
Compared with the original OpenMed base model:
- this release does not use a BIO token head
- it scores typed spans directly
- it is tuned only for the released Irish core PII labels
Compared with DiffMask:
- no diffusion-style masked denoising during training
- no token-presence or boundary heads
- direct span-matrix scoring instead of reconstructing spans from token and boundary logits
Compared with the old hybrid releases:
- no external scanner or validator layer is required for the published behavior
- deployment stays simple: encoder + span head + deterministic replacement
Limitations
- It is slower on CPU than the DiffMask q8 release.
- The multilingual benchmark is not a clean multilingual NER benchmark; it is a PPSN-focused suite where extra name detections count against the overall score.
- If you need the fastest CPU-first public line rather than the strongest raw-only accuracy, compare this release against
temsa/IrishCore-DiffMask-135M-v1-rc6.
References
- DistilBERT: https://arxiv.org/abs/1910.01108
- Global Pointer: Novel Efficient Span-based Approach for Named Entity Recognition: https://arxiv.org/abs/2208.03054
- RoFormer: Enhanced Transformer with Rotary Position Embedding: https://arxiv.org/abs/2104.09864
License And Attribution
- Release license: Apache-2.0
- Base model:
OpenMed/OpenMed-PII-mLiteClinical-Base-135M-v1 - Dataset attribution is listed in
NOTICE
Portfolio Comparison
Updated: 2026-03-15.
Use this section for the fastest public comparison across the temsa PII masking portfolio.
- The first core table only includes public checkpoints that ship both comparable q8 accuracy and q8 CPU throughput.
- The first PPSN table only includes public artifacts that ship comparable PPSN accuracy and CPU throughput.
- Missing cells in the archive tables mean the older release did not ship that metric in its public bundle.
- DiffMask rows use the reconciled
clean_single_passharness that matches the deployed runtime. - GlobalPointer rows use the public raw-only span-matrix release bundle and its packaged q8 ONNX artifact.
- The same content is shipped as
PORTFOLIO_COMPARISON.mdinside each public model repo.
Irish Core PII: Comparable Public Checkpoints
| Repo | Stack | Full Core F1 | Q8 Core F1 | Q8 Multilingual PPSN F1 | Q8 Core ex/s |
|---|---|---|---|---|---|
temsa/IrishCore-GlobalPointer-ContextPII-135M-v1-rc8 |
GlobalPointer raw-only + context labels | 1.0000 | 1.0000 | 0.9333 | 128.9 |
temsa/IrishCore-GlobalPointer-ContextPII-135M-v1-rc7 |
GlobalPointer raw-only + context labels | 1.0000 | 1.0000 | 0.9333 | 89.0 |
temsa/IrishCore-GlobalPointer-ContextPII-135M-v1-rc6 |
GlobalPointer raw-only + context labels | 1.0000 | 1.0000 | 0.9333 | 89.0 |
temsa/IrishCore-GlobalPointer-ContextPII-135M-v1-rc5 |
GlobalPointer raw-only + context labels | 1.0000 | 1.0000 | 0.9333 | 84.5 |
temsa/IrishCore-GlobalPointer-ContextPII-135M-v1-rc4 |
GlobalPointer raw-only + context labels | 0.9935 | 0.9935 | 0.9333 | 61.5 |
temsa/IrishCore-GlobalPointer-ContextPII-135M-v1-rc3 |
GlobalPointer raw-only + context labels | 0.9935 | 0.9935 | 0.9333 | 61.5 |
temsa/IrishCore-GlobalPointer-ContextPII-135M-v1-rc2 |
GlobalPointer raw-only + context labels | 0.9935 | 0.9935 | 0.9222 | 61.5 |
temsa/IrishCore-GlobalPointer-ContextPII-135M-v1-rc1 |
GlobalPointer raw-only + context labels | 0.9935 | 0.9935 | 0.9222 | 61.5 |
temsa/IrishCore-GlobalPointer-135M-v1-rc4 |
GlobalPointer raw-only span-matrix | 1.0000 | 1.0000 | 0.9333 | 221.6 |
temsa/IrishCore-GlobalPointer-135M-v1-rc3 |
GlobalPointer raw-only span-matrix | 1.0000 | 1.0000 | 0.9213 | 204.9 |
temsa/IrishCore-GlobalPointer-135M-v1-rc2 |
GlobalPointer raw-only span-matrix | 0.9934 | 0.9934 | 0.9326 | 231.2 |
temsa/OpenMed-mLiteClinical-IrishCorePII-135M-v2-rc8 |
Raw-only token-span | 0.9737 | 0.9737 | 0.9176 | 46.1 |
temsa/OpenMed-mLiteClinical-IrishCorePII-135M-v2-rc7 |
Hybrid classifier + generated scanner spec | 1.0000 | 0.9934 | 1.0000 | 30.0 |
temsa/OpenMed-mLiteClinical-IrishCorePII-135M-v2-rc6 |
Hybrid classifier + repair decoders | 1.0000 | 0.9934 | 1.0000 | 29.5 |
temsa/OpenMed-mLiteClinical-IrishCorePII-135M-v2-rc5 |
Hybrid classifier + repair decoders | 0.9737 | 0.9669 | 0.9333 | 34.4 |
temsa/OpenMed-mLiteClinical-IrishCorePII-135M-v2-rc4 |
Hybrid classifier + repair decoders | 0.9870 | 0.9740 | 0.9600 | 114.2 |
temsa/OpenMed-mLiteClinical-IrishCorePII-135M-v2-rc3 |
Hybrid classifier + repair decoders | 0.9806 | 0.9677 | 0.9333 | 44.9 |
temsa/OpenMed-mLiteClinical-IrishCorePII-135M-v2-rc2 |
Hybrid classifier + repair decoders | 0.9554 | 0.9615 | 0.7887 | 119.1 |
temsa/OpenMed-mLiteClinical-IrishCorePII-135M-v1 |
Hybrid classifier baseline | 0.9530 | 0.9333 | 0.9882 | 103.3 |
temsa/IrishCore-DiffMask-135M-v1-rc6 |
DiffMask token-span, scanner-free | 0.9801 | 0.9733 | 0.9274 | 130.3 |
temsa/IrishCore-DiffMask-135M-v1-rc5 |
DiffMask token-span, scanner-free | 0.9733 | 0.9733 | 0.9379 | 249.2 |
temsa/IrishCore-DiffMask-135M-v1-rc4 |
DiffMask token-span, scanner-free | 0.9733 | 0.9733 | 0.9371 | 29.5 |
temsa/IrishCore-DiffMask-135M-v1-rc3 |
DiffMask token-span, scanner-free | 0.9664 | 0.9664 | 0.9591 | 30.0 |
temsa/IrishCore-DiffMask-135M-v1-rc2 |
DiffMask token-span, scanner-free | 0.9664 | 0.9664 | 0.9212 | 247.1 |
temsa/IrishCore-DiffMask-135M-v1-rc1 |
DiffMask token-span, scanner-free | 0.9801 | 0.9934 | 0.9412 | 251.2 |
Irish Core PII: Other Public Checkpoints
| Repo | Stack | Full Core F1 | Q8 Core F1 | Q8 Multilingual PPSN F1 | Notes |
|---|---|---|---|---|---|
temsa/OpenMed-mLiteClinical-IrishCorePII-135M-v2-rc1 |
Hybrid classifier prototype | 0.9487 | — | — | Predates the public q8 artifact. |
Finance-boundary q8 F1 is 1.0000 for OpenMed-mLiteClinical-IrishCorePII-135M-v2-rc6, OpenMed-mLiteClinical-IrishCorePII-135M-v2-rc7, OpenMed-mLiteClinical-IrishCorePII-135M-v2-rc8, and all public IrishCore-DiffMask releases from rc1 to rc6. OpenMed-mLiteClinical-IrishCorePII-135M-v2-rc5 ships 0.8750 on that public q8 suite.
PPSN-Only: Comparable Public Artifacts
| Repo | Artifact | Irish Large F1 | Multilingual PPSN F1 | User Raw F1 | QA v8 F1 | CPU ex/s |
|---|---|---|---|---|---|---|
temsa/OpenMed-mLiteClinical-IrishPPSN-135M-v1 |
fp32 canonical checkpoint | 0.8979 | 0.9704 | 0.8000 | 0.7385 | 57.4 |
temsa/OpenMed-mLiteClinical-IrishPPSN-135M-v1-fp16 |
fp16 CPU/GPU artifact | — | 0.9704 | 0.8000 | 0.7385 | 45.8 |
temsa/OpenMed-mLiteClinical-IrishPPSN-135M-v1-q8 |
dynamic int8 CPU artifact | — | 0.9040 | — | — | 132.1 |
PPSN-Only: Historical Public Checkpoints
| Repo | Main Published Metrics | Notes |
|---|---|---|
temsa/OpenMed-PPSN-mLiteClinical-v1 |
same as canonical fp32 repo: multilingual 0.9704, user raw 0.8000 | Legacy alias; prefer temsa/OpenMed-mLiteClinical-IrishPPSN-135M-v1. |
temsa/OpenMed-PPSN-v6-raw-rc2 |
irish_reg_v5 0.8750; user_raw 0.8000; qa_v8 0.7385 | Raw PPSN-only research checkpoint; no packaged multilingual CPU benchmark row. |
temsa/OpenMed-PPSN-v5_1 |
irish_large_v2 raw 0.9285; qa_v6 hybrid strict 1.0000 | Hybrid PPSN-only checkpoint; predates the canonical multilingual suite packaging. |
temsa/OpenMed-PPSN-v5 |
irish_reg_v5 raw 0.8235; irish_reg_v5 hybrid strict 1.0000 | Hybrid PPSN-only checkpoint; predates the canonical multilingual suite packaging. |
temsa/OpenMed-PPSN-v4 |
synthetic non-PPSN drift check only | Predates the current PPSN eval suite; no packaged apples-to-apples multilingual CPU row. |
If you need the strongest current raw-only Irish core model, start with IrishCore-GlobalPointer-135M-v1-rc4. If you need the fastest CPU-first raw-only line, compare it against IrishCore-DiffMask-135M-v1-rc6. If you need a PPSN-only artifact, compare the canonical fp32, fp16, and q8 variants of OpenMed-mLiteClinical-IrishPPSN-135M-v1 directly in the table above.
- Downloads last month
- 43
Model tree for temsa/IrishCore-GlobalPointer-135M-v1-rc2
Datasets used to train temsa/IrishCore-GlobalPointer-135M-v1-rc2
Papers for temsa/IrishCore-GlobalPointer-135M-v1-rc2
RoFormer: Enhanced Transformer with Rotary Position Embedding
DistilBERT, a distilled version of BERT: smaller, faster, cheaper and lighter
Evaluation results
- Overall F1 on irish_core_pii_v1self-reported0.993
- Overall F1 on diffmask_fresh_holdout_v1self-reported0.984
- Overall F1 on irish_dllm_hardening_exact_v1self-reported1.000