/ Модель

Характеристики

Контекст
8 192 токена
Лицензия
Apache 2.0
Архитектура
extractor · dense
Библиотека
gliner2
Опубликована
10 фев 2026

gliner2-small

Разметка токеновТекст → label12 профессий

GLiNER2 Small — компактная англоязычная модель для извлечения сущностей по заданным пользователем типам без отдельного обучения.

179скачиваний за 30 дней0лайковвеса обновлены7 окт 2026

Бенчмарки

Как модель справилась с задачами пользователей ailist и что о ней публикуют открытые лидерборды

Публичные оценки

Из открытых лидербордов. Сравнивайте результаты одного теста при одинаковых условиях — отсутствие оценки не значит, что модель хуже.

В подключённых источниках результатов для этой модели пока нет.

Что умеет модель

Описание составлено по карточке модели и метаданным Hugging Face

GLiNER2 Small — компактная модель извлечения сущностей с нулевым обучением, представленная в карточке как вариант семейства GLiNER2. Она принимает текст и список типов сущностей, при необходимости с краткими определениями на английском языке, и возвращает найденные фрагменты текста с метками и точными символьными границами. Модель содержит 81 млн параметров и предназначена для извлечения именованных сущностей и других заданных схемой сущностей без предварительного обучения под конкретную схему.

Модель рассчитана на обработку больших объёмов текста, предварительную фильтрацию и локальный запуск. В README указаны медианная задержка 26 мс на документ, пропускная способность 156 документов в секунду при пакетной обработке и пиковое потребление GPU-памяти 2,9 ГБ на A100. Выход детерминированный; качество ниже, чем у более крупных моделей семейства и некоторых LLM. Карточка приводит средний F1 39,7 на выборке из 19 наборов данных и 47,5 по опубликованному протоколу GLiNER из семи тестовых наборов.

Модель использует библиотеку gliner2 и распространяется в формате safetensors. В метаданных указаны английский язык и лицензия Apache-2.0. README рекомендует при необходимости снижать порог для повышения полноты и удалять перекрывающиеся фрагменты для плоского результата.

Сценарии применения

  • извлечение именованных сущностей из англоязычных документов
  • поиск заданных типов сущностей по пользовательской схеме
  • предварительная фильтрация документов по сущностям
  • пакетная разметка сущностей в больших массивах текста

Ограничения

Качество ниже, чем у более крупных моделей семейства и ряда сравниваемых LLM; результаты существенно различаются между наборами данных. Описанные в README оценки относятся к конкретным тестовым протоколам и порогу 0,5.

Для каких профессий подходит12

Разделы каталога профессий, в задачах которых используется эта модель

Все профессии

Также подходит для

Карточка модели

README от автора на Hugging Face, как он его опубликовал

Открыть на Hugging Face

GLiNER2 Small (81M): zero-shot NER generalist

Span-extraction model that takes any list of entity types (optionally with one-line definitions) and returns exact character spans. All numbers below are for the published weights; threshold 0.5, exact span-and-label micro-F1.

Why use this model

  • Schema-defined NER, no training. Describe the entity types you need in plain English, as a label plus a one-line definition, at request time. The schemas/ folder holds 390 ready-made domain schemas, and Writing labels and definitions shows how to write labels and definitions that score best.
  • Lowest latency and cost in the family. 26 ms median latency per document, $0.0065 per 1,000 documents, 156 documents/second batched and 2.9 GB peak GPU memory on one A100 GPU, against $0.283 to $1.129 per 1,000 documents for hosted LLM APIs. Outputs are deterministic and your data stays on your own infrastructure. Accuracy is below the larger sizes and the LLMs (39.7 macro F1 on the 19-dataset matrix sample, against 49.8 to 59.8 for the LLMs); for close-to-frontier accuracy use XLarge, which scores 54.9 against 59.8 for Gemini 3.8 Flash, 51.3 for GPT-6-luna and 49.8 for Claude Haiku 4.5 (XLarge numbers, from its model card).
  • Open alternatives. On the published GLiNER zero-shot protocol (the standard 7 benchmarks) this model averages 47.5; the XLarge model averages 66.9 on the same protocol, against 60.9 for GLiNER-L (XLarge numbers).
  • Fine-tune for your domain. finetune.py adapts the model with a few hundred labelled sentences. After a short fine-tune on a benchmark's training split it reaches 84.7 F1 on CoNLL-2003, 85.2 on BC5CDR and 85.8 on NCBI-disease (see Fine-tuned on specialist benchmarks).
SizeParametersUse it for
Small (this model)81MLowest latency and memory in the family: very high volume, pre-filtering
ModernBERT447MBalanced accuracy and cost
XLarge1.19BBest accuracy; runs on a single GPU

Zero-shot evaluation matrix (full test sets, never trained on in any split)

Columns: this model with definitions, this model with bare label names, GLiNER2.5 Base (definitions / bare). Nested sets (LitBank, GENIA) are decoded with nesting allowed.

DatasetThis model (defs)This model (bare)GLiNER2.5 (defs)GLiNER2.5 (bare)
bc5cdr73.472.165.765.1
biodivner26.828.136.933.1
climate_change_ner22.615.127.214.5
crossner_ai37.839.947.845.4
crossner_literature46.743.350.852.0
crossner_music59.957.264.163.0
crossner_politics63.062.260.359.8
crossner_science47.549.552.950.7
finer_ord65.565.963.661.3
genia_nested41.636.647.336.1
inlegalner33.330.822.619.7
litbank28.024.527.124.2
maccrobat38.032.426.818.7
mit_movie41.743.366.559.9
mit_movie_trivia32.039.544.242.7
mit_restaurant31.626.649.149.3
scierc17.113.035.727.6
stackoverflow_ner6.97.018.714.9
wnut1738.433.041.234.5
Macro average (19)39.637.944.740.6
Standard 7 (CrossNER ×5, MIT Movie, MIT Restaurant)46.946.055.954.3

NuExtract3 (generative) on a fixed 300-row sample per dataset, this model on the same rows:

Macro (19)Standard 7
This model (defs, sample)39.746.9
NuExtract3 (sample)47.959.0
GLiNER2.5 (defs, sample)44.655.6

Pre-registered check (within 2 F1 of the best reference on the standard 7 and at or above it on the macro average, same rows): not passed.

Against hosted LLMs: accuracy, latency and cost

Same 300-row sample per dataset (5,446 documents), same definitions, same strict literal scoring for every system (an LLM string that cannot be located verbatim, or is returned more or fewer times than it occurs, counts as an error). LLM latency is the wall-clock API round trip at 8 concurrent requests; our latency is a single document on one A100 40GB at batch 1, and throughput is batched. Prices are the vendors' list prices on the day of the run; GPU cost uses the GCP on-demand A100 list price ($3.67/hour) at the measured batched throughput.

SystemMacro F1 (19)Standard-7 F1Median latency / docp90Cost per 1,000 docsCost per 1M docsRuns offline
This model39.746.926 ms29 ms$0.0065$6.50yes
GLiNER2.5 Base44.655.641 ms43 ms$0.0081$8.10yes
NuExtract3 (3B generative, same GPU)47.959.0––––yes
Claude Haiku 4.5 (Bedrock)49.864.31.15 s1.64 s$1.129$1129no
GPT-6-luna51.362.43.41 s11.21 s$0.283$283no
Gemini 3.8 Flash, thinking off59.872.20.89 s1.38 s$0.702$702no

This model: 81M parameters, 2.9 GB peak GPU memory at inference, 156 documents/second batched (mean 32 words per document).

Per dataset on the same sample (F1):

DatasetThis modelClaude Haiku 4.5 (Bedrock)GPT-6-lunaGemini 3.8 Flash, thinking off
bc5cdr73.168.475.877.8
biodivner26.821.027.145.2
climate_change_ner22.617.925.241.6
crossner_ai39.160.058.766.0
crossner_literature47.558.165.974.5
crossner_music59.676.276.579.3
crossner_politics63.365.964.476.9
crossner_science47.064.064.274.3
finer_ord68.168.474.678.7
genia_nested44.652.861.063.1
inlegalner33.733.338.948.6
litbank26.841.657.737.3
maccrobat38.123.77.733.9
mit_movie40.465.253.569.3
mit_movie_trivia33.760.462.261.1
mit_restaurant30.960.953.664.8
scierc16.135.441.048.8
stackoverflow_ner7.028.027.645.7
wnut1735.845.039.149.7

Failed API calls counted as all requested types wrong: Claude Haiku 4.5 (Bedrock) 0 of 5446, GPT-6-luna 0 of 5446, Gemini 3.8 Flash, thinking off 10 of 5446.

Published zero-shot protocol (GLiNER / UniversalNER benchmark)

Same seven test sets evaluated exactly as in the GLiNER paper: bare lower-cased type names as released (program language, musical artist, average ratings), CrossNER misc not queried, sentence-level input, threshold 0.5, flat decoding, exact span-and-type micro-F1, unweighted average. Rows marked * are published numbers from Zaratiana et al. (2023), Table 1; the others were run in this harness.

ModelMovieRestaurantAILiteratureMusicPoliticsScienceAverage
This model (this revision)43.025.442.546.255.064.056.847.5
GLiNER2.5 Base (same harness)59.549.449.354.165.562.556.756.7
GLiNER-S (50M) *46.933.350.760.060.961.555.652.7
GLiNER-M (90M) *42.937.351.859.769.468.658.155.4
GLiNER-L (300M) *57.242.957.264.469.672.662.660.9
UniNER-7B *42.431.753.659.367.060.961.153.7
UniNER-13B *48.736.254.260.964.561.463.555.6
ChatGPT *5.332.852.439.866.668.567.047.5

GLiNER2 (Fastino, 2025) reports CrossNER only under its own protocol: average 59.0 over the five domains, with GLiNER-M at 61.5 and GPT-4o at 59.9 in the same table.

Existing evaluation panels

PanelThis revisionPrecisionRecall
Familiar schemas, unseen text (1,584 docs)83.9683.484.5
Held-out schemas: logistics, software security (1,700 docs)60.2073.551.0
Additional unseen text (2,712 docs)85.5585.086.1
External benchmark sample (1,400 cases)48.8852.945.4
Sealed novel domains (370 docs)67.8868.267.6

Fine-tuned on specialist benchmarks

How close does a short fine-tune get to models built for one benchmark? Each column is test F1 (entity-level exact span and label, official test split) after fine-tuning the published model on that dataset's training split with finetune.py: one fixed recipe, one seed, no hyperparameter search, 1 to 3 epochs (16 sentences per step).

DatasetEpochsSmall (this model)ModernBERTXLargePublished specialist models
CoNLL-2003384.789.491.1BERT-large 92.8 [1] · LUKE 94.3 [2] · Flair large 94.4 [3] · ACE 94.6 [4]
OntoNotes 5 (18 types)184.387.188.1Stanza 88.8 [5] · spaCy trf 89.9 [6] · Flair large 90.9 [7]
BC5CDR (chemical + disease, combined)385.287.388.9scispaCy md 84.3 [8] · HunFlair 89.7, macro-averaged [9]
NCBI-disease385.887.587.8PubMedBERT 87.8 [10] · BioLinkBERT-large 88.8 [11] · BioBERT 89.7 [12]
BC2GM (gene/protein)378.081.882.8PubMedBERT 84.5 [10] · BioBERT 84.7 [12] · BioLinkBERT-large 85.2 [11]

Read this as a conservative comparison. The specialist models were trained only on these datasets, usually for many more epochs, with tuned schedules and architectures chosen for that one benchmark; some also use document-level context (ACE) or a corrected version of the data (Flair's CoNLL-03 figure). Ours is a general-purpose model given a short, untuned fine-tune, a single epoch on OntoNotes. The PubMedBERT, BioBERT and BioLinkBERT figures for NCBI-disease and BC2GM use plain entity-level exact match, as we do (their test splits are the BLURB preprocessed versions); for BC5CDR they report chemical and disease as two separate tasks, so only combined results are listed here.

Fine-tune time (training only, one NVIDIA A100 40 GB):

DatasetStepsSmall (this model)ModernBERTXLarge
CoNLL-20032,6336.3 min19 min62 min
OntoNotes 53,74612 min29 min96 min
BC5CDR1,0002.4 min7.4 min25 min
NCBI-disease1,0002.3 min7.4 min26 min
BC2GM2,3455.5 min18 min56 min

Sources: [1] Devlin et al. 2019, BERT, Table 7. [2] Yamada et al. 2020, LUKE, Table 3. [3] flair/ner-english-large model card (corrected CoNLL-03). [4] Wang et al. 2021, Automated Concatenation of Embeddings, Table 2. [5] Stanza NER model performance page. [6] spaCy en_core_web_trf 3.8.0 model metadata (ents_f). [7] flair/ner-english-ontonotes-large model card. [8] scispaCy documentation, en_ner_bc5cdr_md v0.5.4. [9] Weber et al. 2021, HunFlair, supplementary Table SM 4. [10] Gu et al. 2021, PubMedBERT / BLURB, Table 6. [11] Yasunaga et al. 2022, LinkBERT, Table 7. [12] Lee et al. 2019, BioBERT v1.1, Table 6.

Domain fine-tunes with few labelled sentences (InLegalNER, BioDivNER and others) are reported on the XLarge and ModernBERT model cards.

Training

  • Base model: jhu-clsp/ettin-encoder-68m encoder with a GLiNER2 span-extraction head.
  • Fine-tuning: several supervised stages on a large private corpus of span-annotated English text across hundreds of domains, with exact span-and-label targets and plain-English label definitions. The training data and recipe are not released.
  • Evaluation hygiene: no text from any evaluation set above was used in training.

Inference

from gliner2 import GLiNER2
import importlib.util, sys

repo = "Siddharth63/gliner2-small"  # or a local path
model = GLiNER2.from_pretrained(repo).to("cuda")
model.config.max_len = None
# exact-source adapter and fine word splitter shipped with the checkpoint
from huggingface_hub import hf_hub_download
for f in ["span_runtime.py", "fine_span_tokenizer.py", "record_sections.py"]: hf_hub_download(repo, f, local_dir="./rt")
sys.path.insert(0, "./rt"); from span_runtime import preserve_original_text; preserve_original_text(model)

text = "Shipment SHP-448201 cleared customs and left the port terminal by rail at 06:15."
schema = model.create_schema().entities({"shipment_identifier": "Identifier assigned to a shipment", "transport_mode": "Method used to transport cargo", "tracking_event": "Explicit shipment movement or status event"})
out = model.batch_extract([text], [schema], threshold=0.5, include_confidence=True, include_spans=True, max_len=None, overlap_policy="allow")[0]
print(out["entities"])

Definitions are optional but help (see the two columns above). Lower the threshold for recall; 0.5 is the calibrated default. For flat output, drop overlapping spans keeping the higher confidence.

Fine-tune on your own data

finetune.py in this repo is the exact script behind the fine-tuning table. Input is JSONL, one document per line:

{"text": "...", "schema": {"label": "one-line definition"}, "gold_spans": [{"start": 12, "end": 20, "label": "label"}], "overlap_policy": "flat"}
pip install gliner2 torch
python finetune.py --repo Siddharth63/gliner2-small --train train.jsonl --test test.jsonl --out ./my-model --k 200   # k = rows to use; omit for all

Defaults: 16 rows per step, about ten passes over the sample (100 to 1,000 steps), encoder LR 1.6e-5, head LR 1.6e-4, cosine with warmup. 50 to 200 annotated sentences are usually enough to move a domain by 10 to 30 F1 (table above).

Writing labels and definitions

The schemas/ folder of this repo holds 390 example domain schemas (6,583 labels) as ready-to-use {label: definition} files with an index; start from the closest one. This is a definition-based model. Schemas written in the style below score highest: on the standard benchmarks, definitions add about 1 to 3 F1 over bare label names. The examples below are taken verbatim from the training taxonomies.

Life sciences and health

biomedical research abstracts

{
    "disease": "Named illness, disorder, or medical condition",
    "symptom": "Observable sign or patient-reported complaint",
    "chemical": "Named chemical compound or small molecule",
    "drug": "Pharmaceutical agent used for treatment",
    "gene": "Named gene or genetic locus",
    "protein": "Named protein or enzyme molecule",
}

clinical case reports

{
    "disease": "Named illness or medical condition diagnosed",
    "sign_symptom": "Patient-reported or observed clinical manifestation",
    "medication": "Drug or pharmaceutical agent administered",
    "substance": "Non-drug chemical or biological material",
    "dosage": "Amount of drug given per administration",
    "lab_value": "Numeric result from laboratory testing",
}

pharmacology and toxicology abstracts

{
    "drug": "Named pharmaceutical compound or medication product",
    "chemical": "Non-drug chemical substance or compound name",
    "drug_class": "Category grouping drugs by mechanism or use",
    "disease": "Named medical condition or disorder",
    "adverse_effect": "Harmful reaction caused by a substance",
    "symptom": "Observable sign or patient-reported complaint",
}

veterinary practice

{
    "animal_patient_name": "Given name of a patient animal",
    "microchip_number": "Implanted chip ID digits for a patient",
    "patient_record_id": "Clinic file or chart number for patient",
    "breed_designation": "Breed or crossbreed stated for an animal",
    "attending_veterinarian": "Vet who personally treats the case",
    "referring_veterinarian": "Vet who sends case to another clinic",
}

Earth, environment and natural sciences

ecology and biodiversity field studies

{
    "species_name": "Scientific or common name of organism",
    "taxon_group": "Higher-level taxonomic or functional organism grouping",
    "habitat_type": "Category of ecological living environment",
    "ecosystem": "Interacting community and environment system",
    "study_site": "Named location where fieldwork occurred",
    "protected_area": "Named reserve, park, or conservation zone",
}

environmental science and pollution monitoring

{
    "pollutant": "Substance contaminating air, water, or soil",
    "chemical_compound": "Specific chemical substance or formula mentioned",
    "monitoring_station": "Named site where measurements are collected",
    "water_body": "Named river, lake, sea, or aquifer",
    "regulatory_agency": "Government body overseeing environmental rules",
    "organization": "Non-governmental or research institution named",
}

mining operations and geology logs

{
    "drill_hole_id": "Unique identifier assigned to a drill hole",
    "sample_id": "Identifier tagged to a physical geological sample",
    "tenement_number": "Legal registration number of a mining claim or licence",
    "planned_depth": "Target drilling depth stated before drilling begins",
    "actual_depth": "Depth measured or achieved in completed drilling",
    "assay_grade": "Measured concentration of metal in rock sample",
}

space exploration history

{
    "person": "Named human individual not fitting finer person types",
    "organisation": "Named institution, company, or group not space agency",
    "location": "Named geographic place not country or facility",
    "country": "Named sovereign nation or state",
    "event": "Named occurrence not a mission or program",
    "misc": "Any other named entity",
}

Law, government and security

court judgments and case law (outside India)

{
    "court": "Named judicial body or tribunal",
    "judge": "Named presiding judicial officer",
    "petitioner": "Party initiating the legal action",
    "respondent": "Party defending against the action",
    "lawyer": "Advocate representing a party",
    "statute": "Named legislative act or law",
}

insurance claims

{
    "policy_number": "Alphanumeric identifier of the insurance policy contract",
    "claim_number": "Identifier assigned to a specific submitted claim",
    "deductible_amount": "Sum insured must pay before coverage begins",
    "payout_amount": "Sum the insurer actually pays on claim",
    "claimed_amount": "Sum the claimant requests as compensation",
    "estimated_repair_cost": "Contractor or adjuster projected cost to repair damage",
}

emergency dispatch and fire service

{
    "incident_type_call": "Caller-reported category of emergency at dispatch intake",
    "confirmed_incident_class": "Official incident classification assigned after responders assess scene",
    "dispatcher_role": "Title of call-taking or radio dispatch staff",
    "field_officer_role": "Command or supervisory title held by responders on scene",
    "incident_number": "Unique CAD identifier assigned to a single incident",
    "unit_callsign": "Radio designation of a responding apparatus or crew",
}

nuclear plant outage planning

{
    "outage_milestone": "Named scheduled phase marker within outage timeline",
    "actual_milestone_event": "Milestone reported as having actually occurred during outage",
    "planned_duration": "Scheduled length of outage or activity",
    "actual_duration": "Measured elapsed length of outage or activity",
    "refueling_outage_id": "Code designating a specific refueling outage",
    "reactor_unit": "Designated reactor unit undergoing or affected by outage",
}

Finance and business

financial news and market commentary

{
    "company": "Named business or corporate organization",
    "financial_institution": "Named bank, insurer, or asset manager",
    "regulator": "Government body overseeing financial markets",
    "central_bank": "National or supranational monetary authority",
    "person": "Named individual mentioned in coverage",
    "executive_role": "Job title of corporate or policy officials",
}

corporate filings and earnings reports

{
    "company": "Named business entity filing or mentioned",
    "subsidiary": "Named company controlled by a parent",
    "executive": "Named senior officer or director",
    "job_title": "Corporate office or managerial position",
    "regulator": "Government body overseeing financial disclosures",
    "auditor": "Firm performing independent financial statement audits",
}

payroll and employee benefits

{
    "gross_pay_amount": "Total earnings stated before any taxes or deductions",
    "net_pay_amount": "Take-home earnings stated after all deductions withheld",
    "hourly_wage_rate": "Pay amount specified per single hour worked",
    "annual_salary_figure": "Fixed yearly compensation amount stated for a position",
    "employee_id_number": "Identifier code assigned to a worker in payroll",
    "benefit_plan_code": "Alphanumeric code designating a specific benefits plan",
}

real-estate listings

{
    "listing_headline": "Promotional title phrase advertising the property at top",
    "property_style": "Architectural or dwelling type of the property",
    "listing_agent": "Agent who represents the seller or landlord",
    "buyer_agent": "Agent who represents the purchaser or tenant",
    "brokerage_name": "Real estate firm handling the listing",
    "development_name": "Named subdivision, condo complex, or community",
}

e-commerce product catalogues

{
    "brand_name": "Manufacturer or marque under which item is sold",
    "manufacturer_name": "Company that physically produces the item, not marketer",
    "product_line": "Named series or collection within a brand",
    "model_number": "Manufacturer code identifying a specific product model",
    "list_price": "Original undiscounted price stated for the item",
    "sale_price": "Reduced current price offered to the buyer",
}

multinational corporations

{
    "person": "Named individual human not fitting finer person types",
    "organisation": "Named organized group not fitting finer organisation types",
    "location": "Named geographic place other than countries",
    "country": "Named sovereign nation or state",
    "event": "Named occurrence, happening, or organized gathering",
    "misc": "Any other named entity not covered elsewhere",
}

Engineering and technology

aviation maintenance records

{
    "aircraft_registration": "Tail number marking a specific airframe, like N123AB",
    "part_number": "Manufacturer catalog number identifying a part type",
    "serial_number": "Unique number identifying one individual part unit",
    "work_order_number": "Identifier of a maintenance work order or task card",
    "airworthiness_directive": "Reference number of a mandatory regulatory airworthiness directive",
    "service_bulletin": "Manufacturer-issued optional or recommended service bulletin reference",
}

semiconductor fabrication

{
    "process_node": "Technology generation named by feature size",
    "deposition_method": "Technique for depositing thin films onto wafers",
    "etch_method": "Technique for removing material from wafer surfaces",
    "lithography_tool_model": "Model designation of a lithography exposure system",
    "equipment_vendor_role": "Role of company supplying fab tools",
    "wafer_lot_id": "Identifier code for a batch of wafers",
}

bridge inspection reports

{
    "bridge_structure_id": "Official inventory number assigned to a bridge",
    "bridge_common_name": "Local or popular name of the bridge",
    "feature_crossed": "Waterway, road, or rail the bridge spans",
    "route_carried": "Highway or road carried over the bridge",
    "lead_inspector": "Inspector responsible for leading the inspection team",
    "certifying_engineer": "Engineer who reviews and signs off the report",
}

Culture, sport and everyday text

football match reports

{
    "home_club": "Club playing at its own stadium in the match",
    "away_club": "Club visiting the opponent's stadium for the match",
    "starting_manager": "Head coach named in charge for this match",
    "interim_caretaker": "Temporary coach covering after a manager's departure",
    "goal_scorer": "Player credited with putting the ball in net",
    "assist_provider": "Player who set up a goal with final pass",
}

association football history

{
    "person": "Named human not fitting a specific role",
    "organisation": "Named group or institution not football club",
    "location": "Named geographic place below country level",
    "country": "Named sovereign state or nation",
    "event": "Named occurrence not a football competition",
    "misc": "Any other named entity",
}

archaeology excavation reports

{
    "site_name": "Proper name of an excavated archaeological site",
    "trench_id": "Alphanumeric code designating an excavation trench",
    "context_number": "Numeric code for a single stratigraphic deposit or cut",
    "find_number": "Catalogue code assigned to an individual recovered artifact",
    "sample_number": "Code identifying a collected environmental or dating sample",
    "excavation_director": "Person leading the fieldwork and overall excavation",
}

museum collections and curation

{
    "accession_number": "Unique registry code assigned when object enters collection",
    "loan_agreement_number": "Reference code for a temporary incoming or outgoing loan",
    "storage_location_code": "Code marking shelf, rack, or room where object is stored",
    "gallery_name": "Proper name of a public exhibition room",
    "exhibition_title": "Official title of an actual mounted exhibition",
    "planned_exhibition": "Title of an exhibition proposed but not yet opened",
}

chess tournaments

{
    "tournament_series": "Recurring circuit or cycle containing multiple tournaments",
    "playing_hall": "Specific venue hall where games are played",
    "opening_name": "Named chess opening or variation played",
    "eco_code": "Encyclopedia of Chess Openings alphanumeric classification code",
    "fide_rating": "Elo rating number of a player",
    "performance_rating": "Rating achieved by results within one tournament",
}

hotel and hospitality operations

{
    "room_category": "Named class of guest room sold",
    "room_number": "Identifier assigned to a specific physical room",
    "reservation_code": "Confirmation identifier for a booking",
    "booked_rate_plan": "Named pricing plan applied to a reservation",
    "nightly_rate": "Quoted price charged per night",
    "ancillary_charge": "Extra fee beyond the room rate",
}

winemaking and viticulture

{
    "grape_variety": "Named cultivar of wine grape, such as Riesling",
    "rootstock_variety": "Named rootstock cultivar onto which vines are grafted",
    "appellation_name": "Legally defined wine region designation, such as Chablis",
    "vineyard_site": "Named individual vineyard, plot, or climat",
    "winery_estate": "Named wine producer, domaine, chateau, or cellar",
    "winemaker_role": "Person title for cellar production decision-maker",
}

voice assistant commands

{
    "wake_word": "Phrase that activates the assistant before a command",
    "smart_device_name": "User-assigned name of a specific connected device",
    "device_group_name": "Name referring to a collection of several devices",
    "room_label": "Named household room where action should occur",
    "alarm_time_setting": "Clock time at which an alarm should ring",
    "reminder_trigger_time": "Moment or condition when a reminder should fire",
}

used-car classified ads

{
    "vehicle_make_model": "Manufacturer brand and model name of advertised car",
    "trim_package": "Named trim level or factory option package",
    "vin_number": "17-character vehicle identification number string",
    "license_plate": "Registration plate characters displayed on the vehicle",
    "odometer_reading": "Total distance driven as shown on odometer",
    "annual_mileage_limit": "Permitted yearly distance under lease or warranty terms",
}

Rules for writing a schema

  1. Label names: lower-case snake_case, one to three words, specific to the domain (claim_number, attending_veterinarian, airworthiness_directive). Avoid bare generic names (person, date, number) unless that is really what you want; a role-specific name (listing_agent, buyer_agent) extracts better than a generic one with a long definition.
  2. Definitions: 5 to 8 words, a noun phrase that says what text span qualifies, not a sentence about the concept. "Identifier assigned to a specific submitted claim" works; "This label is used for claims" does not.
  3. Say what kind of span it is: start named-entity types with "Named ..." ("Named professional football team"), identifiers with "Identifier ...", "Alphanumeric code ...", "Tail number ...", amounts with "Sum ..." or "Quantity ... with units", descriptive types with the head noun first ("Policy wording capping the maximum amount payable").
  4. Separate siblings explicitly: when two labels are easy to confuse, let the definitions carry the distinction ("Agent who represents the seller or landlord" versus "Agent who represents the purchaser or tenant"; "Sum the claimant requests as compensation" versus "Sum the insurer actually pays on claim"). The model was trained with at least three such pairs per schema.
  5. Include absent labels freely: 15% of requested labels in training had no mention in the text. Asking for a type that is not present costs little precision and lets you use one fixed schema per document type.
  6. Mention boundaries follow the training policy: smallest complete mention; no leading articles or honorifics; keep defining modifiers, legal suffixes, full titles, and values with their units; exclude trailing clauses stating time, place or reason. Write definitions that agree with this ("Measured value with its unit", not "the number").
  7. Repeats are extracted every time they occur; negated, historical and hypothetical mentions are still extracted. If you want only affirmed mentions, filter afterwards.
  8. Schema size: 3 to 14 labels per request is the trained range; above about 15, split into two requests.
  9. Public-benchmark label sets: for CoNLL/OntoNotes-style types, short definitions in the same style still help ("Named individual human being", "Named organization or institution", "Named geographical place or area").
  10. Nested entities: pass overlap_policy="allow" and keep overlapping spans; for flat output drop overlaps by confidence. Nested recall is lower than flat recall zero-shot; fine-tuning on nested data closes most of the gap.

A one-line definition changes what gets extracted. product: "Named commercial product or service" and product: "Concrete merchandise offered, ordered or stocked" give different spans on the same text; pick the one that matches your annotation guideline.

Limits

  • English only. Flat and nested spans; no discontinuous entities.
  • Scores above use our protocol (definitions supplied, 192-word windows with 48 overlap, exact match); they are not directly comparable with published zero-shot numbers.
  • Weak spots: SciERC-style long method phrases, nested biomedical terms (GENIA), biodiversity taxa (BioDivNER), code identifiers (StackOverflow).

Как запустить

На своей GPU в ailist. Цена — по текущим предложениям провайдеров

GPU в ailist

Универсальный рантайм · gliner2

Нельзя запустить

Модели GLiNER требуют отдельного рантайма.

Класс архитектуры
GLiNER2
Ревизия весов
b671a58

0 моделей