[23’ NIPS] Direct Preference Optimization: Your Language Model is Secretly a Reward Model

Date:     Updated:

카테고리:

태그:

image


🔍 Abstract

Stanford에서 낸 2023년 NeurIPS Oral 받은 논문이다. 이 논문에서는 DPO(Direct Preference Optimization)이라는 개념을 제시한다. 기존의 PPO 방식의 RLHF는 복잡하고 학습이 불안정한 부분이 있었는데, DPO는 simple classification loss만 있으면 최적화가 가능하기에 더 안정적이고 효과적이었다. 이제 그 이론적 배경과 결과를 살펴보자.


1. Review: RLHF Pipeline

1.1. Reward Modelling Phase

DPO에 대해 알아보기 전에, PPO를 사용한 RLHF pipeline을 다시 한 번 살펴보자. 일단 SFT(Supervised Fine-Tuning)을 통해 얻은 $\pi^ {\text{SFT}}$로부터 시작한다. 그리고 2개의 답 $(y_1, y_2) \sim \pi^ {\text{SFT}} (y \vert x)$를 얻는다. Human preference를 통해 둘 중 더 좋은 답을 선택하고, 각각을 $y_w, y_l$로 둔다.

Human preference는 우리가 실제로 접근할 수 없는 latent reward model $r^ \ast (y, x)$에 의해 결정된다고 가정하자. 이때 Bradley-Terry model은 human preference distribution을 다음과 같이 표현한다.

image

이를 추정하기 위해서는, 다음 log-likelihood loss에 대해 $r_ \phi$를 학습한다.

image


1.2. RL Fine-Tuning Phase

이를 통해 학습한 reward model $r_ \phi$를 통해 reward를 자동으로 얻도록 하고, 다음과 같은 PPO objective를 최적화한다. 이때 KL-divergence termmode collapse를 방지하기 위해, 그리고 기존 모델에서 너무 벗어나지 않는 constraint로 사용된다.

image


2. Direct Preference Optimization

이제 이러한 RLHF의 objective와 동일한 objective를 가진 DPO를 유도하고자 한다. 핵심은, 결국 policy network $\pi_ \theta$가 1) Language Model의 역할도 하지만, 2) Implicit reward model의 역할도 한다는 것이다.


2.1. Derivation of DPO Objective

image

동일한 식으로부터 시작한다. 위 식을 최적화하는 analytic solution $\pi_ r$은 다음과 같다. 이때 $r$은 ideal reward function이다.

image

이때 $Z(x)$는 일종의 normalization constant라고 볼 수 있다. 위 식을 직관적으로 해석하면, 기존 policy $\pi_ {\text{ref}}$에서 reward가 높은 $y$에 대해 더 많은 확률을 주도록 하는 것이다. 이 식을 변형하면 다음과 같다.

image

reward model $r$을 알 수 없으므로, 대신 parametrize된 reward model $r_ \theta$를 학습하도록 하자. 자연스럽게 $\pi_ r$도 $\pi_ \theta$로 바꿀 수 있고, 실제로는 language model $\pi_ \theta$를 학습하면 된다. 다시 RLHF의 log-likelihood loss를 살펴보면 다음과 같다.

image

여기서 $r_ \phi$를 $r_ \theta$로 바꾸면, DPO objective가 된다.

image

계산하기 복잡했던 normalization constant $Z(x)$는 상쇄되었고, simple classification loss만 남게 된다. 이를 통해 2-step이었던 RLHF 과정을 1-step의 간단한 과정으로 바꿀 수 있었으며, 안정적이고 효과적인 학습이 가능해졌다.


2.2. Analysis of DPO Objective

DPO objective가 무엇을 하는지 더 직관적으로 이해하기 위해, 이 objective의 gradient를 살펴보자.

image

여기서 $\hat{r}_ \theta (x, y)$는 language model $\pi_ \theta$와 reference model $\pi_ {\text{ref}}$에 의해 정의된 implicit reward를 의미하며, normalization constant를 제외하면 다음과 같이 나타낼 수 있다.

\[\hat{r}_ \theta (x, y) = \beta \log \frac{\pi_ \theta (y \vert x)}{\pi_ {\text{ref}} (y \vert x)}\]

식은 아주 직관적이다. 두 부분으로 나누어 이해할 수 있다.

  1. $y_w$의 likelihood는 높이고, $y_l$의 likelihood는 낮춘다.
  2. Implicit reward model이 reward를 잘 주지 못하는 샘플에 대해서는 더 높은 weight으로 학습하도록 한다. 이때 scale은 $\beta$에 의해 결정된다. 이는 PPO에서 KL-divergence term이 하는 역할과 유사하다.


2.3. DPO Outline

전체 과정을 정리하면 다음과 같다.

  1. $y_1, y_2 \sim \pi_ {\text{ref}} (y \vert x)$를 얻는다.
  2. Human preference에 의해 $y_w, y_l$을 선택한다.
  3. DPO objective를 활용하여 $\pi_ \theta$를 학습한다.

이때 DPO objective는 정확히 기존의 RLHF objective와 일치하며, variance가 큰 PPO와 같은 Actor-Critic algorithm과 달리 simple classification loss만 있으면 되기에 더 쉽게 수렴하고 효과적이다. 이론적으로는, RLHF reward의 목표는 sub-optimal한 반면 DPO는 optimal reward를 목표로 학습하기에 더 좋다. 이를 frontier가 더 좋다고 해석할 수 있다.


3. Experiments

image

Main Results. DPOPPO에 비해 성능이 좋을 뿐만 아니라 KL 값도 낮았다. 저자들은 이를 통해 DPO가 PPO보다 더 안정적이고 효과적이라고 결론지었다.

image

Generalization. DPOPPO에 비해 generalization이 더 잘 되었다.


💡 Summary

DPO가 PPO보다 우월한 점들을 나열해보면 다음과 같다.

  1. 강화학습 없이 훈련하며 더 성능이 좋고, 더 잘 수렴하며, KL 값이 낮다.
  2. 일반화 성능이 더 좋다.
  3. 복잡한 hyperparameter tuning 없이 RLHF의 효과를 누릴 수 있다.

그렇다면 DPO가 PPO보다 항상 좋다는 것인가? 이에 대한 의문을 품은 사람들이 많았고, 관련하여 DPO와 PPO를 비교하는 논문이 발표되었다. 다음에는 이러한 논문들을 살펴보고, DPO와 PPO의 장단점을 비교해볼 예정이다. 아래 링크를 통해 볼 수 있다.


📃 Reference


Language 카테고리 내 다른 글 보러가기

댓글 남기기