sosa-pii-ner-th-v1.1.0

Thai regional PII span detection model. Fine-tune of urchade/gliner_large-v2.1 on synthetic Thai-language PII data. Deployed in SOSA DevOps as the TH-region sidecar NER uplift layer.

Labels

Label Format Description
th_national_id 13 digits Thai national ID (บัตรประชาชน), DOPA-issued
th_tax_id 13 digits Thai tax ID (เลขประจำตัวผู้เสียภาษี), Revenue Department
th_phone_local +66 or 0X format Thai mobile and landline numbers
th_health_hrn HN-XXXXXX or numeric Thai hospital record numbers (trained, not yet in eval)

Global labels also detected: email, phone_e164, credit_card, passport_generic, ipv4_public

Eval Results (v0.5.0 checkpoint — scoped TH+global, 606 examples)

Label P R F1 Gate
th_national_id 0.9561 0.9083 0.9316 PASS (≥0.93)
th_phone_local 0.9195 0.8649 0.8914 PASS (≥0.85)
th_tax_id 0.7914 1.0000 0.8835 PASS (≥0.80)
th_health_hrn not in test set

Training

  • Base model: urchade/gliner_large-v2.1 (Apache 2.0)
  • Hardware: RunPod A40 48GB, EU-SE-1
  • Steps: 10,000 | Batch: 8 | Wall time: ~47 min
  • Dataset: D-TH-3-v2 + D-TH-4 merged — 3,797 effective positives (negatives stripped per gliner_large-v2.1 collator requirement, re-encoded as sentinel spans)
  • Internal checkpoint: sosa-pii-ner-th-v0.5.0
  • Weights SHA-256: 699fcd4fc3981e1db47f840aa8c2b59be8ffbb0b2afe607f964e74d6a010474f

Training history (runs to reach v1.1.0)

Run Dataset NID F1 TAX F1 Status
v0.2.0 (v1.0.0) D-TH-1 0.9735 0.9776 PASS — shipped as v1.0.0
v0.3.0 +D-TH-3 0.9342 0.7482 BLOCKED — TAX FP from comms-anchor negatives
v0.4.0 D-TH-3-v2 0.9336 0.7899 BLOCKED — TAX FP 57
v0.5.0 +D-TH-4 0.9316 0.8835 PASS — v1.1.0

Root cause of regression (resolved): 11 values appeared as both th_national_id and th_tax_id positives in training data (L7 value contamination). D-TH-4 AP-5 disambiguation pairs resolved the collision. TAX FP dropped from 64 → 29.

Known Limitations

  • th_health_hrn trained (52 examples) but not in test set — F1 unmeasured
  • th_tax_id precision 0.7914 — TAX FP still present on ambiguous 13-digit values without strong context signal (handled partially by context-domain training)
  • Post-inference: no checksum filter on TH NID (format validation in sidecar Rust layer)

Integration (SOSA DevOps)

Loaded by sidecar when active_layers includes country:TH. Spans merged into Rust scrubber output via merge_sidecar_spans. Not a replacement for the always-on Rust regex layer — contextual uplift only.

License

Apache 2.0. Fine-tune artifact — attribution to urchade/gliner_large-v2.1 required.

Release History

Version Date Notes
v1.0.0 2026-05-29 Initial regional release
v1.1.0 2026-05-30 TAX precision recovery (+0.0835 F1), NID/TAX disambiguation pairs
Downloads last month
2
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for SovereignSystems-cc/sosa-pii-ner-th-v1.1.0

Finetuned
(9)
this model