The reward model trained a scorer, then reinforcement learning used it to nudge the model. DPO skips both. It takes the same chosen-vs-rejected pairs and nudges the model straight at them — no separate scorer, no RL loop.
DPO starts from the exact same data the reward model used: a prompt with two answers, one you prefer and one you don't.
Training is one move, repeated: make the chosen answer more likely and the rejected answer less likely — directly on the model's own probabilities.
RLHF and DPO both aim the model at human preferences. They differ in how many pieces it takes to get there.
Your model is trained and aligned — now it has to run fast. Next, the KV cache: the trick that stops a model from re-reading the whole conversation on every single new token.