Views
No views yet
DPOTrainer.| epoch | eval_loss | eval_rewards/accuracies | eval_rewards/margins |
|---|---|---|---|
| 0.00 (baseline) | 0.6914 | 0.0000 * | 0.0000 |
| 0.23 | 0.7172 | 0.3187 | −0.0073 |
| 0.46 | 0.6926 | 0.3875 | +0.0746 |
| 0.69 | 0.6925 | 0.4562 | +0.0866 |
| 0.92 | 0.6949 | 0.4313 | +0.0877 |
| 1.00 (final) | 0.6680 | 0.4375 | +0.1310 |
chosen > rejected comparison is False for every pair. That 0 is
a degenerate tie, not a meaningful score.train_loss 0.666.rewards/accuracies finished at 0.4375, below the 0.5 chance line — a
positive mean margin combined with a sub-chance win rate means the average is
carried by a minority of strongly-separated pairs while most pairs remain
slightly mis-ranked.learning_rate=5e-7. Treat this as a checkpoint of record, not a model that
reliably beats its base at preference ranking.trl.DPOTrainer), β = 0.1 (default)messages + chosen/rejected),
split 90/10 → 1,386 train / 155 eval (seed 42). Pairs are pre-filtered to fit
whole within 8,192 tokens; median length ≈ 7.7k tokens.per_device_train_batch_size=1 × gradient_accumulation_steps=4
× 8 GPUs = effective batch 32 → 44 optimizer steps for 1 epoch1PYTORCH_CUDA_ALLOC_CONF=expandable_segments:True \
2CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7 accelerate launch \
3 --config_file examples/accelerate_configs/deepspeed_zero3.yaml \
4 dpo_prm_pairs.pygradient_accumulation_steps to restore ~87 steps) or a higher learning rate
is the obvious next experiment.