Methodology

Why this model, why WASM instead of WebGPU, and exactly which numbers on this site were measured versus cited from elsewhere — captioned by source, the way the rest of the page is.

Model choice

The default embedder is Xenova/all-MiniLM-L6-v2 at 8-bit quantization (q8), 26.8MB — a small, English-tuned sentence embedding model, lazy-loaded once the page is idle so it never blocks the first paint. Cold load measured 5.0-5.4s and 5.9-12.8ms per inference on the desktop this spec was built against (a Ryzen 7 9700X / RX 9060 XT — a machine that is deliberately named as neither a high-end nor a low-end reference point, so those numbers are not presented as a device-agnostic promise).

A second, explicitly opt-in model — Xenova/paraphrase-multilingual-MiniLM-L12-v2, 140.38MB — is offered from the workbench for other languages (see coverage). It is never auto-fetched: SPEC.md's Decision for this feature calls it out as "gesture-gated," the same standard the rest of this page holds every other claim to.

WASM, not WebGPU

Almost every browser-ML demo reaches for WebGPU by default. This one deliberately doesn't: real GPUAdapter.requestDevice() calls against a non-fallback adapter, benchmarked at batch sizes 1 and 32 on both models, found WASM faster at every size tested — the gap narrows as batch size grows, but WebGPU never actually crosses over to win, and this product only ever embeds one note (or a handful of search terms) at a time. There is no capability probe or fallback ladder in the code because none is needed: `device: "wasm"` is used unconditionally.

Batch sizeWASM vs. WebGPU
1 (this product's actual usage)WASM 8.75x faster
8not separately measured — see note below
32WASM 1.44x faster (narrowing, but WebGPU never crosses over)

This build's own source material (SPEC.md) pins the batch=1 and batch=32 figures above along with a general "WASM beats WebGPU 8-17x at batch=1" range across both models — a batch=8 datapoint isn't independently available in that record, so it is shown as missing rather than interpolated. The number that matters for this product is batch=1, and it is real, cited, and decisive on its own.

Version pins

The exact library versions the numbers on this page were measured against: @huggingface/transformers@4.2.0 and onnxruntime-web@1.26.0-dev.20260416. A version bump requires re-measuring before this page or any other cites these figures again — a library update is not assumed to preserve them.

Why /limits exists

The negation-blindness demonstration on /limits exists because of an earlier measurement, on the multilingual model, that a genuine paraphrase ("confirmed the deadline" / "confirmed the due date") scored 0.537 cosine similarity while a flat contradiction ("confirmed the deadline" / "missed the deadline") scored 0.517 — nearly indistinguishable, on the wrong side of each other. Those two numbers are historical: they were measured on the multilingual model, a different artifact from the default model /limits demonstrates live today, and are not reused verbatim there. The live page re-measures its own default-pair numbers in real time against the shipped default model, and lets a visitor substitute their own pairs and watch it recompute.

Filipino / cross-lingual note

The same round of measurement found Filipino cross-lingual similarity inconsistent across two genuine paraphrase pairs on the multilingual model — cosine values ranging 0.057-0.537 for pairs that should both read as clearly similar. This is part of why coverage marks every language beyond English as "tuned per the model card, not independently re-verified" rather than asserting it works — Filipino/Tagalog is the one exception, carrying its own real, measured verdict from this project's own fixture rather than an inherited number.