5. PPO와 RLHF — 멀리 가지 않게 묶다

보상 모델: 사람의 쌍비교를 점수로 바꾼다

수학 문제라면 채점기가 있다. 하지만 "이 이메일을 더 정중하게 고쳐줘"의 점수는? 사람이 모든 응답에 점수를 매겨 줄 수는 없고, 매겨 달라고 해도 사람마다, 날마다 기준이 흔들린다.

역사: 점수 대신 둘 중 하나를 고르게 하다

보상을 식으로 적기 어려운 일을 사람의 판단으로 가르치려던 크리스티아노(Paul Christiano)와 동료들(OpenAI·DeepMind, 2017)은 사람에게 점수를 매기게 하지 않았다. 로봇 시뮬레이션과 아타리 게임을 하는 에이전트의 1~2초짜리 영상 두 개를 보여 주고, 어느 쪽이 나은지만 고르게 했다. 논문은 그 까닭을 이렇게 적었다: 사람에게서 일관된 절대 점수를 받기보다 일관된 비교를 받기가 훨씬 쉬웠다. 이 비교로 보상 모델을 학습하고 그 점수로 강화학습을 돌리자, 보상을 식으로 쓰기 어려운 동작도 배웠다. 시뮬레이션 속 외다리 로봇(호퍼)의 뒤공중제비는 한 시간이 안 걸린 사람의 비교 900번으로 가르쳤다.

언어모델에는 2020년 스티넌(Nisan Stiennon)과 동료들(OpenAI)의 요약 과제로 넘어왔다. 비교라고 사람끼리 늘 같은 쪽을 고르지는 않았다. 같은 요약 쌍을 두고 연구자끼리 같은 쪽을 고른 비율은 73% 안팎이었다. 2022년 오우양(Long Ouyang)과 동료들(OpenAI)의 InstructGPT(지시를 따르도록 다듬은 GPT-3)는 라벨러 약 40명에게 응답들의 순위를 매기게 해 비교를 모았고, 지금 널리 쓰는 세 단계 파이프라인의 본보기가 되었다. 사람들은 파라미터가 13억 개인 InstructGPT의 답을, 100배 넘게 큰 1,750억 개짜리 GPT-3의 답보다 더 좋아했다.

RLHF의 앞 두 단계

InstructGPT가 확립한 답은 사람의 선호를 학습한 보상 모델이다. 전체 파이프라인은 세 단계다.

1단계 — SFT. SFT(supervised fine-tuning — 모범 답을 정답 삼아 지도학습으로 다듬기)는 사람이 직접 쓴 모범 응답으로 프리트레인 모델(대량의 글로 다음 토큰 맞히기만 학습한 모델)을 지도학습한다. 이것이 이후 모든 단계의 출발점 πSFT\pi_\text{SFT}이자 레퍼런스 πref\pi_\text{ref}(고정해 두는 비교 기준)가 된다.

2단계 — 보상 모델(RM) 학습. 한 프롬프트에 대해 SFT 모델이 만든 응답 여러 개(InstructGPT에선 4–9개)를 사람이 순위 매긴다. 순위에서 쌍 (yw,yl)(y_w, y_l)을 뽑아, 언어모델 끝에 스칼라 출력 머리를 단 보상 모델 rψ(x,y)r_\psi(x, y)를 학습한다. (비평가 VϕV_\phi와 구분하려고 보상 모델의 파라미터는 ψ\psi(프사이)로 쓴다.)

LRM=−log⁡σ(rψ(x,yw)−rψ(x,yl))\textcolor{#d62728}{\mathcal{L}_\text{RM}} = -\log \sigma\big(\textcolor{#d9670b}{r_\psi}(\textcolor{#0093b8}{x}, \textcolor{#e000a5}{y_w}) - \textcolor{#d9670b}{r_\psi}(\textcolor{#0093b8}{x}, \textcolor{#e000a5}{y_l})\big)
LRM보상 모델의 손실 (Bradley–Terry)rψ(x,y)보상 모델(파라미터 ψ)이 매긴 점수yw, yl사람이 고른 응답과 고르지 않은 응답 \small\begin{array}{ll} \textcolor{#d62728}{\mathcal{L}_\text{RM}} & \text{보상 모델의 손실 (Bradley–Terry)} \\ \textcolor{#d9670b}{r_\psi}(\textcolor{#0093b8}{x}, \textcolor{#1c9c60}{y}) & \text{보상 모델(파라미터 }\psi\text{)이 매긴 점수} \\ \textcolor{#e000a5}{y_w},\ \textcolor{#e000a5}{y_l} & \text{사람이 고른 응답과 고르지 않은 응답} \end{array}

“이긴 응답의 점수가 진 응답보다 높을수록 손실이 작다.” 시그모이드 안의 σ(rψ(x,yw)−rψ(x,yl))\sigma(\textcolor{#d9670b}{r_\psi}(\textcolor{#0093b8}{x}, \textcolor{#e000a5}{y_w}) - \textcolor{#d9670b}{r_\psi}(\textcolor{#0093b8}{x}, \textcolor{#e000a5}{y_l}))를 "사람이 yw\textcolor{#e000a5}{y_w}를 고를 확률"로 읽는다. 점수 차가 0이면 반반, 3이면 약 95%다. 손실은 그 확률에 −log를 씌운 것이다. 이렇게 두 점수의 차를 시그모이드에 넣어 이길 확률로 보는 쌍비교 모델을 Bradley-Terry 모델(줄여서 BT)이라 부르며, 1950년대 통계학에서 쓰던 것을 가져왔다. 예컨대 보상 모델이 순서를 거꾸로 매겨 진 응답의 점수가 1.5 더 높으면 손실은 −log⁡σ(−1.5)≈1.70-\log\sigma(-1.5) \approx 1.70으로 크다. 사람에게 절대 점수 대신 둘 중 어느 쪽이 나은지를 묻는 까닭은 앞의 역사에서 본 대로다.

점수 차 → 사람이 yw를 고를 확률 1 0.5 0 차 0 → 반반 차 3 → 0.95 점수 차 → 손실 −log σ(차) 4 2 0 차 −1.5 → 1.70 거꾸로 매김 바르게 매김 −4 −2 0 2 4 점수 차 = rψ(yw) − rψ(yl)
문제 7 — 떡볶이 블라인드 테스트

두 떡볶이 가게 A, B의 떡볶이를 가게 이름을 가리고 100번 비교시켰더니 A가 82번 이겼다. 가게마다 "맛 점수"를 하나씩 주고, A가 이길 확률을 σ(A의 점수 − B의 점수)로 본다. (가) 두 점수의 차는 얼마인가? (나) A의 점수는 몇 점인가?

선생님 (평상)
선생님
82번 이겼으면 두 가게의 점수를 어떻게 매기면 될까요?
김민준 (평상)
김민준
A는 0.82점, B는 0.18점 주면 되죠. 이긴 비율이 곧 점수니까요.
이서연 (평상)
이서연
그러면 점수 차가 0.64인데, σ(0.64)는 0.65쯤이야. 82%가 안 나와.
김민준 (당황)
김민준
아, 이길 확률이랑 점수가 다른 거예요?
이서연 (평상)
이서연
σ(차) = 0.82를 거꾸로 풀어야 해. 차 = ln(0.82/0.18) ≈ 1.52.
선생님 (질문)
선생님
좋아요. 그럼 (나), A는 몇 점이죠?
김민준 (평상)
김민준
1.52점이고 B는 0점… 아니다, B가 10점이고 A가 11.52점이어도 똑같이 82%네요. 차이만 정해지고 점수 자체는 못 정하네요.

정리 (가) σ(차)=0.82\sigma(\text{차}) = 0.82 를 풀면 차 =ln⁡(0.82/0.18)≈1.52= \ln(0.82/0.18) \approx 1.52. 이긴 비율을 그대로 점수로 쓰면 차가 0.64라 이길 확률이 65%밖에 안 된다. (나) 정할 수 없다. 두 점수에 같은 수를 더해도 이길 확률이 같으므로, 비교 기록은 점수의 차만 정한다.

문제 8 — 보상 모델에 +10

보상 모델이 쌍 (yw,yl)(\textcolor{#e000a5}{y_w}, \textcolor{#e000a5}{y_l})에 rw=2.0\textcolor{#d9670b}{r_w} = 2.0, rl=0.5\textcolor{#d9670b}{r_l} = 0.5를 준다. BT(Bradley-Terry) 손실을 구하시오. 이제 보상 모델 출력에 모두 +10+10을 더했다. 손실은 어떻게 되는가? 이 사실이 PPO 학습에 문제가 되는가?

김민준 (평상)
김민준
σ(2.0 − 0.5) = σ(1.5) ≈ 0.818, −log 하면 0.20이에요. +10 더하면 둘 다 12, 10.5니까 차이는 그대로 1.5. 손실도 그대로 0.20.
선생님 (평상)
선생님
그럼 보상 모델 점수 "2.0"이라는 숫자 자체에는 의미가 있을까요?
김민준 (평상)
김민준
없네요. 아까 떡볶이 가게처럼 차이만 정해지니까, 누가 2점이고 누가 12점인지는 학습이 정해주지 않아요.
선생님 (평상)
선생님
이 점수로 PPO를 돌리면 문제가 되나요?
이서연 (평상)
이서연
상수를 더해도 정확한 그래디언트는 안 바뀌잖아요. 그러니까 문제없어요.
선생님 (질문)
선생님
정확한 그래디언트는 그렇죠. 우리는 샘플로 추정하고 있는데요?
이서연 (생각)
이서연
아, 분산이요. 샘플 추정에선 상수가 크면 흔들림이 커졌어요. 그런데 비평가가 베이스라인을 빼주면, 비평가가 그 상수까지 같이 배우니까 상쇄돼요.
선생님 (미소)
선생님
그래요. 비평가가 없다면 조심해야 할 부분이에요. 실무에서 보상 모델 점수를 정규화하는 이유이기도 하고요.
이서연 (평상)
이서연
적분상수 같네요. 미분 정보만 주면 원함수는 상수만큼 정해지지 않는 것처럼, 쌍비교만 주면 점수는 상수만큼 정해지지 않아요.

정리 손실 −log⁡σ(1.5)≈0.20-\log\sigma(1.5) \approx 0.20, +10+10을 더해도 동일. BT 보상은 상수 이동에 대해 정해지지 않는다. 정확한 그래디언트엔 무해하지만 샘플 추정의 분산을 키우므로 베이스라인(비평가)이나 보상 정규화로 흡수한다.