Skip to content
System One

Jev vs GLiNER: span extraction against typed decisions

GLiNER is an open-weights zero-shot entity extractor that returns spans with start and end offsets for label types you supply at inference time. Jev returns a Choice, Score or Noul about the whole state with a probability attached, and never a pointer into the text. They take labels the same way and answer structurally different questions, so most systems that need both run them in sequence.

Updated

The short answer

GLiNER tells you where something is in the text. Jev tells you something about the text. GLiNER returns typed spans with offsets, so “Paris” comes back tagged LOCATION at a known position. Jev returns one answer over an option set you defined, with a probability and no position at all. The choice starts with which of those two answers your code needs.

Both are zero-shot in the same sense. You hand over the label list at request time and neither model was trained on it. That shared property is why they get compared, and it hides the fact that they produce different data structures.

Jev vs GLiNER at a glance

Jev GLiNER
Task A decision over an option set you define Zero-shot named entity recognition
Labels Supplied per request Supplied per request
Output Choice, Score or Noul with a probability per option Typed spans with start and end offsets
Model size Undisclosed, closed model Small, medium and large variants; parameter counts are not stated on the README
Licence and weights Closed, managed API only Apache 2.0, weights on Hugging Face
Runs locally No Yes, including on CPU
Latency 70ms to 500ms end to end (TypeSafe’s own figure) No absolute figures published; the README gives up to about 1.5x from torch.compile and up to about 1.9x with FP16 plus compilation
Cost $0.042 per million input tokens, output free Your own hardware
Calibration Trained with RLCD, unaudited outside TypeSafe Span scores with no calibration claim
Languages English first; docs say other languages including CJK scripts are handled, and recommend testing your own content 100+ languages claimed, with multilingual variants

Sources: the GLiNER GitHub README and arXiv:2311.08526, docs.typesafe.ai/models, and the TypeSafe launch post, checked 2026-09-20.

What GLiNER does

GLiNER is a bidirectional transformer encoder that performs named entity recognition against label types given at inference time, from the paper “GLiNER: Generalist Model for Named Entity Recognition using Bidirectional Transformer” (Zaratiana, Tomeh, Holat and Charnois, arXiv:2311.08526, submitted 2023-11-14). Ask it for PERSON, DRUG and DOSAGE and it finds those spans in a clinical note without having been trained on your schema.

The paper’s headline claim is that GLiNER outperforms both ChatGPT and fine-tuned LLMs in zero-shot NER evaluations, and that it extracts entities in parallel rather than through sequential token generation. The F1 figures behind that live in the full paper and are not restated here.

The family has grown past a single checkpoint: a uni-encoder original aimed at around 50 entity types, a bi-encoder that scales to far larger type counts, a RelEx variant doing joint entity and relation extraction, a decoder variant for generative entity types, and StreamingSpan for incremental extraction. Separately named siblings cover multi-task extraction (GLiNER2), zero-shot text classification (GLiClass), schema-conditioned safeguarding (GLiGuard) and multilingual PII (GLiNER2-PII). All Apache 2.0. The directory entry has the repository details.

What Jev does

Jev answers questions about a state you send it. The three primitives are a Choice picking one of up to 255 options, a Score placing the state on 2 to 10 ordered levels, and a Noul answering yes or no as a single number between 0 and 1. Each answer carries a probability.

Nothing in that output points at the text. The API has one documented endpoint, POST /v1/systemone, and no span, offset or entity type appears in it.

Can Jev do named entity recognition?

Not as NER is normally defined, because Jev never returns a span. If your downstream code highlights text, redacts a range or stores a character offset, Jev cannot supply it.

Two shapes get you part of the way. Extract candidates some other way and send them as a Choice over the candidate list, so the model picks the right one. Or send one Noul per candidate, asking whether this string is the drug name in this note. Both use Jev for the judgment and something else for the locating.

Can GLiNER classify text?

GLiNER returns spans, so classifying a whole document is not what it is built for. The sibling model GLiClass exists for zero-shot text classification, and GLiGuard does schema-conditioned classification aimed at LLM safeguarding.

The span framing breaks down on judgments that are written nowhere in the text. Severity, intent, urgency and tone are properties of a message rather than strings inside it, so a span model has nothing to point at. That is the class of question a zero-shot classifier or a decision model handles and an extractor does not.

Speed, cost and hosting

GLiNER is free to run and you pay for the hardware. The README publishes no absolute millisecond figures, only relative speedups: up to about 1.5x from torch.compile, and up to about 1.9x for GPU inference with FP16 quantization plus compilation. Because the weights are Apache 2.0, the text never leaves your network, which settles the question for regulated data on its own.

Jev is a managed API at $0.042 per million input tokens with free output, and TypeSafe publishes 70ms to 500ms end to end from its own evaluation. No independent latency benchmark for Jev had been published as of 2026-09-20, and no controlled head-to-head of Jev against GLiNER exists that this site could verify, so treat any single comparison you find as one author’s setup until you reproduce it.

The cost shapes differ more than the numbers suggest. GLiNER’s bill is fixed, so your per-document cost falls as volume rises. Jev’s bill scales with the tokens you send, which makes small and spiky workloads cheap and very large corpora expensive.

Using GLiNER and Jev together

The sequence that makes sense is extract, then decide. GLiNER finds the candidate spans, and Jev answers the questions that have no span to point at.

Structured extraction is the obvious case. Pull the entities out of a contract with GLiNER, then send each one to Jev as a Noul asking whether the clause it sits in is an obligation on your side. Entity alignment is the other. Extraction gives you a surface string, and deciding which record that string refers to is a Choice over your candidate matches, with a probability you can threshold before writing to the graph. The alternatives directory lists the other open-weights models people put in the extraction slot.

When to use which

Use GLiNER when you need offsets, when the data cannot leave your network, when volume is high enough that per-token pricing adds up, or when you need a multilingual extractor. Use Jev when the answer is a judgment about the whole input, when you want a calibrated probability to gate on, or when you need several judgments about one document in a single call. Many pipelines want both, in that order.

FAQ

Is GLiNER an alternative to Jev?

For extraction work, it is the tool you should have been using anyway. For decisions about a whole document it is not, since GLiNER returns spans and has nothing to point at when the judgment is about severity or intent. The sibling model GLiClass covers zero-shot text classification if that is what you need.

Can Jev extract entities?

No. Jev returns a Choice, Score or Noul about the state you send, never a span or an offset. You can send candidate entities found elsewhere as Choice options, or ask one Noul per candidate, but the locating has to happen before the call. The API documents a single endpoint with no extraction shape.

Is GLiNER free?

Yes. GLiNER is Apache 2.0 with weights published on Hugging Face, so you can download it, run it locally and use it commercially. The cost is the hardware and the engineering time to deploy it. Jev has no equivalent free tier, since it is a closed model behind a metered API.

Which is faster, Jev or GLiNER?

There is no verified head-to-head benchmark. GLiNER runs locally with no network round trip, which is a structural advantage, but its README publishes only relative speedups rather than millisecond figures. TypeSafe publishes 70ms to 500ms for Jev from its own evaluation, unconfirmed by any independent test as of 2026-09-20.

Can I run GLiNER locally?

Yes, and that is much of the point. The weights are on Hugging Face under Apache 2.0, the models are small enough to run on CPU, and the repository documents torch.compile and FP16 quantization for faster GPU inference. Nothing leaves your network, which matters when the documents cannot be sent to a vendor.

Examples

Related guides