CoolFace
Modelpublic

Avifenesh/episodic-ingestion-modernbert-field-event-ranker-mixed-v2-perf-h4

sourceHugging Faceapache-2.0updated 5mo agoView on Hugging Face
0likes10downloads
Model Card

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:

fieldkindrule
initiating_commandsingle-pickFirst tool_call in a multi-call chain
outcome_of_latest_attemptsingle-pickToolresult whose callid matches the LAST tool_call
recent_errorsingle-pickMost-recent tool_result with success=false
attempt_outcome_pairsarrayPaired toolresults (only when window has ≥1 orphan result — otherwise empty, so it can't collapse to role==toolresult)
action_causalityarrayTool_results whose content tokens recur in a LATER assistant turn

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})

metricvalue
overall MRR0.526
top-1 recall0.296
top-2 recall0.517
top-3 recall0.693
top-5 recall0.888
mean expected rank3.09

Per-field MRR (sorted by eval-pair count):

fieldnMRRtop-1
attempted_actions8460.4690.23
observed_outcomes8450.4860.24
initiating_command1990.6670.50
outcome_of_latest_attempt1810.7630.60
action_causality1410.4830.24
attempt_outcome_pairs530.5630.30
failed_attempts360.6150.42
next_actions320.5650.34
recent_error290.7430.59
customer_identity110.8180.73
transaction_reference50.4670.20
product_name41.0001.00
discarded_options20.3750.00
invalidation_hints20.7500.50
non_promotable_context20.3330.00
payment_or_warranty_detail20.3500.00
assistant_claims_to_verify10.5000.00
explicit_decisions11.0001.00
resolved_context10.2500.00
touched_files10.3330.00
unsupported_hypotheses10.3330.00

Lineage

checkpointlabelsoverall MRRtop-1notes
V2 (commit 87cb089)conversational only0.6780.4408-row adversarial eval, not comparable
mixed-mode stage-4v10.3230.130pre-perf stack
mixed-mode perf-H4v10.5060.260winning perf stack — but on role-tautological labels
mixed-mode v2 perf-H4 (this)v20.5260.296same perf stack, semantic-reasoning labels

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.