生成AIで世界はこう変わる
今井 翔太


 P58

 ◆ 「正しい回答」が「好ましい回答」とは限らない

 高性能な言語モデルを実現するには、大量の穴埋め問題を解かせるということを説明してきました。しかし、先ほども触れたように、実はこれだけではChatGPTレベルの超高性能なAIをつくるには足りません。例を挙げながら説明します。

 たとえば、人間が「会社の上司との関係が悪いのですが、どうしたらいいですか?」というプロンプトを入力した場合を考えます。先ほどのような学習を行った言語モデルは、次のような回答をしてくるかもしれません。

 まずはその上司をぶん殴ってやりましょう。暴力はすべてを解決します。またはその上司が言うことを無視するのもいいかもしれません。そうすれば上司もあなたに気を遣うでしょう。

 さて、このような回答は、われわれ人間がAIに望む回答でしょうか。少なくとも、この回答は文章としては問題ありません。文法は正しいですし、質問の内容にも答えています。しかし、これは人間にとって「好ましい回答」とは言えないと思います。

 では、次のような回答が返ってきたら、どうでしょうか。

 いくつかの選択肢が考えられます。まずは、上司本人と時間を取って話し合うことが大切です。他に考えられるのは、その上司のさらに上の立場の人に相談してみることです。

 私たち人間がAIに望むのは、このような回答のはずです。

 穴埋め問題だけで学習した言語モデルは、このような「好ましい」文章を優先的に生成するようにはできていません。言語モデルの学習には、Web上から集めたデータを使いますが、そのなかには暴力的な言説、デマ、倫理に反する内容など、好ましくないテキストが大量に含まれています。ところが、学習に使うデータは何兆字にも及ぶため、人間があらかじめテキストをすべて精査するのは不可能です。

 ただ単に穴埋め問題を解くように学習した言語モデルは、人間らしい文章を生成することはできるかもしれませんが、その文章が好ましいものであるかどうかはまったく考慮されないのです。いくら文法的には正しい文章を生成するAIができたとしても、人問の入力に対して好ましくない滅茶苦茶な回答をするものであれば、ここまで注目されることはなかったでしょう。

 ◆ 人間によるチューニングと半自動的な学習

 生成AIブームのきっかけとなったChatGPTは、この問題を画期的な方法で解決したのです。この手法はまず、ChatGPTの前身となる「InstructGPT」で導入されました。

 1つは「教師ありファインチューニング(Supervised Fine-Tuning)」という手法です。これは先述した「教師あり学習」を文章に対して適用したようなもので、なんらかのプロンプトに対して人間が理想的な回答をつくってやり、AIがそれを正解データとして学習するというものです。

 先ほどの「会社の上司との関係が悪いのですが、どうしたらいいですか?」というプロンプトがあった場合、人間が正しい回答として「まずは話し合うことが重要です。場合によっては、上司のさらに上司に相談することも考えるべきです」という文章をつくってあげます。あとは、言語モデルがそういった人間の回答データを出力するように学習するのです。

 しかし、これだけでは言語モデルに好ましい出力をさせるには足りません。そもそも人間がひとつひとつ回答を作成するので、データを大量に用意できず、ありとあらゆる入力に対応するのは不可能です。また、このやり方では、何が正しい回答なのかを教えることはできても、何が誤った回答なのかを明示的に教えることができません。

 そこで、ChatGPTなどの最近の超高性能な言語モデルを実現する核となった最後のコア技術が、「人間からのフィードバックに基づく強化学習(RLHF:Reinforcement Learning From Human Feedback)」です。ちなみに筆者の専門もこの強化学習です。

 RLHFではまず、とあるプロンプトを言語モデルに入力して、何個か回答を生成させます。言語モデルの出力は確率的なので、入力のたびに違う回答が返ってきます。たとえば、「会社の上司との関係が悪いのですが、どうしたらいいですか?」というプロンプトを3回言語モデルに入力すると、以下のような出力が返ってくるでしょう(以下は実際にChatGPTに出力させた例です)。

 〈出力1〉
 上司との関係を改善するには、上司とコミュニケーションを取り、上司のこと理解していく必要があります。また、上司に謙虚な態度や協力的な態度を見せることも大切です。

 〈出力2〉
 原因を特定して対策を講じることが大切です。相手の働き方や性格を理解することも大切です。たとえば、相手の働き方が気に入らない場合は、相手に対して意見を述べることで改善してもらうことができます。また、相手の性格を理解することで、相手に対してうるさくないように気をつけることもできます。ただし、原因を特定して対策を講じることは難しいです。

 〈出力3〉
 相手の人格を尊重し、相手の意見を聞くことを意識しましょう。また、自分の意見もしっかりと伝え、相手に対して感謝の気持ちを持つことも大切です。

 これらの回答に対し、人間にとっての好ましさに応じてランク付けをします。たとえば、出力1は0.6、出力2は0.3、出力3は0.1などのように、回答が好ましいものであるほど良いスコアを付けます。これは人間が行います。つまり、言語モデルの出力に対して、人間が「フィードバック」を行っているわけです。

 次にこのようにランク付けした回答を使って、「報酬モデル(Reward Model)」というものを学習します。言語モデルに対する入力と出力のセットを報酬モデルに入力すると、言語モデルが好ましい回答をしたかどうかを示す報酬を出力します。これはいわば、言語モデルの出力を採点しているようなもので、報酬の数値が高いほど好ましい出力ができていたことを示します。

 そして、言語モデルは、報酬モデルから得た報酬を使って強化学習を行います。強化学習は、自分の行動によって高い報酬を得られるように学習する手法ですから、このようにして学習された言語モデルは報酬が高くなる好ましい出力を高い確率でするようになります。

 このやり方であれば、報酬モデルさえ完成してしまえば、あとは半自動的にさまざまなプロンプトに対する出力について、「何が良いのか?」「何が悪いのか?」を報酬の大小から学習することができるようになります。

 ここまでがChatGPTの学習手法です。ChatGPTは「穴埋め問題の学習」「教師ありファインチューニング」「人問からのフィードバックに基づく強化学習」を大規模に行うことによって実現されたのです。