GLiNER zero-shot NER or an LLM: which extractor, and when
GLiNER and an LLM solve two different jobs. GLiNER is a small encoder that types spans against any label list you pass at request time. One text is one flat metered unit. The answer is spans with positions, not prose. An LLM extraction is a writing job. It gives you free schemas and role-aware fields, and a token bill that scales with your prompt and its answer. The 2023 claim that GLiNER beats ChatGPT is real, dated, and narrower than the blogs repeat it. This page re-dates the evidence, prices 1,000 extractions on both sides, and maps the version line the search box keeps asking about.
Every number below names its owner and its date. The GLiNER facts come from the project's repository, the paper, and the official model cards, read 28 October 2026. The GLiNER2 and GLiNER2.5 facts come from the GLiNER2 paper, the GLiNER2 repository, and Fastino's release post, read the same day. LLM rates appear as dated directions from OpenAI's pricing page, read the same day, never as figures. Where nothing verified exists, the cell stays a dash. The pages ranking today repeat a 2023 claim with no date and no price. This page carries both.
Last verified: 2026-10-28
The claim, re-dated
Every ranking result repeats one line: GLiNER outperforms ChatGPT. That line has a source, and the source is precise about what it measured.
The source is a paper, submitted 14 November 2023 and published at NAACL 2024. Its title is GLiNER: Generalist Model for Named Entity Recognition using Bidirectional Transformer. The abstract claims zero-shot wins over "both ChatGPT and fine-tuned LLMs in zero-shot evaluations on various NER benchmarks". Two tables back the claim. On a seven-dataset test, ChatGPT averaged 47.5 F1. The small GLiNER, at 50 million parameters, averaged 52.7. The large one, at 0.3 billion, averaged 60.9. On a twenty-dataset sweep, ChatGPT averaged 36.5. The 7-billion UniNER, a fine-tuned LLM, averaged 45.7. GLiNER-large averaged 47.8 and scored best on 13 of the 20 datasets.
Now the two facts the blogs drop. First, the baseline. The paper did not run ChatGPT itself. It borrowed those scores from the UniNER paper of Zhou et al., August 2023. That paper tested the gpt-3.5-turbo-0301 snapshot. So the claim means: a March 2023 chat model, on 2023 test sets, in a zero-shot setting. Second, the clock. No public head-to-head against 2026 frontier models exists. A comparison site that tracks both sides reports zero shared results between them, read 28 October 2026. And an April 2026 paper on zero-shot NER prompting still calls LLM outputs "persistent and systematic errors" and reports zero-shot NER lagging far behind supervised systems.
The honest reading: the 2023 result stands as published. The claim expires at the edge of its baseline. Run both engines on your own text before you commit. Every serious source in this lane says the same.
Two machines wearing one word
"Extraction" hides a mechanical split. The split explains every trade that follows.
GLiNER is a two-way encoder. It reads the whole input in both directions. It embeds your label list into the same vector space as the text. Then it scores candidate spans against the labels. Scoring is parallel: one forward pass covers all spans and all labels. The paper itself calls this "an advantage over the slow sequential token generation of LLMs". Its output is data: matched text, type, start and end positions, and a score.
An LLM extraction is generation. The model reads your instructions, your schema, and the text. Then it writes the answer one token at a time. That shape buys real power. The schema can be nested. Fields can depend on each other. The model can normalize units and reason while it extracts. Cost is the shape itself. An answer arrives as text that must parse back into structure. A malformed array or a chatty preface breaks your parser. That failure class follows the model, not your code.
The jobs sit on either side of that line. GLiNER answers: which spans in this text match these types. The LLM answers: turn this text into this record shape. One job labels positions. The other composes.
The scoreboard, owner by owner
Each row names who ran the test and when. A publisher-run benchmark is the vendor scoring its own model: useful direction, single source.
| Evidence | What it says | Owner, date |
|---|---|---|
| Zero-shot, 7-dataset average F1 | ChatGPT 47.5; GLiNER-S 52.7; GLiNER-M 55.4; GLiNER-L 60.9; UniNER-13B 55.6; GoLLIE 58.0 | the GLiNER paper, Nov 2023 (NAACL 2024) |
| Zero-shot, 20-dataset average F1 | ChatGPT 36.5; UniNER-7B 45.7; GLiNER-L 47.8, best on 13 of 20 | same |
| Multilingual average F1 | supervised 54.9; ChatGPT 29.9; GLiNER-Multi 32.9; GLiNER-En 23.6 | same |
| Few-shot lift | about 100 labeled examples add about 5.6 F1 | Fastino's GLiNER post by the model's author, Jan 2026 |
| GLiNER2.5 against GLiNER2 | higher average F1 across 16 benchmarks, with a 24.75-point gain on XNLI | Fastino release post, Aug 2026 |
| GLiNER against 2026 frontier LLMs | - | no shared public test exists; a comparison tracker reports zero shared results, read 2026-10-28 |
Read the multilingual row twice. It is the honesty test the blogs fail. The multilingual GLiNER beats the 2023 ChatGPT average, 32.9 against 29.9. The English-only GLiNER does not: 23.6 against 29.9. A page that prints the first half and drops the second is selling a flattened table.
Two more notes. The 2023 tables score exact span matches in F1. That is strict for the writing side: a correct entity wrapped in chatter scores zero. And the paper's counts, 50 million to 0.3 billion, are its test models. The shipped files are larger. The official card's own size table lists the v1 to v2.1 releases at 166 million, 209 million, and 459 million parameters. Both counts are right. They count different things.
What 1,000 extractions cost
Unit rules first, rates second. A rate without its unit rule cannot be compared. The two engines do not even bill the same thing.
On this platform, the unit is the input text. One input is one metered search. A body holding 100 texts meters 100 searches. On an LLM route, the unit is the token, in both directions. Your prompt, your schema, the text, and the written answer all bill.
| Model | Context | $/1M in | $/1M out | $/1M cached |
|---|---|---|---|---|
| Qwen | ||||
| qwen3.8-27b | 262K | $0.35 | $2.55 | $0.105 |
| qwen3.6-35b | 131K | $0.11 | $0.8 | $0.044 |
| Minimax | ||||
| minimax-m2.7 | 197K | $0.24 | $0.95 | $0.072 |
| Muse | ||||
| muse-glimmer-30b | 131K | $0.28 | $1.2 | $0.084 |
| Ornith | ||||
| ornith-1.5-35b | 100K | $0.35 | $2.55 | $0.105 |
| ornith-1.5-9b | 100K | $0.1 | $0.3 | $0.03 |
| Glm | ||||
| glm-5.3-flash | 1049K | $0.11 | $0.35 | $0.033 |
| Deepseek | ||||
| deepseek-v4-flash-0731 | 1311K | $0.15 | $0.42 | $0.045 |
| Gemma | ||||
| gemma-4-31b-it | 262K | $0.22 | $0.49 | $0.066 |
| Deepseek | ||||
| deepseek-v4-pro | 1000K | $1.13 | $2.21 | $0.339 |
| deepseek-v4.1-flash | 1000K | $0.19 | $0.71 | $0.06 |
| deepseek-v4.1-flash-1017 | 1049K | $0.16 | $0.65 | $0.003 |
| Glm | ||||
| glm-5.3 | 1000K | $1.32 | $4.25 | $0.4 |
| Flux | ||||
| flux-1-schnell | — | $0.003/image | ||
| flux-pro-1.1 | — | $0.04/image | ||
| Chatterbox | ||||
| chatterbox-tts | — | $25/1M chars | ||
| Kokoro | ||||
| kokoro-tts | — | $15/1M chars | ||
| pocket-tts | — | $16/1M chars | ||
| Audio | ||||
| audio8-tts | — | $8/1M chars | ||
| Hayamimi | ||||
| hayamimi-stt | — | $0.6/audio-hr | ||
| Bge | ||||
| bge-m3 | — | $0.05/1M tokens | ||
| bge-reranker-v2-m3 | — | $1.5/1k searches | ||
| Ocr | ||||
| ocr-print | — | $1/1k pages | ||
| ocr-archival | — | $3/1k pages | ||
| Whisper | ||||
| whisper | — | $0.12/audio-hr | ||
| Iab | ||||
| iab-2x | — | $0.7/1k pages | ||
| iab-3x | — | $0.7/1k pages | ||
| Gliner | ||||
| gliner-extract | — | $0.9/1k searches | ||
| Jev | ||||
| jev-fast | 1K | $0.03 | $0 | — |
| jev-causal | 1K | $0.03 | $0 | — |
| jev-batch | 1K | $0.03 | $0 | — |
| Wemm | ||||
| wemm-embed | — | $0.09/1M tokens | ||
| Molmo | ||||
| molmo2-er | 8K | $1 | $5 | $0.5 |
| Cosmos | ||||
| cosmos-reason2-2b | 4K | $0.1 | $0.4 | $0.05 |
| Sam | ||||
| sam2.1-base | — | $0.02/image | ||
| Da | ||||
| da3-small | — | $0.05/image | ||
| Smolvla | ||||
| smolvla | — | $0.001/call | ||
| Openvla | ||||
| openvla-oft | — | $0.006/call | ||
| Act | ||||
| act | — | $0.001/call | ||
The flat-side math, on named variables:
cost per 1,000 extractions here = ( N / 1,000 ) x R
N: input texts extracted; one input text = one metered search
R: per-1k-search rate from the fenced row above
The token-side translator, same shape:
LLM cost per 1,000 extractions = ( Tin / 1,000,000 ) x Rin + ( Tout / 1,000,000 ) x Rout
Tin: input tokens per 1,000 calls: instructions + label list + documents
Tout: output tokens per 1,000 calls: the JSON the model writes back
Rin: the model's per-million input-token rate, from its own card
Rout: the model's per-million output-token rate, from its own card
Fix one shape so the formulas can meet. Say each call carries a 400-token document and a 60-token instruction with the label list, and writes a 150-token answer. Per 1,000 calls that is 460,000 input tokens and 150,000 output tokens. Now the relations, from OpenAI's own card read 28 October 2026. At that shape, the lowest-rate text tier on the card bills below this platform's fenced rate. The mid tiers bill above it. Both directions live inside one rate card. That is why this page prints directions at a named shape, not a verdict.
The sensitivity line matters more than any single rate. On the token side, your prompt rides every call, so longer texts raise the bill in step. On the flat side, a longer text changes wait time, not the count. The metered unit is the text, at any length. Short texts push the token side down. Long texts push it up without limit. Know your shape before you trust either side.
Self-hosting is the third shape. Its per-unit bill is zero; the hardware bill is not. Apache 2.0 weights cost nothing to run, and the project states the models run on CPUs and consumer hardware. Roughly 0.6 GB of GPU memory is what this platform's own model page records for the model. Your cost is a machine and your time.
The latency class
Encoder wait and writing wait are different physical classes. Only one side prints numbers you can plan around.
On the encoder side, one forward pass produces all span scores. The project's README lists its own speedups. torch.compile gives about a 1.5 times gain. Half precision plus compilation gives about 1.9 times faster GPU runs. The August 2026 GLiNER2.5 release swapped span grids for boundary prediction. The release post says inference now scales in a line with document length. On this lane, the design target is a p50 under 150 milliseconds per request. The platform's law: a wait figure publishes only when measured rounds hold it. Treat that as a target, not a promise.
On the writing side, the answer arrives one token at a time after the model reads your prompt. No hosted LLM route prints an extraction-wait figure at a named text shape on the pages read 28 October 2026. So that cell stays a dash. The class statement stands without numbers. One parallel pass and a token-by-token write of your whole answer are not the same order of work. The gap grows with output length.
The version map the search box asks for
Search completions for "gliner" now expand into gliner2, gliner 2.5, gliner 2.5-decide, and gliner huggingface, verified 28 October 2026. The ranking pages still explain the 2023 model. Here is the whole line, from the official cards and code.
The library line, one model family under the gliner package:
| Release | Sizes | License | Note |
|---|---|---|---|
| v0, 2023 | 209M | cc-by-nc-4.0 | non-commercial: check before business use |
| v1 | 166M, 209M, 459M | cc-by-nc-4.0 | still non-commercial |
| v2 | 166M, 209M, 459M | Apache 2.0 | the license flip |
| v2.1 | 166M, 209M, 459M, multi 209M | Apache 2.0 | the common default for years |
| v2.5, Jun 2024 | - | Apache 2.0 | current small and large cards; sizes not listed in the card's own table |
That first license row is the money correction in this section. Half the blog posts that point at gliner_base or the v1 files are pointing at non-commercial weights. Everything from v2 on is Apache 2.0.
The second line is a different family, from the original author's company. GLiNER2, paper of 24 July 2025, is a schema-driven encoder. One interface covers entities, text classes, structured records, and relations. It installs with pip as gliner2, Apache 2.0. GLiNER2.5, released 24 August 2026, goes further. It trains to 4,096-word inputs, drops the maximum span length, and adds joint entity-relation work. Its three sizes ship at 74 million, 0.2 billion, and 0.3 billion parameters, all Apache 2.0.
Usage says the new line is not a footnote. The gliner2-base model counts about 371,000 downloads a month on the model host, read 28 October 2026. gliner2.5-base counts about 114,000, two months after release. And the gliner pip package counts about 705,000 installs a month. And note the name trap. gliner_large-v2.5 is a June 2024 library model. GLiNER2.5 is the August 2026 design. Two different "2.5"s.
Where the LLM wins
A fair comparison names the other side's winning jobs. Practitioners already found the edge.
A March 2025 thread on a retrieval forum records the exact failure. An engineer pulls key-value pairs from documents. The text holds two dates, an issue date and a due date. GLiNER returns both under the type "date", unless the text itself names the roles. A quantized 7-billion open LLM, prompted for JSON, binds the roles and builds the record the engineer wanted. That report is the edge in one example. GLiNER types spans. It does not bind roles when the type name alone cannot say which date is which.
The LLM's winning jobs follow. Role-bound fields, where a type list cannot tell the dates apart. Nested or derived records, where fields depend on each other. Units, currencies, and cross-sentence links, resolved while the model works. One-off jobs at small volume, where setup cost dominates and the token bill is noise.
The encoder side has answers, each dated. Phrase the labels so the text names them, and plain span matching recovers many role cases for free. The GLiNER2 line, July 2025, takes a schema with typed records. Its August 2026 successor adds joint entity-relation work and span notes. GLiREL, another project from the same author, covers relations on the older design. These close the gap from the encoder side, at encoder cost. The trade: a fixed schema vocabulary, not free-form instruction.
PII: the tail with its own map
"gliner pii" is its own search completion. The PII corner has three routes.
The open route is the multilingual PII model in the family. Apache 2.0, about 92,000 downloads a month. The project's README claims the major PII types across 100+ languages. Self-host it like any checkpoint. The second route was a hosted one. NVIDIA ran gliner-pii as a fixed-label endpoint on its build surface from 3 March 2026, then marked that free endpoint deprecated, read on the surface 28 October 2026. The card's durable facts still verify: the family's bi-large base, 570 million parameters, 55+ PII and health types, span output, under NVIDIA's open model license. Fixed labels. Strong at its one job, not general work. The third route is the GLiNER2 privacy line, Apache 2.0, about 164,000 downloads a month.
This platform's lane is the general one. Your own label list, any request, PII types included when you name them. The gliner-extract model page carries the full request contract.
Run it: one call, or your own metal
The lane rides the classification route: one JSON POST with a Bearer key. Sign up, create a key, and send text plus labels:
curl -X POST "https://api.ironstratum.com/v1/classification" \
-H "Authorization: Bearer $KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gliner-extract",
"input": "Contract terminated under clause 14.2 on 3 March at the Riverside office.",
"labels": ["clause", "date", "facility"]
}'
The answer is typed spans: matched text, type, position, and a score. The wallet is prepaid, and a refused request bills nothing. That hard stop is the failure mode the bill shock guide covers in depth. Current rates render on the pricing page. The OpenAI-compatible API guide maps the wider request surface.
Self-hosting stays open at every step. pip install gliner is the official package, and CPU-class hardware is enough per the project's README. The package's serve extra wraps the model in an HTTP server of your own. A spaCy wrapper exists in the ecosystem for pipeline shops. The exit is real. It is the control half of this comparison: the same Apache weights run on your laptop today and behind a metered route tomorrow.
Choose in 60 seconds
Work the list and stop at the first fit.
- Typed spans at request scale, with a label list that may shift per request: GLiNER-class.
- Odd label vocabulary: medication names, fault codes, clause types: GLiNER-class. Zero-shot was built for this.
- Fields bind roles, the output is nested records, or the job needs reasoning: an LLM, or the GLiNER2 schema line.
- The text cannot leave your boundary: self-host the Apache weights.
- The whole job is standard PII detection: the PII-tuned routes, and the now-deprecated hosted fixed-label endpoint.
- Twenty documents, one afternoon, no pipeline: the LLM. Setup cost dominates.
- You want a 2026 leaderboard verdict: dash. No shared public evidence exists. Test on your own corpus.
Common questions
Is GLiNER better than ChatGPT at NER? On the 2023 evidence, yes in the zero-shot setting measured: 52.7 against 47.5 average F1 for the 50-million model on the seven-dataset test, 47.8 against 36.5 on twenty datasets. The ChatGPT in those tables is the gpt-3.5-turbo-0301 snapshot, scored by a third-party paper in August 2023. No published head-to-head against 2026 frontier models exists. Read the claim as dated evidence about a size class, not a standing verdict.
What does 1,000 extractions cost on each side? Here: the fenced rate above, one metered search per input text, 0.90 per 1,000. On an LLM route: input tokens plus output tokens at the model's own rates, formulas above. At the named 400-plus-60-token in, 150-token out shape, the lowest-rate OpenAI text tier lands below this platform's rate and the mid tiers land above, per its card read 28 October 2026. Your shape decides the direction.
What are gliner2 and GLiNER2.5? Two different lines. GLiNER2 is the July 2025 schema-driven successor from the original author's company: one interface for entities, classes, records, and relations, Apache 2.0. GLiNER2.5 is its August 2026 upgrade: boundary work instead of span grids, 4,096-word inputs, unlimited span length, at 74 million, 0.2 billion, and 0.3 billion parameters. Do not confuse either with gliner_large-v2.5, a June 2024 file from the original library line.
Can GLiNER pull relations or key-value pairs? The family can. The main repository covers joint entity and relation work, GLiNER2 takes typed schemas, and GLiNER2.5 adds joint work with span notes. Role-bound key-value pulls are the known weak spot of plain span typing, per practitioner reports and the section above. This platform's lane serves the typed-span contract: text plus labels in, spans out.
Is GLiNER free for commercial use? From version 2 on, yes: Apache 2.0, stated on the repository and the cards. The v0 and v1 files carry a non-commercial license, cc-by-nc-4.0, and older tutorials still point at them. Check the card before you ship.
Which PII route should I take? Standard types, self-hosted: the multilingual PII model, Apache 2.0, or NVIDIA's fixed-label card, whose free hosted endpoint is marked deprecated as of late October 2026. Your own PII vocabulary at request scale: a general zero-shot lane with your label list, including this platform's.
The short version
GLiNER and an LLM are not rivals for one job. GLiNER wins typed-span work at volume: any label list, one flat metered unit per text, span positions out, Apache weights you keep. The LLM wins composition: role-bound fields, nested schemas, reasoning on the way, at a token bill that scales with your prompt and its answer. The famous outperforms-ChatGPT line is a 2023 result on a 2023 baseline. Real as published. Untested against 2026 frontier models. The gliner2 and 2.5 lines, July 2025 and August 2026, are the current state, and the search box knows it even where the ranking pages do not. When the job is spans at scale, sign up and send the call above. Lane and contract live at the classification lane page and the gliner-extract model page. One step earlier in the pipeline, the parsing guide covers the document work that feeds extraction. Live rates ride the pricing page.
Last verified: 2026-10-28