temsa/IrishCore-GlobalPointer-ContextPII-135M-v1-rc1
IrishCore-GlobalPointer-ContextPII-135M-v1-rc1
IrishCore-GlobalPointer-ContextPII-135M-v1-rc1 is an expanded-label raw-only PII masking model for Irish public-sector and citizen-support flows.
It keeps the same DistilBERT-size GlobalPointer span extractor family as temsa/IrishCore-GlobalPointer-135M-v1-rc4, but adds contextual labels that the core model did not serve:
STREET_ADDRESSCITYCOUNTYDATE_OF_BIRTHAGE
The model still covers the core Irish structured labels:
PPSNPOSTCODEPHONE_NUMBEREMAILPASSPORT_NUMBERACCOUNT_NUMBERBANK_ROUTING_NUMBERSWIFT_BICCREDIT_DEBIT_CARDFIRST_NAMELAST_NAME
Positioning
Use this release when you need broader masking for Irish gov / HSE / citizen-support text, including user turns and assistant answers that contain:
- personal address fragments
- city / county
- date of birth
- age
- official callback numbers or public-service mailbox emails that still need masking in assistant output
If you only need the narrower Irish-core structured label set and want maximum CPU throughput, temsa/IrishCore-GlobalPointer-135M-v1-rc4 remains the faster option.
Architecture
- base encoder:
OpenMed/OpenMed-PII-mLiteClinical-Base-135M-v1 - extractor head: GlobalPointer-style typed span matrix
- runtime: single-pass span extraction
- output policy: deterministic bracket masking, for example
[PII:PPSN] - deployment target: ONNX Runtime CPU with dynamic q8 per-channel quantization
This is not a generative model and does not rewrite text. It predicts typed spans and the provided inference scripts replace them with [PII:LABEL] placeholders.
Decoder Policy
The serving path is still raw-only in the sense that there is no external scanner/validator service. The repo does include bundled decoder repairs for highly structured spans:
- PPSN normalization and overlap repair
- passport cue-based repair
- contextual date-of-birth repair
- full-email recovery
- contextual phone extension
- Eircode recovery
These repairs live inside common.py and are part of the published inference path.
Benchmarks
ONNX q8
Comparison
Tradeoff:
- this expanded-label line is materially better on contextual Irish masking tasks
- it is slower than the core-only GlobalPointer line on CPU because it carries a broader label inventory and more decoder work
Evaluation Notes
globalpointer_demographic_patch_v2_testis the corrected held-out benchmark. The earlier v1 demographic patch contained invalid synthetic Eircodes in some rows.irish_gov_contact_policy_v1is the policy-aligned assistant-output benchmark for this release.- The legacy
irish_gov_chatbot_redteam_v2negatives still assume some public assistant contact details should not be masked. That assumption does not match this release's target policy.
Usage
Full checkpoint:
python3 inference_mask.py --model temsa/IrishCore-GlobalPointer-ContextPII-135M-v1-rc1 --text "I live at 14 Main Street, Dublin, Co. Dublin, D02 XY45 and my date of birth is 03/02/1991."ONNX q8:
python3 inference_mask_onnx.py --model temsa/IrishCore-GlobalPointer-ContextPII-135M-v1-rc1 --text "Employment Permit documents can be sent to EPStamp4@enterprise.gov.ie."Expected masking style:
I live at [PII:STREET_ADDRESS], [PII:CITY], [PII:COUNTY], [PII:POSTCODE] and my date of birth is [PII:DATE_OF_BIRTH].Files
model.safetensors: full checkpointonnx/model_quantized.onnx: recommended CPU artifactinference_mask.py: full-checkpoint inferenceinference_mask_onnx.py: ONNX q8 inferenceeval/benchmark_summary.json: machine-readable benchmark summarytraining_sources.json: data provenance
Limitations
- This release is Irish-first. Multilingual overall precision is still pulled down by extra name detections outside the primary Irish target domain.
- The decoder deliberately prefers recall on structured Irish identifiers. If you need a stricter public-contact suppression policy, test on your own corpora before promoting beyond
rc.
<!-- portfolio-comparison:start -->
Portfolio Comparison
Updated: 2026-03-16.
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
Irish Core PII: Other Public Checkpoints
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
PPSN-Only: Historical Public Checkpoints
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. <!-- portfolio-comparison:end -->
