RLHF vs DPO vs IPO vs KTO: 어떤 정렬(Alignment) 방법을 사용해야 할까요?
요약
LLM의 정렬(Alignment)을 위한 네 가지 주요 방법론인 RLHF, DPO, IPO, KTO를 비교 분석합니다. 각 방법의 수학적 원리, 데이터 요구 사항, 컴퓨팅 예산 및 안정성 측면의 트레이드오프를 다룹니다.
핵심 포인트
- RLHF는 보상 모델과 PPO를 사용하는 복잡한 3단계 파이프라인이 필요함
- DPO는 RLHF보다 단순한 단일 훈련 루프로 구현 가능하지만 과적합 위험이 있음
- IPO는 규제 항을 추가하여 DPO의 과적합 문제를 완화함
- KTO는 쌍체 비교 데이터 없이 이진 점수만으로도 정렬이 가능함
RLHF vs DPO vs IPO vs KTO: 어떤 정렬(Alignment) 방법을 사용해야 할까요?
당신에게는 어떤 운율로도 시를 쓸 수 있고 변호사 시험을 통과할 수 있는 Llama 3.2 8B와 같은 베이스 모델(Base Model)이 있습니다. 이 모델은 통제 물질을 합성하기 위한 지침을 생성하거나, 조작적인 치료사 역할을 수행하거나, 당신의 풀 리퀘스트(Pull Request)가 왜 좋은 취향에 대한 모독인지 애정 어린 상세함으로 설명할 수도 있습니다. 당신은 이 모델을 정렬(Align)해야 합니다. 즉, 능력을 유지하면서 유해한 출력(Harmful Outputs)을 제거해야 합니다. 당신의 멘토는 "RLHF를 사용하세요"라고 말합니다. 피드에 올라온 논문은 DPO가 더 간단하다고 말합니다. 당신의 동료는 프로덕션(Production)에서 얻은 '좋아요/싫어요(Thumbs-up/Thumbs-down)' 로그 데이터만 있기 때문에 KTO를 강력히 추천합니다. 어디서부터 시작해야 할까요?
정렬(Alignment) 방법을 선택하는 것은 이론적인 논쟁이 아닙니다. 이는 당신의 데이터, 컴퓨팅 예산(Compute Budget), 그리고 피하려는 실패 모드(Failure Modes)에 따라 달라지는 실질적인 결정입니다. 이 포스트에서는 실제 수학적 원리, 데이터 요구 사항, 그리고 프로덕션에서 맞닥뜨리게 될 날카로운 문제점들과 함께 네 가지 주요 접근 방식을 나란히 비교합니다.
이것이 중요한 이유
당신이 선택하는 정렬(Alignment) 방법은 배포 일정에 직접적인 영향을 미치는 세 가지 요소를 결정합니다:
- 데이터 요구 사항 (Data requirements). 어떤 방법은 쌍체 선호도(Pairwise Preferences, A가 B를 이김)를 필요로 합니다. 다른 방법은 샘플당 이진 점수(Per-sample Binary Scores)로 작동합니다. 프로덕션 로그가 있다면 아마 이미 후자를 가지고 있을 것입니다. 인간 주석 파이프라인(Human Annotation Pipeline)이 있다면 비용을 들여 전자를 수집할 수 있습니다.
- 컴퓨팅 예산 (Compute budget). RLHF는 정책 모델(Policy Model)과 비슷한 크기의 별도 보상 모델(Reward Model)을 훈련시킨 다음, 샘플 효율성이 낮고 하이퍼파라미터(Hyperparameters)에 민감하기로 악명 높은 PPO를 실행해야 합니다. DPO, IPO, KTO는 이 과정을 정적 데이터(Static Data)에 대한 단일 훈련 루프(Single Training Loop)로 축소합니다.
- 안정성 및 견고성 (Stability and robustness). PPO는 정책(Policy)을 불안정하게 만들고 붕괴시킬 수 있습니다. DPO는 선호도 노이즈(Preference Noise)에 과적합(Overfit)될 수 있습니다. IPO는 이를 완화하는 규제 항(Regularization Term)을 추가합니다. KTO는 엄격한 쌍체 비교(Pairwise Comparisons)가 전혀 없는 시나리오를 처리합니다.
이러한 트레이드오프(tradeoffs)를 이해하는 것은 2주 만에 출시 가능한 정렬된 모델을 만드느냐, 아니면 3개월 동안 지체되는 정렬 프로젝트를 만드느냐의 차이를 결정합니다.
RLHF, DPO, IPO, 그리고 KTO: 각 방법의 작동 방식
네 가지 방법 모두 동일한 지점에서 시작합니다. 바로 지도 미세 조정 (Supervised Fine-Tuned, SFT) 모델과 인간의 선호도(human preferences)를 포착한 데이터셋입니다. 이 데이터를 사용하는 방식은 근본적으로 다릅니다.
RLHF (Reinforcement Learning from Human Feedback)
OpenAI의 InstructGPT 논문(Ouyang et al., 2022)을 통해 대중화된 정석적인 접근 방식은 다음과 같은 3단계 파이프라인을 따릅니다:
- 인간 선호도 수집 — 어노테이터(annotators)가 일련의 프롬프트에 대한 모델의 출력값에 순위를 매겨, 쌍체 선호도(pairwise preferences, 선택됨 vs 거부됨)를 생성합니다.
- 보상 모델 (Reward Model) 학습 — 주어진 출력값으로부터 인간의 선호도 점수를 예측하도록 별도의 모델(보통 정책 모델과 동일한 아키텍처)을 학습시킵니다. 이 모델은 인간의 판단을 근사하는 스칼라 보상 함수(scalar reward function)를 학습합니다.
- PPO를 통한 정책 (Policy) 최적화 — 정책 모델이 출력값을 생성하면 보상 모델이 점수를 매기고, PPO (Proximal Policy Optimization)가 기대 보상을 높이도록 정책을 업데이트합니다. KL 페널티 (KL penalty)는 정책이 SFT 모델로부터 너무 멀어지지 않도록 유지합니다.
# 단순화된 PPO 업데이트 (개념적)
# reward = reward_model.generate(policy_output) - beta * kl_divergence(policy || ref_policy)
# policy_loss = -ppo_clip(reward, old_logprobs, new_logprobs)
이 3단계 파이프라인은 비용이 많이 듭니다. 각 단계마다 별도의 학습 실행, 별도의 GPU 예산, 그리고 별도의 하이퍼파라미터 탐색 (hyperparameter sweep)이 필요하기 때문입니다. 보상 모델은 가짜 상관관계(spurious correlations)를 악용하는 법을 배울 수 있으며 (reward hacking), PPO는 학습률(learning rate)과 KL 페널티 계수에 민감합니다. 긍정적인 측면으로는, 이론적으로 온라인 PPO는 데이터셋에 있는 그 어떤 인간의 어노테이션보다 더 나은 출력값을 발견할 수 있습니다.
DPO (Direct Preference Optimization)
Rafailov et al. (2023)은 RLHF의 보상 모델 (Reward Model)이 엄밀히 말해 불필요하다는 것을 보여주었습니다. 핵심 통찰은 Bradley-Terry 선호 모델 (대부분의 보상 모델의 기반이 되는 통계 모델)이 최적 정책 (Optimal Policy)을 참조 정책 (Reference Policy) 및 선호 데이터와 직접적으로 연결하는 폐쇄형 해 (Closed-form solution)를 가지고 있다는 점입니다.
DPO는 보상 모델을 완전히 제거합니다. 학습 손실 함수 (Training Loss)는 다음과 같습니다:
L_DPO = -E[log sigmoid(beta * (log pi(y_w|x)/pi_ref(y_w|x) - log pi(y_l|x)/pi_ref(y_l|x)))]
여기서 $y_w$는 선택된 출력 (Chosen output), $y_l$은 거부된 출력 (Rejected output), $\pi$는 현재 정책 (Current policy), $\pi_{ref}$는 고정된 참조 정책 (Frozen reference policy, 즉 SFT 모델)이며, $\beta$는 정책이 얼마나 멀리 벗어날 수 있는지를 제어합니다.
# 실무에서의 DPO 손실 함수 (Hugging Face TRL 사용)
from trl import DPOTrainer
...
DPO는 정적 데이터셋 (Static dataset) 상에서 단일 학습 루프 (Single training loop)로 실행됩니다. 보상 모델도, PPO도, 학습 중 온라인 생성 (Online generation)도 없습니다. 이 덕분에 비용이 극적으로 저렴해지며, 대부분의 벤치마크에서 유사한 결과를 얻기 위해 RLHF보다 약 3배 적은 연산량 (Compute)이 소요됩니다.
트레이드오프 (Tradeoff): DPO는 오프라인 방식 (Offline method)입니다. 학습 중에 모델 자체의 생성물을 전혀 보지 못하므로, 일반화되지 않는 선호도에 대해 과최적화 (Over-optimize)될 수 있습니다. 또한 쌍체 선호 데이터 (Pairwise preference data)가 필요합니다. 즉, 프롬프트당 하나는 다른 하나보다 명시적으로 선호되는, 두 개의 출력이 필요합니다.
IPO (Identity Preference Optimization)
DeepMind의 Azar et al. (2023)은 DPO의 미묘한 문제를 발견했습니다. DPO의 암시적 보상 매개변수화 (Implicit reward parameterization)로 인해 규제 항 (Regularization term)이 정책을 의도한 대로 제약하지 못할 수 있다는 점입니다. IPO는 보상 매개변수화를 항등 매핑 (Identity mapping)으로 대체하여 더 강력한 규제를 제공합니다.
IPO 손실 함수는 다음과 같습니다:
L_IPO = E[(log pi(y_w|x)/pi_ref(y_w|x) - log pi(y_l|x)/pi_ref(y_l|x) - 1/(2*tau))^2]
여기서 $\tau$는 정규화 파라미터 (regularization parameter)입니다. 제곱 손실 (squared loss)은 로그 가능도 차이 (log-likelihood gap)가 목표 마진 (target margin)에서 너무 멀어질 때 정책 (policy)에 직접적으로 페널티를 부여합니다. 이는 더 깔끔한 최적화 지형 (optimization landscape)을 제공하며, 추론 (inference) 시점에 더 잘 보정된 확률 (better-calibrated probabilities)을 제공합니다.
# IPO 손실 (개념적)
# margin = (log_ratio_w - log_ratio_l)
# loss = (margin - 1/(2*tau))^2 # margin < 1/(2*tau)일 때, 그 외에는 0
IPO는 DPO와 동일한 쌍체 데이터 (pairwise data)를 필요로 합니다. 이는 실제 적용 시 약간 더 안정적인데, 특히 DPO가 주석가(annotator) 간의 불일치를 증폭시킬 수 있는 노이즈가 있는 선호도 데이터셋 (preference datasets)에서 더욱 그렇습니다.
KTO (Kahneman-Tversky Optimization)
Contextual AI의 Ethayarajh 등(2024)은 다른 접근 방식을 취했습니다. 전망 이론 (prospect theory; Kahneman and Tversky, 1979)에서 영감을 받아, 이들은 쌍체 선호도 (pairwise preferences) 대신 샘플별 이진 피드백 (per-sample binary feedback) — 즉, '좋아요' 또는 '싫어요' — 를 사용하는 정렬 (alignment) 방법을 구축했습니다.
KTO 손실은 이득 (gains; 선택된 응답)과 손실 (losses; 거부된 응답)을 비대칭적으로 처리합니다:
L_KTO = -E[w(y) * (1 - sigmoid(beta * (log pi(y|x)/pi_ref(y|x) - z_ref)))]
여기서 $w(y)$는 선택된 예시와 거부된 예시에 대해 서로 다른 가중치 인자 (weighting factor)이며, $z_{\text{ref}}$는 데이터에서 유도된 참조 값 (reference value)입니다. 핵심적인 비대칭성은 행동 경제학 (behavioral economics)에서 입증된 인간의 손실 회피 (loss aversion)를 반영하여, 손실 (거부된 출력)이 이득 (선택된 출력)보다 더 무겁게 가중치가 부여된다는 점입니다.
# Hugging Face TRL의 KTO 트레이너
from trl import KTOTrainer
...
KTO의 주요 장점은 데이터 효율성 (data efficiency)입니다. 많은 프로덕션 시스템은 쌍체 비교 (pairwise comparison)를 기록하지 않고도 출력별 사용자 피드백 (클릭, 좋아요, 플래그 등)을 로그로 남깁니다. KTO는 이러한 신호(signal)를 통해 직접 학습할 수 있습니다. 트레이드오프(tradeoff)는 주석된 예시당 샘플 효율성 (sample efficiency)이 낮다는 점입니다. 쌍체 비교는 이진 레이블 (binary labels)보다 주석 하나당 더 많은 정보를 담고 있습니다.
비교: 어떤 상황에 어떤 방법을 사용할 것인가
| 차원 (Dimension) | RLHF | DPO | IPO | KTO |
|---|---|---|---|---|
| 필요 데이터 (Data required) | 쌍체 비교 (Pairwise comparisons) | 쌍체 비교 (Pairwise comparisons) | 쌍체 비교 (Pairwise comparisons) | 이진 레이블 (Binary (good/bad)) |
| ... |
의사 결정 흐름(decision flow)은 다음과 같습니다:
flowchart TD
A[쌍체 선호도 데이터가<br/>있습니까?] -->|Yes| B{보상 모델 (reward model)<br/>및 PPO를 위한<br/>예산이 있습니까?}
A -->|No / 이진 피드백만 있음| C[KTO 사용]
...
흔한 실수 (Common pitfalls)
이진 데이터에 DPO 실행하기. DPO는 쌍체 선호도(pairwise preferences), 즉 동일한 프롬프트에 대한 선택된 출력(chosen output)과 거절된 출력(rejected output)을 필요로 합니다. 만약 서로 관련 없는 좋은 출력과 나쁜 출력을 쌍으로 결합한다면, DPO는 임의적인 결정 경계(decision boundaries)를 학습하게 됩니다. 이진 데이터의 경우에는 KTO를 사용하세요.
참조 모델 (reference model) 무시하기. DPO, IPO, KTO는 모두 고정된 참조 모델(보통 SFT 체크포인트)을 필요로 합니다. 손실 함수(loss)는 현재 정책(policy)과 참조 모델 사이의 로그 비율(log-ratio)에 의존합니다. 만약 다른 참조 모델을 사용한다면, 최적화 대상(optimization target)이 조용히 변하게 됩니다. 항상 데이터를 생성할 때 사용했던 것과 동일한 체크포인트를 사용하세요.
SFT 건너뛰기. 이 방법들 중 그 어느 것도 가공되지 않은 사전 학습된 베이스 모델(pretrained base model)에서는 잘 작동하지 않습니다. 합리적인 완성을 생성할 수 있는 SFT 모델이 필요합니다. 정렬(alignment) 단계는 모델이 이미 일관되고 작업에 적합한 출력을 생성할 수 있다고 가정합니다. 즉, 모델에게 처음부터 텍스트 생성을 가르치는 것이 아니라, 기존의 행동을 조종(steering)하는 것입니다.
beta를 자유 매개변수로 취급하기. beta (또는 tau) 매개변수는 정렬된 정책이 참조 모델로부터 얼마나 멀어질 수 있는지를 제어합니다. beta가 너무 높으면 정렬 효과가 나타나지 않습니다. beta가 너무 낮으면 모델이 일반적인 능력을 잃어버립니다 (치명적 망각 (catastrophic forgetting)). 체계적으로 탐색(sweep)하세요. 전체 실행을 확정하기 전에 최소 3개의 값(예: 0.01, 0.1, 0.5)을 검증 세트(validation set)에서 테스트하십시오.
RLHF가 항상 승리한다고 가정하는 경우. 많은 벤치마크에서 DPO는 훨씬 적은 연산량(compute)으로 RLHF와 대등하거나 이를 능가합니다. RLHF의 주요 장점은 PPO 과정 중 발생하는 온라인 생성(online generation)으로, 이는 학습 데이터에 존재하지 않는 새로운 고보상(high-reward) 출력을 발견할 수 있다는 점입니다. 이미 대표적인 데이터셋을 보유하고 있는 대부분의 프로덕션 유스케이스(production use cases)에서는 DPO/IPO/KTO가 더 나은 선택입니다.
사용하지 말아야 할 때
선호도 예시(preference examples)가 수백 개 미만이라면 이 방법들을 사용하지 마십시오. 그 정도 규모에서는 신호 대 잡음비(signal-to-noise ratio)가 너무 낮습니다. 최소 500~1,000개의 예시를 수집하십시오. 신뢰할 수 있는 결과를 위해서는 5,000개 이상을 권장합니다.
예산이 제한적이거나 4주 이내의 일정으로 배포해야 한다면 RLHF를 사용하지 마십시오. 하이퍼파라미터 튜닝(hyperparameter tuning)과 보상 모델(reward model) 디버깅을 포함하는 3단계 파이프라인(SFT, 보상 모델, PPO)은 해당 방식에 익숙하지 않은 팀의 경우 통상적으로 2~3개월이 소요됩니다.
데이터가 쌍체 구조(pairwise structure) 없이 출력당 이진(binary) 피드백 형태라면 DPO나 IPO를 사용하지 마십시오. 관련 없는 출력들로부터 쌍(pair)을 인위적으로 만들어야 하며, 이는 노이즈를 유발합니다. 대신 KTO를 사용하십시오.
깨끗한 쌍체 선호도(pairwise preferences) 데이터가 있고 DPO를 수행할 충분한 연산량이 있다면 KTO를 사용하지 마십시오. 쌍체 비교(pairwise comparisons)는 예시당 더 많은 정보를 담고 있으므로, DPO가 더 적은 총 주석(annotations)으로 더 빠르게 수렴할 것입니다.
정렬된 모델을 능력 벤치마크(capability benchmarks)로 평가하는 과정을 생략하지 마십시오. 모든 정렬 방법은 안전성을 위해 어느 정도의 일반적인 능력을 희생합니다. 만약 정렬된 모델이 SFT 체크포인트 대비 MMLU에서 5% 하락했다면, 과도하게 규제(over-regularized)되었을 가능성이 높습니다. 정렬 전후에 MMLU, HellaSwag, 그리고 귀하의 도메인에 특화된 태스크를 실행하십시오.
요약 (TL;DR)
- RLHF는 학습된 보상 모델 (Reward Model)과 PPO 최적화를 사용합니다. 가장 비용이 많이 들지만 온라인 탐색 (Online Exploration)을 지원합니다. 컴퓨팅 예산이 충분하고 복잡성을 관리할 수 있는 팀이 있는 경우에 사용하십시오.
- DPO는 보상 모델을 제거하고 정적인 선호도 쌍 (Preference Pairs)에 대해 폐쇄형 손실 (Closed-form Loss)을 최적화합니다. 가장 단순하고 저렴합니다. 컴퓨팅 자원이 제한적일 때 깨끗한 쌍체 데이터 (Pairwise Data)가 있다면 사용하십시오.
- IPO는 DPO에 항등 정규화 (Identity Regularization)를 추가하여 노이즈가 있는 선호도에 대해 더 안정적인 학습을 생성합니다. 주석 (Annotation) 품질이 일관되지 않을 때 사용하십시오.
- KTO는 쌍체 비교 (Pairwise Comparison) 대신 개별 예시에 대한 이진 피드백 (Good/Bad)을 사용하여 작동합니다. 명시적인 선호도 쌍 없이 프로덕션 로그만 있는 경우에 사용하십시오.
- 네 가지 방법 모두 강력한 SFT 베이스 모델, 동결된 참조 모델 (Reference Model), 그리고 최소 수백 개의 예시가 필요합니다. 네 가지 방법 모두 능력 퇴보 (Capability Regression)의 위험이 있으므로, 정렬 전후에 표준 벤치마크에서 평가하십시오.
다음 포스트
쌍체 선호도 데이터 (Pairwise Preference Data)는 정렬을 위한 골드 스탠다드(Gold Standard)이지만, 이를 대규모로 수집하는 것은 비용이 많이 들고 주석가 간의 일치도 (Annotator Agreement)가 낮은 경우가 많습니다. 다음 시간에는 샘플링 전략, 주석가 간 일치도 지표, 그리고 주석 파이프라인이 모델을 조용히 오염시키고 있는지 감지하는 방법 등 선호도 데이터셋을 구축하고 유지 관리하는 방법에 대해 알아보겠습니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기