Reward Models and Preference Data
마지막 수정:
RLHF의 reward는 사람이 매 step마다 직접 주지 않는다. 먼저 사람이 비교한 데이터를 모으고, 그 비교를 흉내 내는 reward model을 학습한다.
prompt
response A
response B
human label:
A가 B보다 좋다
이 데이터는 보통 chosen/rejected pair가 된다.
(prompt, chosen_response, rejected_response)
reward model이 하는 일
reward model은 prompt와 completion을 보고 scalar score를 낸다.
r(prompt, completion) -> score
학습 objective는 chosen score가 rejected score보다 높아지게 만드는 것이다.
score(chosen) > score(rejected)
그래서 reward model은 “정답 생성기”가 아니라 “이 답이 더 선호될 확률을 점수화하는 모델”에 가깝다.
Bradley-Terry 직관
두 답변의 점수 차이가 클수록 chosen이 더 선호될 확률이 커진다.
score(chosen) - score(rejected) 크게 양수
-> chosen이 더 좋다고 강하게 예측
score(chosen) - score(rejected) 0 근처
-> 둘 중 어느 쪽인지 애매함
loss는 이 차이를 키우는 방향으로 reward model을 업데이트한다.
reward model의 한계
human preference는 noisy하다.
사람마다 기준이 다르다
같은 사람도 다시 보면 다르게 고를 수 있다
긴 답변은 사실 확인 비용이 크다
안전성, 유용성, 간결성 기준이 충돌할 수 있다
또 reward model은 proxy objective다. 모델이 reward model의 약점을 찾아내면 실제 품질은 낮아지는데 reward만 높아질 수 있다.
reward model 이후
reward model을 만든 뒤에는 두 가지 길이 있다.
RLHF/PPO:
policy가 rollout 생성 -> reward model이 scoring -> policy gradient update
best-of-N / rejection sampling:
여러 답을 뽑고 reward model 점수가 높은 답만 선택하거나 SFT data로 사용
이후 DPO는 reward model을 명시적으로 학습하지 않고 preference pair에서 직접 policy objective를 만든다.
참고 자료
- OpenAI, Training language models to follow instructions with human feedback
- Anthropic, Training a Helpful and Harmless Assistant with Reinforcement Learning from Human Feedback
- 로컬 참고:
reference-books/rlhf-book/ch05-Reward-Modeling.md - 로컬 참고:
reference-books/AI engineering/ch02.md
확인
- reward model은 어떤 입력을 받아 어떤 출력을 내는가?
- chosen/rejected pair에서 학습 신호는 어디서 생기는가?
- reward model이 좋은 proxy가 아닐 때 어떤 문제가 생기는가?