ChatGPTのもとになったInstructGPT
2022年の2月にOpenAIが「人間のフィードバックで指示に従うように言語モデルをトレーニングする」(Training language models to follow instructions with human feedback)という論文で言語モデルInstructGPTを発表しました。これといって大騒ぎになるようなことはありませんでした。しかし、InstructGPTはChatGPTのもとになったモデルであり訓練の仕組みなどは基本的に同じです。
また、InstructGPTのもとになったのは言語モデルであるGPT-3ですが、そこには改善するべき問題点が存在しました。
GPT-3の問題点
GPT-3は与えられた質問と回答の具体例(デモンストレーション)を与えると、類似した新しい質問に対して答えることができる能力があり、翻訳や計算まで(追加のファインチューニングなしに)こなせることで話題となりました。
例えば、以下のように二つの計算例を示した後に、新しい計算式を出すとその答えを正しく予測できます。
5 + 8 = 13
7 + 2 = 9
1 + 4 = つまり、GPT-3はすでに人間から指示されたことに従った返答をすることができました。ただし、こちらが意図していないことを返してきたり、まったく関係ない文章を生成することも多々ありました。これはGPT-3の訓練が単に与えられた文章の続きを生成することを目指したもので、文章のつながりが自然であれば良く、人間の指示とは関係あるかどうかは二の次だったからです。
以下はOpenAIのブログ記事からの例です。

日本語に訳すとこんな感じです。
プロンプト:6歳児に月面着陸について少しの文章で説明してください。
GPT-3の回答
======
6歳児に重力の理論を説明する.
相対性理論を6歳児に短い文章で説明してください。
ビッグバン理論を6歳児に説明します。
6歳児に進化を説明する.
InstructGPTの回答
==========
人々は月に行き、見たものの写真を撮り、それを地球に送り返して、
私たち全員が見ることができるようにしました。プロンプトは「6歳児に月面着陸について少しの文章で説明してください」なのに対してGPT-3は(自然な文章を生成していますが)人間が意図した回答をしてくれません。一方、InstructGPTは見事に6歳児にわかるような月面着陸の説明を指示されたように少しの文章で行っています。
GPT-3とGPT-3をもとにしたInstructGPTでこのような違いを生じさせた訓練手法とはどのようなものでしょうか。
InstructGPTの訓練方法
このためInstructGPTでは人間の指示に従った文章を生成するように訓練する手法を取り入れました。大きく分けて3つのステップがあるので一つずつ解説します。
ステップ1:デモンストレーションによるファインチューニング
GPT-3はAPIを通して多くのひとに使われており、たくさんの質問と回答の具体例(デモンストレーション)を教師あり学習の訓練データとして利用することができました。これを使ってGPT-3をファインチューニングすることで人間が意図に沿ってと回答する訓練を行います。
これがInstructGPTの第一の訓練で、OpenAIではこの段階をSFT(Supervised Fine-Tuning)と呼びます。GPT-3がより人間の意図するような文章を生成するようになります。しかし、教師あり学習で使えるデータには限りがあるのでもっと工夫が必要です。
ステップ2:人間による格付けによる評価モデルの訓練
さた、ファインチューニングされたGPT-3に対して新しい質問を与えるとGPT-3から回答を得ることができます。同じ質問を繰り返すとGPT-3は異なる回答を返してくるので、同一質問に対して2つ回答を得ることができます。このようにして集めた複数の回答を人間が評価します。つまり、どちらの回答の方がより人間の指示に従った自然な会話になっているかを人間の感性で決めるのです。
このためだけの目的でOpenAIは人間を雇ってファインチューニングされたGPT-3の回答の質を格付けしました。こうして集められて質の良い回答を使ってさらにファインチューニングすることでGPT-3はさらに人間の意図に従う回答を生成するようになります。
これがInstructGPTの第二の訓練です。OpenAIではこの段階をFeedMEと呼びます。FeedMEをあえて訳すと「私にくれ」、「食べさせて」、「もっと与えて」と言った意味です。質の高い訓練データを与えて教師あり学習を行います。
しかし、人間が評価できる文章の数には限界があります。なので、この格付けデータをもとに、生成文章の評価をするためだけのモデルを訓練しました。これを報酬モデル(Reward Model、RM)と呼びます。
つまり、この報酬モデルがあれば人間を雇わずとも無限の文章を評価できるモデルができたわけです。
ステップ3:報酬モデルを使った強化学習
このステップでは強化学習を使います。これをRLHF(Reinforcement Learning from Human Feedback、人間のフィードバックによる強化学習)と呼びます。
GPT-3を強化学習エージェントとして考えると、環境から与えられる観測値(Observation)のはプロンプトの文章で、GPT-3の行動(Action)は生成文章となります。この生成文章を評価し報酬を決めるのが上述の報酬モデルです。よってGPT-3はより良い報酬を得られるようにニューラルネットワークのパラメータを更新していきます。その際にPPO(Proximal Policy Optimization)と呼ばれる強化学習の手法を使っています。
このようにしてGPT-3にもともとある言語能力をより人間が期待するような回答ができるようにファインチューニングしていったモデルがInstructGPTです。
人間からのフィードバックをもとにした報酬モデルを使って強化学習を行うことでInstructGPTは言語モデルの可能性をさらに拡張することに成功したと言えます。
