DPO & BCO 수식 정리

ese2o·2025년 4월 30일

DPO(Direct Preference Optimization)

강화학습 없이 preference data만으로 LLM 파인튜닝하는 기법

DPO loss function

LDPO=logσ(β[logπθ(y+x)logπθ(yx)])\mathcal{L}_{\text{DPO}} = - \log \sigma\left( \beta \left[ \log \pi_\theta(y^+|x) - \log \pi_\theta(y^-|x) \right] \right)
  • π(yx)\pi(y|x): 프롬프트 xx가 주어졌을 때, 모델 π\pi가 응답 yy를 생성할 확률
  • πθ\pi_\theta: 현재 모델의 policy, 확률분포
  • σ\sigma: 시그모이드 함수
  • β\beta: inverse temperature
    • 값이 클수록 차이를 더 강조하는 용도
  • logπθ(y+x)logπθ(yx)\log \pi_\theta(y^+|x) - \log \pi_\theta(y^-|x)

    선호 응답의 확률이 비선호 응답의 확률보다 얼마나 더 높은가

선호 응답(y+y^+)과 비선호 응답(yy^-)의 차이가 클수록 시그모이드 값이 올라가고, loss가 내려감.

유도공식

BCO(Binary Classification Optimization

선호 학습을 이진분류문제로 간주함.
좋은 응답은 1로, 나쁜 응답은 0으로 분류하는 방식
로그 확률에 시그모이드 적용하여 안정성 확보

BCO loss function

LBCO=logσ(logπθ(y+x))log(1σ(logπθ(yx)))\mathcal{L}_{\text{BCO}} = - \log \sigma\left( \log \pi_\theta(y^+|x) \right) - \log \left( 1 - \sigma\left( \log \pi_\theta(y^-|x) \right) \right)

DPO vs BCO 비교

BCO

  • pair 데이터 필요 없음
  • 각각 독립적으로

0개의 댓글