Fix image injection bug; add DeepSeek eval/mining scripts
collate_deepseek: pass zeros for local_crops so forward() takes the
global-only branch (145 features), not local+global (289 features).
The old code passed the real image for both slots, causing masked_scatter_
to inject local-crop features and discard the global view entirely.
Also: add eval_deepseek, mine_failures, infer_debug, train_hnm scripts;
add split tracking to data.py; save every 250 steps (keep 10); backfill
TensorBoard epoch + learning_rate scalars.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>