gliner2-base-v1
by fastino
Unified NER, classification, and structured extraction in a single 205M CPU-efficient model
fastino/gliner2-base-v1mixpeek://document_extractor@v1/fastino_gliner2_base_v1Overview
GLiNER 2 unifies named entity recognition, text classification, and hierarchical structured data extraction into a single 205M-parameter model built on a pretrained transformer encoder. Unlike pipeline approaches that chain separate models or LLM-based extraction that requires GPU infrastructure, GLiNER 2 runs efficiently on CPU with an intuitive schema-based interface that accepts natural language type descriptions.
On Mixpeek, GLiNER 2 powers lightweight entity extraction pipelines that run alongside heavier models without competing for GPU resources. Its zero-shot generalization across domains (matching GPT-4o on CrossNER benchmarks) makes it ideal for extracting custom entities from transcripts, OCR output, and document text without fine-tuning.
Architecture
Pretrained transformer encoder with multi-task composition heads for NER, classification, and structured extraction. 205M parameters. Schema-driven interface supporting natural language entity type descriptions, nested and overlapping spans, and configurable single or multi-label classification.
Mixpeek SDK Integration
// No extractor parameter takes a Hugging Face model id (checked against
// GET /v1/discovery/extractors, which returns 13), so gliner2-base-v1 runs
// on your side and the output is upserted through POST
// /v1/namespaces/{namespace_id}/documents/upsert. On Enterprise the other
// path is to upload the weights instead: POST /v1/namespaces/{id}/models
// accepts the huggingface format and a custom plugin loads them.
const res = await fetch(
"https://api.mixpeek.com/v1/namespaces/ns_your_namespace/documents/upsert",
{
method: "POST",
headers: {
Authorization: "Bearer API_KEY",
"Content-Type": "application/json",
},
body: JSON.stringify({
collection_id: "col_your_collection",
documents: [
{
document_id: "asset-00412",
// The model produces text, so it lands in payload. Give the
// collection a text vector index and embed that text to make it
// searchable rather than only filterable.
payload: { extracted_text: modelOutput, source_key: "archive/2026/asset-00412" },
vectors: { "text-embedding": embeddingOfModelOutput },
},
],
}),
},
);
// Managed alternative, if this exact model is not the requirement:
// universal_extractor@v1 runs google/gemini-embedding-2
// (3072-d) over a bucket, with no inference of your own.Capabilities
- Zero-shot NER matching GPT-4o on CrossNER (F1: 0.590 vs 0.599)
- Named entity recognition with natural language type descriptions
- Text classification with single or multi-label output
- Hierarchical structured data extraction
- CPU-efficient inference, no GPU required
Use Cases on Mixpeek
Benchmarks
| Dataset | Metric | Score | Source |
|---|---|---|---|
| CrossNER (zero-shot, 5 domains) | F1 | 0.590 | GLiNER2, Jul 2025: arXiv 2507.18546 |
| CrossNER AI domain | F1 | 0.547 | GLiNER2, Jul 2025: arXiv 2507.18546 |
Performance
Common Pipeline Companions
Explore on Mixpeek
Compare alternatives in this category
Hand-picked tools & platforms compared
Deep-dive technical guide
See how Mixpeek runs models as extractors
Store & search embeddings at scale
Usage-based pricing for pipelines
Compare models, APIs & infrastructure
Specification
Research Paper
GLiNER2: An Efficient Multi-Task Information Extraction System
arxiv.orgBuild a pipeline with gliner2-base-v1
Add this model to a processing pipeline alongside other extractors. Combine with retrieval stages for end-to-end search.
Run it on your own data, free