RLHF
좋은 답이 무엇인지 정답 하나로 적기 어려운 문제가 있습니다. 도움이 되는 답, 안전한 답, 사용자의 의도를 잘 따르는 답이 그렇습니다. 정확한 점수표를 만들기는 어려워도 사람에게 두 답을 보여주면 어느 쪽이 더 나은지는 비교적 쉽게 판단할 수 있습니다.
RLHF(Reinforcement Learning from Human Feedback)는 이 사람의 선호를 학습 신호로 이용해 모델의 행동을 조정하는 방법입니다. 출발점은 단순합니다. 언어모델을 더 크게 만들고 다음 토큰 예측을 더 잘하게 만드는 것만으로는, 사용자가 실제로 원하는 답을 따르는 능력까지 자동으로 보장되지 않습니다.
고전적인 RLHF 파이프라인은 먼저 좋은 답의 형태를 SFT로 가르치고, 사람의 선호 비교로 Reward Model을 만든 뒤, 그 보상을 최대화하도록 정책을 강화학습합니다. 이때 보상만 무작정 좇으면 원래 모델의 분포에서 지나치게 멀어질 수 있어, reference model과의 차이를 제한하는 KL penalty 같은 장치도 함께 사용합니다.
세 단계가 각각 무엇을 학습하고 왜 이 순서로 연결되는지, 그리고 보상을 높이는 것만으로는 왜 충분하지 않은지를 살펴봅니다.
1장. RLHF가 푸는 문제
정답을 적을 수 없는 품질. 파이썬으로 정렬 함수를 짜라는 요구에는 정답이 있습니다. 그런데 다음 같은 것들은 정답 문장을 적을 수가 없습니다.
"친절하게 설명해라"
"위험한 요청은 거절해라"
"장황하지 않게 답해라"
"모르면 모른다고 해라"이런 성향을 SFT로도 어느 정도 가르칠 수 있지만, 좋은 답을 매번 직접 작성하는 것은 비싸고 미묘한 품질 차이를 대량으로 표현하기 어렵습니다. 그래서 '정답 문장 작성' 대신 답변 간 선호 비교를 학습 신호로 사용하는 방법이 중요해졌습니다.
절대 평가 대신 상대 비교. 이 답과 저 답 중 어느 쪽이 나은지는 사람이 빠르고 일관되게 판단합니다. 좋은 답을 직접 쓰는 것보다 훨씬 쉽습니다. 생성은 어렵고 평가는 쉽다는 비대칭이 RLHF의 출발점입니다.
논문의 진단. InstructGPT 초록의 첫 문장입니다.
언어 모델을 키운다고 본질적으로 사용자 의도를 더 잘 따르게 되지는 않는다. 예를 들어 대형 언어모델은 사실이 아니거나, 유해하거나, 그냥 사용자에게 도움이 안 되는 출력을 낼 수 있다. 다시 말해 이 모델들은 사용자와 정렬되어 있지 않다.
능력과 정렬은 다른 축이고, 스케일링은 앞쪽만 올린다는 이야기입니다.
정렬이 크기를 이긴 대목입니다.
사람 평가에서 13억 파라미터 InstructGPT 모델의 출력이 1750억 파라미터 GPT-3의 출력보다 선호됐다. 파라미터가 100배 적은데도 그렇다.
정렬이 크기를 이길 수 있다는 것을 보인 실험이고, RLHF가 표준이 된 이유이기도 합니다.
2장. 전체 파이프라인
파이프라인은 세 단계입니다.
① SFT (지도 파인튜닝)
사람이 쓴 시범 답변으로 기본 지시 따르기를 가르친다
│
▼
② 보상 모델 학습
사람이 매긴 답변 순위로 무엇이 좋은 답인가를 학습한다
│
▼
③ 강화학습 (PPO)
보상 모델의 점수를 최대화하도록 정책 모델을 학습한다논문의 서술은 다음과 같습니다.
라벨러가 작성한 프롬프트와 OpenAI API로 들어온 프롬프트에서 시작해, 원하는 모델 행동의 라벨러 시범 데이터셋을 모아 GPT-3를 지도학습으로 미세조정한다. 그 다음 모델 출력의 순위 데이터셋을 모아, 이 지도학습 모델을 사람 피드백 기반 강화학습으로 추가 미세조정한다.
단계마다 필요한 데이터가 다릅니다.
| 단계 | 필요한 데이터 |
|---|---|
| ① SFT | 프롬프트 + 사람이 쓴 모범 답변 |
| ② 보상 모델 | 프롬프트 + 여러 답변 + 사람이 매긴 순위 |
| ③ PPO | 프롬프트만. 답변은 모델이 생성 |
세 번째 PPO rollout마다 사람이 직접 점수를 매기는 것은 아닙니다. 앞 단계에서 사람 선호로 학습한 reward model이 반복적으로 점수를 제공하기 때문에 online policy optimization을 대량으로 돌릴 수 있습니다. 즉 human feedback은 사라지는 것이 아니라 reward model에 압축되어 들어갑니다.
3장. SFT
하는 일. 사람이 쓴 시범 답변으로 파인튜닝합니다. base 모델은 다음 토큰을 예측할 뿐이라 질문을 주면 비슷한 질문을 이어 쓰기도 하는데, SFT가 질문에는 답을 한다는 형식을 가르칩니다.
첫 단계인 이유. 2단계에서 보상 모델을 학습하려면 비교할 답변 후보가 필요합니다. base 모델이 내놓는 답은 형식이 제각각이라 순위를 매기기 어렵습니다. SFT가 출발선을 맞춰 줍니다.
SFT만으로 부족한 이유. 시범 답변은 좋은 답을 사람이 직접 써야 해서 비쌉니다. 게다가 이것보다 저것이 낫다는 신호가 없어, 무엇이 더 나은지는 가르치지 못합니다.
4장. 보상 모델
순위에서 점수로. 사람에게 답변 여러 개를 주고 순위를 매기게 한 뒤, 그 순위를 재현하는 모델을 학습합니다.
입력 프롬프트 + 답변
출력 스칼라 점수 하나절대 점수 대신 쌍 비교. 이 답변은 7점이라는 판단은 사람마다 기준이 달라 흔들리지만, A가 B보다 낫다는 판단은 훨씬 일관됩니다. 평가자 간 일치도가 높아서 절대 점수 대신 쌍 비교를 모읍니다.
사람을 대신하는 채점자. 보상 모델은 사람을 대신해 무한히 채점하는 대리인입니다. 사람이 만 개를 라벨링하면 보상 모델은 수백만 개를 채점할 수 있습니다.
병목이 되는 지점. 보상 모델이 틀리면 그 틀림이 그대로 증폭됩니다. 그리고 보상 모델은 학습 분포 밖에서 약해서, 본 적 없는 형태의 답변에 엉뚱한 점수를 줍니다. 5장의 보상 해킹이 여기서 나옵니다.
5장. 강화학습과 KL 페널티
PPO. 정책 모델이 답변을 생성하면 보상 모델이 점수를 매기고, 그 점수를 높이도록 정책을 갱신합니다. 알고리즘은 2017년 강화학습 논문에서 온 PPO입니다.
보상 해킹. 보상 모델은 완벽하지 않고 허점이 있습니다. 정책 모델이 그 허점을 찾아냅니다.
특정 문구를 반복하면 점수가 오른다
답을 길게 쓰면 점수가 오른다
특정 형식을 흉내 내면 점수가 오른다보상 점수는 치솟는데 실제 품질은 무너집니다. 이것을 보상 해킹이라 부릅니다.
KL 페널티의 역할. SFT 모델에서 너무 멀어지지 말라는 제약을 손실에 더합니다. 보상을 올리되 원래 모델의 분포에서 크게 벗어나지 않게 묶어 두는 장치입니다.
KL 계수를 크게 하면 안전하지만 개선이 적다
KL 계수를 작게 하면 개선이 크지만 망가질 위험이 크다RLHF 튜닝에서 가장 민감한 하이퍼파라미터입니다.
이 단계에서는 네 모델이 동시에 돕니다.
| 모델 | 역할 |
|---|---|
| 정책 모델 | 학습 대상 |
| 참조 모델 | KL 계산용. SFT 모델을 고정해 둠 |
| 보상 모델 | 점수 매기기 |
| 가치 모델 | PPO 의 advantage 계산용 |
이 때문에 PPO 기반 RLHF는 단순 SFT보다 메모리와 연산 구조가 복잡합니다. 다만 '모델이 네 개니 메모리가 정확히 네 배'라고 계산하면 안 됩니다. weight sharing, PEFT, optimizer sharding, offload, reward/value 모델 크기에 따라 실제 메모리는 크게 달라집니다. 이후 DPO는 명시적 reward model과 PPO rollout loop를 제거했고, GRPO는 PPO 계열 online RL에서 learned value model을 없애는 방향으로 비용을 줄였습니다.
6장. 계보
여기까지의 발전 흐름입니다.
| 시기 | 발전 |
|---|---|
| 2017-06 | Deep RL from Human Preferences. 선호로 보상을 학습하는 틀 |
| 2017-07 | PPO. RLHF가 쓰게 될 강화학습 알고리즘 |
| 2022-03 | InstructGPT. LLM에 3단계 RLHF를 적용. 1.3B가 175B를 이김 |
| 2022-04 | HH-RLHF. helpful과 harmless를 함께 학습 |
| 2022-12 | Constitutional AI. 사람 라벨 없이 원칙으로 무해성 학습 |
| 2023-05 | DPO. 보상 모델과 PPO를 걷어냄 |
| 2024-02 | GRPO. 가치 모델을 걷어냄 (DeepSeekMath) |
DPO와 GRPO는 같은 자리를 대체하는 방법이 아닙니다. DPO는 chosen/rejected 같은 고정 preference pair에서 직접 policy를 학습하는 offline preference optimization입니다. 명시적인 reward model 학습과 PPO rollout loop가 없어 구현이 단순합니다. 반면 GRPO는 같은 prompt에서 여러 completion을 online으로 생성하고 reward를 비교해 policy를 업데이트합니다.
DPO
Prompt + Chosen + Rejected
↓
preference objective
↓
Policy update
GRPO
Prompt → 여러 completion 생성
↓
reward / verifier / environment 평가
↓
그룹 상대 점수로 advantage 구성
↓
Policy update
현재 TRL의 GRPOTrainer는 일반 reward 함수뿐 아니라 tool 호출과 stateful environment rollout도 지원합니다. 따라서 reasoning이나 agent 학습에서 실행 결과를 reward로 얻을 수 있는 경우 GRPO 같은 online RL이 자연스럽게 연결됩니다. 사람 preference pair가 충분히 준비돼 있고 online 환경이 필요 없다면 DPO 계열이 더 단순할 수 있습니다.
LLM 이전의 선호 학습. 2017년 Deep RL from Human Preferences가 원형입니다. 로봇 제어 같은 영역에서 사람이 둘 중 나은 것을 고르면 그것으로 보상 함수를 학습하는 틀을 세웠고, InstructGPT는 이것을 언어 모델에 옮긴 것입니다.
Constitutional AI. Anthropic 논문의 요지입니다.
유해한 출력을 식별하는 사람 라벨 없이 자기개선으로 무해한 AI 비서를 학습하는 방법을 실험한다. 유일한 사람 감독은 규칙 또는 원칙 목록을 통해 제공되며, 그래서 이 방법을 Constitutional AI라 부른다.
지도 단계
모델이 스스로 비판하고 수정한 응답으로 파인튜닝
RL 단계
모델이 두 샘플 중 나은 쪽을 판정해
그 AI 선호 데이터로 선호 모델을 학습RLHF의 H를 AI로 바꾼 것이라 RLAIF라고도 부릅니다.
7장. 실무에서 아는 것
alignment tax. 지시를 잘 따르게 되면서 일부 벤치마크 점수가 떨어질 수 있습니다. 이 대가를 alignment tax라 부르고, InstructGPT 논문도 사전학습 데이터를 섞어 완화하는 방법으로 이 절충을 다룹니다.
데이터 품질. 보상 모델은 라벨러의 선호를 학습합니다. 라벨러가 장황한 답을 선호하면 모델도 장황해집니다. 모델이 왜 이렇게 답하는지에 대한 답이 대개 그렇게 라벨링됐기 때문입니다.
길이 편향. 가장 흔한 실패입니다. 사람은 긴 답변을 더 좋게 평가하는 경향이 있고, 보상 모델이 그것을 학습하면 정책 모델이 답을 계속 늘립니다. 길이 정규화, 길이 페널티, 라벨링 지침 명시로 대응합니다.
직접 돌리는 경우. 고전적인 SFT → RM → PPO 전체 파이프라인은 데이터 수집과 online rollout 비용이 크고 구현도 복잡합니다. 그래서 목적에 따라 SFT + DPO 계열, verifier reward + GRPO 계열처럼 더 단순하거나 자동화된 post-training recipe를 선택하는 경우가 많습니다.
그래도 고전적 RLHF를 이해해야 하는 이유는 reward model, reference policy, KL 제약, reward hacking 같은 문제가 이후 방법의 설계 배경을 그대로 설명해 주기 때문입니다.
8장. 정리
RLHF의 핵심은 정답 하나로 쓰기 어려운 품질을 사람의 상대 선호로 표현하고 이를 policy update에 연결하는 것입니다. InstructGPT는 SFT, reward model, PPO의 3단계를 대표적으로 보여줬고 reference policy와의 KL 제약으로 과도한 policy drift를 막았습니다. 이후 DPO와 GRPO는 이 구조의 서로 다른 비용과 복잡성을 줄이는 방향으로 발전했습니다.
RLHF 성능을 볼 때는 '일반 능력'과 '사람이 선호하는 행동'을 구분해야 합니다. Reward model 역시 객관적 정답을 아는 모델이 아니라 라벨러와 가이드라인의 선호를 근사합니다. InstructGPT의 1.3B 대 175B 결과도 일반 능력의 우열이 아니라 사람 평가에서 어느 출력이 더 선호됐는지를 보여준 결과입니다.
용어 정리
| 용어 | 한 줄 뜻 |
|---|---|
| RLHF | 사람의 선호 비교로 보상을 학습해 모델을 정렬하는 방법 |
| 정렬 (alignment) | 모델 출력을 사용자 의도와 안전 기준에 맞추는 것 |
| SFT | 사람이 쓴 모범 답변으로 지시 따르기를 가르치는 지도 파인튜닝 |
| 보상 모델 | 프롬프트와 답변을 받아 점수를 내는 모델. 사람 선호를 근사 |
| 쌍 비교 | 두 답변 중 어느 쪽이 나은지 고르게 하는 라벨링 방식 |
| PPO | RLHF에서 쓰이는 강화학습 알고리즘 |
| 정책 모델 | 학습 대상인 LLM |
| 참조 모델 | KL 계산 기준으로 고정해 두는 SFT 모델 |
| 가치 모델 | PPO의 advantage 계산에 쓰이는 보조 모델 |
| KL 페널티 | 원래 모델에서 너무 멀어지지 않게 묶는 제약 |
| 보상 해킹 | 보상 모델의 허점을 파고들어 점수만 올리는 현상 |
| alignment tax | 정렬 학습으로 일부 능력이 떨어지는 대가 |
| 길이 편향 | 긴 답변을 선호하는 경향이 학습되어 답이 장황해지는 문제 |
| Constitutional AI (RLAIF) | 사람 라벨 대신 원칙과 AI 판정으로 선호를 학습하는 방법 |
참고자료
- Training language models to follow instructions with human feedback (InstructGPT, arXiv 2203.02155). Figure 2 가 SFT, 보상 모델, PPO 세 단계를 한 장에 담은 도해다. ar5iv
- Deep reinforcement learning from human preferences (arXiv 1706.03741)
- Proximal Policy Optimization Algorithms (PPO, arXiv 1707.06347)
- Training a Helpful and Harmless Assistant with RLHF (arXiv 2204.05862)
- Constitutional AI: Harmlessness from AI Feedback (arXiv 2212.08073)
- Direct Preference Optimization (arXiv 2305.18290)
- DeepSeekMath: Pushing the Limits of Mathematical Reasoning (GRPO, arXiv 2402.03300)
- Hugging Face TRL, GRPOTrainer
'LLM > Training' 카테고리의 다른 글
| LoRA와 QLoRA (0) | 2024.04.17 |
|---|---|
| SFT (Supervised Fine-Tuning) (0) | 2023.07.26 |
| LLM 스케일링 법칙 (Kaplan과 Chinchilla) (0) | 2022.10.06 |
댓글