A tiny NER model that claims to out-LLM the LLMs
GLiNER squeezes zero-shot named entity recognition into a bidirectional transformer small enough to run on a laptop, then adds a production Ray Serve stack on top.

What it does GLiNER trains and deploys compact models for Named Entity Recognition with a twist: you define entity labels on the fly instead of baking them in at training time. It also handles joint entity and relation extraction. The project ships as a Python library with an optional Ray Serve layer for batched, multi-replica inference.
The interesting bit The authors claim performance competitive with ChatGPT and UniNER on zero-shot NER benchmarks, despite using a bidirectional encoder that extracts entities in parallel rather than generating tokens sequentially. That speed difference is the core pitch—parallel extraction versus LLM token-by-token generation.
Key highlights
- Runs on CPUs and consumer hardware; explicitly optimized for low-resource deployment
- Zero-shot: pass arbitrary label strings like
personorawardat inference time - Built-in serving mode with dynamic batching, memory-aware sizing, and precompiled power-of-two batch sizes via Ray Serve
- Supports fine-tuning, ONNX export, and synthetic data generation per the examples
- Also handles relation extraction, not just flat entities
Caveats
- The README’s performance claims versus ChatGPT and UniNER are stated without showing specific benchmark numbers or conditions
- GLiNER2 now exists at Fastino Labs, so this repo may be in maintenance mode; the authors now split attention between the two codebases
Verdict Worth a look if you need fast, cheap, customizable entity extraction in production and don’t want to pay LLM inference costs. Skip it if you need deep linguistic reasoning or structured extraction beyond entities and relations—the bidirectional design trades generality for speed.
Frequently asked
- What is urchade/GLiNER?
- GLiNER squeezes zero-shot named entity recognition into a bidirectional transformer small enough to run on a laptop, then adds a production Ray Serve stack on top.
- Is GLiNER open source?
- Yes — urchade/GLiNER is open source, released under the Apache-2.0 license.
- What language is GLiNER written in?
- urchade/GLiNER is primarily written in Python.
- How popular is GLiNER?
- urchade/GLiNER has 3.4k stars on GitHub.
- Where can I find GLiNER?
- urchade/GLiNER is on GitHub at https://github.com/urchade/GLiNER.