Skip to page content
SAVRN
Search Plan a project

Open-weight model · Token classification

GLiNER25-Multi-FP16-CoreAI

by Sachin Desai smdesai/GLiNER25-Multi-FP16-CoreAI

GLiNER25-Multi-FP16-CoreAI is an open-weight model for token classification from Sachin Desai, released under Apache License 2.0. Its published files total 592.4 MB.

Core AI port of fastino/gliner2.5-multi-v1, the multilingual GLiNER2.5 boundary extractor. It is built on mDeBERTa-v3-base and has 287M parameters. It keeps the upstream decision behavior. All credit for the model goes to Fastino and the GLiNER2 authors.

Parameters—
Context—
Weights592.4 MB
Licenseapache-2.0
AccessOpen weights
Monthly Downloads—

Model Card

By Sachin Desai, published under apache-2.0, revision 24d17ed35f05.

Core AI port of fastino/gliner2.5-multi-v1, the multilingual GLiNER2.5 boundary extractor. It is built on mDeBERTa-v3-base and has 287M parameters. It keeps the upstream decision behavior. All credit for the model goes to Fastino and the GLiNER2 authors. The original model card is included as - Checkpoint fastino/gliner2.5-multi-v1 at revision 12fc40399dae672ce840c5e3c50a92340bff3c8c. 55656fb (for preprocessing and decoding). - coreai-torch 0.4.3, coreai-core 1.0.0b3, Torch 2.11.0. - Learned weights are unchanged (FP16). The export only rewrites graph structure: - Constant DeBERTa relative-position buckets. The float log-bucket path produces wrong indices inside converted graphs. - A…

Read Sachin Desai's full model card

GLiNER2.5 Multi — Core AI (iOS 27+ / macOS 27+)

Core AI port of fastino/gliner2.5-multi-v1, the multilingual GLiNER2.5 boundary extractor. It is built on mDeBERTa-v3-base and has 287M parameters. One on-device model covers:

  • Entities
  • Text classification (single- and multi-label)
  • Relations
  • Structured records
  • Span attributes

It keeps the upstream decision behavior. All credit for the model goes to Fastino and the GLiNER2 authors. The original model card is included as model-card.md.

Files

File Purpose
GLiNER25-Multi-FP16.aimodel/ Core AI source asset, FP16 (550 MB). Twelve functions share one set of weights
tokenizer.json, tokenizer_config.json Checkpoint tokenizer: SentencePiece Unigram, 250k vocabulary, GLiNER2 special tokens
constants.json Weights and settings used by the decoder: RecordHead.null_embed and the checkpoint's boundary_head settings
functions.json Input and output names, shapes and dtypes of every function
model-card.md Upstream model card (fastino/gliner2.5-multi-v1, Apache-2.0)
LICENSE Apache License 2.0

Source:

  • Checkpoint fastino/gliner2.5-multi-v1 at revision 12fc40399dae672ce840c5e3c50a92340bff3c8c.
  • Upstream code: fastino-ai/GLiNER2 at commit 55656fb (for preprocessing and decoding).

Export:

  • coreai-torch 0.4.3, coreai-core 1.0.0b3, Torch 2.11.0.
  • Learned weights are unchanged (FP16). The export only rewrites graph structure:
  • Constant DeBERTa relative-position buckets. The float log-bucket path produces wrong indices inside converted graphs.
  • A gather-free relative shift.
  • Fused SDPA.
  • Prefix-sum span features computed as span-membership matmuls.

How the model is split

GLiNER2.5's boundary architecture has data-dependent steps between its neural parts, so the model is exported as four stages. The host runs the logic between them. For each sequence bucket T ∈ {128, 256, 512} tokens, the functions are a_t<T>, b_t<T>, c_t<T> and d_t<T>:

Function Computes Main inputs → outputs
a_t<T> mDeBERTa encoder, word and marker gathers, classifier, boundary encoder, start/end/inside marginals, candidate-pool projections, null and count heads, record field projection input_ids, attention_mask, word_idx/word_mask, query_idx/query_mask, cls_idx → states and logits
b_t<T> Shared-pool pair scorer and record-head projections stage-A outputs + 192 pool spans (pool_idx, pool_mask, pool_prior) → pair_logits [1,192,32], record projections
c_t<T> Sparse relation scorer text_states + up to 8 relation types and 512 pairs → relation_logits
d_t<T> Explicit-span scorer, used by entity attributes and choices= fields stage-A outputs + up to 64 spans → explicit_logits [1,32,64]

Stage-A outputs are passed unchanged into B, C and D. Exact shapes are in functions.json.

Static capacity per call: T tokens, 32 extractive queries (entity types, structure fields, relation roles), 32 classification labels in total, 8 relation types.

Host responsibilities:

  • Tokenization and GLiNER2 prompt layout.
  • Candidate-pool selection: top-32 start and end boundaries, per-query quota, deduplicated to 192.
  • Relation pair generation.
  • Every decoding step (thresholds, overlap resolution, records, attributes, formatting).

These must follow upstream exactly. A Swift implementation of all of them was validated against upstream: tokenizer, preprocessing, decoding and long-document chunking. It lives in the companion repository.

Required: GPU placement

import CoreAI
let model = try await AIModel(
  contentsOf: url, options: SpecializationOptions(preferredComputeUnitKind: .gpu))

This graph family was validated with GPU placement. On iOS 27.2, default placement can build Neural Engine regions that abort.

Validation (iPhone 17 Pro, iOS 27.2, GPU)

The reference is upstream GLiNER2 in PyTorch FP32, run through its public extraction API.

Check Result
Stage outputs vs FP32 every output ≥ 62 dB PSNR
Determinism identical outputs across repeated runs
54-case corpus, full Swift pipeline 54/54 pass: 53 exact, 1 differs only on FP32 boundary items; max confidence error 0.0026
11 long documents (786–3,755 words, 7 languages, 87 chunks) 11/11 pass: 8 exact, 3 differ only on FP32 boundary items
Mac GPU (same asset) 54/54 and 11/11 exact

Corpus coverage:

  • Tasks: entities, descriptions, thresholds, regex validators, overlap policies, single- and multi-label classification, relations, legacy structures, natural/latent/anchorless records, exclusive fields, choice fields, entity attributes, joint tasks.
  • Ten languages.
  • All three buckets.

Boundary items: the iPhone GPU's FP16 kernels differ slightly from the Mac's, by up to about 0.03 on boundary logits. Items that sit at a decision boundary can therefore flip on device. "FP32 boundary items" were precomputed at FP32 before any device run:

  • Items whose confidence is within 0.02 of their threshold.
  • Items that change under N(0, 0.01) noise on the stage outputs, which covers the candidate-pool cut and record assignment.

Performance, end to end (preprocessing + model + decoding, steady state):

Input Median
≤128 tokens 13.4 ms
≤256 tokens 19.6 ms
≤512 tokens 39.3 ms
18-chunk long document 684 ms

Memory: process footprint is about 200 MB after load and about 310 MB after the first run of all 12 functions. The weights are memory-mapped.

Load time: about 4 s the first time (on-device specialization), about 1 s from the system cache.

Limitations

  • A single call handles up to 512 tokens. Longer texts need chunking. Upstream extract_long splits into overlapping word windows; with this model, windows of 256 words and 48 words of overlap, shrunk to fit 512 tokens, work well.
  • Constrained classification (Classifier) and JointIE from the upstream card are separate decoders and are not covered by this port.
  • Weight compression was evaluated and not adopted:
  • int8 word embeddings (384 MB) kept every decision, but lowered on-device PSNR to 53 dB and raised peak memory, because the GPU keeps a dequantized copy.
  • 4-bit encoder weights changed many decisions.
  • FP16 is the release configuration.

License and attribution

  • Weights: from fastino/gliner2.5-multi-v1 by Fastino, released under the Apache License 2.0. This repository redistributes them converted to Core AI format, unchanged in value apart from the FP16 cast, under the same license (LICENSE).
  • Tokenizer: derived from microsoft/mdeberta-v3-base (MIT), as shipped with the upstream checkpoint.
  • Citation: see the upstream card for the GLiNER2 paper (arXiv:2507.18546).

SHA-256

eaed8f3c9cd893edf2715413d26ab567a747b43c241a32f4757d614e821339ec  GLiNER25-Multi-FP16.aimodel/main.mlirb
c62446df87ae18ec98b133f8f84fc449a07cc89bbf8ef192a4cb5f9c53777a7a  tokenizer.json
1ea719a39e3b712b99a5d902feffc1a19114861305d8ac152f5a995579e39812  constants.json
90494553f42297f0f5a4b07c64cfb3bd43d1ff6f45525ded4a7906bf1ec1cc5a  functions.json

Identity and Version

Repository
smdesai/GLiNER25-Multi-FP16-CoreAI
Publisher
Sachin Desai
Task
Token classification
Modality
Text
Library
gliner2
Parameters
Not stated by the source
Languages
en
Revision
24d17ed35f056efe2561a946774f91b7f802873f
First published
2026-09-27
Last updated
2026-09-27

Files and Weights

11 files, 592.4 MB in total.

Configuration3 files · 13.4 KB
Tokenizer2 files · 16.0 MB
Documentation3 files · 41.2 KB
Other2 files · 576.3 MB
Repository1 file · 1.6 KB
Every file
FileTypeSizeSHA-256
GLiNER25-Multi-FP16.aimodel/metadata.jsonConfiguration401 B —
constants.jsonConfiguration3.8 KB —
functions.jsonConfiguration9.2 KB —
LICENSEDocumentation11.4 KB —
README.mdDocumentation7.8 KB —
model-card.mdDocumentation22.0 KB —
GLiNER25-Multi-FP16.aimodel/main.hashOther32 B —
GLiNER25-Multi-FP16.aimodel/main.mlirbOther576.3 MB eaed8f3c9cd8
.gitattributesRepository1.6 KB —
tokenizer.jsonTokenizer16.0 MB c62446df87ae
tokenizer_config.jsonTokenizer645 B —

License and Download

License
apache-2.0
Access
Open weights, no gate
Download from Sachin Desai

Released by Sachin Desai through its official repository on Hugging Face. Read the license.

Built From

Questions About GLiNER25-Multi-FP16-CoreAI

Can I use GLiNER25-Multi-FP16-CoreAI commercially?

Yes. GLiNER25-Multi-FP16-CoreAI is released under Apache License 2.0. The Apache License 2.0 is a permissive open-source license. It permits commercial use, modification and redistribution. It requires keeping the license and copyright notices and any NOTICE file, stating significant changes, and it includes an express patent grant from contributors.

Similar Models

Model · Token classification

stanford-deidentifier-base

Stanford AIMI

Stanford de-identifier was trained on a variety of radiology and biomedical documents with the goal of automatising the de-identification process while reaching satisfactory accuracy for use in production. Manuscript in-proceedings. These model weights are the recommended ones among all available deidentifier weights. This work was supported in part by the Medical Imaging and Data Resource Center (MIDRC), which is funded by the National Institute of Biomedical Imaging and Bioengineering (NIBIB) of the National Institutes of Health under contract 75N92020D00021 and through The Advanced Research Projects Agency for Health (ARPA-H)

Open weights mit 512 tokens transformers

Model · Token classification

bert-portuguese-ner

Luís Filipe Cunha

This model is a fine-tuned version of neuralmind/bert-base-portuguese-cased It achieves the following results on the evaluation set: This model was fine-tunned on token classification task (NER) on Portuguese archival documents. The annotated labels are: Date, Profession, Person, Place, Organization All the training and evaluation data is available at: http://ner.epl.di.uminho.pt/ The following hyperparameters were used during training: - learningrate: 2e-05 - trainbatchsize: 16 - evalbatchsize: 16 - lrschedulertype: linear - numepochs: 4 - Transformers 4.10.0.dev0 - Pytorch 1.9.0+cu111 - Datasets 1.10.2 - Tokenizers 0.10.3

Open weights mit 512 tokens transformers

Model · Token classification

privacy-filter-nemotron-GGUF

LocalAI-io

GGUF conversion of OpenMed/privacy-filter-nemotron, a fine-grained PII token-classification model — a fine-tune of openai/privacy-filter on the nvidia/Nemotron-PII dataset. It labels every token with a BIOES tag over 55 PII categories (221 classes) in a single forward pass, then decodes coherent spans with a constrained Viterbi procedure — so it can be served locally with no Python as the encoder/NER tier of a PII redactor. Where the base openai/privacy-filter covers 8 coarse categories, this fine-tune trades multilingual breadth for category depth: 55 fine-grained English categories (first/last name, government IDs, financial, healthcare, vehicle, digital, …). For the full model…

Open weights apache-2.0 gguf

Model · Token classification

punctuate-all

KREDOR

This is based on Oliver Guhr's work. The difference is that it is a finetuned xlm-roberta-base instead of an xlm-roberta-large and on twelve languages instead of four. The languages are: English, German, French, Spanish, Bulgarian, Italian, Polish, Dutch, Czech, Portugese, Slovak, Slovenian. precision recall f1-score support accuracy 0.98 84425503 macro avg 0.83 0.74 0.77 84425503 weighted avg 0.98 0.98 0.98 84425503

Open weights mit 514 tokens transformers

Model · Token classification

privacy-filter-multilingual-GGUF

LocalAI-io

GGUF conversion of OpenMed/privacy-filter-multilingual, a multilingual PII token-classification model (a fine-tune of openai/privacy-filter). It labels every token with a BIOES tag over 54 PII categories (217 classes) across 16 languages, so it can be served locally with no Python as the encoder/NER tier of a PII redactor. For the full model description, label space, evaluation, limitations, and citations, see the source model card — this card only covers the GGUF packaging and how to run it. This GGUF uses a custom architecture, openai-privacy-filter, that is not (yet) part of 1. privacy-filter.cpp (recommended) — a small standalone GGML engine for exactly this model family, on stock…

Open weights apache-2.0 gguf

Model · Token classification

unbiased-toxic-roberta-onnx

Protect AI

This model is a conversion of unitary/unbiased-toxic-roberta to ONNX format using the Optimum library. Trained models & code to predict toxic comments on 3 Jigsaw challenges: Toxic comment classification, Unintended Bias in Toxic comments, Multilingual toxic comment classification. Built by Laura Hanu at Unitary. The huggingface models currently give different results to the detoxify library (see issue here). All challenges have a toxicity label. The toxicity labels represent the aggregate ratings of up to 10 annotators according the following schema: - Very Toxic (a very hateful, aggressive, or disrespectful comment that is very likely to make you leave a discussion or give up on sharing…

Open weights apache-2.0 514 tokens transformers