[24’ ICML] Is DPO Superior to PPO for LLM Alignment? A Comprehensive Study

Date:     Updated:

카테고리:

태그:

image


🔍 Abstract

2024년 ICML Oral 받은 논문이다. LLM에서의 RLHF는 크게 PPO와 같은 reward-based methodDPO와 같은 reward-free method로 나뉜다. ChatGPT와 Claude와 같은 기업 중심의 핵심 모델들에서는 reward-based method가 주로 사용된 반면 academic benchmark에서는 reward-free method가 더 높은 성능을 보이고 있다. 이 논문에서는 이 결과를 두고 다음과 같은 문답을 제시한다.

  1. DPO가 PPO보다 무조건 좋은가? 오히려 DPO는 근본적인 한계점를 가지고 있고, PPO가 더 나은 성능을 보일 수도 있다.
  2. PPO의 성능을 더 높일 수 있을까? PPO의 성능을 높이기 위한 key factor를 제시하고, 실제로 DPO보다 PPO가 모든 케이스에서 더 나은 성능을 보이는 실험 결과를 제시한다.

각 문답에 대해 각 절에서 다룰 것이다. PPO와 DPO에 대해 알기 위해서는 다음 논문들을 참고하면 된다.


1. Limitation of DPO

PPO에서 reward model이 실제 human preference를 잘 반영하지 못해 실패하는 경우는 이미 널리 알려져 있다. 즉, reward model이 preference data에만 잘 들어맞고 generalization이 잘 되지 않아 문제가 발생한다는 것이다. DPO 논문에서는 reward model을 학습하는 과정이 필요없어 이러한 문제가 없다고 주장했었는데, 저자들은 역설적으로 DPO 역시 generalization이 잘 되지 않는다고 주장한다. 오히려 DPO가 OOD data에 더 취약하다고까지 말한다. 논리 전개의 흐름은 (1) 이론적 증명, (2) Toy Example 실험, (3) Real Example 실험으로 이어진다.


1.1. Theoretical Analysis

저자들은 수학적으로 다음 명제를 증명했다. 이때 $\Pi$는 policy 집합을 의미한다.

Theorem. $\Pi_ {\text{PPO}}$ is a proper subset of $\Pi_ {\text{DPO}}$.

즉, PPO가 찾은 solution은 DPO도 찾을 수 있는 solution이다. 또한, DPO의 최적화 과정을 분석하면 DPO는 OOD(Out-of-Distribution) data를 exploit하며 solution을 찾는 경향이 있어서, reference policy로부터 크게 멀어질 수 있는 위험성이 있다. 더 간단하게 말하면, DPO는 unseen response를 선호하는 쪽으로 biased distribution을 가지게 될 가능성이 있다.

그렇다면 PPO는 어떤가? PPO 역시 reward model이 preference dataset으로 훈련함에 따라 OOD(Out-of-Distribution) data는 잘 모르기에, OOD data에 대해 높은 점수를 주는 경향이 있다. 그러나 reward model은 이미 generalization이 잘 되어 있기 때문에 OOD data에 대해 높은 점수를 주는 경향이 더 적다. 그리고 RL training 과정에서 KL-divergence term 덕분에 $\pi_ {\text{ref}}$와 멀어지는 것을 막을 수 있다. 아래 표를 통해 이 주장을 쉽게 이해할 수 있다.

image


1.2. Toy Example

저자들은 아래와 같은 toy example를 통해 이론적 증명을 실험적으로 검증했다. Model은 단순한 MLP를 사용했다.

image

이때 DPO, PPO의 결과는 아래와 같다.

image

DPO는 동그라미로 표시한 OOD data에 대해 높은 점수를 주는 경향이 있고, PPO의 경우 reward model 자체는 OOD data에 대해 높은 점수를 주긴 하지만 RL training 과정에서 PPO로 학습된 모델 자체는 optimal policy에 가까워지는 경향이 있다. 이를 통해 저자들은 다음 결론을 내렸다.

DPOOOD response를 선호하는 biased policy를 생성하는 경향이 있고, 따라서 unpredictable behavior를 보일 수 있다.


1.3. Real Example

실제 SafeRLHF dataset에 대해서도 실험했는데, OOD의 영향을 보기 위하여 기본 SFT 모델은 SafeRLHF dataset을 사용하지 않은 일반적인 모델SFT (Alpaca)를 사용했다. 여기에 SafeRLHF dataset으로 fine-tuning한 SFT를 SFT (Safe)라고 표기한다. 이를 사용하면 base model data와 preference data 간의 distribution shift가 줄어들기 때문에 OOD data 문제가 줄어들게 된다.

그리고 Iterative DPO라는 방법을 사용해 DPO의 문제점을 개선했다. 이 방법을 요약하면 다음과 같다.

  1. $\pi_ {\text{SFT (Safe)}}$로부터 얻은 response를 이미 학습된 reward model에 넣어 평가한 후 DPO로 $\pi_ {\text{DPO}}$를 얻는다. 이때 reference model은 $\pi_ {\text{SFT (Safe)}}$이다.
  2. $\pi_ {\text{DPO}}$로부터 동일한 방법으로 preference data를 얻는다. DPO를 수행하는데 이때 reference model을 $\pi_ {\text{DPO}}$로 사용한다.
  3. 2번 과정을 반복한다.

이 방법은 preference data 자체를 model data에 가깝게 하여 distribution shift를 줄이는 방법이다. 이제 이를 활용한 결과들을 보자.

image

DPO의 성능은 (1) Preference dataset으로 SFT fine-tuning을 진행한 경우, (2) Preference data의 quality가 좋은 경우, (3) Iterative DPO 방법을 사용한 경우 향상되었다. 그러나 PPO를 넘을 수 없었다.


2. Key Factors to PPO for RLHF

그렇다면 PPO를 더 발전시키고 싶은데, 어떻게 해야 할까? 저자들은 지금까지 RL에서 많이 사용되던 테크닉 2개와 실제로 많이 사용되지 않았던 테크닉 1개를 재발견했다.

  1. Advantage normalization. RL에서 더 안정적인 학습을 위해 사용되는 방법이다.
  2. Large batch-size training. 이는 variance를 줄일 수 있다는 점에서 중요하다.
  3. Exponential moving average를 활용한 Reference model parameter update. PPO로 학습되는 LLM이 바뀌는 동안 reference model도 그에 맞추어 바뀌어야 challenging task를 잘 수행할 수 있을 것이다.

아래와 같이 3개의 테크닉은 잘 작동한다.

image

여기서 한 가지 주의해야 할 점은 APPSCodeContest 데이터셋은 code generation task인데, 이를 평가할 때는 실제 코드를 작동시켜 실행 결과를 manual하게 평가한다는 점이다. 따라서 이 경우에는 reward model을 사용하는 것이 아니라 true reward를 직접 사용하게 된다. 즉, reward model의 distribution shift 문제가 없어지기에 더 성능이 좋고 실제 reward model을 사용하는 시나리오와는 달라질 수 있음을 주의해야 한다.


3. Benchmark Results

이제 마지막으로 이를 모두 종합하여 PPO와 DPO의 성능을 비교한 결과를 보자. 여러 결과들이 나열되어 있는데, 전반적인 경향성을 한번에 볼 수 있는 표는 다음과 같다.

image

  1. DPO < Iterative DPO < PPO. DPO는 PPO보다 성능이 떨어지고, Iterative DPO는 DPO보다 성능이 향상되었지만 PPO를 넘지 못했다.
  2. PPO에서는 model size가 커짐에 따라 성능이 향상되는 경향이 뚜렷하다. DPO는 그 결과가 만족스럽지 못하다.


💡 Summary

특히 DPO가 PPO보다 좋지 않은 이유를 논증하는 논리적 전개가 마음에 들었다. 그러나 관련하여 정말 많은 실험을 한 것은 아니고, 상황에 따라 DPO가 더 좋은 경우도 있다는 것을 유념하는 것이 좋겠다. 이 논문의 결론을 정리하면 다음과 같다.

  1. DPO가 PPO보다 무조건 좋은가? No. DPO는 PPO보다 OOD(Out-of-Distribution) data를 선호하는 policy를 생성하는 경향이 있고, 따라서 unpredictable behavior를 보일 수 있다. 이로 인해 model과 preference data 사이의 distribution shift를 줄이는 전략을 사용하면 성능이 개선된다.
  2. PPO의 성능을 더 높일 수 있을까? Yes. PPO는 몇 개의 테크닉을 사용하여 성능을 향상시킬 수 있으며, 이후 성능을 비교한 결과 DPO < Iterative DPO < PPO의 경향성을 보였다.


📃 Reference


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

댓글 남기기