| --- |
| license: mit |
| language: |
| - tr |
| library_name: onnx |
| pipeline_tag: token-classification |
| base_model: akdeniz27/bert-base-turkish-cased-ner |
| tags: |
| - pii |
| - ner |
| - token-classification |
| - bert |
| - turkish |
| - onnx |
| - int8 |
| - onnxruntime |
| --- |
| |
| # pii-ner-model |
|
|
| Dynamic-INT8 **ONNX** export of [`akdeniz27/bert-base-turkish-cased-ner`](https://huggingface.co/akdeniz27/bert-base-turkish-cased-ner) |
| (BERTurk, MIT). It detects free-text PII — **names and addresses** — that a deterministic |
| regex masker can't catch, and runs **in-process via `onnxruntime` (no torch)**. |
|
|
| Freya's voice agent loads it for freeform-PII redaction (`src/privacy/ner.py`, |
| `LocalPiiDetector`); the agent image fetches this repo at build into `PII_NER_MODEL_DIR`. |
| NER is optional + fail-open and gated per-agent by `privacy_config.mask_pii`. |
|
|
| ## Files |
|
|
| | file | what | |
| |------|------| |
| | `model.int8.onnx` | dynamic-INT8-quantized BERTurk token-classification model (~106 MB) | |
| | `tokenizer.json` | Rust-tokenizer config for the `onnxruntime` path | |
| | `config.json` | `id2label` map for decode | |
| | `export_model.py` | the offline recipe that produced the artifacts (not used at runtime) | |
|
|
| ## Labels |
|
|
| 7-class BIO: `O`, `B-PER`/`I-PER`, `B-ORG`/`I-ORG`, `B-LOC`/`I-LOC`. Downstream mapping: |
| `PER -> NAME`, `LOC -> ADDRESS`; `ORG` is dropped. |
|
|
| ## Quality |
|
|
| Validated on Turkish: names F1 ~1.00 (cased) / ~0.93–0.95 (ASR-style lowercase). INT8 is |
| effectively lossless vs fp32 on cased text. Addresses (`LOC`) are weaker on lowercase ASR text. |
|
|
| ## Regenerating |
|
|
| Needs torch + `optimum[onnxruntime]` (not runtime deps): |
|
|
| ```bash |
| pip install torch --index-url https://download.pytorch.org/whl/cpu |
| pip install "optimum[onnxruntime]" transformers |
| python export_model.py --model akdeniz27/bert-base-turkish-cased-ner --out /tmp/pii-ner |
| # then copy model_quantized.onnx -> model.int8.onnx, plus tokenizer.json + config.json |
| ``` |
|
|
| ## License |
|
|
| MIT — same as the base model. See `LICENSE`. Base model: `akdeniz27/bert-base-turkish-cased-ner`. |
|
|