직접 선호 최적화 방법을 통한 LLM 선호 튜닝 – DPO, IPO, KTO의 실증 비교

TL;DR – Hugging Face는 강화 학습 없이 수행되는 세 가지 정렬 방법—Direct Preference Optimization (DPO), Identity Preference Optimisation (IPO), Kahneman‑Tversky Optimisation (KTO)—을 두 개의 7B 챗 모델에 평가했으며, 하이퍼파라미터(특히 β 가중치)를 신중히 조정하면 DPO가 일관되게 다른 방법보다 우수함을 발견했습니다.

소개

이 블로그 포스트는 전통적인 강화 학습을 피하는 최신 LLM 정렬 알고리즘 세 가지에 대한 실증 비교를 보고합니다. 연구에서는 두 개의 고품질 7B 모델(OpenHermes‑2.5‑Mistral‑7B와 Zephyr‑7b‑beta‑sft)을 세 가지 손실 함수(DPO, IPO, KTO)를 사용해 β 하이퍼파라미터를 다양하게 조정하며 파인튜닝하고, 결과 모델을 MT‑Bench를 통해 평가합니다. MT‑Bench는 GPT‑4 기반의 다중 턴 벤치마크로, 여덟 가지 능력 카테고리를 포함합니다.

강화 학습 없이 정렬 방법

  • Direct Preference Optimization (DPO) – 정렬을 쌍으로 된 선호 튜플 ((x, y_w, y_l))에 대한 단순 손실로 재구성하며, Zephyr와 Intel의 NeuralChat 같은 모델을 훈련하는 데 사용되었습니다.
  • Identity Preference Optimisation (IPO) – DPO에 정규화 항을 추가해 견고성을 향상시키고 조기 중단 없이 수렴하도록 훈련을 허용합니다.
  • Kahneman‑Tversky Optimisation (KTO) – 쌍선호 대신 이진 “good”/“bad” 라벨만 사용하여, 좋아요/싫어요와 같은 저비용 피드백 신호로 정렬을 가능하게 합니다.

세 가지 방법 모두 🤗 TRL 라이브러리의 DPOTrainer를 통해 구현되며, loss_type 인자를 sigmoid(DPO), ipo(IPO), kto_pair(KTO)로 설정합니다.

실험 설정

  • Models: OpenHermes‑2.5‑Mistral‑7B(정렬되지 않은 7B 챗 모델)와 Zephyr‑7b‑beta‑sft(이미 감독 데이터로 파인튜닝된 모델).
  • Datasets:
    • orca_dpo_pairs (13 k 프롬프트 쌍, GPT‑4 선택 vs. Llama‑Chat‑13B 거부) – OpenHermes에 사용.
    • ultrafeedback‑binarized (66 k 프롬프트 쌍) – Zephyr에 사용.
  • Training configuration: 1 epoch, 디바이스당 배치 크기 8, 학습률 5e‑7, 코사인 스케줄러, β 값을 0.01부터 0.9까지, gradient checkpointing, bf16 활성화, 100 스텝마다 평가.
  • Evaluation: MT‑Bench, GPT‑4를 사용해 모델 응답을 Writing, Roleplay, Reasoning, Math, Coding, Extraction, STEM, Humanities 등 여덟 가지 카테고리에서 점수화합니다.

전체 구성 파일과 스크립트는 Hugging Face alignment‑handbook 저장소에서 확인할 수 있습니다.

하이퍼파라미터 탐색

각 손실 유형마다 beta 파라미터(0.01, 0.1 … 0.9)를 변화시키면서 다른 설정은 고정한 체계적인 탐색을 수행했습니다. 이 탐색은 Hugging Face GPU 클러스터에서 Bash 스크립트를 사용해 모델 구성, 손실 유형, β 값을 순회하며 각각을 별도의 SLURM 작업으로 제출하여 실행되었습니다.

configs=("zephyr" "openhermes")
loss_types=("sigmoid" "kto_pair" "ipo")
betas=("0.01" "0.1" "0.2" "0.3" "0.4" "0.5" "0.6" "0.7" "0.8" "0.9")
# ... loop omitted for brevity ...

결과

Zephyr‑7b‑beta‑SFT

  • 가장 낮은 β (0.01)가 세 알고리즘 모두에 대해 가장 높은 MT‑Bench 점수를 얻었습니다.
  • DPO가 전체 MT‑Bench 점수에서 최고를 기록했지만, **KTO (paired)**는 한 경우를 제외하고 모든 설정에서 DPO와 동등하거나 더 높은 점수를 기록했습니다.
  • IPO는 이론적인 견고성에도 불구하고 대부분의 구성에서 기본 Zephyr 모델보다 성능이 낮았습니다.
  • 카테고리별 분석에서는 Reasoning, Coding, Math에서 눈에 띄는 격차가 나타났습니다.

OpenHermes‑2.5‑Mistral‑7B

  • 알고리즘 순위는 DPO > KTO > IPO로 유지되었습니다.
  • 최적 β 값은 크게 달랐습니다:
    • DPO: β = 0.6
    • KTO: β = 0.3
    • IPO: β = 0.01
  • 선호 정렬은 MT‑Bench 점수를 약 0.3점만 향상시켰으며, 이는 OpenHermes가 이미 강력한 기본 모델임을 나타냅니다.

두 모델군 모두 β가 중요한 하이퍼파라미터임을 보여줍니다; 작은 변화에도 성능이 몇 점씩 크게 달라질 수 있습니다.

요약 및 인사이트

  • 모든 정렬 방법에 대해 β를 신중히 조정하는 것이 필수적입니다.
  • 쌍선호 설정에서는 DPO가 일관되게 KTO와 IPO보다 우수하지만, β를 잘 선택하면 KTO도 경쟁력을 가질 수 있습니다.
  • IPO는 수렴 보장을 제공하지만, 이번 실험에서는 베이스라인을 능가하지 못했습니다.
  • 오픈소스 코드, 구성 파일, 그리고 결과 모델 체크포인트는 Hugging Face alignment‑handbook 및 관련 모델 컬렉션에서 공개적으로 이용 가능합니다.

다음 단계

향후 작업에서는 🤗 TRL에 새로운 선호 정렬 알고리즘을 계속 추가하고 평가 스위트를 확장할 예정입니다. 저자들은 현재 DPO가 가장 견고한 선택으로 남을 것으로 예상하며, KTO는 쌍 데이터 없이 저비용 이진 피드백을 활용하는 유망한 경로를 제공한다고 봅니다.


링크

Sources