Chuyển đến nội dung chính

レッスン 12: RLHF — 人間のフィードバックからの強化学習

RLHF パイプラインの詳細: SFT → 報酬モデル → PPO 微調整。 GPTペーパーを指導します。報酬モデリング。憲法AI。 TRLライブラリによる実装。

🧠 AI と ML — レッスン 11 レッスン 12: RLHF — からの強化学習 人間によるフィードバック

強化学習: 基礎から高度まで

パート 4: RLHF、LLM の調整と生産

xdev.asia

はじめに

RLHF (人間のフィードバックからの強化学習) は、GPT-3 を ChatGPT に変えた技術であり、報酬モデルと PPO を通じて LLM を人間の好みに合わせます。


1. RLHF パイプライン — 3 つのステップ

ステップ 1: 教師あり微調整 (SFT)

from transformers import AutoModelForCausalLM, TrainingArguments
from trl import SFTTrainer

model = AutoModelForCausalLM.from_pretrained("meta-llama/Llama-3.1-8B")

trainer = SFTTrainer(
    model=model,
    train_dataset=demo_dataset,  # (prompt, response) pairs
    args=TrainingArguments(
        output_dir="./sft_model",
        num_train_epochs=3,
        per_device_train_batch_size=4,
        learning_rate=2e-5,
    ),
)
trainer.train()

ステップ 2: 報酬モデルのトレーニング

from trl import RewardTrainer, RewardConfig

reward_model = AutoModelForSequenceClassification.from_pretrained(
    "meta-llama/Llama-3.1-8B", num_labels=1
)

trainer = RewardTrainer(
    model=reward_model,
    train_dataset=preference_dataset,
    # Format: {prompt, chosen_response, rejected_response}
    args=RewardConfig(
        output_dir="./reward_model",
        per_device_train_batch_size=4,
        num_train_epochs=1,
    ),
)
trainer.train()

ステップ 3: PPO の微調整

from trl import PPOTrainer, PPOConfig, AutoModelForCausalLMWithValueHead

model = AutoModelForCausalLMWithValueHead.from_pretrained("./sft_model")
ref_model = AutoModelForCausalLMWithValueHead.from_pretrained("./sft_model")

config = PPOConfig(
    batch_size=16,
    learning_rate=1e-5,
    ppo_epochs=4,
    mini_batch_size=4,
)

trainer = PPOTrainer(config, model, ref_model, tokenizer)

for batch in dataloader:
    queries = batch["query"]
    responses = model.generate(queries)
    rewards = reward_model(queries, responses)
    
    # KL penalty to prevent reward hacking
    trainer.step(queries, responses, rewards)

2. 報酬ハッキングと KL ダイバージェンス

Total Reward = RM_score(response) - β * KL(π || π_ref)

KL ペナルティはモデルを SFT モデルに近づけます → 報酬のハッキングを回避します。


3. 憲法上の AI (人間的)

  1. 応答を生成する 2.モデルに原則に基づいて批評してもらいます
  2. モデルに修正を依頼する
  3. 修正された対応についてトレーニングする (RLAIF)

概要

ステップ入力出力目的
SFTデモンストレーション微調整された LLM学習形式
報酬モデル人間の好み報酬スコアラー好みを学ぶ
PPORMの報酬整列LLM好みに合わせて最適化する