Avifenesh/episodic-ingestion-modernbert-field-event-ranker-mixed-v2-perf-h4
episodic-ingestion-compiler / ModernBERT field-event ranker (mixed-mode v2, perf-H4)
Fine-tune of answerdotai/ModernBERT-base for the grouped multi-positive softmax ranker task with v2 semantic-reasoning labels.
What changed vs the v1 mixed-mode checkpoint
An audit of the v1 mixed-mode training data showed that 94% of eval pairs came from two fields (attempted_actions, observed_outcomes) whose labels were exact functions of event role on 97% of rows (attemptedactions=toolcall, observedoutcomes=toolresult). On these degenerate labels:
- E[MRR | random scores] ≈ 0.26 (random-permutation floor for multi-positive softmax)
- v1 perf-H4 MRR = 0.506 ≈ 1.97× random
- Architecture experiments (H3, H3a, H3b, H3b-span, etc.) could not break through because the ceiling was arithmetic, not informational.
v2 adds five semantic-reasoning fields whose labels require more than role:
Tautology rates on these new fields: 0–10%. Legacy fields kept for back-compat.
Training details
- Train rows: 1217 (mixed-mode v2: autonomous + prompt→action + customer-support + conversational)
- Train groups: 5882 (one per field × row pair)
- Eval rows: 220 (1900 groups, 21986 candidate pairs)
- Steps: 160 optimizer steps (
--accum-steps 8) - Optimizer: AdamW, lr 5.7e-5, warmup 30
- Precision: bf16 autocast
- Memory: gradient checkpointing (use_reentrant=False)
- Final train loss: 0.0854
- Peak VRAM: 4.08 GiB
- Hardware: RTX 5090 Laptop (Blackwell SM 12.0, 24 GiB)
Eval metrics (220-row mixed v2 eval, {'1': 0.2964509394572025, '2': 0.5173277661795407, '3': 0.6931106471816284, '5': 0.8881002087682672})
Per-field MRR (sorted by eval-pair count):
Lineage
Intended use
Ranker head of a multi-stage episodic-ingestion compiler. Input is a JSON-serialized (requested field, candidate event) record. Output is a scalar logit that, after grouped softmax over siblings in the same trace, estimates the probability that the candidate event supports the requested field.
Limitations
- Aggregate MRR (0.526) is a blend across fields of very different difficulty. Legacy fields (
attempted_actions,observed_outcomes) are still role-tautological on most rows; the model can hit ~0.48 on them without semantic reasoning. The signal of real learning is in the new fields: outcome_of_latest_attempt: MRR 0.763 (2.76× random)recent_error: MRR 0.743 (2.90× random)initiating_command: MRR 0.667 (2.42× random)- Not a standalone extractor. One head in a larger ingestion pipeline.
Related work
See docs/ranker-hypothesis-log-2026-05-08.md in the episodic-ingestion-compiler repo for the full experimental ladder.
