RLHF
Reinforcement Learning from Human Feedback
인간 피드백 기반 강화학습. ChatGPT, Claude의 핵심 학습 기법. 모델을 인간 선호도에 정렬.
Reinforcement Learning from Human Feedback
인간 피드백 기반 강화학습. ChatGPT, Claude의 핵심 학습 기법. 모델을 인간 선호도에 정렬.
RLHF(Reinforcement Learning from Human Feedback, 인간 피드백 기반 강화학습)는 인간의 선호도 피드백을 활용하여 AI 모델을 학습시키는 기법입니다. ChatGPT, Claude 등 현대 대화형 AI의 핵심 학습 방법으로, 모델이 인간의 가치관과 선호도에 맞게 응답하도록 정렬(Alignment)하는 데 사용됩니다.
RLHF는 2017년 OpenAI와 DeepMind에서 게임 AI 학습에 처음 적용되었고, 2022년 InstructGPT 논문에서 LLM에 본격 적용되었습니다. 기존 지도학습만으로는 "도움이 되면서도 안전한" 응답을 생성하기 어려웠고, RLHF는 이 문제를 해결하는 혁신적인 방법으로 주목받았습니다.
RLHF의 핵심 원리는 3단계 학습 파이프라인입니다. 1) SFT(Supervised Fine-Tuning)로 기본 능력 학습, 2) 인간이 응답 쌍을 비교하여 Reward Model 학습, 3) PPO(Proximal Policy Optimization) 알고리즘으로 Policy Model 최적화. 이 과정에서 모델은 인간이 선호하는 방향으로 점진적으로 개선됩니다.
실무에서 RLHF는 AI 안전성과 유용성의 균형을 맞추는 핵심 기술입니다. 다만 수천 명의 인간 라벨러가 필요해 비용이 높고, 라벨러 간 일관성 유지가 어려운 단점이 있습니다. 최근에는 DPO, RLAIF 등 효율적인 대안들이 연구되고 있습니다.
TRL 라이브러리를 활용한 RLHF 파이프라인 개요입니다.
# pip install trl transformers torch
from trl import PPOTrainer, PPOConfig, AutoModelForCausalLMWithValueHead
from transformers import AutoTokenizer
# 1. 모델 및 토크나이저 로드
model_name = "gpt2" # 실제로는 SFT된 모델 사용
model = AutoModelForCausalLMWithValueHead.from_pretrained(model_name)
tokenizer = AutoTokenizer.from_pretrained(model_name)
tokenizer.pad_token = tokenizer.eos_token
# 2. PPO 설정
ppo_config = PPOConfig(
model_name=model_name,
learning_rate=1.41e-5,
batch_size=16,
mini_batch_size=4,
gradient_accumulation_steps=1,
)
# 3. PPO Trainer 초기화
ppo_trainer = PPOTrainer(
config=ppo_config,
model=model,
tokenizer=tokenizer,
)
# 4. RLHF 학습 루프 (개념적 예시)
def reward_fn(response: str) -> float:
"""Reward Model이 응답 품질 점수 반환"""
# 실제로는 학습된 Reward Model 사용
return len(response) * 0.01 # 단순 예시
# 학습은 PPO 알고리즘으로 진행
# ppo_trainer.step(query_tensors, response_tensors, rewards)
print("RLHF 파이프라인 준비 완료!")