status: derive the pair->category map from the pack instead of hardcoding a window range

trainer:2343 picks pair = ftpo_train[(epoch * len(sft_train) + idx) % len(ftpo_train)], so each epoch shifts every preference pair by len(sft_train) % len(ftpo_train) == 32 windows. The census hardcoded epoch 1's 6C range and so attributed epoch 2's 6A tail to 6C, reading margins of +40..+50 that a per-token 6C mean cannot produce. Compute the map from ftpo_dpo_pairs.jsonl instead, report per category, and measure near-tie runs within 6A/6B only so single-token logits are never pooled with per-token means.

156bd084 parent 7d816dd5 +39 −18
browse files