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

個人投資家目線の読書録

ChatGPTの頭の中

ティーヴン・ウルフラム 監訳・稲葉通将 訳・高橋聡 早川書房 2023.7.20
読書日:2025.5.24

ChatGPTがどのように動作しているのか、ウルフラムが解説した本。

わしはChatGPTの動作がよくわからない。特にトランスフォーマーとアテンション機構のことが分からない。これまでもChatGPTの本を読んで、いちおう理解したつもりだったが、やっぱり分からなくなってきたので、関連書を読もうと思った。こういうとき、著者ごとに少し観点が異なるので、何冊か読むと理解が進むことがある。

この本はとくにオープンAIのサム・アルトマンCEO自らが、いちばんChatGPTの実情に近いと語っている本なので、読むのに適当だろう。

まずChatGPTが何をやっているかというと、ある単語列があるときに、その次に来る単語は何か、ということを推測している、ただそれだけのことである。

ここで予測に使っているのは、1750億個(ChatGPT3の場合)という重みデータ(ニューロン同士のつながり方のパラメータ)を持ったニューラルネットである。このニューラルネットの重みはインターネットの膨大な文章を使って学習されたものである。こうして推測した単語を1個増やした単語列が新たにでき、その新しくできた単語列に対して次の1語を予測してまた付け加える、ということを繰り返して、非常に長い文章を作成する。

ここで予測に使っているニューラルネットは、学習されて確定されたものを使う固定的なものである。しかし、これではじつは人間がやっているような文章にならない。なぜなら、固定的なニューラルネットだと、同じ単語列が入力されると、いつも同じ単語が出てくるということになるからだ。

人間の会話の場合、あるテーマについて話していると、言葉の重みが一般的な場合と異なっている。たとえば「重心」という単語がもっともつながっているのは普通は物理学で用いられる単語だろう。しかし、「日本の重心」と言ったとき、それは政治的な重心や経済的な重心、あるいは文化的な重心などを意味するだろうから、言葉の繋がり方が普通の場合とは異なってくることは理解できる。人間のするように会話のテーマに沿った単語の繋がり方をしないといけないのだ。

とくに問題になるのは代名詞で、あれ、それ、というのが何を指すかは一般的には決まらず、その時々で異なるから、それが何を指すかは固定的なニューラルネットでは分からない。

そこで、いま会話している一定の量の単語列をトランスフォーマーで再処理する。再処理というのは何をやっているかというと、ニューロンの繋がりの重みを再計算するのだそうだ。結局、トランスフォーマーには一時的なニューラルネットがあって、この一時的なニューラルネットによる重みデータの再計算がアテンションなのだそうだ。

こうしてChatGPTはトランスフォーマーの一時的なニューラルネットを使って、その時の話題に合致した次の単語を探し出している。その結果、まるで人間のように、会話しているテーマに沿った文章を形成できるというわけだ。

特にプロンプトを使うと、トランスフォーマー内の一時的なニューラルネットの重みデータをテーマに沿ってあらかじめ計算させておくので、会話がうまく行く。たとえば、「あなたは医者です」という文をプロンプトとして用いると、医者という単語に関係した重みデータを作ってくれるので、うまく答えられるわけだ。

まあ、細かい動作は相変わらずよくわからないが、概ね理解できたかな。以前、別の本で読んだことを再確認しただけのような気もするけど、イメージが固まってきたような気がする。

もっとも、著者だって分かってはいないのだ。ChatGPTがきちんと動作しているのは驚きだけど、じつはなぜ動いているのか科学的な説明はできず、つまり理由は分からないのだそうだ。ネットワークのつなぎ方や各種パラメータも、手探りでやってみたらうまく行ったというのが実情で、科学的にどうすればいいのかというのはわかっていないらしい。

どうやら大規模言語モデルは、結構いい加減な構成でも動いてしまうものらしい。もちろん、必要な素子数はやり方によって少なくすんだり多くなってしまったりするんだろうけど、とりあえずは動いてしまうようだ。なにしろ、こうしなければいけないという科学的な根拠はいまだないので、現状の構成が正解のはずがない。

ひとつ分かっているのは、いまのニューラルネットは人間の脳よりはまだ効率が悪いということ。その理由はひとつには人間の神経は重み回路とメモリが一体になっているのに、ChatGPTはメモリが別になっているので、非常に効率が悪くなっている。そうすると、AIチップのつぎの課題は、GPUとメモリが一体になった素子を開発することらしい。たぶん現在はそっちの方向で新しいAI用チップの開発が進んでいるんだろう。

面白いのは、ニューロネットは人間の脳の仕組みを模しているわけだが、人間の脳と同じような欠点があるということだ。人間の脳は論理的な思考や数学的な思考をするのは苦手で、それは大規模言語モデルでも同じなのだという。

たとえば、左カッコ“(”と右カッコ“)”の数は揃っていなければいけない、という決まりを教えて大規模言語モデルに“(”と“)”を生成させると、5個ぐらいまでのペアはうまく行くけど、ある数を超えると数を間違えるのだという。数をきちんと数えるのが苦手なのだ。

こういう処理はニューラルネットでない普通のコンピュータには得意なものである。だから、こうした普通のコンピュータの計算機能をニューラルネットと組み合わせればうまくいくのかもしれない。しかし、いまのところは両者をうまくつなぐ方法はないようだ。結局、大規模言語モデルを使っても、こういう論理的、数学的な思考が必要な場合は、人間と同じように一つ一つ手順を組んで、実行しなければいけないようだ。

ウルフラムは、大規模言語モデルの動きを見ていると、言語機能というのは意外にシンプルで、それほど大変なものではないのかもしれない、という。これまで、人は言語を使うことを非常に神秘的な機能のように考えてきたが、実はそんなに大したものではないのかもしれない。

まあ、こういうChatGPTの仕組みをみる限り、いまのところAIが人間を超えるということは、あんまり心配しなくていいんじゃないかな。便利だけど、まだ物足りない。もっとAIの発展速度をあげてもらいたい。なにしろシンギュラリティをはやく起こしてもらわないといけないんだから。

★★★★☆

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