なぜスケールではAGIは解決しないのか | Vishal Misra – The a16z Show

AGI・ASI
この記事は約31分で読めます。

本動画は、LLMがどのように動作しているのかを数理的に捉え直し、その本質がBayesian updatingにあるとする見解を軸に、現在のAIがなぜAGIに到達していないのかを掘り下げる内容である。スケール拡大だけでは限界を超えられず、真のAGIには継続学習による可塑性と、相関から因果へ進む新たな仕組みが必要だという主張が、具体例と理論の両面から展開される。

Why Scale Will Not Solve AGI | Vishal Misra - The a16z Show
Vishal Misra returns to explain his latest research on how LLMs actually work under the hood. He walks through experimen...

なぜスケールではAGIは解決しないのか

Anthropicは素晴らしい製品を作っています。Clawdbotのコードも非常に優れていますし、共同作業まわりの機能も見事です。でも、それらは結局のところ、行列積を計算しているシリコンの粒にすぎません。意識はありません。内なる独白もありません。

LLMを1916年以前、あるいは1911年以前の物理学だけで訓練して、そこから相対性理論にたどり着けるか試してみてください。もしそれができるなら、そこで初めてAGIだと言えるでしょう。

ちなみに、ちょうど今日、Dario Amodeiが、彼らに意識がある可能性は排除できない、といった趣旨のことを言ったらしいですね。いや、さすがにそれはないでしょう。いわゆるAGIに到達するには、2つのことが必要だと私は思っています。その1つは――

Michelle、また来ていただけてうれしいです。

また呼んでいただけてうれしいです。

これは私が特に好きなテーマの1つなんです。LLMは実際にはどう動いているのか、という話ですね。

そして私の考えでは、この点をモデル化する仕事として、あなたは最高レベルの成果を出してきたと思います。

ありがとうございます。前回の話をご覧になっていない方もいると思うので、まずはここに至るまでの経緯を簡単に振り返って、そのあと最近取り組んでいる研究に入りましょうか。

GPT-3との出会いと、最初のRAG的実装

5年前、GPT-3が最初に公開されたとき、私は早い段階でアクセス権を得て、いろいろ触っていました。そのとき、クリケットのデータベースを問い合わせる問題を解こうとしていたんです。

そこで私は、GPT-3にin-context learning、つまりfew-shot learningをやらせました。そして、少なくとも私にとっては、それが最初に見たRAG、retrieval augmented generationの実装でした。これを使って、自然言語を、GPT-3自身はまったく知らないデータベースを問い合わせるための形式に変換させるという問題を解いたんです。

私はGPT-3の内部にはアクセスできませんでした。でも、それでもその問題を解くことができました。しかも、実に見事に動いたんです。私たちはこれを2021年9月にESPNで本番運用に載せました。

すごいですね。2021年に最初のRAG実装をやったんですか。

いやいや、2021年ではなく2020年です。

2020年。

2020年です。

2020年10月の時点で、私はこのアーキテクチャを動かしていました。ESPNで法務の人たちと話したり、本番化したりするのに時間がかかったので、世に出たのは少し後になったんです。

でも、動かしてみて、私は本当に驚きました。どうしてこれが動くのか理解したくなったんです。

それで、Attention Is All You Needのような論文や、ほかのディープラーニングのアーキテクチャ論文を読んでみたのですが、なぜ動くのか理解できませんでした。

そうなんですね。

それで、数学モデルを自分で作り込む方向に深く入り込んでいったんです。

その後、一連の論文を出されましたよね。私が最初に読んだのは、あの行列による抽象化の論文でした。そこをまず話して、そのあと最近の研究に進みましょう。

ええ。

LLMを巨大な行列として捉える発想

では最初の話から入りましょう。あなたはLLMがどう動くのかを数学的に記述しようとしていた。

そうです。

しかも当時は、in-context learningがどう働いているのかを解明しようとしていたんですよね。

はい、その通りです。

あなたはLLMを、基本的には非常に巨大な行列として捉える抽象化を提示しました。それが私にはとても役に立ちました。その研究をざっと説明していただけますか。

もちろんです。

やることはこうです。まず、とてつもなく大きな行列を想像します。この行列では、各行が1つのプロンプトに対応しています。

LLMは、あるプロンプトが与えられると、次のトークンの確率分布を構築します。次のトークンとは、要するに次の単語のことです。すべてのLLMには語彙があります。GPTとその派生モデルなら、およそ5万トークン程度の語彙を持っています。

つまり、あるプロンプトが与えられると、次に来るべきトークンの分布を出してくるわけです。

そして、モデルはその分布からサンプリングするわけですね。

そうです。それが事後分布です。LLMはそうやって動いています。

この行列の考え方では、トークンのあらゆる組み合わせ、つまりプロンプトごとに1行があります。

そうですね。

そして列は語彙全体に対する分布です。

語彙が5万トークンあるなら、その5万トークンそれぞれに対する分布ですね。

分布というのは、要するに確率のことです。

そうです、すみません。単純に、次のトークンがこれである確率、あれである確率、という意味です。

なるほど。

こういう見方をすると、少なくとも私のようにモデル化したい人間にとっては、何が起きているのかがかなり明確になります。

具体例で言うと、たとえばプロンプトが protein という1語だけだったとします。その次の単語、次のトークンの分布を見ると、大半の確率はゼロに近いでしょうが、非ゼロで意味のある確率を持つ語がいくつかあります。たとえば synthesis と shake です。

ここでLLMは、その次のトークンとして synthesis をサンプルするかもしれないし、shake を選ぶかもしれません。

あるいは人間が protein shake とか protein synthesis という形で続きを与えることもありますね。

そうです。すると、synthesis を選ぶか shake を選ぶかで、その次の行の姿はまったく違ってきます。protein synthesis なら、高確率になる語は生物学に関するものになります。一方、protein shake なら、ジムや運動、ボディビル関連の語ばかりになります。

つまり、synthesis か shake かによって、その先が完全に変わるわけです。

ええ。これはBayesian updatingの例だと言えます。最初に protein という語があって、その後に何が来るかという事前分布があります。そこへ新しい証拠として synthesis あるいは shake が与えられると、その分布が一気に更新されるわけです。

すると、LLM全体はこの巨大な行列そのものだと考えられます。protein、protein shake、protein synthesis、the cat sat on the、Humpty Dumpty なんとかかんとか、そういったすべての行があるわけです。

仮に語彙数が5万で、コンテキストウィンドウがたとえば8,000トークンだとします。初期のChatGPTは8,000トークンでしたよね。そうすると、5万語彙と8,000トークンの全組み合わせを考えたとき、この行列の行数は、全銀河に存在する電子の総数よりも多くなります。

つまり、LLMがこれを正確に表現することは不可能です。

ただし、幸いにもこの行列は非常に疎です。なぜかというと、トークンの任意の組み合わせの大半は意味不明だからです。現実の自然言語ではそんなものは使いません。

そうですね。

さらに、列の方もほとんどゼロです。

その通りです。

たとえば protein の後に、適当な数字や適当な単語が何でも来るわけではありません。行も疎ですし、列も疎です。

だから、かなり抽象的に言えば、LLMがやっているのは、この行列の圧縮表現を作り上げることです。そしてプロンプトが与えられたとき、本来あるべき真の分布を近似し、それを生成しようとする。私の頭の中では、LLMは結局そういうものなんです。

私の理解からすると、protein という行があり、protein shake という行があるわけですが、protein shake は protein の部分集合なんでしょうか。それとも別物なんでしょうか。

別物です。protein からの続きです。

なるほど。

でも、その実際の事後分布という意味では、部分集合と言ってもよいのでしょうか。

ある意味では部分集合と言えます。protein の後には protein shake も protein synthesis も続きとしてあり得ます。synthesis も shake も非ゼロの確率を持っているので、ある程度は部分集合のように考えてもよいでしょう。

in-context learningは何をしているのか

あなたはこのアプローチを使って、in-context learningがどう動くのかを説明しました。まず、in-context learningとは何か、そしてそこからどういう結論に至ったのかを説明していただけますか。

in-context learningというのは、LLMにとってある意味では見たことのないものを示して、こういうことをしてほしいという例をいくつか与えることです。そのうえで、その例に関連した新しい問題を与えると、LLMはリアルタイムに、何をするべきかを学習して、その問題を解いてしまうんです。

ちなみに、私が最初にこれを見たとき、本当に度肝を抜かれました。しかも最初に理解しようとしたとき、私はあなたのDSLの事例を使っていました。このDSLの件は、本当にこんなものが動くのかという意味で、ものすごく衝撃的でした。

本当に、なぜこれが動くのか信じがたいほどでした。

あのクリケットの問題に戻ると、1990年代半ばに、私は cricket info というクリケットのポータルを作ったグループの一員でした。

クリケットは統計の宝庫みたいなスポーツです。野球を千倍複雑にしたようなものだと思ってください。あらゆる種類の統計があります。そこで私たちは stats guru というオンライン検索可能なデータベースを作りました。クリケットに関するあらゆる統計を検索できるもので、2000年から提供されています。

でも、あらゆる問い合わせに対応できるがゆえに、どうやって一般の人に使わせるかが問題でした。彼らはSQLクエリなんて書きません。当時その次善策だったのは、Webフォームを作ることでした。

ところが、そのフォームには全部が詰め込まれてしまった。結果として、20個のドロップダウン、15個のチェックボックス、18個のテキストフィールドが並ぶ、とてつもなく複雑で intimidating なインターフェースになってしまったんです。

その結果、どんな問い合わせにも答えられるにもかかわらず、ほとんど誰も使わなかった。クリケットファンのうち、ごくわずかな割合しか使いませんでした。見た目があまりにも難しそうだったからです。

その後、ESPNが2007年にそのサイトを買収しました。私は今でも運営している人たちを知っていますし、以前からずっと、stats guru を何とかしたらどうかと言い続けていました。

そして2020年1月、cricket info の編集長で友人でもある Sambbal がニューヨークに来て、一緒に飲みに行ったんです。そのときもまた私は、stats guru を何とかしたらどうかと言いました。すると彼は、じゃあ君が何とかしたらどうだ、と冗談で返したんです。

でも、そのアイデアが頭に残りました。そしてGPT-3が公開されたとき、これを使って stats guru のフロントエンドを作れるかもしれないと思ったんです。

そこで私は、クリケットの統計クエリを自然言語からDSL、つまりドメイン固有言語へ変換する仕組みを設計しました。

念のため確認ですが、それはあなたが自作したものであって、公開されていた学習データに含まれていたわけではないんですよね。

まったく含まれていません。私が作ったんです。これなら筋が通るだろうと思って、そのDSLを設計しました。

そしてfew-shot learningを使いました。自然言語の問い合わせと、その問い合わせに対応するDSLを、だいたい1,500件ほどデータベース化したんです。

新しい問い合わせが来ると、誰かが英語で統計の質問をするわけですね。私はまず自然言語の問い合わせ群に対して意味検索をかけ、最も近い上位数件を選びました。

それから、その自然言語クエリと対応するDSLを前置きとして送りました。

当時のGPT-3のコンテキストウィンドウは2,000トークンしかなかったんですよね。

そうです。だから、どの例を選ぶかにはかなり気を使う必要がありました。そうして例を選び、新しい問い合わせを送ると、GPT-3は私が設計したDSLで続きを補完してくれたんです。数ミリ秒前まではそのDSLを一度も見たことがなかったにもかかわらずです。

しかも、私はGPT-3の内部にも、重みにもアクセスしていませんでした。

ええ。

それでも動いた。それがまさにその仕組みだったんです。

なぜin-context learningは成立するのか

ただ、あなたの行列モデルで、プロンプトと分布の関係を見るだけでは、in-context learningのようなことがどうやって起こるのか、私には自明ではありませんでした。あなたの最初の論文は、まさにそこに取り組んでいましたよね。LLMがどのようにin-context learningを行うのか、その理解を説明してもらえますか。

はい。in-context learningを考えるとき、本質は、証拠が見えるたびに更新が起きている、ということです。

最初の論文では、このクリケットDSLの例を使って、モデルが例を見せられるたびに次トークン確率がどう変化するかを図示しました。

最初にこのDSLを見せたとき、自然言語とDSLを並べても、DSLのトークンに対する確率は極端に低かったんです。GPT-3はそんなものを見たことがありませんから、クリケットの質問を見ると、頭の中では英語の答えを続けようとしていました。だから高確率なのは英単語ばかりでした。

しかし、質問とDSLが並んだ私のプロンプトを見せると、次に質問が来たとき、その次の行ではDSLトークンの確率が上がり始めました。例を見せるごとにどんどん上がり、最後に新しい問い合わせを与えたときには、正しいトークンを出す確率がほぼ100%になっていたんです。

つまり、これはモデルがリアルタイムで事後確率を更新していた例なんです。新しい証拠を見て、ああ、こういうことをすればよいのかと知識を更新していたわけです。

これは、平たく言えばBayesian inferenceそのものです。Bayesian updatingとは、事前分布から出発し、新しい証拠を見たら事後分布を更新することです。数学的にはそういう話です。でも英語で言えば、新しい証拠を見て、今何が起きているのかという自分の信念を更新する、ということです。

だから私には、LLMはBayesian updatingに似たことをやっているのが明らかに見えました。最初の論文では、この行列による定式化を使って、それがBayesian updatingのように見えることを示したんです。

そのあと、次の一連の論文に進むわけですね。

その通りです。

なぜBayesianだと言うと反発が起きたのか

当時の私にはかなり決定的に見えました。そのあと、しばらく静かでしたよね。でも、あのときのWhatsAppのメッセージは今でも覚えています。Martin、もうこいつらがどう動いているのか完全にわかった、って。

ええ。

そのあと、一連の論文を出して、インターネットを壊したと言っていいくらい話題になりました。Twitterでもすごく拡散されて、多くの人が気づきました。

それについてはすぐに聞きたいんですが、その前に1つ。最初の論文が出たとき、こう言う人がいたのを覚えています。これは絶対にBayesianではない、何だってBayesianと言えなくはないが、これは違う、と。Bayesianだと特徴づけられることへの反発のようなものがあった気がします。なぜそんな反応が起きたと思いますか。

確率論や機械学習の世界には、Bayesian派と frequentist 派の対立があります。私はその政治的な争いの真ん中には入りたくありませんが、Bayesianという言葉自体が、もう反射的に反発を呼ぶものになっているんです。昔からのBayesian 対 frequentist の戦いの一部なんですね。

なるほど。

だから、人々は何でもBayesianと言えてしまうじゃないか、と反応したわけです。では、たしかにその指摘にも一理あるのかもしれない、では本当にBayesianであることをどうやって証明するか、という話になったんです。

Token Probeと、内部をのぞくための道具

その前に、あなたとAndreessen Horowitzには感謝しなければなりません。

最初の論文で私が確率を示すことができたのは、OpenAIのチャットインターフェースに、当時はその確率を表示する機能があったからなんです。ところが、後でそれがなくなってしまった。

そうすると、内部で何が起きているのか見られなくなってしまいました。なぜやめたのかはわかりません。open だの close だのという話には立ち入りませんが、とにかく使えなくなりました。

そこで私たちは、自分たちで独自のインターフェースを作りました。そこでは確率だけでなく、次トークンのエントロピーまで見られるようにしたんです。

これはオープンウェイトのモデルの上で動かしていたんですよね。

そうです。任意のオープンソースモデルを読み込めます。ただ、私たちは大学にいたので、計算資源へのアクセスがありませんでした。そこで、あなた方の寛大な寄付のおかげでクラスターを使えるようになり、Token Probe というものを動かせたんです。tokenprobe.cs.columbia.edu で公開しています。

まだ動いているんですか。

ええ、まだ動いています。今でも使われています。私は授業でも使っていますし、学生に課題をやらせるのにも使っています。学生は自分なりのDSLを書いて、これがLLMの動作理解に本当に役立つと言っています。

私自身、LLMについての理解の多くは、まさにToken Probeから得ました。座って、プロンプトを埋めていきながら、そのたびに分布を眺める。それだけで本当に多くのことが見えてきます。とても啓発的なんです。

今聞いている皆さんのために、URLをもう一度お願いできますか。

Token Probe、tokenprobe.cs.columbia.edu です。

ぜひ見てみてください。プロンプトを埋めていくにつれて、確率分布がどう更新されるのか実際に見えるので、本当に役に立ちます。

そうなんです。

でも、私はちょっとずるをしました。

というと。

それは動いていたんですが、その裏で動かしているGPUにも私はアクセスできたんです。

なるほど。

それでColumbiaの同僚たちと一緒に、本当にこれがBayesianであることをどう証明するかを考え始めました。彼らの1人は今ではDeepMindにいます。

Bayesian wind tunnelという発想

ちょっと説明してもらえますか。実はその点は私も完全にはわかっていませんでした。最初の論文で証明したように見えたんですが、何が足りなかったんでしょうか。

最初の論文で示したのは、経験的な観察だったんです。

なるほど。つまり、見ればわかる、というタイプだった。

そうです。私には明らかに見えましたし、あなたにも明らかに見えた。でも、何でもBayesianと言えてしまうと片づける人たちを納得させるには、数学的に厳密な証明が必要でした。

それで、Naman Agarwal と Sedhad Dalal という同僚たちと一緒に、一連の論文を書きました。そこで思いついたのが Bayesian wind tunnel という考え方です。

風洞実験というのは、航空宇宙分野で、飛行機を実際に飛ばさずに隔離された環境で試験する方法ですよね。さまざまな空力圧力を与えて、どんな高度や圧力に耐えられるかを調べる。空の上で試すわけではありません。

それなら同じことをアーキテクチャに対してやればよいのではないかと考えました。transformer、Mamba、LSTM、MLPなど、いろいろなアーキテクチャを用意し、まっさらな状態のモデルに、絶対に丸暗記できないタスクを与えるんです。組み合わせの空間が、パラメータ数に対して組合せ論的に不可能なほど巨大なタスクです。しかもモデルは小さくしました。だから暗記はできないけれど、解析的にBayesian posteriorを正確に計算できる程度には扱いやすい設定です。

そうしたタスクをいくつも与えてモデルを訓練したところ、transformerはBayesian posteriorを10のマイナス3ビット精度でぴったり再現しました。分布が完全に一致したんです。つまり、信念を更新しなければならない課題に対して、数学的な意味で本当にBayesianなことをやっていたわけです。

Mambaもかなりうまくやります。LSTMは一部のことはできます。論文ではBayesianタスクの分類を示しています。transformerは全部できる。Mambaは大半をこなす。LSTMは部分的にしかできず、MLPは完全に失敗します。

それは学習データの反映なんでしょうか。それとも機構の反映なんでしょうか。

機構です。アーキテクチャそのものです。データは何のタスクを学ぶかを決めますが、どう処理するかを決めるのはアーキテクチャです。

最初の論文では、こうしたBayesian wind tunnelを作り、さまざまなタスクに対してそれが機能することを示しました。2本目の論文では、なぜそうなるのかを示しました。transformerを見て、勾配を調べ、Bayesian updatingを可能にする幾何構造が勾配によってどう形成されるのかを明らかにしたんです。

3本目の論文では、オープンウェイトの実運用レベルのLLMを対象に内部を調べました。すると、小さなモデルで見つかった幾何構造が、数億パラメータ規模のモデルにも持続していることがわかったんです。同じシグネチャが存在していました。

ただし、それらはあらゆる種類のデータで訓練されているので、少し汚れているというか、乱れて見えます。

ええ。

でも、同じ構造は見えます。Bayesian wind tunnelの発想はそこにあります。実運用のLLMは何で訓練されているか正確にはわからない。だから数学的な事後分布を計算できません。

つまり、どう証明するかが問題になるわけですね。最初の論文ではBayesianらしく見える。でも、本当にそうなのかはわからない。

その問題を、風洞実験の設定が解決してくれたんです。まっさらなアーキテクチャから始め、答えがわかっていて、しかも丸暗記できないタスクを与える。そこで何をするかを見るわけです。

人間の思考との違い

では、それは人間の思考に何らかの示唆を与えるのでしょうか。それとも両者はまったく独立しているのでしょうか。

いや、示唆はあります。人間も新しい証拠を見るたびに信念を更新します。ですから、ある意味で私たちもBayesian updatingをしているわけです。でも、私たちはそれ以上のこともしています。それは後で話します。

transformerやMambaはBayesian updatingをします。しかし、人間との違いはそこにあります。私たちも新しい証拠を見れば事後分布を更新しますが、人間の脳は何億年にもわたって進化してきた過程で、最適化目標がありました。それは死なないこと、そして繁殖することです。それが駆動力だった。

脳はそれに適応するように学習してきました。茂みで何かがガサガサ音を立てたら、近づくな、と判断する。危険にどう反応するか、どう自分を守るかを知っています。そして、その学習を内面化します。脳細胞やシナプスは生涯を通じて可塑性を保っています。

ところが、LLMは学習が終わると重みが凍結されます。推論時、たとえばin-context learningの最中には、その会話の中でBayesian inferenceをしている。しかし、次の会話が始まるとコンテキストはゼロに戻り、前回の学習は保持されません。

私がやっていたクリケットDSLの例でも、呼び出しのたびに毎回まっさらでした。前に送ったクエリでDSLがどういう形だったかは覚えていなかったんです。

これが、人間とLLMのBayesian updatingの違いの1つです。人間は一生を通じて可塑的であり続ける。一方、LLMは凍結されている。

もう1つ違いがあります。よければその話もします。

ぜひ聞かせてください。

まず、私たちの目的関数は死なないこと、繁殖することです。LLMの目的関数は、次のトークンをできるだけ正確に予測することです。

だから、よく見かける怖い話、LLMが人を欺こうとしたとか、停止されるのを防ごうとしたとか、ああいうものはアーキテクチャの性質ではありません。学習データの性質なんです。Redditや、あるいはその手のフォーラムで、生き延びるにはこうする、といった物語を大量に食べていれば、それを再生するだけです。

ちなみに、ちょうど今日、Dario Amodei が、彼らに意識がある可能性は排除できない、といったらしいですが。

いや、さすがにそれはないでしょう。

私もそう思います。Anthropicは素晴らしい製品を作っています。Clawdbotのコードも素晴らしいし、共同作業機能も素晴らしい。でも、あれは行列積をしているシリコンの粒なんです。意識はありません。内なる独白もありません。同じ目的関数で動いているわけでもない。死なないこと、繁殖することではなく、次のトークンで間違えないことが目的なんです。そしてそれは全面的に学習データに依存している。

要するに、それは反映であって、心ではありません。

そしてもう10回でも繰り返しますが、その結果は完璧にBayesianです。

完全にですね。

桁レベルで一致しています。

その通りです。私は15万ステップ訓練して、精度は10のマイナス3ビットでした。さらに訓練してもよかったのですが、それはToken Probeのために提供してもらったインフラの裏で、わずか30分ほどで起きたことなんです。あのGPUを訓練に使えたので、本当に感謝しています。

でも、人間の話に戻ると、私たちはBayesianではあるけれど、それ以外のこともしています。たとえば、私がこのペンをあなたに投げたら、あなたはどうしますか。

よけるか、受け止めるかですね。

なぜよけるんですか。

当たるのを避けるためです。

そうです。でも、そのときあなたの頭は、ペンが飛んできた、当たる確率はいくらで、痛みはどれくらいで、などというBayesian計算をしているわけではありません。

確かに、そうではありません。

実際に頭の中でやっているのは、シミュレーションです。ペンが飛んでくるのを見て、このまま来れば自分に当たると予測し、身体をよける。そういうことです。

つまり、ディープラーニング全体がやっているのは相関であって、因果ではないんです。

相関と因果、Shannon entropyとKolmogorov complexity

因果モデルというのは、シミュレーションや介入ができるものです。Judea Pearlには有名な因果の階層があります。第一層は association、つまり相関です。相関モデルを作る。ディープラーニングはまさにそれをやっています。

深層学習は本当に美しいし、驚異的な力を持っています。毎日のように、すごく優秀なモデルが出てきます。でも、彼らがやっているのは association です。

第二層は intervention です。現状の深層学習モデルはそこに到達していません。第三層は counterfactual です。介入も反事実も、ある種のシミュレーションだと考えられます。因果モデルを作り、その中でシミュレーションできるようになるわけです。私たちの脳はそれをやっていますが、現在のアーキテクチャはそうではありません。

この違いをより明確にするために、Shannon entropy と Kolmogorov complexity という技術的な用語を使って説明しましょう。

円周率の数字列の Shannon entropy を考えると、それは無限です。次にどの数字が来るかを予測して学習することは不可能です。これが Shannon entropy の定義です。Shannon entropy は相関を学ぼうとするものです。ディープラーニングがやっているのはこの世界です。

一方で、Kolmogorov complexity は、その文字列を再現する最短プログラムの長さです。

円周率の数字を生成するプログラムは非常に短い。Ramanujan らのおかげで、極めて短いプログラムで正確に再現できます。つまり、円周率の Kolmogorov complexity は非常に小さい。なのに Shannon entropy は無限です。

私は、ディープラーニングはいまだに Shannon entropy の世界にとどまっていて、Kolmogorov complexity と因果の世界には渡れていないのだと思っています。

面白いですね。

スケールでは解決しないという主張

では、これは研究の方向性として、現在のAIをどう改善すべきかという示唆を与えるのでしょうか。具体例を挙げると、人間は行列を更新しているわけでも重みを更新しているわけでもないのに、いまは継続学習の研究が盛んですよね。あなたの研究は、そうした問題にどう向き合えばよいかの手がかりを与えてくれるのでしょうか。

特に私がずっと抱いている疑問は、こうしたモデルを作るのに、私たちは膨大なデータと膨大な計算資源を使っている、ということです。それなのに、リアルタイムに重みを更新して意味のある変化を生み出すなんて、本当に可能なんでしょうか。もっとずっと大量のデータが要るように思えます。こういう問いに答え始めることはできるのでしょうか。

答え始めることはできます。そして、今日ある大きな誤解の1つは、スケールを大きくすればすべて解決する、というものです。しかし、スケールではすべては解決しません。別種のアーキテクチャが必要です。

継続学習は難しい問題です。新しいことを学ぶことと、破滅的忘却のリスクとのバランスを取らなければなりません。

そうですね。

重みを更新して、新しく学んだ代わりに大事なことや、すでに学んだことを忘れてしまったら、それは前進ではありません。ただのランダムで混沌としたモデルになってしまいます。

だから、この問題を解くのは難しい。それが1つの側面です。

では、いわゆるAGIに到達するには何が必要か。私は2つあると思っています。

1つは、この可塑性です。継続学習によって実装されなければなりません。もう1つは、相関から因果へ移行することです。

これは Yann LeCun が因果や計画について話していることと、どのくらい似ていますか。

関連はあります。彼は world model とは少し違う角度から入っていますが、関連しています。

もう1つ、私がこのポッドキャストに最初に来たときに話したAGIのテストがあります。Einstein test です。

覚えていないですね。

私はこう言ったんです。LLMを1916年以前、あるいは1911年以前の物理学だけで訓練して、相対性理論に到達できるか試してみろ、と。もしそれができるならAGIです。かなり高い基準ですが、基準は高くあるべきです。

でも、できないでしょう。

これは Demis Hassabis も数週間前の India AI summit で言及していたと思います。それで大きな話題になりました。

なぜできないのか。そして、それは Shannon と Kolmogorov の話とどうつながるのか。

Einsteinの時代には、Newton力学では何か説明しきれていないことを示す手がかりがたくさんありました。たとえば水星の軌道がおかしい。何かが合わない。Michelson-Morley の実験もありました。光が伝わる媒質として ether を仮定し、異なる方向に光を飛ばせば速度が変わるはずだと考えて、精密な実験を何度も行った。ところが何も見つからなかった。光速はまったく変わらないことがわかった。

それ以外にも、ブラックホールの問題、重力レンズの問題などがあった。つまり、Newton力学ではすべてを説明できていないことを示す兆候がたくさんあったんです。

でも、Einsteinが時空という容れ物そのものの新しい表現を打ち立てるまで、私たちは前に進めませんでした。

もし相関だけを見るモデルがあって、こうした個別の証拠をいくら集めても、Einsteinが到達したあの美しい方程式にはたどり着けなかったでしょう。

正確な形は今ぱっと思い出せませんが、g muv = 8 pi t muv のような、時空連続体を記述するテンソル方程式です。彼は新しい定式化を作り出した。既存の公理系を事実上退けて、世界についての非常に短いKolmogorov的表現を打ち立てたんです。

なるほど。

1つの方程式から、他のすべてが導かれる。重力波も、ブラックホールも、水星も、GPSの仕組みもそうです。私たちが日々スマホで使っているGPSは、相対論の方程式を使っています。

すると、これは結局、従来の大半のデータを一度無視しなければならない、ということになるのでしょうか。LLMにはそれができない。彼らは過去の大多数のデータで訓練されているからです。いわばデータの重力に引き戻されるようなものですね。皆がXだと言っていて、Yだという証拠は少ししかないなら、LLMは常にXだと言ってしまう。

その通りです。Yは異常値として扱われます。

とてもいい表現ですね。Shannon entropy の方は、そこに存在する全情報量に縛られる。今起きているのはそういうことですよね。

ええ。

でも、新しい動き、別の記述を、もっと短い説明で表せるとしたら、それはまったく別の世界になります。

そうです。新しい表現が必要なんです。

人間は既存の多様体の中を動くのではなく、新しい多様体を作る

私が以前からこうしたものを考えるときのイメージは、宇宙は非常に複雑な空間で、人間はそれを何とかより単純な多様体に写像している、というものです。

そうですね。

それが書き下され、そのあとLLMがその多様体を学ぶ。それは依然として巨大な空間ですが、ある程度は有界です。そしてLLMはその多様体を学習し、その上をBayesian inferenceで行き来する。でも、その多様体に縛られている。

ええ。

そして、言葉を押しつけたくはありませんが、彼らにできないのは、新しい多様体を生成することなんですよね。それには宇宙の働き方を理解し、その新しい表現を打ち立てる必要がある。相対性理論とは、まさにそういうことですよね。

はい、その通りです。Einsteinは新しい多様体を作らなければならなかった。

Newton物理学という古い多様体にとどまっていたら、いろいろな相関は見えても、それを説明する多様体そのものは作れません。新しい表現を生み出す必要があったんです。

私にとってAGIにはさまざまな定義があります。Turing test はすでに通過したと言っていいでしょうし、経済的に有用な仕事をするという意味でも、日々LLMはその方向へ進んでいます。

でも、人間の介入なしに、という意味ではまだ違うのでは。

その点は違います。ただ、自動車が人間より速く走れるからといって、それだけで知能の本質を捉えたことにはなりません。そういう定義はとても浅いと思います。

ええ。

ですから、有用なことができるとか、6か月後にはClaudeやGeminiが、介入なしに、明確に定義されスコープの絞られた仕事をこなせるようになるかもしれない、そういう話はあり得ます。

でも、私にとってAGIが起こるのは、先ほどの2つの問題が解決されたときです。可塑性、つまり継続学習がきちんと実装されること。そして、よりデータ効率のよい形で因果モデルを構築できることです。

Donald Knuthの事例は何を示しているのか

最近は、一般性が見え始めているのではないか、という話も出ていますね。たとえば Donald Knuth がここ数日で話題になりました。Xでもかなり拡散されていました。あれは一般性の兆候だと思いますか。

いや、あれはむしろ、私が以前から言ってきたことを裏づけていると感じます。

彼がやったことを読むと、同僚の助けを借りながら、LLMに特定の問題、たとえば奇数に対するHamiltonian cycleのような問題を解かせていました。細部には立ち入りませんが、1つの奇数について解かせ、次の奇数について解かせ、ということを繰り返したわけです。

そして、あるmの値に対して解を見つけたあと、その問題を解く中で何を学んだのかを、LLMのメモリに更新させていました。LLMはいろいろなことを試し、うまくいったものをメモリに書き戻す。つまり、可塑性をハック的に作り込んでいたわけです。

なるほど。

もちろん、これは可塑性の本物ではありません。重みを変えているわけではなく、単にコンテキストを改善しているだけです。でも、学んだことをその場で反映させていた。

しかも、Hamiltonian cycle とそれに伴う数学の空間は、LLMがすでに学習している多様体の中にかなりよく表現されています。あとは正しい接続を見つければいい。LLMは計算資源を十分に投じれば、その接続を見つけられます。

KnuthはLLMの試行錯誤を観察し、最終的には彼自身がそれをまとめ上げて解へ到達しました。解にたどり着くのに大きく役立ったのは確かです。でも、新しい多様体を作って解決に至ったのは、彼の側です。LLMの方は、しばらくすると行き詰まっていました。

彼が書いたものを読めばわかります。ほんの2日前に出たばかりですが、最終的には、その解群を踏まえて自分で証明を組み立てています。

つまり、Einsteinが数々の証拠を見たうえで、それを説明する因果モデルを作ったのと同じような構図ですね。

そうです。Knuthの脳こそが Kolmogorov 的な側面を担っている。人間がそこをやっているわけです。LLMは Shannon 的な部分をものすごく効率よくやってくれる。さまざまな試行を行い、より賢い分解方法を見つけ、解候補をどんどん掘り当てる。

次に進むべき研究方向

もう一度同じ問いを投げますが、これは次の課題に向かうための洞察を与えてくれるのでしょうか。Kolmogorov complexity の方向へ進むような機構があり得るのか。それとも、方向性は示してくれるが、やり方までは示さないのか。

やり方までは示していません。でも、Kolmogorov complexity 自体、依然として理論的な構成概念にとどまっています。最短プログラムを見つけるための実用的なアルゴリズムは存在していません。存在することはわかっていて、議論はできる。でも、それを実装する現実的な方法はありません。

だからこそ、私の偏りかもしれませんが、私たちのエネルギーはそこに向けるべきだと思います。より大きなモデル、より多くのトークンに向けるのではなくて。

その2つを結びつけることはできますか。シミュレーションとそれはどう関係するのでしょう。シミュレーションはまったく別物なんでしょうか。

いや、シミュレーションは関係しています。要するに、シミュレーションを行うこと自体が、Kolmogorov complexity に向かう一歩なんです。

つまり、シミュレーターこそが、私たちが作るプログラムなんです。完璧なプログラムではないかもしれない。でも、頭の中にシミュレーターを作っていて、私がペンを投げると、あなたはそれが自分に向かって来るとわかって身をかわす。

さっきはもっと概念的な話をしていましたが、結局は同じメカニズムなんです。因果モデルを作らなければならない。

なるほど。多くのことについて、そうだと。

そうです。相関から因果へ移らなければなりません。この言葉自体は何度も聞かれてきましたが、ここでは知能の見方そのものに違いを生む話なんです。

論文への反応と、これから

この3本の論文への反応はどうでしたか。

私はこの分野では外部の人間ですからね。

そうですね。ネットワークの人ですから。

その通りです。私はネットワーク屋です。そんな人間がなぜ学習や機械学習やディープラーニングやBayesianについて書いているのか、と思われるわけです。

でも、実際に時間をかけて論文を読んでくれた人たちからは、とてもよい反応をもらっています。最近、Google Research からも、ある種のRLHFを使ってLLMに適切なBayesian learningをさせようとする論文が出ました。方向性としてはこちらに向かっています。

人々も、LLMはBayesian learningをしているのだ、という見方に徐々に近づいてきていると思います。Bayesian wind tunnel の arXiv 版を見て、実験を再現した人たちもいました。

それは素晴らしいですね。

書かれている通りに訓練をやってみたら、本当にその通りの結果が出た。実際にそうなっていたんです。

すばらしい。では、次は何をするんですか。

次は、この2本の平行した道筋です。可塑性と因果性です。そこに進展を出したいと思っています。

つまり、これまでは既存のメカニズムを取り上げて、その働きを形式的にモデル化してきた。そして今は、それを改善し、新しいメカニズムを作りたいと考えているわけですね。これはまったく別のアーキテクチャになると思いますか。それともLLMはその解の一部なんでしょうか。

LLMは間違いなく解の一部です。

なるほど。

でも、それ以上の何かが必要です。

私は、LLMが何をできるかをひたすら列挙することにはあまり興味がありませんでした。なぜそれができるのか、どうやってそれをやっているのかに興味があったんです。今では、そのなぜとどうやってについて、かなりよくつかめてきたと思います。

次の段階は、それを次のレベルへ進めることです。今では限界がどこにあるのかも、かなりよくわかってきました。では、そこからどう次へ行くのか、ということです。

因果性に関しても、推論におけるBayesianのように、ここに適用できる理論的な枠組みがあるのでしょうか。

Judea Pearl の因果階層が、それに最も近いと思います。あの do-calculus のアプローチは、非常によい考え方です。association、intervention、counterfactual という流れで、相関から実際のシミュレーションへ進んでいく。それを数学的に捉える方法になっています。

すばらしいですね。

終わりに

今日は本当に来ていただいてありがとうございました。最高でした。

最初の論文のときには、経験的な結果を持って来てもらいました。そして今回は、形式的な証明まで到達しました。次に来ていただくときには、その次の一歩をもたらすメカニズムの提案まで見せてもらえることを期待しています。

そうなればいいですね。

今日はありがとうございました。

こちらこそ、呼んでいただきありがとうございました。

コメント

タイトルとURLをコピーしました