ヘタレ投資家ヘタレイヤンの読書録

個人投資家目線の読書録

大規模言語モデルは新たな知性か ChatGPTが変えた世界

岡野原大輔 岩波書店 2023.6.20
読書日:2023.12.18

ChatGPTなど大規模言語モデルがどのような構成になっているのか、さらに大規模言語モデルの結果分かったことを分かりやすく解説した本。

ChatGPTが驚異的な文章生成能力を確保していることについてはいろいろ言われているが、いまいち具体的にどう実現しているのか、わしには理解できなかった。いわく「注意機構」とか「トランスフォーマー」という単語が出てくるが、これらは具体的に何を表しているのだろうか。

この本は薄いながらも(たった130ページ)、しかも上記の特徴ある仕組みについても10ページ程度しか説明していない。でもこれまで読んだどれよりも分かりやすかった。こんなふうに分かりやすく説明できるとは素晴らしい。著者はこの本を書くのにChatGPTを駆使したんだそうだ。あれま(笑)。ChatGPTを使えば分かりやすい本ができるのかもしれない。ではわしも、必要な部分はChatGPTに訊くことにしよう。

まず「注意機構(Attention)」について見てみよう。

注意機構は、文字通りどの単語が重要かを判断して注意の強さを決定する。これは一種のフィルタ機能で、注意を払わなくていい単語を無視して、注意を向けるべき単語に集中させる働きをする。実際にはこの注意の強さはシナプスの重みとして実現される。どのように重みを変えるかは、学習によって獲得する。では、どのような学習をしているのだろうか

ChatGPTの学習というのは、ある単語の並びを与えて次にどんな単語が来るかを予想する、という学習を延々と行うのだそうだ。この本では次のような文例を出している。

「この時彼は突然……」

ChatGPTはこの次に来る「……」の部分に入る単語を予想する。まずChatGPTはこれを単語ごとに(実際にはトークンという単位ごとに)分解する。

「この」「時」「彼」「は」「突然」

この単語の並びを次のニューロン層に伝える時、単語ごとの重みを決定する。そうして予想した単語を間違えると、重みの付け方も変えていくという学習を行う。この文例の場合は、予測するのに、「時」と「彼」の情報が必要と判断するように学習していく。学習されると、「時」と「彼」のシナプスの重みが大きくなり(注意する)、他の単語の重みは小さくなる(無視する)。

次に、注意機構は、過去の文から重要と思われる「時」と「彼」に関する情報を収集する。これを自己注意機構(self-Attention)という。重要な単語とされるのには、「それ」「彼」などの代名詞が多いようだ。たぶん、代名詞が使われるというのは、特定のテーマが続いていることを示しているからだろう。そうすると、「それ」や「彼」が実際になにを指しているのかを正確に収集する必要がある。代名詞などは何をさしているか紛らわしい場合も多いのだが、その収集の方法自体も、学習により獲得し、だんだん正確に収集できるようになっていく。

このときどのくらいの単語まで遡るのだろうか。ChatGPTに訊いてみると(笑)、遡る単語数が増えるほどコストが増すので(そりゃそうだ)、一般的には数十から数百なんだそうだ。(ChatGPTが嘘をついていなければだけど)。きっと、この数もますます増えていくのだろう。

注意機構はこの数の単語をシナプスの中に記憶している、とも言える。これは人間の脳の働きに置き換えると短期記憶に相当するという。

重要なのは、注意機構は文章が入力されるたびに、以上のような作業を行うので、シナプスの繋がり方が「動的」に変化しているということである。これがChatGPTがいろいろな文章に柔軟に対応できる理由だ。

つぎに「トランスフォーマー」について説明する。

トランスフォーマーは上記の自己注意機構と、MLP(Multi-Layer Perception)ブロックを交互に並べたもので、ChatGTPなどの大規模言語モデルの情報処理モデルそのものである。MLPとは各ニューロン層のニューロン同士がすべてシナプスで繋がっているような構造になっている。全部のニューロン同士が繋がっているので、それだけ繋がり方を示す重みパラメーターが膨大な数になる。ChatGPT-3ではその数は1750億個あるのだという。これが「大規模」と言われる所以である。MLPの役割は、自己注意機構が集めた情報から関連する情報を提供することである。

シナプスの繋がり方を示すパラメーターは学習するごとに計算して変えていくのだが、いったん学習が終わるとMLPはそれ以上変更しない。なので、この層は長期記憶に相当するのだという。大規模というのはどのくらいかと言うと、MLPにはウェブ全体やすべての本の中身がそっくり入っているほどの量だそうだ。

こうして、トランスフォーマーは柔軟に構造を変える自己注意機構と世間の情報を集めたMLPを使って次の単語を予想していくのだが、このような構造にすることで意図していなかった効果が出たのだという。

自己注意機構は重みパラメーターを入力された文章に合わせて柔軟に変更するため、一度学習が終わったあとも、予想モデルを変更している、つまり学習しているように見えるのだという。たとえばプロンプトの作り方によって、その挙動が変わる。論理的な議論をしたいときには、ステップごとに答えるように指示すれば、論理的に答えてくれる、と言った具合だ。これを本文中(In-context)学習という。

また学習するパラメーター数(モデルサイズ)を大きくすることの意味も分かってきた。単純にはモデル数を大きくすればするほど、単純に予測精度が上がるのである。予測精度は「べき定数」に単純にしたがう。この法則が分かったため、(1)どのくらいのモデルサイズにすればどれだけの効果があるか、投資効果が単純に計算できる、(2)モデルサイズを大きくしても過学習や学習効率の低下が起こらない、ということが分かったのだという。

このような学習をしただけでは、次に来る単語を予測するだけなので、人間に寄り添うようには動かない。なので、実際に使えるようにするための目標駆動学習(人間のフィードバックによる強化学習)が必要で、これはChatGPTの動作をラベラーという人が評価して、それをフィードバックする。実際にはラベラーの評価を数値化して、自動的に評価できるようなシステムを作り、自己学習させる。

こうして人間に寄り添った学習により、対話可能なシステムになっている。

わしはChatGPTに不満が強い。なぜなら、既存の知識はうまくまとめてくれるが、新しい知識を生み出すのにさほど貢献してくれないからだ。なにか回答が平凡である。しかし、これは目的駆動学習により、嘘をつけないようになっているからかもしれない。

新しい知識を生み出すには、「そんなバカな」と言うようなアイディアが出る必要がある。つまり、嘘をつく能力が必要だ。「嘘」という言葉が問題なら、「現実には存在しない幻想を構想する能力」、といってもいい。確かに嘘を平気でつくとしたら、それを信じてしまう人が出てくるだろうから問題だが、このままではあまり使えないのではないか、という気がする。たまにChatGPTが嘘をついて問題になるが(幻覚、ハルシネーションなどと言われる)、それこそが新しい知識を生み出すのに必要なものなのだ。

なにかいい方法はないだろうか。プロンプトをうまく作ればなんとかなるのだろうか。きっと数学、科学、創作のために、専用の大規模生成モデルを作る必要があるのだろう。

このような新しい知識をうまく生み出せるようになれば、シンギュラリティが到来したと確信できるのだが……。

★★★★★

にほんブログ村 投資ブログへ
にほんブログ村 本ブログ 書評・レビューへ