🔗 ChatGPTのしくみとAI理論の根源に迫る:(12/16)基本的なトレーニングの次に何をするか(翻訳)
ChatGPTをトレーニングするトレーナーの苦労の多くは、Web上や書籍などから大量の既存テキストをChatGPTに「読ませる」作業に費やされます。しかし、どうやらそれ以外にもかなり重要な部分が存在しているようなのです。
ChatGPTは、元となるテキストのコーパスを読まされて「生のトレーニング」が完了した段階で、早くも独自のテキストを生成してプロンプトに答える準備が整います。
しかし、この段階のChatGPTが生成する結果は妥当に思えることも多いのですが、どちらかというと人間らしくない形で回答が迷走することもしばしばあります。このような逸脱は、テキストに対して伝統的な統計処理を行っても容易に検出できませんが、本物の人間が読むとひと目で何かがおかしいことがわかります。
OpenAIのブログに掲載されているChatGPTを構成するうえで重要なアイデアの1つは、Webなどのテキストを「受動的に読む」トレーニングを終えたら、さらにChatGPTが実際に人間とやりとりを行い、人間はその結果を吟味したうえで、「よきチャットボットになる」ために必要なフィードバックをChatGPTに与える、というものです。
しかし、人間からのフィードバックをニューラルネットにどうやって与えられるのでしょうか?
その最初のステップは、ニューラルネットの生成結果を人間が評価することです。しかしここで、人間による評価付けの予測を試みる別のニューラルネットモデルを構築します。するとこの予測用モデルは、元のニューラルネットに対して、本質的に損失関数のように振る舞うようになり、人間から与えられたフィードバックを元にニューラルネットを事実上「チューンアップ」できるようになるのです。
そして実際のトレーニング結果を見てみても、この方法はシステムが「人間らしい」出力の生成に成功するうえで大きな効果を与えているようです。
「トレーニング済み」のネットワークを特定の方向に導くためにネットワークに対して与える必要のある刺激は、一般に驚くほど少なくて済むという点は実に興味深いことです(ネットワークが「何か新しく学習した」かのように振る舞うには、ネットワークの中に立ち入って、トレーニング用アルゴリズムを実行したり、重みを事細かに調整したりしなければならないのではないかとご想像の方も多いでしょう)。
しかし、そのような細かな作業を行わなくても、ネットワークを特定の方向に導けます。どうやら、基本的にはChatGPTにプロンプトで1度指示するだけで、その指示をテキスト生成時にうまく活用できるらしいのです。
繰り返しになりますが、この方法がうまくいくということは、ChatGPTが「実際に行っていること」を理解するために、そしてそれが人間の言語や思考の構造とどのように関連しているかを理解するうえで重要な手がかりになるだろうと私は考えています。
そこに「人間らしい何か」があるのは確かです。少なくとも事前トレーニングを1回済ませておけば、後はプロンプトで1回指示するだけでその指示を「記憶する」ようになるのです(少なくともそれを用いてテキスト片を生成するのに十分な期間は)。
いったいここでは何が起きているのでしょうか?
たとえば「プロンプトで与えるような指示は、実は既にどこかに存在していて、その適切な場所にたどり着けるよう人間が導いているだけ」なのでしょうか?
しかし流石にそのシナリオはありえないでしょう。
そうした適切な要素が既に存在しているとしても、具体的な内容は実は要素よりも「要素間の道筋」によって定義されていて、プロンプトで指示するということは、まさにその「道筋」を導入しているのだというシナリオの方がありそうです。
実際、ChatGPTの知っている思考の枠組みにまったく当てはまらないような突拍子もないプロンプトをChatGPTに伝えたとしても、人間のようにうまく「統合」できるとは思えません。ChatGPTが「統合」できるのは、基本的に既存の枠組みの上にかなりシンプルな形で乗っている場合に限られます。
ニューラルネットが「拾い上げる」ものは「アルゴリズム的な限界」を必然的に伴うということも、ここで改めて指摘しておく価値があると思います。
ニューラルネットに「これはあそこにつながる」という「浅い」ルールを伝えれば、ニューラルネットはそのルールを問題なく表現・再現できるでしょう。実際、ニューラルネットが言語から「既に学んだ」内容は、ただちに従うべきパターンをニューラルネットに与えてくれるでしょう。
しかし、縮約不可能(irreducible)な可能性のある計算を多く含む「深い」計算を実際に与えようとすると、うまく動きません。
原注
既に説明したように、ニューラルネットの各ステップでは、常に「データをフィードフォワード」しているだけであり、新しいトークンを生成する場合を除いてループは発生しないことを思い出しましょう。
もちろん、ニューラルネットは、そうした「還元不可能な」計算の答えを個別に学習することなら可能です。しかし、可能性の組み合わせが増えてくれば、その手の「テーブル参照方式」ではうまくいきません。
つまり、ついにニューラルネットも計算専用ツールに「手を伸ばす」ときがやってきたということです。実際、私が手掛けているWolfram AlphaとWolfram言語は、AIからアクセスして使う計算専用ツールとしてまさにうってつけと言えます。Wolfram Alphaは、言語モデルのニューラルネットが行うのと同じように「世界で起きていることについて自然言語で入力できる」ように構築されているからです。
次回: (13/16)ChatGPTは実際にどう動いているのか
概要
原文サイトのCreative Commons BY-NC-SA 4.0を継承する形で翻訳・公開いたします。
日本語タイトルは内容に即したものにしました。原文が長大なので、章ごとに16分割して公開します。
スタイルについては、かっこ書きを注釈にする、図をblockquoteにするなどフォーマットを適宜改善し、文面に適宜強調も加えています。
元記事は、2023年2月の公開時点における、ChatGPTを題材とした生成AIの基本概念について解説したものです。実際の商用AIでは有害コンテンツのフィルタなどさまざまな制御も加えられているため、そうした商用の生成AIが確率をベースとしつつ、確率以外の制御も加わっていることを知っておいてください。
本記事の原文を開いて、そこに掲載されている図版をクリックすると、自分のコンピュータでもすぐに実行して試せるWolfram言語コードが自動的にクリップボードにコピーされるようになっています。
コモンズ証 - 表示 - 非営利 - 継承 4.0 国際 - Creative Commons