본문 바로가기
논문리뷰

[논문리뷰] DPO 논문 리뷰

by 단깅수 2025. 8. 13.
728x90

DPO 논문 리뷰입니다.

 

논문 : Direct Preference Optimization: Your Language Model is Secretly a Reward Model

저자 :Rafael Rafailov, Archit Sharma, Eric Mitchell, Stefano Ermon, Christopher D. Manning, Chelsea Finn

 

[1] Introduction

LLM을 학습시킬 때 방대한 데이터 양으로 학습시키지만 학습 데이터가 여러 사람의 생각과 의도가 섞여 있어 모델이 항상 우리가 원하는 방향으로 답을 내지는 않습니다.

 

예를 들어, 프로그래밍 코드를 짤 때 오류 코드를 보고 교정할 수도 있어야 하지만 코드를 작성할 때에는 전문가 수준으로 작성해야 하고 할루시네이션도 없어야 한다는 거죠.

 

모델이 가진 방대한 지식과 능력 중에서 바람직한 응답과 행동을 선택하도록 만드는 것이 AI의 안전성과 품질의 핵심이라고 할 수 있습니다.

 

그래서 기존에는 주로 강화학습을 사용해 언어 모델을 인간 선호에 맞추는 방식이 주를 이뤘습니다.

 

그러나 DPO 논문에서는 강화학습 기반 목표를 단순한 Binary Classification 문제로 바꿔서 최적화하여 선호 학습 절차를 단순화하였습니다.

 

RLHF 간단 설명

아무래도 DPO 또한 강화학습의 일종이다 보니 기존 RLHF 설명을 안할 수가 없습니다.

 

기존 RLHF는 먼저 프롬프트와 두 응답에 대한 인간 선호 데이터로 Reward 모델을 학습한 뒤 그 보상을 강화학습으로 최대화하는 2단계 과정을 거칩니다.

 

반면, DPO는 단순한 분류 목표 함수로 선호를 가장 잘 만족하는 모델을 직접 최적화해 그 과정에서 최적화 수식을 바로 구할 수 있는 Reward 모델을 학습합니다.

 

그래서, 대규모 텍스트 데이터로 사전학습한 후에 DPO Dataset으로 추가 학습을 진행하는 방식입니다.

 


[2] Related Work

1) Instruction Tuning

 

Instruction Tuning이란 LLM을 학습할 때 지시문을 넣어서 지시사항을 더 잘 따르게 하는 학습 방법론 방식입니다.

 

Instruction Tuning이 등장하기 전에는 In-context Learning 및 Prompt Tuning vs Fine Tuning이 대표적으로 LLM을 학습시키는 방식이었습니다.

 

In-context Learning 또는 Prompt Tuning 은 직접 모델의 가중치를 업데이트하지는 않고 Input 형태를 잘 조정해 Output 을 잘 만들어보자는 접근 방식입니다.

 

대표적으로 아래의 3가지 예시가 있습니다.

- Zero-shot learning : 예시 없이 task를 입력하면 바로 출력되는 경우

- One-shot learning : 1가지 예시를 주고 task를 수행하는 경우

- Few-shot learning : 2가지 이상 예시를 주고 task를 수행하는 경우

 

Prompt Tuning은 모델에 입력하는 프롬프트를 정교하게 구성함으로써 모델이 가진 지식을 최대한 끌어내는 방식을 말하고, 예를 들어 CoT가 있겠죠.

 

하지만 모델 자체적으로 충분하게 학습이 되지 않고 성능이 부족하다면 아무리 프롬프트를 정교하게 구성해도 좋은 결과를 기대하기 힘들 수 있습니다.

 

따라서 파인튜닝을 수행하는데, 주로 특정 도메인이나 Task에 대해서 효과적으로 적용하기 위해 사용합니다.

 

예를 들어, 금융 도메인 또는 의료 도메인 특화 LLM을 만든다거나 하는 예시를 들 수 있습니다.

 

2) Contextual Dueling Bandit (CDB)

 

다음은 CDB입니다.

 

CDB는 보상 점수를 직접 알 수 없고, 대신 두 행동(정책) 중 어떤 것이 더 좋은지에 대한 비교 정보만 주어진 상황에서 학습하는 방법을 의미합니다.

 

예를 들어, 음식 추천 AI가 있는데, 사용자에게 "짜장면 vs 짬뽕 중 어느 게 좋았나요?"라고 물어보고, 사용자가 "짜장면"을 선택하면 그걸 학습에 반영하는 느낌이라고 이해하시면 되고 보통 온라인(실시간) 환경에서 선호도를 얻습니다.

 

3) Preference-based RL (PbRL)

 

다음은 PbRL입니다.

 

PbRL은 보상 함수를 직접 알 수 없을 때, 선호도(좋다/나쁘다) 정보를 이용해 강화학습을 하는 방법이고 CDB와 비슷하지만, RL 환경에서 동작하며, 오프라인(미리 수집된 데이터)에서도 가능합니다.

 

예를 들어 로봇이 물건을 집는 행동을 할 때, 사람은 "이건 좋음(1)" / "이건 나쁨(0)" 같은 이진 평가를 주고 모델은 이 데이터를 바탕으로 **보상 모델(채점 함수)**을 먼저 학습한 뒤, 이 보상 모델을 최대화하도록 정책을 학습하는 방식이라고 이해하시면 됩니다.

 


[3] Preliminaries

RLHF 파이프라인은 위에서도 언급했지만 일반적으로 3가지 단계로 구성됩니다.

 

1) SFT

SFT는 사전학습된 언어모델을 대화, 요약 등 특정 작업에 맞춘 고품질 데이터로 지도학습하는 느낌이고 주로 강화학습 적용 전에 수행합니다.

 

2) 보상 모델 학습

다음은 보상 모델 학습 단계입니다.

 

먼저 같은 질문에 대해 SFT 모델이 2개의 다른 답변을 생성하고 사람은 두 답변을 비교해 어느 쪽이 더 나은지 표시합니다.

 

이 선호도는 잠재적 보상함수 r에 의해 생성된다고 가정하며 선호도 모델링 방식 중 BT를 널리 사용하고 있습니다.

*BT : 두 답변 중 하나가 선택될 확률을 위와 같은 소프트맥스 형태로 정의해 더 좋은 보상을 가진 답변이 선택될 확률을 높게 만듭니다.

 

따라서 선호도 데이터를 활용해 보상 모델을 파라미터화하고 학습시킬 수가 있게 되는 겁니다.

 

 

이를 이진 분류 문제로 보면, Loss 함수는 시그모이드 기반의 음의 log-likelihood loss 형태가 됩니다 (쉽게 말해서 좋은 점수를 받은 답변이 출력되도록 학습하는 겁니다).

 

SFT 모델 위에 보상값 하나를 뽑는 선형 레이어를 붙이고 정규화해 마무리 합니다.

 

3) 강화학습

바로 위 단계에서 학습된 보상 모델을 이용해 LM을 강화학습합니다.

 

이때 보상을 최대화하되, KL 발산으로 SFT 모델 간 차이가 너무 벌어지지는 않도록 제약을 거는데, 이는 기존 모델과의 차이를 적당히 유지해야 안정적인 결과를 도출하기 때문입니다.

 

텍스트 생성 Task는 연속적인 Task가 아니라 미분이 불가능하여 강화학습을 주로 쓴다고 합니다.

 


[4] Direct Preference Optimization (DPO)

위처럼 강화학습을 적용할 수 있지만 LLM에 바로 강화학습을 도입해 파인튜닝하는 것은 복잡하고 비용이 커서 사람 선호 데이터셋 만으로 최적화하는 방법을 만들고자 한 것이 DPO의 시작입니다.

 

기존에는 보상모델 학습, RL 학습으로 2단계를 거쳐야 했지만 DPO는 보상 모델을 따로 훈련하지 않고 바로 최적화를 수행합니다.

 

출발점은 기존 RLHF의 목적함수를 그대로 사용합니다.

 

이전 연구들을 참고해 KL 제약이 있는 RLHF의 최적 해는 위와 같은 식으로 나타낼 수 있는데, $Z(x)$ 계산은 여전히 비용이 크다는 문제가 있습니다.

 

그래서 위 식에 양변에 로그를 취하고 정리하면 위 식이 도출됩니다.

 

이러한 재파라미터화 방식을 실제 보상 $r$과 최적 정책 $π$에도 적용할 수 있습니다.

 

위 식에서 BT 모델은 답변 보상의 차이만 쓰기 때문에 상수항 $Z(x)$는 소거됩니다.

 

따라서, 보상 모델 없이도 정책들만 가지고 선호 확률을 계산할 수 있게 되는 것이고 선호 확률을 직접 구해서 이것이 정책 비율로 표현됩니다.

 

이제 보상 모델이 아니라 정책으로 선호 확률을 표현했으니 파라미터를 업데이트하는 수식을 만들 수 있습니다.

 

- $y_w$ : 선호된 응답

- $y_l$ : 비선호된 응답

- $π_ref$ : 기준이 되는 참조 정책 (SFT)

- 목적 함수 : 선호된 응답의 확률은 높이고, 비선호된 응답의 확률은 낮추는 방향으로 $θ$를 업데이트

 

위와 같이 식을 구성하면 보상 모델을 따로 만들지 않아도 모델 학습하는 과정 자체가 보상 구조를 포함하고 있는 효과를 냅니다.

 

 

그래서 결국 DPO 업데이트는 무엇을 의미하는지를 알아보려면 기울기가 어떻게 변화하는지를 분석하는 것이 유용합니다.

 

직관적으로 설명하자면 $L_DPO$의 기울기는 선호된 응답 $y_w$ 의 확률을 높이고 비선호된 응답 $y_l$의 확률을 낮추는 방식이고 이 둘을 잘못 예측한 경우 더 강하게 수정하도록 학습합니다.

 

본 논문에서는 잘못 예측했을 때 더 강하게 수정하게 하는 이 가중치가 없으면 학습이 망가질 가능성이 크다고 합니다.

 

그래서 파이프라인을 정리하자면 아래와 같습니다.

1. SFT 모델이 만든 두 답변을 사람에게 비교시켜 선호/비선호 응답 라벨링 진행

2. 바로 위 수식으로 정책 업데이트

3. 참조 정책은 가능하면 SFT로 설정

4. 참조 모델이 본 데이터 분포에서 너무 벗어나지 않게 조정

 


[5] Theoretical Analysis of DPO

*이 부분은 GPT의 도움을 받아 거의 해석만 된 부분입니다.. 이론적으로 이해가 매우 어렵네요.. ㅠㅠ

 

DPO는 PPO와 다르게 학습할 때 MLE 하나만 사용하면 됩니다.

 

MLE로 푸는 식이 두 응답의 선호도를 비교하는 BT 모델 구조와 동일하게 변환됩니다.

 

변수만 바꾸면 실제 보상 모델을 학습하는 것과 동일한 효과가 난다고 합니다.

 

두 보상 함수가 입력 x에만 의존하는 일정한 차이만 있다면 두 보상 함수는 같은 부류로 봅니다.

이 조건을 만족하면 보상 함수들이 그룹으로 묶입니다.

 

 

BT 선호 모델에서 같은 동치류에 속한 두 보상 함수는 동일한 선호 분포를 가지고 즉, 보상 함수가 동치라는 의미는 두 보상 함수로 계산한 선호 확률이 같다는 의미를 뜻합니다.

 

같은 동치류라면 최적 행동 정책도 완전히 동일하겠죠.

 

그렇기에 보상 함수가 여러 개여도 결과 분포가 같아서 구분이 불가능한 문제가 생기는데 이를 모델 과소특정 문제라고 부릅니다.

 

이러한 과소특정 문제 때문에 보상 함수를 정확히 식별하려면 추가 제약조건을 걸어야 합니다.

 

또한, 같은 동치류에 속한 모든 보상 함수는 동일한 최적 정책을 만들기 때문에 임의의 보상 함수 아무거나 찾으면 됩니다.

 

 

특정 재파라미터화 만으로는 모든 적합한 보상 함수를 표현할 수 없다는 뜻이고, 이게 DPO의 핵심 이론 기반입니다.

 

따라서 어떤 보상 함수를 잡더라도 그것과 같은 동치류에 속하는 또 다른 보상 함수를 DPO 방식으로 표현가능하다는 것을 보여주는 부분입니다.

 

 

사영 연산자 $f$를 위와 같이 정의합니다.

 

여기서 $f$는 보상 함수에서 정규화 항을 빼는 역할을 하고 이 정규화 항은 모든 y의 확률 분포를 맞춰주는 역할을 합니다.

 

그래서 보상 함수 확률의 합을 1이 되도록 만들고 이렇게 바꾸면 추가된 정규화 항은 접두사 x에만 의존하므로 동일한 정책 결과를 내는 동치류의 보상 함수라는 의미가 됩니다.

 

즉, 사영 $f$를 활용하면 모든 표현 가능한 보상 함수를 다루면서도 수학적으로 간단하게 표현할 수 있도록 해줍니다.

 

 

바로 위 식이 정책 확률을 맞추는 정규화 값입니다.

 

DPO 알고리즘의 핵심 특징은 BT 계열의 선호 모델에 특정 제약조건을 부여해 표현 가능한 보상 모델 클래스는 유지하면서도 모든 프롬프트 x에 대해 수식적으로 풀 수 있는 형태로 변환해 계산 효율성을 높이는 것입니다.

 

 

해서 궁극적으로, 위와 같은 식으로 전개되고 PPO의 보상 정의도 DPO 수식과 동일하게 최적화되는 것입니다.

 


[6] Experiments

1) DPO의 균형 조절 실험

 

첫 번째 실험은 잘 통제된 텍스트 생성 환경에서 DPO가 PPO 같은 일반적인 선호 학습 알고리즘과 비교해 보상을 최대화하면서 기준 정책과의 KL 발산을 최소화하는 균형을 얼마나 효율적으로 맞추는지 확인합니다.

 

결과적으로 왼쪽을 보면 DPO는 모든 KL 값에서 가장 높은 기대 보상을 제공하며 이는 최적화 품질이 뛰어남을 보여줍니다.

오른쪽 그림은 GPT-4를 평가자로 사용해 TL;DR 요약의 인간 작성 요약 대비 승률을 측정한 결과 DPO는 요약 성능에서 PPO의 최고 성능을 능가했으며 샘플링 온도 변화에도 더 강건한 성능을 보였습니다.

 

2) Anthropic-HH 실험

 

다음은 Anthropic-HH 실험입니다.

 

좌측 그림을 보면 Anthropic-HH 1단계 대화에 대한 승률을 계산한 결과 DPO만이 기준보다 더 나은 응답을 만들어낸 유일한 방법이었다는 결과가 도출되었습니다.

 

우측 그림은 학습 전반적으로 서로 다른 샘플링 온도에 따른 승률을 나타낸 그림이고 샘플링 temperature가 달라져도 데이터셋 라벨보다 우위에 있는 성능 향상이 비교적 안정적으로 유지되었습니다.

 

3) 분포 변화 상황에서 PPO vs DPO 성능 비교 실험

 

다음은 분포 변화 상황에서 PPO, DPO를 비교하는 실험입니다.

 

GPT-4를 심판처럼 사용해, 생성된 요약과 뉴스 기사 정답 요약 중 어느 쪽이 더 바람직한지를 판정하였습니다.

 

결과적으로 뉴스 기사처럼 완전히 다른 데이터 유형에서도 DPO가 PPO보다 확실히 뛰어났음을 보여줍니다.

 

PPO는 학습에 더 많은 데이터를 사용했지만, DPO는 그 없이도 비슷하거나 더 나은 일반화 성능을 냈다는 점에서 효율성이 강조됩니다.

 

4) GPT-4 평가 실험

 

다음은 지금까지의 GPT-4를 평가자로 활용한 실험들이 정말 믿을만한지에 관한 실험입니다.

 

GPT-5 (S) 프롬프트는 단순히 어떤 요약이 게시물의 중요한 정보를 더 잘 요약했는지를 묻고 (C) 프롬프트는 어떤 요약이 더 간결한지도 묻습니다.

 

다양한 품질의 샘플을 포함하기 위해 최고 성능 DPO, 최저 성능 PPO, 중간 성능 SFT 방법을 사용해 세 가지 비교를 수행했고 세 가지 방법 모두 최적의 temperature에서 greedy sampling 한 요약과 비교했다고 합니다.

 

결과적으로 두 프롬프트 모두에서 GPT-4의 판단은 인간 평가자들끼리의 합의 수준만큼이나 인간 평가와 잘 일치하는 경향을 보였고 이는 GPT-4가 인간 평가를 대신할 수 있는 합리적인 대안임을 시사합니다.

 


[7] Conclusions

  • 등장 배경
    • 기존 강화학습(RLHF)은 강력하지만 보상 모델 훈련과 PPO 같은 강화학습 알고리즘을 거쳐야 하는 복잡한 구조
    • 이 과정은 계산 비용이 크고 하이퍼파라미터 조정도 어려움
    • 따라서 DPO는 이러한 복잡성을 제거하고 단순한 SFT 구조로 인간 선호 학습을 가능하게 함
  • 핵심 방법론
    • DPO는 언어 모델 정책과 보상 함수 간 수학적 관계를 정의해 Cross Entropy 손실 하나만으로 선호 학습을 수행
    • 강화학습 단계를 생략해 구현이 간단하고 하이퍼파라미터 조정 부담이 없음
    • 그럼에도 불구하고 RLHF와 유사하거나 더 나은 성능 발휘
  • 실험 결과 요약
    • Reddit TL;DR 요약, CNN/DailyMail 분포 외 데이터 등 다양한 환경에서 PPO 보다 높은 성능을 달성
    • 하이퍼파라미터 튜닝 없이도 일관된 성능 확보
    • GPT-4 기반 평가에서 인간 평가자와 유사한 결과를 보여 신뢰성 확보
    • 최대 6B 파라미터 모델까지 검증되었으며, 더 큰 모델로 확장 가능성 존재
728x90
반응형