nisten/journal-shield
๐ก๏ธ Journal Shield
A wellness journaling companion that spots and redacts personal details (names, contacts, addresses, account numbers, โฆ) in your entries โ fully client-side. The model runs in your browser on WebGPU via transformers.js; your text never leaves this device.
The model
`nisten/privacy-filter-nemotron-v2-ONNX` โ our ONNX quantizations of `OpenMed/privacy-filter-nemotron-v2`, a 1.4B-parameter MoE token classifier (128 experts, top-4 routing, ~50M active params per token) covering 55 PII categories with BIOES labels.
The Space loads the 4-bit variant (0.92 GB) by default โ the smallest download with the broadest device support. The model picker + a GPU/CPU toggle switch between all four builds, each of which now runs in the browser:
- 4-bit (0.92 GB) โ recommended default; WebGPU only.
- 8-bit (1.98 GB) โ most accurate; WebGPU (via the JSPI ort bundle, Chrome/Edge โฅ 137) or CPU.
- mixed 8/4-bit (1.66 GB) โ same WebGPU-JSPI / CPU story as 8-bit.
- float16 (2.82 GB) โ near-lossless; needs a WebGPU GPU with the
shader-f16feature (RTX 20xx+/Apple Silicon).
The first load downloads the chosen variant from the Hub; after that it's served from your browser's cache.
Quality: on our fixture + adversarial benchmarks every build catches exactly what the PyTorch fp32 source model catches (details in the model repo's PARITY.md).
Requirements
A browser with WebGPU (Chrome/Edge 113+, recent Firefox/Safari previews) and ~1 GB of GPU memory for 4-bit. The 8-bit/mixed builds on WebGPU need JavaScript Promise Integration (Chrome/Edge โฅ 137); float16 needs a shader-f16 GPU. The CPU (wasm) option works everywhere but is slower and does not cover 4-bit.
App source: built with Bun + vanilla TS, served as a static Space. Wellness tooling, not a medical device or compliance product โ the source model is experimental; validate before relying on it.
