검색
← 모듈 로드맵

정렬 개요와 RLHF 파이프라인: SFT · 보상 모델 · PPO · KL 페널티

강의 · 준전문가 · KAITABASE 정리

원제 · Alignment and the RLHF Pipeline

RLHF 세 단계와 보상 모델 손실 · KL 페널티 · 과최적화를 숫자로 익히는 정렬 입문 수업

먼저 알아야 할 것

언어 모델과 토큰 확률KL 발산PPO 개요지도 미세조정(SFT)

다루는 내용

정렬의 목표(도움 · 정직 · 무해)와 RLHF 파이프라인(SFT → 보상 모델 → PPO)을 다룹니다. 브래들리-테리 비교 손실과 토큰별 KL 페널티를 작은 숫자로 계산하고, InstructGPT가 보고한 데이터 규모 · 계수 · 결과를 정리합니다. 보상 해킹과 보상 과최적화(굿하트의 법칙)도 설명합니다.

해설

정렬 개요와 RLHF 파이프라인: SFT · 보상 모델 · PPO · KL 페널티

사전학습만 마친 언어 모델은 "인터넷 글의 다음 토큰"을 잘 맞힐 뿐, 사용자가 원하는 일을 해 주도록 배우지는 않았습니다. 정렬(alignment) 은 모델의 행동을 사람의 의도에 맞추는 작업이고, 그 대표 방법이 사람 피드백 강화학습(RLHF) 입니다. 이 수업에서는 RLHF의 세 단계(SFT → 보상 모델 → PPO)를 순서대로 보고, 보상 모델의 손실과 KL 페널티를 작은 숫자로 직접 계산합니다. 마지막으로 보상 모델을 너무 세게 최적화하면 생기는 '과최적화'를 다룹니다.

항목내용
참고 출처Hugging Face 블로그 「Illustrating RLHF」 · InstructGPT(arXiv 2203.02155) · 사람 선호로 하는 딥 강화학습(arXiv 1706.03741) · 보상 모델 과최적화의 스케일링 법칙(arXiv 2210.10760)
트랙 · 수준정렬 · 중급
이 수업이 다루는 범위정렬의 뜻(도움 · 정직 · 무해), SFT, 비교 데이터와 브래들리-테리 보상 모델, PPO 목적식과 KL 페널티, 사전학습 혼합(PPO-ptx), 보상 해킹 · 과최적화

들어가기 전에

한눈에 보기

  • 정렬이 무엇을 목표로 하는지(도움 · 정직 · 무해)와 왜 사전학습만으로는 부족한지 압니다.
  • RLHF 세 단계에서 각각 무엇을 학습하고 어떤 데이터가 필요한지 말할 수 있습니다.
  • 보상 모델의 비교 손실 −log⁡σ(rw−rl)-\log\sigma(r_w-r_l) 을 직접 계산합니다.
  • PPO 단계의 목적식에서 KL 페널티가 왜 들어가는지 숫자로 확인합니다.
  • 보상 모델은 '대리 지표'라서 너무 최적화하면 오히려 품질이 떨어진다는 점(굿하트의 법칙)을 이해합니다.

1. 정렬이란 무엇인가

직관(해설용 비유). 사전학습 모델은 도서관 책을 전부 읽은 신입 사원과 비슷합니다. 아는 것은 많지만 "이 메일 세 줄로 요약해 줘"라는 부탁에 요약 대신 메일을 이어 쓰거나, 그럴듯한 거짓을 말하거나, 위험한 부탁도 그대로 들어줄 수 있습니다. 정렬은 이 사원에게 일하는 방식 을 가르치는 과정입니다.

목표. InstructGPT 논문은 "사용자의 의도에 맞게 행동하는 모델"을 목표로 두고, Askell 외(2021)를 따라 모델이 도움이 되고(helpful), 정직하고(honest), 무해할(harmless) 때 정렬되었다고 봅니다. 흔히 HHH라고 줄여 부릅니다.

왜 어려운가. "좋은 답"은 손실 함수로 적기 어렵습니다. 요약이 좋은지, 말투가 적절한지, 거절이 지나친지는 사람이 보면 판단할 수 있지만 수식으로 정의하기는 어렵습니다. RLHF의 아이디어는 사람의 판단을 데이터로 모아 그것을 흉내 내는 '점수 모델'을 만들고, 그 점수를 높이도록 언어 모델을 학습 하는 것입니다.

2. RLHF 세 단계 한눈에

mermaid
flowchart LR
  P[사전학습 모델] --> S1[1단계 SFT<br/>사람이 쓴 모범 답 따라 하기]
  S1 --> G[SFT 모델로 답 여러 개 생성]
  G --> H[사람이 답 순위 매기기]
  H --> S2[2단계 보상 모델 학습<br/>순위 → 점수]
  S1 --> S3[3단계 PPO<br/>보상 ↑ · SFT에서 너무 멀어지지 않게]
  S2 --> S3
  S3 --> F[정렬된 모델]

InstructGPT가 공개한 데이터 규모를 보면 감이 옵니다. SFT용 프롬프트 약 1만 3천 개, 보상 모델용 약 3만 3천 개, PPO용 약 3만 1천 개였고, 라벨러는 약 40명이었습니다. 사전학습 데이터(수천억 토큰)에 비하면 아주 작은 양으로 행동을 크게 바꾼다는 점이 핵심입니다.

3. 1단계: 지도 미세조정(SFT)

무엇을 하나. 프롬프트와 사람이 직접 쓴 모범 답 쌍으로, 평범한 다음 토큰 예측 학습을 합니다. 모델이 "질문을 받으면 답한다"는 형식을 익힙니다. InstructGPT는 SFT를 16에폭 학습했습니다.

왜 SFT만으로 끝내지 않나. 모범 답을 쓰는 것은 비쌉니다. 그리고 사람은 좋은 답을 직접 쓰기보다 두 답 중 어느 쪽이 나은지 고르는 것 을 훨씬 쉽고 일관되게 합니다. 비교 판단을 쓰면 같은 비용으로 더 많은 신호를 모을 수 있습니다.

4. 2단계: 보상 모델 학습

직관. 심사위원의 취향을 흉내 내는 '채점기'를 만듭니다. 사람이 "A가 B보다 낫다"고 고른 쌍을 잔뜩 보여 주고, 채점기가 A에 더 높은 점수를 주도록 학습합니다.

구조. InstructGPT는 SFT 모델에서 마지막 어휘 출력층을 떼고, 프롬프트 + 답을 넣으면 숫자 하나(보상) 를 내도록 바꿨습니다. 보상 모델은 6B 크기만 썼는데, 175B 보상 모델 학습이 불안정할 수 있었다고 밝혔습니다.

손실(브래들리-테리 모델). 두 답의 점수 차이를 "사람이 이긴 쪽을 고를 로그 오즈"로 해석합니다.

P(yw≻yl∣x)=σ(rθ(x,yw)−rθ(x,yl)),L(θ)=− E[log⁡σ(rθ(x,yw)−rθ(x,yl))]P(y_w \succ y_l\mid x) = \sigma\big(r_\theta(x,y_w) - r_\theta(x,y_l)\big),\qquad \mathcal L(\theta) = -\,\mathbb E\big[\log\sigma\big(r_\theta(x,y_w)-r_\theta(x,y_l)\big)\big]
기호뜻
xx프롬프트
yw, yly_w,\ y_l사람이 더 낫다고 고른 답(win) · 덜 좋다고 본 답(lose)
rθ(x,y)r_\theta(x,y)보상 모델이 매긴 점수(숫자 하나)
σ(z)=1/(1+e−z)\sigma(z)=1/(1+e^{-z})시그모이드. 점수 차이를 0~1 확률로 바꿉니다

InstructGPT 식에는 앞에 1/(K2)1/\binom K2 가 붙습니다. 라벨러가 한 프롬프트에 답 KK 개(K=4K=4~99)를 순위로 매기면 비교 쌍이 (K2)\binom K2 개(4개면 6쌍, 9개면 36쌍) 나오는데, 이를 따로 섞으면 과적합이 생겨 한 프롬프트의 모든 쌍을 한 묶음 으로 학습했기 때문입니다.

숫자로 해 보기(해설용).

rwr_wrlr_l차이σ\sigma (맞힐 확률)손실 −log⁡σ-\log\sigma
2.00.51.50.8180.201
1.01.000.5000.693
0.52.0−1.50.1821.701
11.010.50.50.6220.474
  • 순서를 맞게 매길수록 손실이 작고, 거꾸로 매기면 크게 벌을 받습니다.
  • 첫 줄과 넷째 줄을 보면 점수의 절대 크기는 상관없고 차이만 중요합니다. 그래서 InstructGPT는 RL 전에 사람 모범 답의 평균 점수가 0이 되도록 보상에 편향을 더해 정규화했습니다.
  • rwr_w 에 대한 기울기는 −(1−σ)-(1-\sigma) 입니다. 첫 줄은 −0.182-0.182, 셋째 줄은 −0.818-0.818 로, 틀리게 매긴 쌍일수록 크게 고칩니다(경사하강법이 rwr_w 를 올리는 방향).

5. 3단계: PPO로 보상 최대화하기

환경 설정. InstructGPT는 이 단계를 '밴딧 환경'으로 봅니다. 프롬프트 하나를 주면 모델(정책)이 답을 쓰고, 보상 모델이 점수를 매기면 에피소드가 끝납니다. 이 점수를 높이도록 PPO로 정책을 업데이트합니다.

문제: 채점기 속이기. 보상 모델은 사람의 '흉내'일 뿐이라 허점이 있습니다. 정책이 점수만 쫓으면 사람이 보기엔 이상하지만 채점기는 좋아하는 답(예: 특정 표현 반복, 지나치게 긴 답)을 찾아낼 수 있습니다. 이를 보상 해킹(reward hacking) 이라 부릅니다.

해결: KL 페널티. 정책이 출발점(SFT 모델)에서 너무 멀어지지 않게 벌점을 줍니다. InstructGPT의 목적식(사전학습 항을 뺀 부분)은 다음과 같습니다.

objective(ϕ)=E(x,y)∼πϕRL[rθ(x,y)−βlog⁡πϕRL(y∣x)πSFT(y∣x)]\text{objective}(\phi) = \mathbb E_{(x,y)\sim \pi_\phi^{RL}}\Big[r_\theta(x,y) - \beta\log\frac{\pi_\phi^{RL}(y\mid x)}{\pi^{SFT}(y\mid x)}\Big]
기호뜻
πϕRL\pi_\phi^{RL}지금 학습 중인 정책(언어 모델)
πSFT\pi^{SFT}기준 모델(1단계 결과, 고정)
log⁡πRLπSFT\log\frac{\pi^{RL}}{\pi^{SFT}}두 모델이 이 답을 얼마나 다르게 보는지. 기댓값이 KL 발산입니다
β\betaKL 벌점 세기. InstructGPT는 β=0.02\beta=0.02 를 썼습니다

InstructGPT는 이 벌점을 토큰마다 더했다고 밝힙니다. 가치 함수(value function)는 보상 모델로 초기화했습니다.

숫자로 해 보기(해설용). 답이 토큰 3개이고, 각 토큰 확률이 RL 모델 (0.5, 0.6, 0.9)(0.5,\ 0.6,\ 0.9), SFT 모델 (0.4, 0.3, 0.9)(0.4,\ 0.3,\ 0.9) 라 합시다.

  • 토큰별 로그 비: ln⁡(0.5/0.4)=0.223\ln(0.5/0.4)=0.223, ln⁡(0.6/0.3)=0.693\ln(0.6/0.3)=0.693, ln⁡(0.9/0.9)=0\ln(0.9/0.9)=0 → 합 0.9160.916
  • 보상 모델 점수가 2.02.0 이면 벌점 뒤 보상은 β=0.02\beta=0.02 에서 1.9821.982, β=0.1\beta=0.1 에서 1.9081.908, β=1\beta=1 이면 1.0841.084
  • 둘째 토큰처럼 SFT가 잘 안 쓰던 표현을 RL 모델이 두 배로 좋아하게 되면 벌점이 붙습니다. β\beta 가 크면 거의 움직이지 못하고, 작으면 채점기 쪽으로 멀리 갑니다.

PPO-ptx: 사전학습 혼합. RLHF 뒤 공개 NLP 벤치마크 성능이 떨어지는 '정렬 세금(alignment tax)'이 관찰되었습니다. InstructGPT는 PPO 기울기에 사전학습 데이터의 로그우도 기울기를 섞는 PPO-ptx로 이를 줄였고(계수 γ=27.8\gamma=27.8), KL 계수를 키우는 것보다 이 방법이 더 나았다고 보고합니다. 논문에서 'InstructGPT'라 하면 기본적으로 PPO-ptx 모델입니다.

결과(논문이 보고한 것). 라벨러 평가에서 1.3B InstructGPT의 출력이 175B GPT-3보다 선호되었습니다(파라미터가 100배 적음). 175B끼리는 InstructGPT가 GPT-3보다 85 ± 3%, 퓨샷 프롬프트를 쓴 GPT-3보다 71 ± 4% 선호되었습니다.

6. 보상 과최적화: 굿하트의 법칙

직관. "측정치가 목표가 되면 더는 좋은 측정치가 아니다"(굿하트의 법칙). 시험 점수만 올리라고 하면 문제 풀이 요령만 늘고 실력은 그대로일 수 있는 것과 같습니다.

측정해 본 연구. Gao 외(2022)는 사람 대신 큰 '정답(gold) 보상 모델'을 두고, 그 라벨로 학습한 '대리(proxy) 보상 모델'을 최적화하면서 정답 점수가 어떻게 변하는지 쟀습니다. 최적화 방법은 RL과 best-of-nn(답 nn 개를 뽑아 대리 점수가 가장 높은 것을 고름) 두 가지였습니다.

  • 정답 점수는 최적화 초기에 오르다가 어느 지점을 지나면 떨어집니다.
  • 출발 정책에서 얼마나 멀어졌는지를 d=DKL(π ∥ πinit)d=\sqrt{D_{KL}(\pi\,\|\,\pi_{init})} 로 두면, best-of-nn 은 R(d)=d(α−βd)R(d)=d(\alpha-\beta d), RL은 R(d)=d(α−βlog⁡d)R(d)=d(\alpha-\beta\log d) 꼴로 잘 맞았습니다. 계수는 보상 모델 크기에 따라 매끄럽게 변했습니다.
  • best-of-nn 의 KL은 log⁡n−n−1n\log n-\frac{n-1}{n} 으로 계산됩니다. n=4n=4 면 0.6360.636, n=16n=16 이면 1.8351.835, n=64n=64 면 3.1753.175 입니다(직접 계산).

실무 교훈. 보상 점수가 계속 오른다고 좋아지는 것이 아닙니다. 사람 평가나 별도 검증 세트로 실제 품질 을 함께 봐야 하고, KL 크기를 모니터링하며 멈출 지점을 정해야 합니다.

7. RLHF의 한계와 이후 흐름

  • 비용과 복잡도: 모델이 넷(정책 · 기준 · 보상 · 가치)이고 PPO 튜닝이 까다롭습니다 → 보상 모델과 RL을 없앤 DPO가 나왔습니다.
  • 사람 라벨의 한계: 라벨러 약 40명의 판단이 '모든 사용자'의 선호를 대표하지 않으며, 라벨러가 프롬프트를 쓴 사용자 본인이 아니라는 점을 InstructGPT도 한계로 적었습니다 → AI가 피드백을 주는 헌법적 AI · RLAIF.
  • 정답이 있는 문제: 수학 · 코드처럼 자동으로 채점되는 문제는 학습된 보상 모델 대신 검증기를 쓸 수 있습니다 → GRPO · 검증 가능한 보상.

연습 문제

  1. rw=0.3r_w=0.3, rl=1.1r_l=1.1 일 때 보상 모델 손실은? (σ(−0.8)≈0.310\sigma(-0.8)\approx0.310)
    • 풀이: −ln⁡0.310≈1.171-\ln 0.310\approx1.171 입니다. 순서를 거꾸로 매겨 손실이 큽니다.
  2. 라벨러가 답 5개를 순위로 매기면 비교 쌍은 몇 개?
    • 풀이: (52)=10\binom52=10 쌍입니다.
  3. 5절 예에서 RL 모델 확률이 SFT와 완전히 같다면 벌점 뒤 보상은?
    • 풀이: 로그 비가 모두 0이라 벌점이 0이고, 보상은 그대로 2.0입니다.
  4. 보상 모델 점수에 모두 +10을 더하면 손실은 어떻게 되나요?
    • 풀이: 차이 rw−rlr_w-r_l 이 그대로라 손실은 변하지 않습니다. 그래서 점수의 기준점을 따로 정규화합니다.

스스로 점검

  1. 사람에게 모범 답을 쓰게 하는 대신 비교를 시키는 이유는?
    • 답: 둘 중 나은 것을 고르는 판단이 직접 쓰는 것보다 싸고 일관되어, 같은 비용으로 더 많은 학습 신호를 얻을 수 있기 때문입니다.
  2. KL 페널티가 없으면 PPO 단계에서 어떤 일이 생길 수 있나요?
    • 답: 정책이 보상 모델의 허점을 파고들어(보상 해킹) 채점 점수는 높지만 사람이 보기엔 이상한 답을 내게 됩니다. 언어 능력도 SFT에서 멀어지며 망가질 수 있습니다.
  3. 보상 점수가 계속 올라가는데 실제 품질이 떨어지는 현상을 무엇이라 하나요?
    • 답: 보상 과최적화(굿하트의 법칙)입니다. 대리 지표인 보상 모델이 진짜 목표와 어긋나는 영역까지 최적화했기 때문입니다.

용어 정리

용어쉬운 뜻
정렬(alignment)모델 행동을 사람의 의도 · 가치에 맞추는 일
HHH도움이 되고 · 정직하고 · 무해한(helpful · honest · harmless)
RLHF사람 비교 판단으로 보상 모델을 만들고, 강화학습으로 그 보상을 높이는 방법
SFT(지도 미세조정)모범 답을 따라 쓰도록 하는 미세조정
보상 모델(RM)프롬프트와 답을 받아 점수 하나를 내는 채점 모델
브래들리-테리 모델점수 차이로 '어느 쪽이 이길 확률'을 표현하는 모델
KL 페널티정책이 기준 모델에서 너무 멀어지지 않게 하는 벌점
보상 해킹채점기의 허점을 파고들어 점수만 올리는 현상
정렬 세금정렬 뒤 다른 능력(벤치마크 성능)이 떨어지는 비용
best-of-nn답을 nn 개 뽑아 보상이 가장 높은 것을 고르는 방법

더 깊이 보려면

다음에 볼 것

라이선스

본문은 KAITABASE 자체 해설입니다. 숫자 예는 이 수업을 위해 만든 해설용 예이며 파이썬으로 검산했습니다. 논문 수치(데이터 규모, β=0.02\beta=0.02, γ=27.8\gamma=27.8, 선호율 등)는 각 원문에서 확인한 것만 옮겼습니다.

출처

AI 원리부터 이해하기 · 정렬 모듈

정렬 모듈 학습

이 글은 정렬 모듈의 학습 자료입니다. 전체 10개 자료 중 1번째입니다.

AI 기초 과정은 현재 진도 저장을 지원하지 않습니다.

출처·원문

원문 보기

요약만

본문 자체 작성 · 참고 자료 Hugging Face 블로그 · arXiv 원 논문