Seter: open models that catch Hebrew and Arabic names
Free, MIT-licensed PII detection for Hebrew, Arabic, English and mixed text. Includes first names on their own, which generic filters miss.
Try it in your browser · Models on Hugging Face · Self-host the guard
The browser demo runs the fast model on your machine (int8 ONNX, Transformers.js), so text never leaves the page. The accurate v1.1 model is the large checkpoint on Hugging Face.
Measured, not claimed
On the REDACT Hebrew, Arabic and English records (LLM-generated — so synthetic-on-synthetic; evaluation only, never training), Seter v1.1 improves on the previous release and on OpenAI’s open privacy filter.
| REDACT, char-level F1 | OpenAI privacy-filter | Seter v1.1 large | Seter-fast (v1.0) |
|---|---|---|---|
| Hebrew (621) | 0.63 | 0.900 (released 0.904) | 0.84 |
| Arabic (568) | 0.72 | 0.912 (released 0.917) | 0.88 |
| English (534) | 0.70 | 0.871 (released 0.878) | 0.83 |
Large-model figures are the mean of 3 training seeds; the released weights are seed 1 (in parentheses). The fast model is still the 25 Oct 2026 v1.0 release. Source: Vats et al., REDACT, arXiv:2606.19881 (2026). Method and caveats are on the model card.
Hebrew first names on their own, on a fixed-seed REDACT subset (250 HE / 250 AR / 150 EN; ≥50% of the name covered by a person span):
| Seter v1.1 large | GLiNER-multi-PII | DictaBERT-NER | OpenAI privacy-filter | |
|---|---|---|---|---|
| Hebrew (n=240) | 0.883 | 0.333 | 0.492 | 0.142 |
Same subset, Arabic / English first-name recall for Seter v1.1: 0.921 / 0.952. Competitor rows are from the 3 Nov 2026 CPU bench (uniform decoder); Seter v1.1 was scored with the shipped shared decoder.
Payment-card recall on the released v1.1 weights, including last-four and masked forms: 98% / 90% / 95% Hebrew / Arabic / English (v1.0: 50% / 38% / 38%). Names caught (any overlap): Hebrew 99.5% vs 40% for openai/privacy-filter.
The honest part: REDACT is LLM-generated. Seter still masks more aggressively than GLiNER or privacy-filter, which means more false positives. Pick it when missing a name costs more than over-masking a word. Not yet compared against Azure or Private AI. The fast model has not been retrained for v1.1.
What you get (all free)
seter-pii-he-ar— full model (xlm-roberta-large), v1.1, best accuracy.seter-pii-he-ar-fast— mmBERT-base, int8 ONNX, runs in the browser (still v1.0).seter-guard— Docker REST API plus a LiteLLM guardrail, to mask prompts before they reach any LLM.- Labels:
private_person,private_address,private_phone,private_email,account_number. Same names as openai/privacy-filter. - Trained only on synthetic data. No real personal data was used.
git clone https://github.com/Shoresh-Labs/seter-guard && cd seter-guard
docker build -t seter-guard . && docker run -p 8080:8080 seter-guard
POST /v1/redact {"text": "..."} # or plug into LiteLLM as a guardrail
Working with us
Seter is free and stays free. We work with privacy and DLP vendors that want a Hebrew/Arabic name layer to embed or license, and with teams in Israel working on Privacy Protection Law Amendment 13 (in force since 14 Aug 2025) that want help integrating, on-prem, or tuning it to their documents.
Talk to us about a pilotNot legal advice and not a compliance certification. Seter is a detection model, not an anonymization guarantee.
Or just start: try the demo · download the models