Token Classification
Transformers.js
ONNX
bert
pii
pii-redaction
privacy
named-entity-recognition
on-device
Instructions to use hackshare/curtain-privacy with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers.js
How to use hackshare/curtain-privacy with Transformers.js:
// npm i @huggingface/transformers import { pipeline } from '@huggingface/transformers'; // Allocate pipeline const pipe = await pipeline('token-classification', 'hackshare/curtain-privacy');
| license: mit | |
| library_name: transformers.js | |
| pipeline_tag: token-classification | |
| tags: | |
| - pii | |
| - pii-redaction | |
| - privacy | |
| - named-entity-recognition | |
| - on-device | |
| language: | |
| - en | |
| - es | |
| - fr | |
| - de | |
| - it | |
| - pt | |
| - nl | |
| - pl | |
| - cs | |
| - sk | |
| - lt | |
| - lv | |
| - et | |
| - sv | |
| - da | |
| - fi | |
| - hu | |
| - ro | |
| - sl | |
| - hr | |
| - vi | |
| - ms | |
| - id | |
| - tl | |
| # curtain-privacy | |
| On-device PII redaction: a token classifier plus deterministic recognizers across | |
| 24 Latin-script languages, with a reversible-placeholder layer for chat. It runs in | |
| the browser, in Node, and on iOS and Android from these same files. Source, training | |
| pipeline, whitepaper, and the full model card: | |
| https://github.com/hackshare/curtain-privacy | |
| This repo ships in two sizes, selected by revision: | |
| - **`curtain-small`** — `v2.0.0`, 59.9 MB, 12-layer Multilingual-MiniLM with a | |
| SentencePiece tokenizer. The default: best multilingual and repeated/leading-name | |
| recall. `onnx/model_q4.onnx` SHA-256 | |
| `c9bfe8a0a9e3cfbb1a8995009259a5195109c8881f16905ef5be58351ad8786f`. | |
| - **`curtain-tiny`** — `v1.0.0`, 14.2 MB, 6-layer MiniLM with a WordPiece tokenizer. | |
| The smallest-footprint tier, frozen. `onnx/model_q4.onnx` SHA-256 | |
| `24ba1f03a8c3db8a4f760d4d266faeb679ba23f8c23f7be9ba6964cbfff6f6c1`. | |
| The models are built locally from the committed `train/` pipeline; this repo is a | |
| distribution copy. Verify integrity by pinning a revision and checking the hash above. | |
| ## Integrating | |
| ### Web and Node (transformers.js) | |
| ```js | |
| import { createGuard } from "curtain-privacy"; | |
| const guard = await createGuard({ model: "hackshare/curtain-privacy", revision: "v2.0.0" }); | |
| const { text } = await guard.protect("My SSN is 472-81-0094"); | |
| ``` | |
| `revision: "v2.0.0"` pins the audited `curtain-small` weights (use `v1.0.0` for | |
| `curtain-tiny`). transformers.js fetches from this repo with permissive CORS, so it | |
| works from any origin. `v2.0.0` is a moving pointer to the latest `curtain-small` | |
| build; to pin an immutable artifact, use the timestamped tag `v2.0.0-<timestamp>` | |
| published alongside each release. | |
| ### iOS and Android (ONNX Runtime Mobile) | |
| Fetch or bundle two files from a pinned revision (`curtain-small` shown; use `v1.0.0` | |
| for `curtain-tiny`): | |
| - `https://huggingface.co/hackshare/curtain-privacy/resolve/v2.0.0/onnx/model_q4.onnx` | |
| - `https://huggingface.co/hackshare/curtain-privacy/resolve/v2.0.0/tokenizer.json` | |
| Verify `model_q4.onnx` against the SHA-256 above. Load the model with ONNX Runtime | |
| Mobile, tokenize with the Hugging Face `tokenizers` library (Swift and Kotlin | |
| bindings load `tokenizer.json` directly) or ONNX Runtime Extensions, then apply the | |
| BIO decode and the default keep-set (CITY, STATE, ZIP_CODE) the library documents. | |
| These are integration guides, not a shipped native SDK. | |