Instructions to use whr778/gliner2-base-v1-casualty with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- GLiNER2
How to use whr778/gliner2-base-v1-casualty with GLiNER2:
from gliner2 import GLiNER2 model = GLiNER2.from_pretrained("whr778/gliner2-base-v1-casualty") # Extract entities text = "Apple CEO Tim Cook announced iPhone 15 in Cupertino yesterday." result = extractor.extract_entities(text, ["company", "person", "product", "location"]) print(result) - Notebooks
- Google Colab
- Kaggle
gliner2-base-v1-casualty
A GLiNER2 structure-extraction model fine-tuned from
fastino/gliner2-base-v1 to pull casualty
figures from disaster news text โ binding each number to its role (dead / injured /
missing) amid distractor numbers (dates, magnitudes, displacement counts). It is the
extraction front-end for a document-stream event tracker that estimates a disaster's
evolving toll over time; the task it solves is number-to-role binding in multi-fact prose,
which a surface parser cannot.
Usage
from gliner2 import GLiNER2, Schema
ex = GLiNER2.from_pretrained("whr778/gliner2-base-v1-casualty")
schema = (Schema().structure("casualty_report")
.field("dead", dtype="str", description="number of people killed or confirmed dead")
.field("injured", dtype="str", description="number of people injured or hurt")
.field("missing", dtype="str", description="number of people missing or unaccounted for"))
ex.extract(
"Officials say at least 40 were killed and about 300 injured after the "
"magnitude-6.8 quake; roughly 2,000 people have been displaced.",
schema,
)
# {"casualty_report": [{"dead": "40", "injured": "300", "missing": null}]}
It binds dead=40 and injured=300 (not the magnitude 6.8 or the 2,000 displaced), and
correctly returns null for the unmentioned missing role.
Held-out evaluation
On a held-out test set of synthetic disaster news (12 streams, 1,044 reports, never seen in training), vs the zero-shot base model:
| metric | zero-shot base | this model |
|---|---|---|
| role precision | 0.627 | 0.914 |
| role recall | 0.906 | 0.965 |
| value exact (number binding) | 0.991 | 1.000 |
Fed end-to-end into the downstream tracker, normalized trajectory RMSE improved from 0.291 to
0.165 (clean-observation ceiling 0.115), and the hardest role (missing) from 0.458 to
0.122.
Training data
Fine-tuned on 29,198 casualty_report structure examples (val 1,303 / test 1,038) built
from synthetic disaster-news streams realized with claude-sonnet-5: each report snippet
states several roles' exact figures with realistic hedging ("at least", "feared", "hundreds")
plus distractor numbers (dates, magnitudes, displacement counts). Deterministic generator; no
real personal data. 8 epochs, batch 16ร2, fp16, ~35 min on 1ร A100.
Limitations
- Synthetic, same-distribution. Trained and evaluated on sonnet-5-realized text. Generalization to real disaster reporting is the intended next test and is not yet validated.
- The
sourcefield is unreliable. The model favors numeric spans, so asourcefield is often filled with a number rather than the reporting entity โ usedead/injured/missing; treatsourceas best-effort. - Hedges/qualifiers follow the synthetic generator's conventions.
License
Derivative of fastino/gliner2-base-v1; training data is synthetic (generated for this
project). Effective license: unverified โ review the base-model terms before redistribution
or commercial use.
- Downloads last month
- 57
Model tree for whr778/gliner2-base-v1-casualty
Base model
fastino/gliner2-base-v1