GLiNER2.5 · ONNX WebGPU

Span-free NER in the browser. Models: small · base · multi. Nothing leaves the page except the Hugging Face download.

GLiNER2 vs 2.5, and what this page can run

GLiNER2 enumerates candidate spans up to a fixed width (about twelve words). Anything longer is invisible. GLiNER2.5 scores start and end boundaries instead, so a forty-word clause costs the same as a two-word name, and the public 4k-word window plus library chunking covers full documents.

Fastino's 2.5 blog also adds JointIE knowledge graphs, constrained classification, and span attributes. This page runs the boundary entity path, the v3 classifier, and (when heads.onnx is loaded) typed JointIE edges. Record-mode JSON is host assignment of repeated fields, not the neural RecordHead.

CrossNER is the one public NER number we can check. Fastino reports macro F1 on 2.5-base 58.30 / 2.5-multi 54.85. Our JS ONNX domain-macro (same five test splits, threshold 0.5) is 55.8 / 52.2. JS matches Python AutoExtractor on those splits; the remaining ~2.5 points is protocol (token-level vs char-span, not the export).

CrossNERblog 2.5 baseour JS baseblog 2.5 multiour JS multi
AI50.6948.645.6043.2
Literature54.5653.151.5250.3
Music68.9665.065.8062.9
Politics56.4157.555.2655.9
Science60.8554.756.0848.7
domain-macro58.3055.854.8552.2
Named entities · Apple / Cook
WebGPU: checking…

Entities will appear here.

Raw entities (JSON)