Does on-policy preference optimisation help after targeted fine-tuning?
Twice we added a round of preference optimisation after targeted fine-tuning. Once it made no measurable difference, and once it scored lower. Here is the evidence and an untested hypothesis for why.
Question
After fine-tuning Atom on targeted, automatically checked examples, does a further round of on-policy preference optimisation improve it?
Method
In on-policy preference optimisation, the model samples several answers to each training prompt, an automatic checker marks each one, and the model is trained to prefer the answers that passed over those that failed. We used a length-normalised variant of direct preference optimisation (DPO).
We ran it twice, each time starting from a fine-tuned checkpoint:
- Baseline
probe3, treatmentprobe3-dpo - Baseline
probe6, treatmentprobe6-dpo
We measured all four checkpoints on our internal development set: 36 automatically checked items, run through the live product three times for the probe3 pair and twice for the probe6 pair. The v1.2 release report describes that set. It also guides our training, so treat these results as indicative rather than held-out.
Results
| Checkpoint | Release | Runs | Checked turns passed | Pass rate |
|---|---|---|---|---|
| probe3 | Not released | 3 | 85 / 114 | 74.6% |
| probe3-dpo | Not released | 3 | 84 / 114 | 73.7% |
| probe6 | Not released | 2 | 65 / 76 | 85.5% |
| probe6-dpo | Not released | 2 | 59 / 76 | 77.6% |
Item by item, an item counting as better if it passed more of its runs:
probe3-dpoagainstprobe3: better on 4 items, worse on 6. Sign test p ≈ 0.75. No measurable difference.probe6-dpoagainstprobe6: better on 1 item, worse on 6. Sign test p ≈ 0.13.
The probe6 comparison points towards harm but does not establish it. The items probe6-dpo lost were two maths word problems, two arithmetic puzzles and two instruction-following prompts.
Conclusion
In the configuration we tested, preference optimisation did not improve Atom, and after probe6 it may have made it worse. We did not ship either DPO checkpoint.
Hypothesis, not yet tested
In the product, Atom answers many maths questions by writing a short program that the Python sandbox runs. The sampler that generated answers for preference training could not run programs. Our hypothesis: answers that took the program route would have reached the checker with no final number, been marked as failures and ended up on the rejected side of the pairs. The training would then have pushed Atom away from the program-aided maths that works in the product.
Four of the six items probe6-dpo lost involve arithmetic, which fits this explanation, but six items cannot separate it from other causes. Two experiments would test it:
- Leave maths and arithmetic prompts out of the preference data, and check whether the maths items still regress.
- Execute programs during sampling, so that program-aided answers are judged on their results.
Until one of these is run, the explanation stays a hypothesis.