Instruction Tuning と RLHF を1から解説 — 指示に従うモデルはどう作られるか
事前学習しただけのモデルが指示に従わないのは能力不足ではなく目的関数のずれ。InstructGPT論文(Ouyang et al., 2022)の本文だけを根拠に、SFT→報酬モデル→強化学習の3段を式まで追い、「1.3Bが175Bを人間評価で上回った」という主張と、論文自身が認めた限界を§番号付きで読む。
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)。
コメント
コメントにはログインが必要です