Instructions to use nishparadox/atomizer-gliner2.5-base with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- GLiNER
How to use nishparadox/atomizer-gliner2.5-base with GLiNER:
from gliner import GLiNER model = GLiNER.from_pretrained("nishparadox/atomizer-gliner2.5-base") 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
atomizer on Fastino's GLiNER2.5 base (fastino/gliner2.5-base-v1) with atomizer's standard
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). 202M
parameters.
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 (this repo) |
Fastino GLiNER2.5 base | standard, no BiLSTM |
atomizer-gliner2.5-base-native |
Fastino GLiNER2.5 base | GLiNER2.5's own pretrained heads |
atomizer-gliner2.5-base-xhead |
Fastino GLiNER2.5 base | head-interaction block |
Status: a research ablation. This repo holds the plain-heads baseline of the Fastino line: one version,
v0.1(=main). The native and xhead repos build on it; the model recommended for use isatomizer-gliner-small.
Model
The encoder of Fastino's GLiNER2.5 base (DeBERTa-v3-base, 12 layers; Apache-2.0) goes straight into atomizer's four heads, with no BiLSTM and no span layer (GLiNER2.5 has neither; GLiNER v1 backbones bring theirs pretrained):
| Head | Predicts |
|---|---|
| anchor | per word: does an atom start here |
| 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) |
| critic | per atom: verifiable, checkworthy |
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
Load a tag with Atomizer.load("nishparadox/atomizer-gliner2.5-base", revision="<tag>").
| Tag | Training | W&B run |
|---|---|---|
v0.1 |
one run from fastino/gliner2.5-base-v1 on the v0.5 data (Propositionizer, ClaimBuster, CheckThat! 2024, synthetic v0.3, Decontextualization, Factcheck-Bench, chat templates); 3 epochs, 9,147 steps, batch 32, 1× A100; the last step |
gliner25-base-nolstm |
Until 2026-10-15 it was tag v0.6-rc2 on atomizer-gliner-small's dev branch; the files are the same (model.pt
sha256 fbbe075f…).
A100 run of the v0.5 test suite (test splits only; soft F1 unless stated; resolved / wrong on Decontextualization),
with the small release and the native model for comparison:
| Model | synthetic | Factcheck-Bench | Decontext. | resolved | wrong ↓ | Propositionizer | PropSegmEnt | CheckThat! F1 / AUC |
|---|---|---|---|---|---|---|---|---|
v0.1 (this repo) |
0.912 | 0.758 | 0.579 | 0.741 | 0.076 | 0.738 | 0.757 | 0.872 / 0.979 |
small v0.5 (163M) |
0.905 | 0.753 | 0.551 | 0.703 | 0.073 | 0.742 | 0.757 | 0.865 / 0.978 |
native v0.1 |
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): this model − small v0.5: synthetic exact +0.032, soft +0.006,
Decontextualization +0.027, no significant loss. Native v0.1 − this model: synthetic soft +0.007,
Decontextualization +0.018, PropSegmEnt +0.010, no loss, which is why the native heads were kept and this line was
not trained on the v0.7 data. The same encoder with a randomly initialised BiLSTM (W&B gliner25-base-full) tied with
this model and was not published. All numbers: EVALS.md;
the runs: EXPERIMENTS.md, runs 8 and 9.
Usage
The loading code is the atomizer package at NISH1001/atomizer (private for
now, access on request). This model needs code ≥ v0.1.1; 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", revision="v0.1")
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))
Limitations
Those of the small model (its card), and ~1.6× slower than it on a CPU (12 encoder layers to its 6). It keeps first person as written ("I am Paradox. I won …" keeps "I").
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 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; atomizer-chat-synthetic was written by Claude).
Model tree for nishparadox/atomizer-gliner2.5-base
Base model
fastino/gliner2.5-base-v1