DPO fine-tune of jspaulsen/halluci-mate-v1b
on Stockfish-vs-model preference pairs. Same Qwen3-0.6B architecture, same custom
~1,800-token UCI tokenizer; the policy was nudged to prefer the moves Stockfish
endorses over the moves v1b actually played in losing positions.
--require-consequential drops moves played from positions already evaluated
as lost (eval-before < -800 cp). Blunders in already-lost endgames teach the
model to chase swindle lines that don't generalize.
--exclude-repetition drops moves that recur within the same game.
Stockfish flags forced-repetition draws as blunders even when repetition is
the only drawing line.
The v1b numbers come from 10,000 games (the same run that produced the DPO
dataset), so its CIs are much tighter than v1c's 300-game eval. Differences in
score_rate are within the n=300 noise band; the per-move quality improvements
(tactical_oversight, legality) are above noise and consistent with what DPO
was trained to do.