DPO Without Online Rollouts

마지막 수정:

dpopreference-optimizationoffline

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 선택지다.

참고 자료

확인

  • DPO가 없애는 RLHF 구성요소는 무엇인가?
  • DPO도 reference model이 필요한 이유는 무엇인가?
  • DPO가 RLVR을 대체하기 어려운 경우는 언제인가?