RLHF 정렬 기술: 선호도 붕괴와 정규화 메커니즘
academic3/28/2026
reinforcementcs
2026년 3월 28일 토요일
## 핵심 원리
RLHF(인간 피드백 기반 강화 학습)는 대규모 언어 모델(LLM)이 인간의 선호도와 의도에 부합하도록 정렬하는 데 사용되는 핵심 기술입니다. 이 과정은 주로 세 단계로 진행됩니다.
첫째, **지도 학습 미세조정(Supervised Fine-Tuning, SFT)** 단계에서는 초기 대규모 언어 모델($\\pi_{base}$)을 소량의 고품질 인간 작성 데모 데이터에 대해 미세조정하여 기본적인 지시 따르기 능력과 유용한 응답 생성 능력을 학습시킵니다. 이 모델($\\pi_{SFT}$)은 이후 단계의 출발점이 됩니다.
둘째, **보상 모델(Reward Model, RM) 훈련** 단계에서는 인간 선호도 데이터를 수집하고 이를 기반으로 RM을 훈련합니다. $x$라는 특정 프롬프트에 대해 SFT 모델이 생성한 여러 응답 $y_i, y_j$를 인간이 비교하여 더 선호하는 응답을 선택합니다. 예를 들어, $y_w$가 선호되는 응답이고 $y_l$이 덜 선호되는 응답이라고 할 때, RM($r_\\phi$)은 이러한 비교 쌍을 학습하여 각 응답에 대한 스칼라 보상 점수를 부여하도록 훈련됩니다. 보상 모델은 대개 SFT 모델과 동일한 아키텍처를 가지지만 마지막 계층만 선형 변환으로 교체됩니다. RM 훈련의 목적 함수는 일반적으로 다음과 같은 이진 순위 손실(pairwise ranking loss)을 사용합니다:
$$ L_{RM}(\\phi) = - \\sum_{(x, y_w, y_l) \\in D} \\log(\\sigma(r_\\phi(x, y_w) - r_\\phi(x, y_l))) $$
여기서 $D$는 인간 선호도 데이터셋, $x$는 프롬프트, $y_w$는 선호되는 응답, $y_l$은 덜 선호되는 응답, $r_\\phi$는 파라미터 $\\phi$를 가진 보상 모델, $\\sigma$는 시그모이드 함수입니다. 이 손실 함수는 선호되는 응답의 점수가 덜 선호되는 응답보다 높도록 RM을 유도합니다.
셋째, **강화 학습(Reinforcement Learning, RL) 미세조정** 단계에서는 훈련된 RM을 보상 함수로 사용하여 SFT 모델($\\pi_{SFT}$)의 정책을 강화 학습 알고리즘(예: 근접 정책 최적화, PPO)으로 미세조정합니다. LLM($\\pi_\\theta$)은 RM으로부터 받는 보상을 최대화하도록 학습하며, 이때 원래 SFT 모델($\\pi_{SFT}$)의 분포에서 너무 멀리 벗어나지 않도록 KL 발산(Kullback-Leibler divergence) 페널티를 추가합니다. 이 KL 페널티는 모델이 '보상 해킹'(reward hacking)을 통해 비정상적인 응답을 생성하거나 기존의 유용한 능력을 잃는 것을 방지하는 역할을 합니다. PPO의 목적 함수는 다음과 같이 표현됩니다:
$$ L_{PPO}(\\theta) = \\mathbb{E}_{(x, y) \\sim D_{prompt}} \\left[ \\min \\left( \\frac{\\pi_\\theta(y|x)}{\\pi_{\\theta_{old}}(y|x)} A_t, \\text{clip}\\left(\\frac{\\pi_\\theta(y|x)}{\\pi_{\\theta_{old}}(y|x)}, 1-\\epsilon, 1+\\epsilon\\right) A_t \\right) - \\beta D_{KL}(\\pi_\\theta(\\cdot|x) || \\pi_{SFT}(\\cdot|x)) \\right] $$
여기서 $\\pi_\\theta$는 현재 LLM 정책, $\\pi_{\\theta_{old}}$는 업데이트 전 정책, $\\pi_{SFT}$는 초기 SFT 정책, $A_t$는 보상 모델 $r_\\phi(x,y)$에서 파생된 이점 함수(advantage function), $\\beta$는 KL 발산 계수, $\\epsilon$은 클리핑(clipping) 파라미터입니다. KL 발산 계수 $\\beta$의 값은 RLHF 과정의 안정성에 큰 영향을 미치며, 일반적으로 $0.01$에서 $0.2$ 사이의 값을 사용합니다. 너무 작으면 모델이 원래 정책에서 너무 많이 벗어날 수 있고, 너무 크면 보상 학습이 충분히 이루어지지 않습니다.
이 전체 과정은 요리사를 훈련하는 것에 비유할 수 있습니다. 먼저 요리사는 기본적인 레시피를 배웁니다(SFT). 다음으로, 여러 심사위원(인간 평가자)이 요리사의 다양한 요리를 맛보고 선호도를 비교하여 평가합니다(RM 훈련). 마지막으로 요리사는 심사위원의 피드백(RM 보상)을 바탕으로 새로운 요리법을 시도하고, 점차 심사위원의 입맛에 맞는 요리를 만들도록 기술을 연마합니다(RL 미세조정). 이때, KL 페널티는 요리사가 전통적인 요리법에서 너무 벗어나지 않도록 조절하는 역할을 합니다.
```reactflow
{"direction":"LR","nodes":[{"id":"sft","label":"SFT 모델 훈련 ($\\\\pi_{base} \\to \\\\pi_{SFT}$)","position":{"x":0,"y":0}},{"id":"response_gen","label":"응답 생성 ($\\\\pi_{SFT}$)","position":{"x":250,"y":0}},{"id":"human_pref","label":"인간 선호도 비교 데이터 수집","position":{"x":500,"y":0}},{"id":"rm_train","label":"보상 모델(RM) 훈련 ($r_\\\\phi$)","position":{"x":750,"y":0}},{"id":"rl_finetune","label":"정책 모델(LLM) RL 미세조정 ($\\\\pi_\\\\theta$)","position":{"x":500,"y":200}},{"id":"aligned_llm","label":"정렬된 LLM","position":{"x":750,"y":200}}],"edges":[{"source":"sft","target":"response_gen","label":"초기 모델\