narrative-multitask (v2)

One encoder, four heads, for English prose fiction. The export is consumed by the narrative-lens crate (ModelKind::NarrativeMultitask, profile narrative_multitask_v1), which runs it on the native ONNX Runtime and, through tract, in WebAssembly.

Head Output What it does
entity_logits [1, L, 9] BIO over the CoNLL label set proper person spans (only PER carries training signal)
nominal_logits [1, L, 3] O / B-NOM / I-NOM nominal person mentions ("her mother", "the old man")
coref_scores [m, m] antecedent score of mention j for mention i (j < i); 0 is the no-antecedent score
attribution_scores [q, m + 1] speaker score per quotation over the window's mentions; column 0 is "speaker not in window"

Inputs: input_ids, attention_mask ([1, L], L <= 512), mention_starts, mention_ends, quote_starts, quote_ends (int64 token positions, [CLS] at 0). Windows are 510 content tokens (windowTokens in manifest.json); the batch axis is fixed at 1. Weights are dynamically quantized to int8 (126 MB). tokenizer.adapted.json is the RoBERTa tokenizer with padding and truncation removed, as the crate requires; manifest.json carries the sha256 of both.

Training

Student: RoBERTa-base (FacebookAI/roberta-base), 3 epochs, lr 3e-5, 510-token windows on two shifted grids, learned token-distance features in both pair heads. Teacher: DeBERTa-v3-large trained first on the same documents (2 epochs, lr 2e-5); the student learns from gold labels plus the teacher's distributions, aligned through character offsets. Data: the LitBank development split (proper, nominal, and pronoun mentions, coreference clusters, quotations with speakers; CC BY 4.0), 24 novels of the Project Dialogism Novel Corpus (quotation speakers and alias mentions; CC BY 4.0) plus shuffled alias lists from its character tables, and 100 unlabelled public-domain novels from Project Gutenberg (29,214 windows) structured and soft-labelled by the teacher. The four PDNC novels whose LitBank excerpt is in the LitBank holdout split were excluded, as were all LitBank source novels from the Gutenberg selection. Script: scripts/multitask_train.py in the narrative-lens repository; provenance in training.json.

Measurements

Unseen authors (pooled over an author-disjoint 5-fold split over LitBank, PDNC, and the PDNC alias-list documents; each fold's teacher also structures ~29,200 windows from the 100 unlabelled Gutenberg novels):

student (pooled) teacher (range across folds)
Proper person spans, exact F1 0.822 0.633-0.906
Nominal mentions, exact F1 0.708 0.604-0.686
Antecedent accuracy, proper mentions (within window) 0.937 -
Antecedent accuracy, nominal mentions (within window) 0.859 -
Antecedent accuracy, pronouns (within window) 0.935 0.925-0.954
Quotation speaker accuracy 0.854 0.849-0.898

The student is close to or ahead of its own teacher on every head except speaker accuracy, where the teacher stays a few points ahead. The teacher's token-head scores vary more across folds because LitBank's entity and nominal labels are its only supervision, trained on one window grid for two epochs against the student's two grids with LitBank repeated four times. LitBank development split through the narrative-lens pipeline (the model trained on these works, so this shows the integration, not generalization): supplied-cast pronoun resolution F1 0.848 (precision 0.861), explicit-mode speaker F1 0.699 (precision 0.787), against 0.786 and 0.657 for v1.

Use with narrative-lens

hf download Writerslogic/narrative-multitask --revision v2 --local-dir narrative-multitask-v2
cargo run --release --features onnx --example evaluate_literary -- inputs.json --narrative-model narrative-multitask-v2

In code: onnx::set_model_bytes_verified(ModelKind::NarrativeMultitask, &model, &tokenizer_adapted, &manifest); continuity::coreference and craft::dialogue then use the model and keep their heuristics as the fallback.

Attribution

LitBank: David Bamman et al., CC BY 4.0. Project Dialogism Novel Corpus: Krishnapriya Vishnubhotla et al., CC BY 4.0. Base model RoBERTa (MIT); teacher DeBERTa-v3 (MIT). The weights are released under Apache-2.0.

Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. ๐Ÿ™‹ Ask for provider support

Model tree for Writerslogic/narrative-multitask

Quantized
(19)
this model