promptShield

Document anonymization that never uploads your documents.

We build an offline PII detection and redaction tool for contracts, financial statements and medical records. The desktop app runs a local engine; the web app runs the entire pipeline in the browser — PDF parsing, OCR, entity detection and redaction — so a document never leaves the device it was opened on.

That constraint is why we publish here. Running detection client-side makes model size a product decision: every megabyte is a first-visit download, paid by the user before they have seen anything work.

Models

The idea, if you only read one thing

In bert-base-multilingual-cased, the 119,547-token embedding table is ~92 MB of the 178 MB file — more than half the model. Most deployments ship a handful of the 104 languages it covers and download the rest anyway. Dropping the unreachable rows is exact, not approximate: the embedding is per-tensor quantized and read by a Gather, so surviving rows keep their values and their dequantization.

Verified by comparing raw logits, not entity lists — those can agree by luck.

🔗 promptshield.ca