인공지능 개발자 수다(유튜브 바로가기) 자세히보기

자연어처리/LLM 논문 요약

[LLM] DPO (Direct Preference Optimization) 논문 리뷰

Suda_777 2025. 4. 25. 02:10

목차

    반응형

    6.1 Sentiment Task: 감성 조절 능력 실험 (IMDb)

    논문 링크

    연도 : 2023

    0. Abstract

    • 기존 RLHF(인간 피드백을 활용한 강화학습)은 복잡하고 한계가 있음
    • 간단한 classification loss 를 이용해 RLHF의 문제를 해결
    • 샘플링이나 복잡한 하이퍼파라미터 튜닝 없이도 인간의 선호도에 맞는 fine-tuning이 가능
    • 기존의 PPO 기반 RLHF보다 감정 제어 성능이 뛰어남

     


    1. Introduction

    • 명확하지 않은 문서를 이해해야 하지만, 정확한 대답을 해야하함
    • 이진 분류 손실 함수(binary classification loss) 사용
    • 핵심 아이디어는, 보상 모델을 명시적으로 학습하지 않고도 최적의 정책(Policy)을 바로 도출할 수 있도록 선호 기반 확률모델(theoretical preference mode, 예: Bradley-Terry 모델)을 재파라미터화하는 것
    • 즉, 정책(Policy)을 직접적으로 학습함, binary cross entropy objective(분류모델에 자주 사용하는 Loss)를 이용함
    • 기본적으로 preferred를 dispreferred에 비해 높도록 학습함. 그렇지만 모델이 이미 preferred 를 잘 선택하고 있으면 학습시 가중치를 줄이고, 잘못된 응답할 확률이 높으면 가중치를 높여 학습함.

     

     


    2. Related Work

    Instruction Tuning : 사람의 의도를 더 잘 파악하기 위해 진행

    RLHF : 보상모델(reward model) 학습 >> 강화학습(PPO 등의 방법)으로 LLM 학습

     

    기존 연구 내용 이므로 이하 생략

     


    3. Preliminaries (사전 지식)

    SFT (Supervised Fine-Tuning)

    • 기존의 사전학습(pretraining)을 마친 언어모델(π₀)에 대해,
    • 인간이 만든 고품질 응답 데이터로 지도학습(fine-tuning)을 수행
    • 이 과정을 거쳐 \(π^{SFT}\) 라는 정책(policy)을 만듦

     

    Reward Modelling

    • 이 단계에서는 \(π^{SFT}\) 가 생성한 응답 쌍을 인간이 평가
    • 그 데이터를 바탕으로 보상 모델 (reward model) 을 학습
    • 선호 모델: Bradley-Terry 모델 (두 응답의 선호 확률)
      • \( x \) : 프롬프트, 입력 문장
      • \( y_l \) : 인간이 덜 선호한 응답 (loser)
      • \( y_w \) : 인간이 더 선호한 응답 (winner)
      • \( r^*(x, y) \) : 추정되는 실제 보상 함수
      • \( p^*(y_w \succ y_l \mid x) \) : x에 대한 응답 쌍 \(y_w, y_l\) 중에서 \(y_w\) 를 선호할 확률

    $$ p^*(y_w \succ y_l \mid x) = \frac{e^{r^*(x, y_w)}}{e^{r^*(x, y_w)} + e^{r^*(x, y_l)}} $$

     

    • 보상 모델 학습 손실 함수
      • \( E[...] \) : 기대값
      • \( (x, y_w, y_l) ∼ D \) : 데이터셋 D로부터 무작위로 (질문, 선호 응답, 비선호 응답)을 샘플링
      • \( r_{\phi} \) : 학습된 보상 함수
      • \( \sigma \) : 시그모이드 함수

    $$ \mathcal{L}_R(r_\phi; D) = -\mathbb{E}_{(x, y_w, y_l) \sim D} \left[ \log \sigma \left( r_\phi(x, y_w) - r_\phi(x, y_l) \right) \right] $$

     

    RL 기반 Fine-Tuning (PPO 등)

    • 보상 모델 r_ϕ를 학습했으니
    • 이 보상을 최대화하는 방향으로 언어모델을 강화학습으로 다시 fine-tuning
      • \( \max \) : 아래의 식을 조정해 뒤의 식을 최대화
      • \( \mathbb{E}_{x \sim D,\, y \sim \pi_\theta(y \mid x)} \left[ r_\phi(x, y) \right] \) : 학습 데이터 D에서 프롬프트 x를 고르고, 모델 \( \pi_\theta \)가 응답 y를 생성했을 때, 보상 모델  \( r_\phi \) 가 평가한 점수의 평균값
      • \( D_{\mathrm{KL}} \left[ \pi_\theta \,\|\, \pi_{\mathrm{ref}} \right] \) : KL Divergence는 두 확률분포 사이의 차이를 측정 , π_θ (새 모델)과 π_ref (기존 SFT 모델) 사이의 차이

    $$ \max_{\pi_\theta} \quad \mathbb{E}_{x \sim D,\, y \sim \pi_\theta(y \mid x)} \left[ r_\phi(x, y) \right] - \beta \, D_{\mathrm{KL}} \left[ \pi_\theta \,\|\, \pi_{\mathrm{ref}} \right] $$

     


    4. Direct Preference Optimization

    강화학습 없이, 단순한 손실 함수만으로
    인간 선호(preferences)에 맞게 언어 모델을 fine-tuning하는 방법 제시.

     

    기존 RLHF 방식에서 보상을 최대화 하기 위해서는

    샘플링, 보상 모델, 강화학습이 필요하다.

     

    DPO의 핵심 아이디어는

    보상함수를 정책함수(policy)로 표현한 것임

    즉, 보상함수는 정책과 참조 정책의 확률비율로 표현

    • \( r(x, y) \) : 보상함수
    • \( \pi (y|x) \) : 정책함수 (policy)

     

    $$ \pi_r(y \mid x) = \frac{1}{Z(x)} \, \pi_{\text{ref}}(y \mid x) \exp\left( \frac{1}{\beta} \, r(x, y) \right) $$

     

    이걸 로그 취하고 정리하면 아래와 같다.

     

    $$ r(x, y) = \beta \log \left( \frac{\pi_{\text{ref}}(y \mid x)}{\pi_r(y \mid x)} \right) + \beta \log Z(x) $$

     

    다음으로, 인간 선호 모델은 다음과 같이 표현한다.

     

    $$ p^*(y_1 \succ y_2 \mid x) = \sigma\left( r(x, y_1) - r(x, y_2) \right) $$

     

    위 식에서 \( r(x, y) \) 를 이전 식으로 대체를 해주고, Log 변환해준 값의 대표값이 최종 DPO의 손실 함수이다.

     

    $$ \mathcal{L}_{\text{DPO}}(\pi_\theta) = -\mathbb{E}_{(x, y_w, y_l)} \left[ \log \sigma \left( 
    \beta \log \left( \frac{\pi_{\text{ref}}(y_w \mid x)}{\pi_\theta(y_w \mid x)} \right) 

    \beta \log \left( \frac{\pi_{\text{ref}}(y_l \mid x)}{\pi_\theta(y_l \mid x)} \right) 
    \right) \right] $$

     

    최종 손실 함수는 아래와 같은 장점이 있다.

     

    • 정책 π만을 가지고도 선호도 손실을 계산할 수 있다
    • 보상 모델도, RL도, 샘플링도 필요 없다!

     

    손실함수는 아래 방법으로 업데이트 한다.

    • 선호된 응답의 확률을 높이고
    • 덜 선호된 응답의 확률을 낮추며
    • 가중치는 현재 모델이 얼마나 잘못 판단하고 있는지에 따라 조정

    $$ \nabla_\theta \mathcal{L}_{\text{DPO}}(\pi_\theta; \pi_{\text{ref}}) =
    - \beta \, \mathbb{E}_{(x, y_w, y_l) \sim D} \left[
    \underbrace{\sigma\left(\hat{r}_\theta(x, y_l) - \hat{r}_\theta(x, y_w)\right)}_{\text{higher weight when reward estimate is wrong}} \cdot 
    \left(
    \underbrace{\nabla_\theta \log \pi_\theta(y_w \mid x)}_{\text{increase likelihood of } y_w}
    -
    \underbrace{\nabla_\theta \log \pi_\theta(y_l \mid x)}_{\text{decrease likelihood of } y_l}
    \right)
    \right] $$

     


    5. Theoretical Analysis of DPO

    5.1 Your Language Model Is Secretly a Reward Model

    r(x, y)r'(x, y) 가 어떤 함수 f(x)에 대해

    $$ r(x, y) - r'(x, y) = f(x) $$

    가 성립하면, 두 보상 함수는 동등하다 (equivalent) 고 봄.

     

    다음 내용도, 수학적으로 DPO가 RLHF에 비해 표현력이 나쁘지 않다는 내용에 대한 증명이니

    증명은 생략하겠다.

     


    6. Experiments

    6.1 Sentiment Task: 감성 조절 능력 실험 (IMDb)

    • π_ref (GPT-2-large SFT 모델)를 사용해 두 개의 응답 (y₁, y₂) 생성
    • 사전 학습된 감성 분류기를 사용해 두 응답의 감성 점수 평가
    • 점수가 높은 쪽을 y_w, 낮은 쪽을 y_l로 설정

     


    6.2 Summarization Task: TL;DR 요약 (Reddit)

    • 사람이 여러 요약을 보고 선호도를 라벨링한 데이터셋

     


    6.3 Dialogue Task: 단일 턴 대화 (Anthropic-HH)

    • 사람의 질문과, 모델이 생성한 2개의 응답 쌍 + 선호 라벨 포함
    • 인간이 직접 평가한 고품질 선호 데이터를 사용

     


    아래는 생략

    6.4 Out-of-distribution 테스트 (CNN/DailyMail)

    6.5 Human vs GPT-4 평가 일치도

     

    결론1. 성능이 좋다.

     

    결론2. 데이터는 사람이 선호도를 라벨링할 수도, 다른 모델을 이용해 선호도를 라벨링할 수도 있다.

    데이터는 (x, y_w, y_l) 쌍을 구성해야 함.

     

    결론3. \( \pi (y|x) \) 는 LLM 모델이 입력이 x일때 y가 출력할 확률을 나타낸 것이기 때문에 따로 계산할 필요없이 바로 구할 수 있음. 그리고 \( \pi (y_w|x) \) 와 크게 다르면 확률상 차이가 크다는 것이니 이것을 맞추는 방향으로 학습한다고 보면됨.


    7. Discussion

    생략

     

    반응형