privyshield-ner / README.md
aditrynacode's picture
Update README.md
a3aa369 verified
|
Raw
History Blame Contribute Delete
2.53 kB
---
license: apache-2.0
language:
- en
base_model:
- distilbert/distilbert-base-uncased
tags:
- token-classification
- ner
- privacy
- pii-detection
- distilbert
---
# PrivyShield NER Model
A fine-tuned DistilBERT model for detecting personally identifiable information (person names and addresses) in unstructured text; the core "separate model" component of **PrivyShield**, an on-device privacy protection tool built for OSDHack 2026.
## Model Details
- **Base model:** `distilbert-base-uncased`
- **Task:** Token Classification (Named Entity Recognition, BIO tagging scheme)
- **Labels:** `O`, `B-PERSON_NAME`, `I-PERSON_NAME`, `B-ADDRESS`, `I-ADDRESS`
- **Training data:** 7,500 synthetically generated, auto-labeled sentences (template + entity-pool based generation; no manual annotation), covering Indian names, addresses, cities, and localities
- **Training:** 5 epochs, fine-tuned end-to-end on the labeled dataset
- **Formats provided:**
- `ner_model.onnx` : exported for fast local inference
- `ner_model/` : original PyTorch checkpoint + tokenizer files
## Why this model exists
Regex can reliably catch structured PII (card numbers, emails, Aadhaar/PAN formats), but it cannot catch **names and addresses**, which don't follow a fixed pattern. This model fills that specific gap as part of PrivyShield's layered detection pipeline; regex handles structured formats, this model handles unstructured entities, and both run entirely on-device.
## Intended use
Designed to run locally (via ONNX Runtime) as part of a real-time screen-content privacy scanner. Not intended as a general-purpose NER model; it's scoped specifically to `PERSON_NAME` and `ADDRESS` detection for this use case, trained primarily on Indian name/address patterns.
## Limitations
- Trained on synthetic data; real-world OCR noise (misspellings, broken formatting) may reduce accuracy
- English-only
- Name/address pools are India-centric; may generalize less well to other regions' naming/address conventions
- Not evaluated for adversarial or out-of-distribution inputs
## Usage
```python
from huggingface_hub import hf_hub_download
import onnxruntime as ort
model_path = hf_hub_download(
repo_id="aditrynacode/privyshield-ner",
filename="ner_model.onnx"
)
session = ort.InferenceSession(model_path)
```
## Project
Part of **PrivyShield**, submitted to [OSDHack 2026](https://hack.osdc.dev/) (Open Source Developers Community).
Main repository: [PrivyShield on GitHub](https://github.com/aditrynacode/PrivyShield)