RLHFとは
RLHF(アールエルエイチエフ、Reinforcement Learning from Human Feedback)とは、人間の選好データから報酬モデルを学習し、その報酬モデルを使って強化学習で大規模言語モデル(LLM)や方策モデルを最適化する手法である。日本語では「人間のフィードバックによる強化学習」「人間のフィードバックを用いた強化学習」などと訳される。2022年のChatGPT公開以降、現代のLLMを「役に立ち、無害で、正直な」アシスタントに仕立て上げる主要技術として一気に普及しました。あなたがChatGPT・Claude・Gemini・Llamaといった商用LLMに「自然な受け答え」や「危険な指示を断る態度」を感じるとしたら、その背景にはほぼ確実にRLHFが存在しています。
RLHFの核心は「正解データではなく、人間の比較判断(AとB、どちらの回答が良いか)からモデルを育てる」という点にあります。書き言葉の正解は1つに決まらないため、従来の教師あり学習だけでは「自然さ」「親切さ」「安全性」を数値化して学習できませんでした。そこでOpenAIのChristianoらが2017年に提案した「人間の選好からの深層強化学習」の枠組みをLLMに応用し、2022年のInstructGPT(Ouyang et al.)でブレイクしたのがRLHFです。あなたがLLMの訓練手法を理解する上で、SFT(教師ありファインチューニング)・報酬モデル・PPOの3点セットはまず押さえるべき基本概念と言っていいでしょう。
RLHFの読み方
アール エル エイチ エフ
アール エル エッチ エフ
RLHFの仕組み
RLHFは3つの段階からなるパイプラインです。ステップごとに学習目的・必要データ・計算コストが異なり、順に重ねることで「人間が好む応答を返す方策(ポリシー)」を獲得します。あなたがRLHFを実装する、もしくは理解する場合、この3ステージ構造を図としてイメージできることが最初のゴールです。
RLHFの3ステージ・パイプライン
SFT
(教師ありファインチューニング)
Reward Model
(報酬モデル訓練)
RL(PPO)
(方策を最適化)
ステップ1:SFT(Supervised Fine-Tuning)
最初に事前学習済みLLM(例えばGPT-3、Llama、Qwenなど)に対し、人間が書いた「理想的な応答例」を教師データとして与え、通常の教師ありファインチューニングを行います。ここで得られるSFTモデルは、すでに「指示に従って応答する」基本能力を備えていますが、安全性や細かな好みは反映できていません。あなたがLLMをローカルでファインチューニングする場合、このステップだけで完結することも多く、RLHFは「SFTの後工程」として理解するとスムーズです。
ステップ2:報酬モデル(Reward Model)の訓練
SFTモデルに同じプロンプトを何度も投げて複数の応答を生成し、人間のアノテーターが「AとB、どちらが良いか」という比較ラベルを付けます。この選好データから、報酬モデル(Reward Model, RM)を学習します。報酬モデルは応答1つを入力し、スカラーの報酬値を出力するモデルで、ブラッドリー・テリー(Bradley-Terry)モデルに基づく次式のロスで学習されます。
L(θ) = - E[(x, y_w, y_l) ~ D] [ log σ( r_θ(x, y_w) - r_θ(x, y_l) ) ]
ここで y_w は人間に選ばれた応答(winner)、y_l は選ばれなかった応答(loser)、σ はシグモイド関数です。要するに「良い応答の報酬を、悪い応答の報酬より高くする」というだけのシンプルな学習則ですが、人間の主観的な好みをスカラー値に「圧縮」できる点が革命的でした。
ステップ3:強化学習(PPO)で方策を最適化
最後に、SFTモデルを「方策(policy)」とみなし、報酬モデルからの報酬を最大化するように強化学習で更新します。このときよく使われるのがPPO(Proximal Policy Optimization)で、さらに元のSFTモデルからのKLダイバージェンスペナルティを加え、方策が報酬モデルをハックして暴走するのを防ぎます。目的関数はおおまかに次のようになります。
maximize E[x ~ D, y ~ π_θ(y|x)] [ r_θ(x, y) - β · KL( π_θ(y|x) || π_SFT(y|x) ) ]
直感的には「報酬モデルに褒められる応答を出しつつ、元のSFTモデルから離れすぎない」ように学習します。β(KL係数)は0.01〜0.1程度の小さな値で、大きくすれば安全だが改善が鈍く、小さくすれば性能が伸びやすい反面、報酬ハッキング(reward hacking)の危険が増します。
RLHFの主要スペックとキー概念
| 項目 | 内容 |
|---|---|
| 正式名称 | Reinforcement Learning from Human Feedback |
| 提案年 | 2017(Christiano et al., 深層RL応用)/2022(InstructGPTでLLMに本格導入) |
| 代表論文 | Ouyang et al. 2022「Training language models to follow instructions with human feedback」 |
| 主なアルゴリズム | PPO(Proximal Policy Optimization) |
| 主要ステージ | SFT → Reward Model → RL(PPO) |
| 必須データ | デモンストレーション/選好ペア(A vs B) |
| 代表的なライブラリ | TRL(Hugging Face)、trlx(CarperAI)、OpenRLHF |
| 代表的なモデル | ChatGPT、Claude、Gemini、Llama、DeepSeekなど |
| 代替・派生 | DPO、KTO、IPO、RLAIF、Constitutional AI |
InstructGPTが示した「サイズより訓練」の衝撃
Ouyang et al.(2022)のInstructGPT論文では、1.3Bパラメータのモデルを RLHFで調整したものが、175BのGPT-3ベースモデルを人間評価で上回るという結果が示されました。パラメータ数が100分の1以下でも、ユーザー視点では「より賢く見える」ことが確かめられ、RLHFが単なる研究トピックから実用技術に跳ね上がった瞬間です。あなたがモデルサイズだけを追いかけるのではなく「訓練手法」に目を向ける重要性も、この結果が象徴しています。
RLHFの使い方・実例
実務ではゼロからRLHFパイプラインを書くことは少なく、Hugging FaceのTRLライブラリか、CarperAIのtrlx、あるいは大規模向けのOpenRLHFなどを使います。ここではTRLを使ったPPOの最小限の擬似コードを示します。あなたがRLHFのコードを初めて触る場合、このパターンを押さえておけば論文実装を読む基礎になります。
TRLライブラリを使ったRLHF簡易例
# TRL libraryを使ったRLHF簡易例
from trl import PPOTrainer, PPOConfig
from transformers import AutoTokenizer, AutoModelForCausalLMWithValueHead
config = PPOConfig(model_name="gpt2", learning_rate=1.41e-5)
tokenizer = AutoTokenizer.from_pretrained(config.model_name)
model = AutoModelForCausalLMWithValueHead.from_pretrained(config.model_name)
ppo_trainer = PPOTrainer(config, model, tokenizer=tokenizer)
# 学習ループ(簡略化)
for batch in dataloader:
queries = batch["input_ids"]
responses = ppo_trainer.generate(queries)
rewards = reward_model(queries, responses) # 報酬モデルで評価
ppo_trainer.step(queries, responses, rewards)
ポイントはAutoModelForCausalLMWithValueHeadで「価値関数ヘッド」を追加していることです。PPOはアドバンテージ関数を推定するために、状態価値を予測する追加ヘッドが必要になります。また内部では、元のSFTモデルを参照モデルとしてKLダイバージェンスを自動計算し、それを報酬から差し引いてくれます。
報酬モデルの訓練コード(概念)
from trl import RewardTrainer, RewardConfig
from transformers import AutoModelForSequenceClassification
model = AutoModelForSequenceClassification.from_pretrained(
"gpt2", num_labels=1
)
trainer = RewardTrainer(
model=model,
args=RewardConfig(output_dir="./rm"),
train_dataset=pairs_dataset, # {chosen, rejected} ペア
)
trainer.train()
実務では選好データ(chosen/rejectedペア)をAnthropicのHH-RLHFデータセットやOpenAssistantのoasst1、社内のサポートチケットから作ります。1万〜10万ペアあれば小規模ドメインには十分という経験則があり、最近は合成データ(別のLLMにラベル付けさせるRLAIF)で数万ペアを手軽に用意する実装も増えました。
大規模モデルでの典型的なワークフロー
数百億〜数千億パラメータのモデルでRLHFを回す場合、GPUメモリの制約から「方策・参照・価値・報酬」の4モデルを同時にメモリに乗せられず、ZeROやLoRAといった省メモリ技術と組み合わせるのが一般的です。OpenRLHFやDeepSpeed-ChatはこうしたスケールアウトをサポートしたRLHF専用フレームワークで、数百GPUでの並列学習に対応しています。あなたが自社モデルにRLHFを適用する場合、まずはLoRAアダプター+7Bクラスのモデルで小さく試すのがコスト的にも現実的です。
RLHFのメリット・デメリット
メリット
- 「自然さ」「親切さ」「安全性」といった主観的な品質を学習できる:教師あり学習では設計しにくい暗黙的な評価軸を、比較判断で扱える。
- モデルサイズ以上の品質向上が可能:InstructGPTの例のように、1.3Bで175Bを上回る人間評価を実現できる。
- ポリシーの方向性を微調整しやすい:報酬モデルを差し替えることで「丁寧さ重視」「簡潔さ重視」など方針をコントロールしやすい。
- 安全性訓練(Safety Tuning)と相性が良い:危険な指示を拒否する挙動など、手動ルールで書きにくい振る舞いを報酬として与えられる。
- 反復的に改善できる:報酬モデルを継続アップデートすれば、運用中にポリシーを進化させられる。
- ヒューマンフィードバックの資産化:集めた選好データは一度の訓練だけでなく、将来モデルでも再利用できる貴重なデータ資産になる。
デメリット
- 計算コストが重い:SFTの数倍〜10倍のGPU時間が必要で、PPOはメモリ使用量も大きい。
- 報酬ハッキング(Reward Hacking):モデルが報酬モデルの癖を突いて、実際には良くない応答を高評価にしてしまう現象が起きる。
- 多様性の低下:RLHF後のモデルは「似たような回答」ばかり返す、いわゆるmode collapseが起きやすい。
- アノテーションコスト:選好データは人間のラベラーを大量に必要とし、質の担保も難しい。
- バイアスの注入リスク:ラベラーの国籍・文化・価値観が、モデルの挙動に強く反映される。
- ハイパーパラメータが敏感:KL係数、学習率、バッチサイズの調整が失敗すると性能が簡単に崩壊する。
RLHFとSFT・DPOの違い
近年は「RLHFに代わる・補完する」手法としてDPO(Direct Preference Optimization, Rafailov et al. 2023)やKTO、IPOが注目されています。あなたがプロジェクトで「どの手法を選ぶか」判断するには、それぞれの違いを押さえておく必要があります。
| 手法 | 必要データ | 計算コスト | 安定性 | 代表例 |
|---|---|---|---|---|
| SFT | 正解応答(デモ) | 低 | 高 | Llama Instruct、Mistral Instruct |
| RLHF(PPO) | 選好ペア+報酬モデル | 高 | 中(調整シビア) | ChatGPT、Claude、Gemini |
| DPO | 選好ペアのみ(RM不要) | 中 | 高 | Zephyr-7B、Tulu、OLMo-Instruct |
| KTO | 「良い/悪い」単体ラベル | 中 | 高 | Archangel、KTO-aligned系 |
| RLAIF | AIによる選好ラベル | 中〜高 | 中 | Anthropic Constitutional AI、Gemini |
DPOは「報酬モデルを経由せず、選好ペアから直接方策を最適化する」手法で、PPOのような強化学習ループを回さずに済むため実装がシンプルです。2023年以降、中小規模のオープンモデル(Zephyr、Tulu、OLMoなど)はほぼDPOベースに移行しました。一方で、大規模商用モデル(GPT系、Claude、Gemini)はPPOベースのRLHFを核としつつ、RLAIFやConstitutional AIと組み合わせるのが主流です。
よくある誤解
誤解1:RLHFは「正解」を教えている
RLHFは正解応答を直接教える手法ではなく、「AとB、どちらがマシか」という相対比較を積み重ねて方策を寄せていくものです。そのためモデルが出す応答が「最も正しい」わけではなく、「人間ラベラーに選ばれやすい」だけである点は覚えておきたいポイントです。あなたがRLHFモデルを評価する際、真偽の確認は別のファクトチェック手段に委ねる必要があります。
誤解2:RLHFをやれば安全になる
RLHFは万能の安全装置ではありません。ラベラーが「一見丁寧だが誤った情報」を含む応答を高評価してしまうと、モデルはその誤りを強化学習で身につけます。実際、RLHF後のモデルは「自信たっぷりに嘘をつく」傾向が強まることが報告されており、これがhallucinationの一因になっています。
誤解3:RLHFをやるとモデルが必ず賢くなる
RLHFで改善されるのは主に「応答スタイル」「指示追従性」「拒否挙動」などであり、基礎的な知識量や推論能力そのものを底上げするわけではありません。むしろベースモデルの知識を引き出しやすくする「橋渡し」と考えるのが実態に近いです。あなたが新しいドメイン知識を入れたいなら、RLHFではなく継続事前学習やRAGが適切です。
誤解4:DPOが登場したのでRLHFは不要になった
DPOはシンプルで扱いやすいですが、万能ではありません。最新研究では「オンライン性」「探索」「複雑なreward shaping」が効くタスクでは、依然としてPPOベースのRLHFが勝ると報告されています。GPT-5世代の商用モデルも、DPOで済ませるのではなく「SFT→DPO→PPO→RLAIF」の多段構成を取るのが一般的になっています。
実務での活用シーン
1. 汎用チャットアシスタントの訓練
ChatGPT、Claude、Gemini、Llama Chatといった汎用LLMの仕上げ工程で、RLHFは必須のステップになっています。ラベラーがGPTとの対話を評価した大量の選好ペアが裏にあり、モデルを「助けになり、害が少なく、拒否も適切」に仕立てます。あなたが使っている商用LLMのほぼすべてがRLHF由来の挙動を持っています。
2. 社内ドメイン特化AIのトーン調整
金融、医療、法務などのドメインでは「社内用語の使い方」「堅めの敬語」「コンプラ遵守」などが求められます。ドメイン特化のSFT後にRLHF(もしくはDPO)で微調整することで、規程違反の応答を抑制し、ブランドトーンを揃えることができます。
3. コード生成モデルのデバッグ品質改善
コード補完モデル(GitHub Copilot、Claude Code、Cursor、Qodo等)では、テストがパスするコードやレビューで承認されたPRを「良い例」として報酬に変換し、RLHFで方策を更新します。人間評価だけでなく「ユニットテストpass率」「静的解析エラー数」などをスカラー報酬に転用できる点は、RLHFの強みです。
4. 画像生成・音声生成モデルの審美チューニング
Stable DiffusionやFLUX、DALL-Eといった画像生成モデルでも、人間の「好きな絵」ランキングからReward Modelを作り、RLHF(画像領域ではDPO-Diffusionなど)で審美性を高めます。テキストLLMだけの技術ではなく、マルチモーダル全体に広がっているのが近年の特徴です。
5. 検索・リコメンドの最適化
検索結果のランキングやニュースフィードのレコメンドも、クリック履歴やドウェル時間を報酬として強化学習で最適化する広義のRLHFと言えます。行動ログを「暗黙的な選好データ」として利用する手法はRecSys領域でも広く採用されています。
6. 安全性レッドチーミングと拒否挙動の強化
Anthropic、OpenAI、Google DeepMindなどはレッドチーム(攻撃的プロンプトを設計する専門チーム)と協働し、危険な指示を安定して拒否する挙動をRLHFとConstitutional AIで訓練します。あなたが業務システムで有害応答を抑えたい場合、こうした手法を外注や既存モデルの選定で取り入れるのが現実的です。
よくある質問(FAQ)
Q1. RLHFは必ずPPOを使いますか?
A. 最もポピュラーなのはPPOですが必須ではありません。近年はDPOが主流になりつつあり、またA2C、REINFORCE、Best-of-N samplingなども使われます。商用LLMではPPO + RLAIFが定番ですが、オープンソースモデルではDPOが圧倒的に多いです。選択基準は「計算予算」「データ量」「求める品質」で決めましょう。
Q2. 選好データは何件ぐらい必要ですか?
A. タスク次第ですが、ドメイン特化なら1万〜5万ペア、汎用チャットボットなら10万〜100万ペアが目安です。InstructGPTは約3.3万の比較ペア、AnthropicのHH-RLHFは約16万ペアを公開しています。少量でも効果はありますが、ドメインをまたぐ汎化には大量のデータが必要です。
Q3. RLHFとファインチューニング(SFT)はどちらを先にやるべきですか?
A. 必ずSFTが先です。RLHFはSFT済みのモデルを前提に、その応答空間から「より人間が好むもの」を選び出す仕組みです。ベースモデルにいきなりRLHFをかけると、報酬ハッキングが起きやすく学習が不安定になります。
Q4. RLHFに日本語データは足りていますか?
A. 英語に比べると圧倒的に少ないのが現状です。日本語選好データの公開例としてはLLM-jpのichikara-instructionや、Stability AIが公開したja-vicunaデータセットがあります。商用用途ではクラウドワーカー経由で独自収集するケースも多いです。
Q5. RLHFを自社で回すか、商用LLMを使う方がよいか?
A. 多くの場合、商用LLM(GPT、Claude、Gemini)のAPIを利用して、RAGやプロンプト設計で済ませる方が圧倒的に低コストです。RLHFまで自社で回すべきなのは、(1)強いドメイン特化が必要、(2)データをクラウドに出せない、(3)ブランドトーンが重要、といった条件が揃った場合です。一般的な業務支援であれば、まずはAPI利用から始めることをおすすめします。
まとめ
- RLHFは「Reinforcement Learning from Human Feedback」の略で、人間の選好データから報酬モデルを学び、強化学習でLLMを最適化する技術。
- 3ステージ構造:SFT → 報酬モデル → RL(PPO)が基本。
- 2017年Christiano et al.で深層RL応用、2022年InstructGPTでLLMへの本格導入がブレイクスルー。
- ChatGPT、Claude、Gemini、Llamaなど主要LLMの安全性・指示追従性を生んだ中核技術。
- 計算コストと報酬ハッキングが課題で、DPO・KTO・RLAIFといった代替や補完手法が急速に普及。
- 実装はHugging Face TRL、trlx、OpenRLHFなどのOSSが充実。
- 実務では「SFTから始めて、必要に応じてRLHFまたはDPOを重ねる」のがコストと効果のバランスで合理的。
参考文献・出典
📚 参考文献・出典
- ・Hugging Face「Illustrating Reinforcement Learning from Human Feedback (RLHF)」 https://huggingface.co/blog/rlhf
- ・Ouyang et al. 2022「Training language models to follow instructions with human feedback」 https://arxiv.org/abs/2203.02155
- ・AWS「What is Reinforcement Learning from Human Feedback (RLHF)?」 https://aws.amazon.com/what-is/reinforcement-learning-from-human-feedback/
- ・IBM「What is reinforcement learning from human feedback (RLHF)?」 https://www.ibm.com/think/topics/rlhf
- ・Wikipedia「Reinforcement learning from human feedback」 https://en.wikipedia.org/wiki/Reinforcement_learning_from_human_feedback
Read this article in English:
What Is RLHF? Reinforcement Learning from Human Feedback, Pipeline, and Role in LLMs Explained →


































コメントを残す