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 source field is unreliable. The model favors numeric spans, so a source field is often filled with a number rather than the reporting entity โ€” use dead/injured/ missing; treat source as 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
Safetensors
Model size
0.2B params
Tensor type
F32
ยท
Inference Providers NEW
This model isn't deployed by any Inference Provider. ๐Ÿ™‹ Ask for provider support

Model tree for whr778/gliner2-base-v1-casualty

Finetuned
(12)
this model