DPO Without Online Rollouts
마지막 수정:
DPO는 RLHF의 복잡한 online loop를 줄이려는 방법이다.
RLHF/PPO는 대략 이렇게 간다.
policy rollout -> reward model scoring -> policy gradient update
DPO는 이미 있는 preference pair를 사용한다.
(prompt, chosen, rejected) -> direct preference loss
무엇을 없애는가
DPO는 명시적인 reward model 학습과 online RL rollout loop를 없앤다.
없어지는 것:
separate reward model
PPO rollout/scoring loop
value model
on-policy generation infrastructure
대신 chosen response의 log probability를 rejected response보다 상대적으로 높이는 objective를 쓴다.
DPO의 직관
같은 prompt에 대해 두 답이 있다.
chosen: 사람이 선호한 답
rejected: 사람이 덜 선호한 답
DPO는 현재 policy가 reference policy 대비 chosen을 더 선호하도록 민다.
pi(chosen | prompt)를 상대적으로 올리고
pi(rejected | prompt)를 상대적으로 낮춘다
reference model은 여기서도 중요하다. policy가 preference pair를 과하게 외우거나 language quality를 망가뜨리지 않게 anchor 역할을 한다.
좋은 점과 한계
좋은 점:
구현이 PPO보다 단순하다
저장된 preference dataset으로 학습 가능하다
reward model serving/rollout infra가 필요 없다
한계:
현재 policy가 새로 탐색한 행동을 즉시 평가하지 않는다
preference dataset 품질과 분포에 강하게 묶인다
math/code처럼 verifier가 있는 문제에서 탐색하며 성능을 올리는 RLVR과는 역할이 다르다
어디에 놓아야 하나
DPO는 “RL 알고리즘”이라기보다 preference optimization으로 보는 편이 더 정확하다.
RLHF/PPO:
online rollout + reward signal
DPO:
offline preference pair + direct loss
GRPO/RLVR:
online rollout + verifier reward + group-relative advantage
그래서 DPO는 PPO의 완전한 대체라기보다, 더 단순한 preference tuning 선택지다.
참고 자료
- Rafael Rafailov et al., Direct Preference Optimization
- Hugging Face, TRL DPOTrainer
- 로컬 참고:
reference-books/rlhf-book/ch08-Direct-Alignment-Algorithms.md - 로컬 참고:
trl/README.md
확인
- DPO가 없애는 RLHF 구성요소는 무엇인가?
- DPO도 reference model이 필요한 이유는 무엇인가?
- DPO가 RLVR을 대체하기 어려운 경우는 언제인가?