Instruction Tuning と RLHF を1から解説 — 指示に従うモデルはどう作られるか
事前学習しただけのモデルが指示に従わないのは能力不足ではなく目的関数のずれ。InstructGPT論文(Ouyang et al., 2022)の本文だけを根拠に、SFT→報酬モデル→強化学習の3段を式まで追い、「1.3Bが175Bを人間評価で上回った」という主張と、論文自身が認めた限界を§番号付きで読む。
要点
- 言語モデルを大きくすること自体は、ユーザーの意図に従うのが上手くなることを意味しない(§1)。
- 手順は3段で、実演でSFT、順位付けから報酬モデル、PPOで方策更新。
- 報酬モデルの損失は点数の絶対値ではなく、勝った側と負けた側の差だけに依存する。
- PPOのKLペナルティは、報酬モデルの過剰最適化を抑えるためのものである。
- 1.3BのInstructGPTは175BのGPT-3より好まれ、175B同士では85±3%で好まれた。
Training language models to follow instructions with human feedback
一次資料 — この記事の根拠
論文の発表 2022-03-04→この解説の公開 2026-08-064年5か月後
Training language models to follow instructions with human feedbackLong Ouyang, Jeff Wu, Xu Jiang ほか · 2022-03-04 · v1arXiv:2203.02155論文ページ·PDF原文の要旨(Abstract)を読む
Making language models bigger does not inherently make them better at following a user's intent. For example, large language models can generate outputs that are untruthful, toxic, or simply not helpful to the user. In other words, these models are not aligned with their users. In this paper, we show an avenue for aligning language models with user intent on a wide range of tasks by fine-tuning with human feedback. Starting with a set of labeler-written prompts and prompts submitted through the OpenAI API, we collect a dataset of labeler demonstrations of the desired model behavior, which we use to fine-tune GPT-3 using supervised learning. We then collect a dataset of rankings of model outputs, which we use to further fine-tune this supervised model using reinforcement learning from human feedback. We call the resulting models InstructGPT. In human evaluations on our prompt distribution, outputs from the 1.3B parameter InstructGPT model are preferred to outputs from the 175B GPT-3, despite having 100x fewer parameters. Moreover, InstructGPT models show improvements in truthfulness and reductions in toxic output generation while having minimal performance regressions on public NLP datasets. Even though InstructGPT still makes simple mistakes, our results show that fine-tuning with human feedback is a promising direction for aligning language models with human intent.
「大きくすれば従う」わけではない
InstructGPT 論文の最初の一文は、身も蓋もない断言から始まります。言語モデルを大きくすること自体は、ユーザーの意図に従うのが上手くなることを意味しない(Abstract)。大きなモデルは、事実でないこと・有害なこと・単に役に立たないことを平気で出力する。それは能力の問題ではなく、目的関数のずれだ、というのが論文の診断です。
事前学習が最大化しているのは「インターネット上のページの次のトークンを当てる」ことであって、「ユーザーの指示に、助けになるように、安全に従う」ことではありません。論文はこの状態を misaligned(整合していない) と呼びます(§1)。
では何に合わせるのか。論文は helpful(課題解決を助ける)、honest(捏造も誤導もしない)、harmless(害を起こさない)の3つを挙げます(§1、§3.6)。ただし honest は測れません。「モデルの信念」を外から覗けない以上、代わりに truthfulness(世界についての言明が真であるか) を測る、と正直に書かれています(§3.6)。
第1段: 実演を集めて教師あり微調整する(SFT)
やることは単純です。ラベラーに「このプロンプトにはこう答えてほしい」という実演を書いてもらい、GPT-3 をその実演で教師あり微調整する(§3.1 Step 1)。
規模は意外に小さく、SFT の訓練プロンプトは約13,000件(ラベラー執筆11,295+API顧客1,430)です(§3.2、付録A.3 表6)。用途の内訳も特徴的で、分類とQAは全体の約18%にすぎず、自由生成とブレストが約57%を占めます(表1、§4.1)。公開NLPデータセットが得意な形とは分布がそもそも違うわけです。
学習設定には、教科書に反する観察がひとつ。SFT は16エポック回しますが、検証損失は1エポックで過学習する。それでもエポックを重ねると報酬モデルのスコアも人間の評価も上がり続けた、と報告されています(§3.5)。
第2段: 人間の順位付けから報酬モデルを作る
実演だけでは足りません。「良い答え」を毎回書き下ろすのは高くつくうえ、どちらがより良いかを選ぶほうが、良い答えを書くよりずっと簡単だからです。
そこで、同じプロンプトに対するモデル出力の集合をラベラーに順位付けしてもらいます。論文は1プロンプトあたり から 個の応答を提示し、そこから 通りの2択比較を作りました(§3.5)。RM の訓練プロンプトは33,000件(表6)。
報酬モデル自体は、SFT モデルの最後の unembedding 層を外し、プロンプトと応答を受け取ってスカラー1つを返す形にします(§3.5)。損失は次の式です。
左から順に読むと、こう言っています。人間が優劣をつけた応答のペアを取り、勝ったほうの点数から負けたほうの点数を引き、その差を確率に潰し、その確率が低いときほどモデルを罰する。つまりこの式は、点数の絶対値をまったく気にしていません。効いているのは2つの点数の差だけで、両方に同じ数を足しても損失は1ミリも動かない——「80点と60点」と「20点と0点」は、この式にとって同じ状態です。
記号を1つずつ。 はプロンプト、 は人間が選んだほう、 は選ばれなかったほう、 が報酬モデルの出力するスカラー、 はシグモイド関数です。式(1)が言っているのは「勝った側のスコアが負けた側より高くなるようにせよ」だけ。シグモイドは点数差を「人間がそちらを選ぶ確率」に変換する装置で、差が0なら0.5、差が大きいほど1に近づきます。
実装上の注意が2つ明記されています。ひとつは、 個の比較をバラバラにシャッフルして1件ずつ学習させると1エポックで過学習すること。同一プロンプト由来の比較は強く相関しているためで、論文は1プロンプト分の全比較をまとめて1つのバッチ要素として扱うことで解決しました。順伝播が 回で済むので計算も軽くなります(§3.5 脚注3)。
もうひとつ、報酬モデルは6Bのみ。175B の RM 学習は不安定になりやすく、価値関数として使うには向かなかったためです(§3.5)。報酬はシフト不変なので、最後にラベラー実演の平均スコアが0になるよう正規化します。
第3段: 強化学習で方策を更新する
報酬モデルができたら、それをスカラー報酬として SFT モデルを PPO で微調整します(§3.1 Step 3)。環境はバンディット——プロンプトが1つ出て、応答を1つ返し、報酬モデルが点数をつけ、そこでエピソードが終わる、という極端に短い環境です(§3.5)。価値関数は報酬モデルで初期化します。
最大化する目的関数は次の形です。
要するに、この式はアメとムチと復習の3点セットです。大きな は「たくさんのサンプルで平均を取れ」という意味でしかなく、 は学習中の重みの束、 と はムチと復習をどれだけ強く効かせるかのつまみです。報酬モデルの点数というアメを取りに行かせ、出発点の SFT モデルから離れた分だけムチで引き戻し、最後の項でもう一度だけ事前学習データを読ませて、元々できていたことを忘れさせない。
3項に分けて読みます。 が学習中の方策、 が出発点の SFT モデルです。
- — 報酬モデルの点数を上げる。これが本体。
- — トークンごとの KLペナルティ。SFT モデルから離れるほど罰を受けます。目的は報酬モデルの過剰最適化を抑えること(§3.5)。報酬モデルは人間の代理にすぎず、そこだけ突き詰めると人間には無意味な出力へ逃げていくからです。
- — 事前学習データの対数尤度。 なら素の「PPO」、正なら「PPO-ptx」で、論文が InstructGPT と呼ぶのは後者です。
第3項が要る理由は、次節の「アラインメント税」に直結します。
論文が示したこと
中心的な主張は、小さいモデルが大きいモデルを人間評価で上回ったことです。1.3B の InstructGPT の出力が、175B の GPT-3 の出力より好まれた——パラメータ数は100分の1以下、アーキテクチャは同じで、違うのは人間データで微調整したかどうかだけ(Abstract、§4.1)。同サイズ同士なら、175B InstructGPT は 175B GPT-3 に対し 85±3%、few-shot プロンプトを与えた 175B GPT-3 に対しても 71±4% の割合で好まれました(§4.1)。
- 真実性: TruthfulQA で真かつ有益な回答が GPT-3 の約2倍。閉じたドメインのタスク(要約など)で入力にない情報を作る割合は 21% 対 41% に減りました(§1、§4.2)。
- 毒性: 「敬意をもって」と促した条件で有害出力が約25%減。一方 Winogender と CrowS-Pairs でのバイアスは有意に改善しませんでした(§1、§4.2)。
- 公開データセットでの退行: SQuAD、DROP、HellaSwag、WMT2015 仏英翻訳で GPT-3 より性能が落ちた。論文はこれを alignment tax(アラインメント税) と呼び、事前学習の勾配を混ぜる PPO-ptx で大半を緩和できたとしつつ、DROP・SQuADv2・翻訳では依然 GPT-3 に届かないと認めています(§4.2)。
- FLAN / T0 との比較: 公開NLPデータ集で微調整した 175B GPT-3 より InstructGPT のほうが明確に好まれました(SFTベースラインへの勝率 73.4±2% 対 T0 26.8±2% / FLAN 29.8±2%、§4.1)。
- コスト: 175B の SFT が 4.9 petaflops/s-days、PPO-ptx が 60、GPT-3 の事前学習が 3,640。アラインメントは事前学習に比べて桁違いに安い(§5.1)。
限界と未検証点
論文自身が §5.2 と §5.3 で、かなり率直に書いています。
- 「人間の価値」に整合させたのではない。整合先は、約40人の請負ラベラーの選好、ラベリング指示を書いた研究者の選好、そして API 顧客が何に価値を見出すかです。論文は「研究者も、雇ったラベラーも、API顧客も、選好の正しい源泉であるとは主張しない」と明記しています(§5.2)。
- ラベラー同士も一致しない。訓練ラベラー間の一致率は 72.6±1.5%、保留ラベラーで 77.3±1.3%(§3.4)。約4分の1は割れています。さらに比較の多くは1人しかラベルしていません(コスト上の理由、§5.3)。
- 完全に整合でも安全でもない。捏造も有害出力も残る。最大の限界として、有害になり得る指示でも従ってしまう。「最大限バイアスをかけろ」と指示すると、同サイズの GPT-3 より有害な出力を出します(§5.3)。
- 単純な失敗が残る: 誤った前提を真と仮定する、答えが明らかな質問にも過剰にヘッジする、複数の明示的制約で性能が落ちる(§4.3)。ヘッジについては、ラベラーに認識的な謙虚さを報酬するよう指示したことが報酬モデルに拾われたのではないかと論文自身が推測しています。
- ほぼ英語のみ。データの96%超が英語です(§3.3)。
※本記事執筆時点(2026年)の補足(原論文の主張ではなく筆者の注記): 本論文以降、報酬モデルと強化学習の2段を1つの分類的損失にまとめる DPO のような手法が広く使われるようになりました。ただし本記事の数値と主張はすべて本論文の報告値であり、後続手法の性能は含みません。
現場ではこう使う
3段のうち現場で自分の手で回すのは、ほぼ第1段(SFT)だけです。報酬モデルと強化学習まで自前で組むのは、専任チームと継続的なラベリング体制がある組織に限られます。
触るパラメータ名。 TRL なら SFTTrainer の num_train_epochs / learning_rate / packing から入る。選好学習に進むなら DPOTrainer の beta(本論文の と同じく、出発点からどれだけ離れてよいかを決める)と参照モデル ref_model の固定。RLHF まで行くなら PPOTrainer の init_kl_coef と target。どの道でも「参照モデルからの KL をどれだけ許すか」が最重要のつまみです。
落とし穴を3つ。 1つ目は検証損失で早期終了すること。§3.5 のとおり、指示追従の質は検証損失と一致しません。2つ目は同一プロンプト由来の比較データをシャッフルして流すこと。相関の強い比較が別々のサンプルとして繰り返し勾配を作り、1エポックで過学習します(§3.5 脚注3)。3つ目はアラインメント税を測らないこと。指示追従だけ見ていると、抽出型QAや翻訳が静かに劣化します。
設計レビューでよく問われるのは「なぜ報酬モデルを挟むのか。人間評価を直接使えばよいのでは」です。第一に、強化学習は1エピソードごとに報酬が要るので、人間に毎回聞いていては速度もコストも成立しない。報酬モデルは人間の選好の高速な近似です。第二に、だからこそ近似は破綻し得るので、式(2)の KL 項で出発点から離れすぎないよう縛る。報酬モデルは代理指標であり、代理指標を突き詰めると本来の目的から外れる——ここまで言えれば十分です。
なお、教師あり微調整そのものの効率化はLoRA論文の解説が扱っています。「検証損失は悪いのに人間評価は良い」を腑に落とすには、過学習と評価を先に読むと見通しが良くなります。
まとめ
- 指示に従わないのは能力ではなく目的関数の問題。事前学習は「次のトークン」を最適化している(§1)
- 3段構え: 実演で SFT → 順位付けから報酬モデル(式(1))→ PPO で方策更新(式(2))。KLペナルティは報酬モデルの過剰最適化への縛り
- 中心的な結果は「1.3B が 175B を人間評価で上回った」。175B同士では 85±3% で好まれた(§4.1)
- アラインメント税は実在する。事前学習の勾配を混ぜて緩和したが、DROP・SQuADv2・翻訳では戻り切っていない(§4.2)
- 整合先は約40人のラベラーと研究者とAPI顧客であり、「人間の価値」ではない(§5.2)
原論文: Ouyang et al., "Training language models to follow instructions with human feedback" (arXiv:2203.02155, 2022)
コメント
コメントにはログインが必要です