Instructions to use nishparadox/atomizer-gliner2.5-base-native with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- GLiNER
How to use nishparadox/atomizer-gliner2.5-base-native with GLiNER:
from gliner import GLiNER model = GLiNER.from_pretrained("nishparadox/atomizer-gliner2.5-base-native") text = "Cristiano Ronaldo dos Santos Aveiro was born on 5 February 1985 in Funchal, Madeira, Portugal." labels = ["person", "date", "location"] entities = model.predict_entities(text, labels) for entity in entities: print(entity["text"], "=>", entity["label"]) - Notebooks
- Google Colab
- Kaggle
atomizer-gliner2.5-base-native
atomizer on Fastino's GLiNER2.5 base (fastino/gliner2.5-base-v1) with its native heads: a
single-pass span atomizer with a critic. It splits a text into short, self-contained claims ("atoms") and scores each
one for verifiable (is it a checkable factual claim) and checkworthy (is it worth checking). 192M parameters,
~10 ms per text on a GPU, 60β70 ms on a laptop CPU.
The model does not generate text. It selects words from the input, replaces references ("She" β "Marie Curie") with earlier spans or keeps them as written, and adds closed-class glue words ("is", "the", "'s"). An atom cannot contain a name or number that is not in the input.
One repo per architecture. The atomizer models live in one Hugging Face repo per backbone and head design, so every tag of a repo loads the same way and has the same size and speed. Each repo has its own version numbers:
| Repo | Backbone | Heads |
|---|---|---|
atomizer-gliner-small |
GLiNER small v2.5 (163M) | standard; the releases (main) |
atomizer-gliner-large |
GLiNER large v2.5 | standard |
atomizer-gliner2.5-base |
Fastino GLiNER2.5 base | standard, no BiLSTM |
atomizer-gliner2.5-base-native (this repo) |
Fastino GLiNER2.5 base | GLiNER2.5's own pretrained heads |
atomizer-gliner2.5-base-xhead |
Fastino GLiNER2.5 base | head-interaction block |
Status: research models.
mainis the latest version (v0.2); every version is a tag. The model recommended for use isatomizer-gliner-smallv0.6: trained on the same data, within noise of this one, and lighter.
Model
The encoder of Fastino's GLiNER2.5 base (DeBERTa-v3-base, 12 layers; Apache-2.0) goes straight into four heads, two of them from GLiNER2.5 itself:
| Head | Predicts | From GLiNER2.5 |
|---|---|---|
| anchor | per word: does an atom start here | matched against an [E] claim query, initialised from GLiNER2.5's own encoding of that schema token |
| pair | per (atom, word): KEEP / SUB / DROP, and glue after the word | β |
| antecedent | per reference: which earlier span it means, or none (keep the reference as written) | GLiNER2.5's pretrained relation scorer (a port of the gliner2 package's SparseRelationScorer), with a refers_to query |
| critic | per atom: verifiable, checkworthy |
atom words matched against [L] verifiable / [L] checkworthy queries |
GLiNER2.5 reads its queries from a schema prompt in the input; atomizer's task never changes, so the queries are computed once from GLiNER2.5's encoding of the schema and then learned, and texts go in without a prompt. Assembly from the predictions is deterministic; texts longer than 1,024 tokens are atomized in sentence windows with read-only context. Details: ARCHITECTURE.md.
Versions
Each tag is one run from fastino/gliner2.5-base-v1 on all the training data (3 epochs, batch 32, 1Γ A100; the last
step is published). Load a tag with Atomizer.load("nishparadox/atomizer-gliner2.5-base-native", revision="<tag>").
| Tag | Training data | W&B run | Notes |
|---|---|---|---|
v0.2 |
the v0.6 data (the same as small v0.6): Propositionizer, ClaimBuster, CheckThat! 2024, synthetic v0.4, Decontextualization, Factcheck-Bench, WiCE, FActScore, chat templates; 9,690 steps |
native-v07 |
the fewest wrong references of that round's candidates (5.8%) |
v0.1 |
the v0.5 data: the same without WiCE, FActScore and synthetic v0.4; 9,147 steps | gliner25-native |
the best model on the old test suite (overall 0.788) |
Until 2026-10-15 these two were tags v0.7-rc2 and v0.6-rc3 on atomizer-gliner-small's dev branch; the files
are the same (model.pt sha256 6d5889e6β¦ and f7fe213eβ¦).
A100 runs of the test suite (test splits only; soft F1 unless stated; resolved / wrong on Decontextualization; the
v0.7 suite adds WiCE and FActScore and a larger synthetic test, so the two suites are not comparable with each other):
| Tag | suite | synthetic | Factcheck-Bench | Decontext. | resolved | wrong β | Propositionizer | PropSegmEnt | CheckThat! F1 / AUC | WiCE soft / exact | FActScore soft / exact |
|---|---|---|---|---|---|---|---|---|---|---|---|
v0.2 |
v0.7 | 0.899 | 0.766 | 0.577 | 0.728 | 0.058 | 0.738 | 0.779 | 0.856 / 0.977 | 0.813 / 0.318 | 0.706 / 0.084 |
v0.1 |
v0.7 | 0.906 | 0.758 | 0.597 | 0.728 | 0.067 | 0.737 | 0.766 | 0.867 / 0.976 | 0.795 / 0.232 | 0.603 / 0.014 |
v0.1 |
v0.5 | 0.918 | 0.758 | 0.597 | 0.728 | 0.067 | 0.737 | 0.766 | 0.867 / 0.976 | β | β |
Paired bootstraps (2,000 resamples over texts): v0.2 β v0.1 wins on FActScore +0.102, WiCE exact +0.087 /
soft +0.017 and PropSegmEnt +0.012, loses on Decontextualization β0.020 and synthetic soft β0.007. v0.2 vs the
small v0.6 (163M, the same data): no significant difference, so the small model is the proposed release. All
numbers and the other pairs: EVALS.md; the runs:
EXPERIMENTS.md, runs 10 and 12.
Usage
The loading code is the atomizer package at NISH1001/atomizer (private for
now, access on request). This architecture needs code β₯ v0.2.0; v0.3.0 is current.
uv add "atomizer @ git+ssh://git@github.com/NISH1001/atomizer@v0.3.0"
from atomizer import Atomizer
atomizer = Atomizer.load("nishparadox/atomizer-gliner2.5-base-native", revision="v0.2")
for atom in atomizer.atomize("Tesla was founded in 2003. It delivered about 1.8 million vehicles in 2023."):
print(atom.text, round(atom.verifiable, 2), round(atom.checkworthy, 2))
atomizer.atomize(text, min_verifiable=0.5) # only checkable facts
print(atomizer.explain(text).show()) # every head's predictions
Limitations
Those of the small model (its card), plus: ~1.6Γ slower
than the small model on a CPU (12 encoder layers to its 6); v0.1 collapses on heavily repetitive text (100+
near-identical sentences); v0.2 resolves "I" and "my" to a self-given name, but writes the
possessive ("Paradox's lab") less reliably than the small v0.6.
License
The weights are CC-BY-4.0; the atomizer code is MIT. Fine-tuned from Fastino's
gliner2.5-base-v1 (Apache-2.0); the relation scorer is a port of
the gliner2 package's SparseRelationScorer (Apache-2.0). The training data has its own terms (Propositionizer
labels were written by GPT-4; ClaimBuster is CC-BY-SA 4.0; CheckThat! 2024 under the CLEF lab's terms; WiCE ODC-BY;
FActScore's data terms are not stated and it is not redistributed; atomizer-chat-synthetic was written by Claude).
Model tree for nishparadox/atomizer-gliner2.5-base-native
Base model
fastino/gliner2.5-base-v1