Reward Modeling
보상 모델링은 선호도 비교를 바탕으로 사람들이 평가하는 방식대로 AI 출력을 점수화하는 신경망을 학습시킵니다. Bradley-Terry 손실, 유형 및 위험을 다룹니다.
보상 모델링은 보상 모델이라고 하는 신경망을 학습시켜 사람들이 판단하는 방식대로 AI 시스템의 출력을 평가하는 기법입니다. 표준 강화 학습에서는 게임 점수처럼 환경이 보상을 제공합니다. 하지만 많은 목표에는 이와 같은 점수가 없습니다. 유용한 답변, 잘 구성된 이미지, 컵을 부드럽게 건네는 로봇의 동작은 쉽게 판단할 수 있지만 코드로 정의하기는 어렵습니다. 보상 모델은 사람의 피드백, 대개 두 출력 간의 비교를 통해 이러한 판단을 학습한 뒤 새로운 출력을 자동으로 평가하며, 사람이 하는 것보다 훨씬 빠르고 일관성 있게 처리합니다. 보상 모델은 인간 피드백 기반 강화 학습(RLHF)을 가능하게 하는 구성 요소이며, 후보 응답의 순위를 다시 매기고, 학습 데이터를 필터링하고, 모델을 평가하는 데에도 사용됩니다.
보상 모델 학습 방법#
학습 데이터는 비교 결과로 구성됩니다. 사람들은 모델의 프롬프트와 둘 이상의 응답을 보고 더 나은 응답을 선택합니다. OpenAI의 InstructGPT 연구에서는 레이블러가 프롬프트당 4~9개의 응답에 순위를 매겼고, 순위에 포함된 모든 응답 쌍을 하나의 학습 비교 데이터로 사용했습니다. 두 답변 중 어느 쪽이 나은지는 10점 만점에 6점과 7점 중 어느 점수가 적절한지보다 사람들이 훨씬 더 쉽게 합의하기 때문에 절대 점수 대신 순위를 사용합니다.
보상 모델은 일반적으로 사전 학습된 대규모 언어 모델(LLM)이며, 정렬 대상 모델을 사용하는 경우가 많습니다. 출력 계층은 최종 임베딩을 하나의 숫자로 변환하는 선형 헤드로 교체됩니다. 학습에는 쌍별 비교를 위한 Bradley-Terry 모델을 사용합니다. 이 모델에서는 사람이 응답 A를 응답 B보다 선호할 확률이 두 응답의 보상 차이에 대한 시그모이드 값이라고 가정합니다. 손실은 사람이 실제로 선택한 응답에 해당하는 확률의 음의 로그입니다. 다음 PyTorch 예제에서는 시뮬레이션된 비교 데이터 2,000개로 선형 보상 헤드를 학습합니다:
import torch
import torch.nn.functional as F
torch.manual_seed(0)
# 2,000 preference pairs: embeddings of two responses to the same prompt
# Simulated raters prefer the response with higher hidden quality, with some noise
hidden_quality = torch.randn(64)
a, b = torch.randn(2000, 64), torch.randn(2000, 64)
a_wins = (a @ hidden_quality + torch.randn(2000) * 2 > b @ hidden_quality).unsqueeze(1)
chosen, rejected = torch.where(a_wins, a, b), torch.where(a_wins, b, a)
# Reward model: a linear head mapping a response embedding to one scalar score
reward_model = torch.nn.Linear(64, 1)
optimizer = torch.optim.Adam(reward_model.parameters(), lr=0.01)
train, test = slice(0, 1500), slice(1500, 2000)
for step in range(300):
# Bradley-Terry loss: maximize the probability that the chosen response scores higher
margin = reward_model(chosen[train]) - reward_model(rejected[train])
loss = -F.logsigmoid(margin).mean()
optimizer.zero_grad()
loss.backward()
optimizer.step()
accuracy = (reward_model(chosen[test]) > reward_model(rejected[test])).float().mean()
print(f"Held-out pairs ranked like the raters: {accuracy:.1%}")출력은 94.8%입니다. 잡음이 포함된 시뮬레이션 평가자는 홀드아웃 쌍 중 약 5%에서 잡음이 없는 품질 순위와 모순되는 평가를 내립니다. 따라서 보상 모델은 절대 점수를 단 한 번도 보지 않았지만, 레이블이 허용하는 수준에 가깝게 선호도를 학습했습니다. 실제 보상 모델도 홀드아웃 비교 데이터의 쌍별 정확도로 비교하며, RewardBench 벤치마크가 그 예입니다. 손실에는 보상의 차이만 반영되므로 점수의 스케일은 임의적이며, 파이프라인에서는 강화 학습 전에 점수를 정규화하는 경우가 많습니다.
보상 모델의 유형#
- 결과 보상 모델: 완성된 응답이나 에피소드 전체를 평가하며, RLHF에서 표준적으로 사용됩니다.
- 과정 보상 모델: 솔루션의 각 중간 단계를 평가합니다. OpenAI의 PRM800K 데이터 세트에는 수학 문제 풀이에 대해 사람이 단계별로 지정한 레이블 800,000개가 포함되어 있습니다.
- 생성형 보상 모델: 심판 역할을 하는 LLM이 비평이나 판정을 작성합니다. 이를 통해 단일 모델로 여러 종류의 작업을 평가하고 점수의 근거를 설명할 수 있습니다.
- 암묵적 보상 모델: 직접 선호도 최적화(DPO)는 선호도 쌍을 사용해 정책을 직접 학습시키며, 정책과 기준 모델 간 로그 확률 비율을 보상으로 사용합니다.
- 이미지 보상 모델: ImageReward는 생성된 이미지에 대한 전문가 비교 137,000건으로 학습되었으며, 프롬프트에 충실하고 매력적인 결과를 생성하도록 텍스트-이미지 모델을 미세 조정하는 데 사용됩니다.
로봇 학습에서도 비전 모델을 활용해 같은 아이디어를 적용합니다. 컵이 똑바로 놓였는지 또는 넘어졌는지와 같이 성공 또는 실패한 시도로 사람이 레이블을 지정한 카메라 프레임으로 학습한 이미지 분류기는 성공 확률을 출력하며, 이를 학습 정책의 보상으로 사용합니다. 이러한 프레임으로 분류 작업을 학습한 Ultralytics YOLO26 모델이 이 역할을 수행하여 시도의 각 프레임을 밀리초 단위로 평가합니다.
보상 모델의 정확도 유지#
보상 모델은 학습 데이터와 유사한 출력에 대해서만 정확합니다. 정책이 개선되면 보상 모델이 본 적 없는 응답을 생성하게 됩니다. 따라서 Meta의 Llama 2 팀은 최신 모델의 출력에 대한 새로운 비교 데이터를 수집하고, 새로운 강화 학습 라운드마다 보상 모델을 다시 학습했습니다:
학습된 보상을 지나치게 최적화하면 보상 해킹으로 이어집니다. OpenAI의 보상 모델 과최적화 연구에서는 사람 평가자 대신 대규모 "골드" 보상 모델을 사용했습니다. 그 결과, 더 작은 대리 보상 모델을 기준으로 정책을 최적화했을 때 대리 모델 점수는 계속 상승했지만 골드 점수는 처음에는 상승하다가 이후 하락했으며, 대리 모델 규모가 커질수록 이러한 효과는 점진적으로 줄었습니다. 보상 모델은 더 길거나 더 동조적인 답변을 선호하는 등 평가자 편향도 학습하며, 강화 학습은 이를 장황함과 아첨으로 증폭합니다. 원본 모델을 기준으로 하는 KL 페널티, 보상 모델 앙상블, 새로운 비교 데이터로 정기적으로 재학습하는 방법은 모두 이러한 문제를 줄입니다.
보상 모델링과 관련 용어 비교#
- RLHF: 지도 미세 조정, 사람의 비교 데이터에 기반한 보상 모델링, 강화 학습 최적화를 포함하는 전체 파이프라인입니다. 보상 모델링은 두 번째 단계입니다.
- 보상 함수: 목표 달성 시 +1을 주는 것과 같이 사람이 직접 작성한 보상입니다. 보상 모델은 누구도 함수를 직접 작성할 수 없는 경우 데이터에서 학습합니다.
- 검증 가능한 보상: 프로그램이 단위 테스트나 기준 수학 결과처럼 알려진 해답에 비추어 답변을 검사합니다. 학습된 모델보다 악용하기 어렵지만, 답을 검증할 수 있는 경우에만 작동합니다.
- 역강화 학습: 작업에 대한 전문가 시연에서 보상 함수를 추론합니다. 반면 RLHF용 보상 모델링은 시스템 자체의 출력에 대한 사람들의 비교 데이터를 학습합니다.










