体系 › 学習手法・アライメント
·無料·論文·13分で読めます

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)。

FIG 1通常「検証損失が上がり始めたら止める」が定石。ところがInstructGPTのSFTでは、検証損失が悪化した後も人間の選好評価は改善し続けた(§3.5)。何を最終指標に置くかで「過学習」の意味が変わる

第2段: 人間の順位付けから報酬モデルを作る

実演だけでは足りません。「良い答え」を毎回書き下ろすのは高くつくうえ、どちらがより良いかを選ぶほうが、良い答えを書くよりずっと簡単だからです。

そこで、同じプロンプトに対するモデル出力の集合をラベラーに順位付けしてもらいます。論文は1プロンプトあたり K=4K=4 から K=9K=9 個の応答を提示し、そこから (K2)\binom{K}{2} 通りの2択比較を作りました(§3.5)。RM の訓練プロンプトは33,000件(表6)。

報酬モデル自体は、SFT モデルの最後の unembedding 層を外し、プロンプトと応答を受け取ってスカラー1つを返す形にします(§3.5)。損失は次の式です。

loss(θ)=−1(K2) E(x,yw,yl)∼D[log⁡σ(rθ(x,yw)−rθ(x,yl))]\mathrm{loss}(\theta)=-\frac{1}{\binom{K}{2}}\,\mathbb{E}_{(x,y_w,y_l)\sim D}\Big[\log\sigma\big(r_\theta(x,y_w)-r_\theta(x,y_l)\big)\Big]
(1)

左から順に読むと、こう言っています。人間が優劣をつけた応答のペアを取り、勝ったほうの点数から負けたほうの点数を引き、その差を確率に潰し、その確率が低いときほどモデルを罰する。つまりこの式は、点数の絶対値をまったく気にしていません。効いているのは2つの点数の差だけで、両方に同じ数を足しても損失は1ミリも動かない——「80点と60点」と「20点と0点」は、この式にとって同じ状態です。

記号を1つずつ。xx はプロンプト、ywy_w は人間が選んだほう、yly_l は選ばれなかったほう、rθr_\theta が報酬モデルの出力するスカラー、σ\sigma はシグモイド関数です。式(1)が言っているのは「勝った側のスコアが負けた側より高くなるようにせよ」だけ。シグモイドは点数差を「人間がそちらを選ぶ確率」に変換する装置で、差が0なら0.5、差が大きいほど1に近づきます。

FIG 2式(1)の σ。横軸が2つの応答の報酬差、縦軸が「人間が勝者を選ぶ確率」。差が0なら五分五分、離れるほど確信に近づく——報酬モデルはこの確率が人間の実際の選好に合うよう学習する

実装上の注意が2つ明記されています。ひとつは、(K2)\binom{K}{2} 個の比較をバラバラにシャッフルして1件ずつ学習させると1エポックで過学習すること。同一プロンプト由来の比較は強く相関しているためで、論文は1プロンプト分の全比較をまとめて1つのバッチ要素として扱うことで解決しました。順伝播が KK 回で済むので計算も軽くなります(§3.5 脚注3)。

もうひとつ、報酬モデルは6Bのみ。175B の RM 学習は不安定になりやすく、価値関数として使うには向かなかったためです(§3.5)。報酬はシフト不変なので、最後にラベラー実演の平均スコアが0になるよう正規化します。

第3段: 強化学習で方策を更新する

報酬モデルができたら、それをスカラー報酬として SFT モデルを PPO で微調整します(§3.1 Step 3)。環境はバンディット——プロンプトが1つ出て、応答を1つ返し、報酬モデルが点数をつけ、そこでエピソードが終わる、という極端に短い環境です(§3.5)。価値関数は報酬モデルで初期化します。

最大化する目的関数は次の形です。

objective(ϕ)=E(x,y)∼DπϕRL[rθ(x,y)−βlog⁡πϕRL(y∣x)πSFT(y∣x)]+γ Ex∼Dpretrain[log⁡πϕRL(x)]\mathrm{objective}(\phi)=\mathbb{E}_{(x,y)\sim D_{\pi^{\mathrm{RL}}_\phi}}\Big[r_\theta(x,y)-\beta\log\frac{\pi^{\mathrm{RL}}_\phi(y\mid x)}{\pi^{\mathrm{SFT}}(y\mid x)}\Big]+\gamma\,\mathbb{E}_{x\sim D_{\mathrm{pretrain}}}\big[\log\pi^{\mathrm{RL}}_\phi(x)\big]
(2)

要するに、この式はアメとムチと復習の3点セットです。大きな E\mathbb{E} は「たくさんのサンプルで平均を取れ」という意味でしかなく、ϕ\phi は学習中の重みの束、β\beta と γ\gamma はムチと復習をどれだけ強く効かせるかのつまみです。報酬モデルの点数というアメを取りに行かせ、出発点の SFT モデルから離れた分だけムチで引き戻し、最後の項でもう一度だけ事前学習データを読ませて、元々できていたことを忘れさせない。

3項に分けて読みます。πϕRL\pi^{\mathrm{RL}}_\phi が学習中の方策、πSFT\pi^{\mathrm{SFT}} が出発点の SFT モデルです。

  1. rθ(x,y)r_\theta(x,y) — 報酬モデルの点数を上げる。これが本体。
  2. −βlog⁡(πϕRL/πSFT)-\beta\log(\pi^{\mathrm{RL}}_\phi/\pi^{\mathrm{SFT}}) — トークンごとの KLペナルティ。SFT モデルから離れるほど罰を受けます。目的は報酬モデルの過剰最適化を抑えること(§3.5)。報酬モデルは人間の代理にすぎず、そこだけ突き詰めると人間には無意味な出力へ逃げていくからです。
  3. γlog⁡πϕRL(x)\gamma\log\pi^{\mathrm{RL}}_\phi(x) — 事前学習データの対数尤度。γ=0\gamma=0 なら素の「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)。

限界と未検証点

論文自身が §5.2 と §5.3 で、かなり率直に書いています。

※本記事執筆時点(2026年)の補足(原論文の主張ではなく筆者の注記): 本論文以降、報酬モデルと強化学習の2段を1つの分類的損失にまとめる DPO のような手法が広く使われるようになりました。ただし本記事の数値と主張はすべて本論文の報告値であり、後続手法の性能は含みません。

現場ではこう使う

3段のうち現場で自分の手で回すのは、ほぼ第1段(SFT)だけです。報酬モデルと強化学習まで自前で組むのは、専任チームと継続的なラベリング体制がある組織に限られます。

触るパラメータ名。 TRL なら SFTTrainer の num_train_epochs / learning_rate / packing から入る。選好学習に進むなら DPOTrainer の beta(本論文の β\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論文の解説が扱っています。「検証損失は悪いのに人間評価は良い」を腑に落とすには、過学習と評価を先に読むと見通しが良くなります。

まとめ

原論文: Ouyang et al., "Training language models to follow instructions with human feedback" (arXiv:2203.02155, 2022)

参考文献

  1. Long Ouyang, Jeff Wu, Xu Jiang, Diogo Almeida et al.. (2022-03-04) Training language models to follow instructions with human feedback. arXiv:2203.02155論文ページ·PDF

本記事は上記論文の本文にもとづいて執筆しています。数値・主張は原典を優先してください。

運営: TechAthletes · 編集方針 · 出典の付け方 · 訂正の記録

コメント

コメントにはログインが必要です