

それではマシューさん、ご丁寧なご紹介ありがとうございます。はい、一般知能(GI)の構築を始める前に、私たちは難しい質問をする必要があります。知能とは何か、どのように測定できるのか、進捗をベンチマークするにはどうすればよいか、そしてGIを構築するためにはどのような方向性を追求すべきか、ということです。これらの質問について、私の考えをお話ししたいと思います。
まず、AGIブームの最盛期である昨年初めに遡ってみましょう。2023年2月のことを覚えていますか?ChatGPTがリリースされてからわずか数ヶ月、GPT-4が登場し、Bing Chatもリリースされました。Googleキラーとなるかもしれないと言われていたBing Chat、覚えていますか?ChatGPTによって生産性が100倍、1000倍に向上すると言われていました。AIの存在論的リスクがトップニュースとなり、AGIはもう目前だと言われていました。10年先でも5年先でもなく、あと数年で実現すると。カウントダウンを月単位で始められるところまできていたのです。
そして、それは1年半前のことでした。当時、AIはすぐにあなたの仕事を奪うと言われていました。AIはあなたができることは何でもできるけれど、より速く、より安くできると。どうしてそう思われたのでしょうか?それは、AIが試験に合格できたからです。試験は、人間がある職業に適しているかどうかを判断する方法です。AIが司法試験に合格すれば弁護士になれる、プログラミングのパズルを解けばソフトウェアエンジニアになれる、というように考えられていました。多くの人が、弁護士やソフトウェアエンジニア、医師などの職業がすべてなくなると言っていました。おそらく1年以内、つまり今日までになくなるだろうと。実際、ほとんどのデスクワークがなくなり、大量の失業に直面すると言われていました。
考えてみると非常に面白いことです。なぜなら、今日のアメリカの雇用率は当時よりも高いからです。本当にそうだったのでしょうか?当時のベンチマークが本当に示していたのはそういうことだったのでしょうか?
現実の世界に目を向けてみると、2023年2月のブームから離れて、見出しから離れてみると、大規模言語モデル(LLM)は一般知能にはやや及ばないようです。この部屋にいる皆さんのほとんどがそう思っているでしょう。LLMにはいくつかの問題があります。これらの限界は、現在のパラダイムに内在するものです。簡単には修正できません。実際、これらの限界については、初日からほとんど進展がありません。初日というのは昨年ではなく、実際にはTransformerベースの大規模言語モデルの使用を開始した5年以上前のことです。
5年以上前から、これらの問題について実質的な進展はありません。なぜなら、私たちが使用しているモデルは依然として同じだからです。データセットに対してパラメトリックな曲線をフィッティングしたもので、同じTransformerアーキテクチャを使用しています。これらの限界について説明しますが、実際にはハルシネーションについては触れません。皆さんはおそらくそれについてよくご存じだと思いますので。他の限界を見ていきましょう。
まず、LLMの興味深い問題の1つは、自己回帰モデルであるため、質問の内容を必ずしも見ずに、質問に続く可能性が高いものを常に追加してしまうことです。例えば、ChatGPTの最初のリリースから数ヶ月間、「10キロの鉄と1キロの羽毛はどちらが重いですか?」と尋ねると、「同じ重さです」と答えていました。なぜなら、「1キロの鉄と1キロの羽毛はどちらが重いですか?」というトリック問題がインターネット上にたくさんあり、その答えがもちろん同じ重さだからです。モデルは単に質問のパターンにマッチさせ、実際の数字を見たり、実際に尋ねられている質問を解析したりしませんでした。
同様に、マルチホールド問題のバリエーションを提供すると、LLMは元のマルチホールド問題の典型的な答えを完璧に記憶しているので、不条理なバリエーションを尋ねても、そのまま元の問題の答えを出力してしまいます。
明確にしておきますが、これら2つの具体的な問題は、すでにRHF(Reinforcement Learning from Human Feedback)によってパッチが当てられています。しかし、それらは特別なケースとして対処されただけで、この欠陥モードに当てはまる新しい問題を見つけるのは非常に簡単です。
「これらの例は昨年のものだから、今日ではずっと良くなっているはずだ」と言うかもしれません。しかし、実際にはそうではありません。問題は初日から変わっていません。それらに対処する進展はまったくありません。最新の最先端モデル、例えばClaude 3.5などでも同じ問題が残っています。これは先月の論文からの例で、Claude 3.5を含む最先端モデルでこれらの例を調査したものです。
closely関連する問題として、LLMの表現に対する極端な感度があります。テキスト段落の名前や場所、変数名を変更すると、LMの性能が低下する可能性があります。また、数式の数値を変更すると…これを調査した興味深い論文があります。「自己回帰の余燼」というタイトルです。チェックしてみてください。
人々は非常に楽観的で、この脆弱性は実際には素晴らしいことだと言います。なぜなら、モデルがより高性能であることを意味し、正しい方法でクエリするだけで、より良い性能が見られるからです。プロンプトエンジニアリングが必要なだけだと。
しかし、その主張の裏返しは、任意のLLMに対して、うまく機能しているように見えるクエリに対して、人間なら容易に理解できる同等の言い換えがあり、それによってモデルの理解が壊れてしまうということです。非常に単純な名前の変更や言い換えでモデルの理解を壊すことができるのであれば、それは堅牢な理解というよりも、表面的なパターンマッチングに見えます。
クリッカーを失ってしまいました。次のスライドをお願いします。ありがとうございます。
さて、LLMのコンテキスト内学習能力、つまりその場で新しい問題に適応する能力についても多くの議論がありますが、実際に起こっているのは、LLMが記憶した問題解決テンプレートのようなプログラムを取り出し、現在のタスクにマッピングしているということです。記憶されたプログラムが準備されていない場合、つまり少し馴染みのないものに直面した場合、人間ができるような一から分析することができません。たとえそれが非常に単純なものであっても。
一例を挙げましょう。シーザー暗号について、最先端のLLMはシーザー暗号を解くことができます。これは非常に印象的ですね。しかし、実際には特定の鍵サイズ、つまりオンラインの例でよく見られる3や5のような特定の値に対してのみ解くことができます。13のような鍵サイズの暗号の例を示すと、失敗します。つまり、暗号を解くアルゴリズムの実際の理解はなく、特定の値に対してのみ記憶しているのです。
私の仮説は、LLMの性能は純粋にタスクの馴染み深さに依存し、タスクの複雑さには全く依存しないということです。記憶する機会さえあれば、解決策や問題解決テンプレート、つまり答えを得るために実行する必要があるプログラムを記憶できる複雑さの上限はありません。その代わり、LLMの性能は完全にタスクの馴染み深さに依存します。したがって、非常に単純な問題でも、馴染みがなければ範囲外になります。
クリッカーが戻ってきました。
最後に、LLMは実際に記憶したプログラムの一般化に問題があります。例として、LLMは数の掛け算やリストのソートに苦労することがあります。これらの問題の例を何百万も見てきたにもかかわらずです。通常、これらを処理するには外部のシンボリックシステムの助けが必要です。
LLMが合成をどのように扱うかを調査した興味深い論文があります。「Transformerの合成性の限界」というタイトルです。主な発見は、LLMが実際には合成を全く扱っていないということです。代わりに、線形化されたサブグラフマッチングを行っています。
もう1つの非常に興味深い論文は「反転の呪い」です。著者らは、「AはB」という内容でLLMを訓練すると、「BはA」を推論できないことを発見しました。これは本当に一般化の深いレベルでの崩壊です。非常に驚くべきことです。私自身、通常はかなり懐疑的ですが、この結果には非常に驚きました。
これらの失敗ケースについて覚えておくべき重要なことは、特定のクエリは比較的迅速に修正される傾向があるということです。モデルは、人間の請負業者から収集された新しいデータで常に微調整されているからです。これはクエリ履歴に基づいています。したがって、私のスライドで示した例の多くは、おそらくすでに最先端のモデルのいくつかで動作しているでしょう。過去に失敗したため、それ以降手動で対処されているからです。
しかし、これは非常に脆弱な進歩の方法です。一度に1つのクエリしか対処できないからです。パッチを当てたクエリでさえ、言い換えたり名前や変数を変更したりすると、再び失敗し始めます。それは常に「もぐらたたき」のようなゲームであり、人間の労働力に非常に大きく依存しています。
今日、おそらく1万から3万人の人間がLLMのトレーニングのために注釈付きデータを作成する仕事に専念しています。
バランスを取ると、少し矛盾しているように見えます。一方では、LLMは与えられるあらゆる人間のベンチマークを上回っています。他方では、実際には行っていることの堅牢な理解を示していません。
このパラドックスを解決するには、スキルとベンチマークがこれらのシステムを見る主要なレンズではないことを理解する必要があります。
大きく引き下がってみましょう。AIの目標を定義するには、主に2つの思考の流れがありました。まず、ミンスキー流の見方があります。これは現在の大手テクノロジー企業の見方とも似ていて、AGIは経済的に価値のあるほとんどのタスクを実行できるシステムだとしています。ミンスキーは「AIは、人間が行えば知能を必要とするタスクを機械に実行させる科学である」と言いました。これは非常にタスク中心的な見方です。固定されたタスクのセットでAIがうまく機能するかどうかを気にします。
そして、マッカーシーの見方があります。彼は私が引用している通りのことを正確に言ったわけではありませんが、これらのアイデアの大きな支持者でした。AIにおける一般性は、多くのタスクに対するタスク固有の性能をスケールアップすることではなく、実際には準備されていない問題に機械が対処できるようにすることだと。
この違いは、ロック的な知能観とダーウィン的な知能観の違いを反映しています。知能を汎用的な学習メカニズムとして見るか、進化によってもたらされたタスク固有のスキルの集合として見るかの違いです。
私の見方は、ロックとマッカーシーの見方に近いです。知能はプロセスであり、タスク固有のスキルはそのプロセスの出力だと考えています。これは非常に重要な点です。この講演から1つだけポイントを持ち帰るとすれば、それはこれです。
スキルは知能ではありません。任意の数のタスクでスキルを示すことは、知能を示すことにはなりません。任意のタスクで知能を必要とせずにスキルを持つことは常に可能です。これは、道路網を持つことと道路建設会社を持つことの違いのようなものです。道路網があれば、あらかじめ定義された特定のAとBの間を移動できます。しかし、道路建設会社があれば、ニーズの進化に応じてその場で任意のAとBを結び付け始めることができます。
結晶化した行動プログラムに知能を帰属させることは、カテゴリーエラーです。プロセスの出力とプロセス自体を混同しているのです。知能とは、新しい状況に対処する能力、新しい道を切り開き、新しい道路を建設する能力です。それは道路そのものではありません。道路と、それを作り出したプロセスを混同してはいけません。
今日、LLMで直面しているすべての問題は、この誤った知能の概念化の直接的な結果です。知能を定義し測定する方法は、外部から提供されるベンチマークに任せられる技術的な詳細ではありません。それは認知に対する私たちの理解を反映しています。つまり、私たちが問う質問を反映し、それによって得られる可能性のある答えも制限します。
進歩を測定する方法は、目標に近づくために使用するフィードバック信号です。悪いフィードバック信号を持っていれば、実際の一般性に向けての進歩は得られません。
知能を定義し測定するには、考慮に入れなければならないいくつかの重要な概念があります。まず覚えておくべきは、静的なスキルと流動的知能の区別です。LLMが行うように、既知の問題を解決するための大規模な静的プログラムのコレクションにアクセスすることと、これまで見たことのない問題を解決するために新しいプログラムをその場で合成する能力の違いです。
これは二者択一ではありません。むしろスペクトルのようなものです。しかし、スペクトルの右側にある方がより高い知能です。
2つ目の概念は操作領域です。馴染みのある状況に非常に近い状況でのみスキルを持つことと、広い範囲内のあらゆる状況でスキルを持つことには大きな違いがあります。
例えば、数の足し算ができるなら、特定の見たことのある数や近い数だけでなく、任意の2つの数を足すことができるはずです。運転ができるなら、どんな都市でも運転できるはずです。アメリカで運転を学び、ロンドンに引っ越して、道路の反対側を走る運転もできるはずです。特定の地理的に限定されたエリアでしか運転できないなら、それはあまり知的ではありません。
ここでも、スペクトルがあります。二者択一ではありません。しかし、スペクトルの汎化の高い側の方がより高い知能です。
最後の概念は、情報効率です。システムが新しいスキルプログラムを獲得するのに、どれだけの情報、どれだけのデータが必要だったかということです。より情報効率が高ければ、より知的だと言えます。
これらの3つの概念、3つの量はすべて、汎化の概念によって結びついています。汎化は、AIにおける中心的な問題です。スキルのことは忘れてください。ベンチマークのことは忘れてください。
これが、人間の試験を使ってAIモデルを評価することが悪いアイデアである理由です。試験は汎化を念頭に置いて設計されていないからです。あるいは、人間に適切な汎化の仮定で設計されていますが、機械には適切ではありません。
ほとんどの試験は、人間が事前に試験問題や回答を読んでいないことを前提としています。質問が受験者にとってある程度馴染みのないものになることを前提としています。純粋な暗記試験でない限り、その場合はLLMが完璧に解答できることも納得できます。インターネット全体を記憶しているのですから。
次のレベルの能力に到達するには、AIが準備されていない新しい状況に適応し、汎化する能力を持つことが必要だと分かりました。そこに到達するには、この能力をより良く測定する方法が必要です。なぜなら、それを測定することで進歩を遂げることができるからです。フィードバック信号が必要なのです。
そこに到達するには、汎化が何を意味するのかを明確に理解する必要があります。汎化とは、あなたが持っている情報(生まれ持った事前知識や、生涯を通じて獲得した経験など)と、エージェントとして遭遇する可能性のある将来の潜在的状況の空間における操作領域との関係です。それらは不確実性に満ち、新規性を含み、過去とは異なるでしょう。
汎化とは基本的に、過去の情報を効率的に操作化して将来に対処する能力です。これを変換比率として解釈することができます。
数学が好きな方は、アルゴリズム情報理論を使ってこの比率を正確に特徴づけ、定量化することができます。私にはそれに関する論文があります。興味があればチェックしてみてください。
論文で話していることの1つは、汎化力、つまり知能を測定するには、事前知識と経験を制御する必要があるということです。知能は変換比率なので、何で割っているかを知る必要があります。
特にAIと人間の知能を比較することに興味がある場合は、共有の認知的事前知識のセットに標準化する必要があります。これはもちろん、人間の認知的事前知識、いわゆる「コア知識」であるべきです。
これらの良いインテリジェンスベンチマークの要件を満たす試みとして、私はデータセットをまとめました。「人工一般知能のための抽象推論コーパス」、略してARC-AGIと呼びます。
これは一種のIQテストだと考えることができます。つまり、人間が受けることができる知能テストです。実際、人間にとっては非常に簡単です。あるいはAIエージェントが受けることもできます。プログラム合成データセットとしても考えることができます。
ARCの重要なアイデアは、見るすべてのタスク、受け取るすべてのタスクが新しいということです。データセット内の他のどのタスクとも異なり、オンラインで見つかるものとも異なります。したがって、ARCに対して事前に準備することはできません。解答を事前に暗記して解くことはできません。それは単に機能しません。
ARCは経験を制御しようとしています。なぜなら、少数ショットのプログラム学習を行っているからです。2、3の例を見て、その入力と出力を結びつけるプログラムを推論しなければなりません。
また、事前知識も制御しています。ARCは純粋にコア知識の事前知識に基づいています。英語のような獲得された知識は使用しません。4つのコア知識システムにのみ基づいて構築されています。物体性、基本的な幾何学とトポロジー、数、そしてエージェンシーです。
2020年初頭にこのデータセットでKaggleコンペティションを初めて開催し、いくつかの非常に興味深い解決策が生まれました。すべてプログラム合成に基づいています。現在の最先端は、テストタスクの約40%を解決しています。これはまだ赤ちゃん歩きの段階です。
このデータセットはLLMの時代以前のものですが、実際にはLLMの時代においてさらに関連性が高まっています。なぜなら、人間の試験に基づくほとんどのベンチマークはLLMの時代ですでに飽和していますが、ARCはそうではありません。ARCは記憶に基づく解決に抵抗するように設計されているからです。他のすべてのベンチマークは記憶だけでハックすることができます。
今年6月、私たちはARCを中心にさらに野心的なコンペティションを立ち上げました。「ARCプライズ」と呼んでいます。Zapのの共同創設者であるMopと一緒に、100万ドル以上の賞金を提供して、研究者がARCを解決し、解決策をオープンソース化するよう促しています。
コンペティションには2つのトラックがあります。プライベートトラックはKaggleで行われ、現在最大のKaggleコンペティションです。100の隠されたタスクで評価され、解決策は自己完結型でなければなりません。つまり、GPUを搭載したVMで12時間以内に実行でき、良好なスピードも必要です。
85%以上を達成すると大きな賞金があり、トップスコアにも賞金があります。さらに、最優秀論文賞も45,000ドルあります。トップの結果を出せなくても、良いアイデアがあれば論文を書いて提出すれば、お金を獲得できるチャンスがあります。
また、パブリックトラックもあります。人々が「GPT-4やClaude、そしてその他の最先端LLMはこのデータセットでどのような性能を示すのか」と尋ね続けたため、これを追加しました。タスクは公開されていないが、完全にプライベートでもないという、一種の半プライベートな評価を開始しました。このリモートAPIによってタスクがクエリされているからです。
驚くべきことに、このトラックでの最先端の性能は、プライベートトラックとほぼ同じです。これは実際にかなり興味深いことです。
ARCでのLLMの性能は正確にはどうでしょうか?非常に良くありません。最先端のLLMのほとんどは5%から9%の間で、1つだけ良いものがあります。Claude 3.5は大きな飛躍を遂げ、21%です。
一方、基本的なプログラム検索でも少なくとも50%は達成できるはずです。なぜこれが分かるかというと、2020年のコンペティションで提出されたすべての解決策が、すべてブルートフォースのプログラムだったからです。基本的に、ブルートフォースのプログラム検索をより多くの計算力でスケールアップすれば、少なくとも50%は達成できるはずです。
一方、人間は簡単に90%以上を達成します。プライベートデータセットは2人によってテストされ、それぞれ97%から98%のスコアを達成しました。一緒なら100%解決できます。
5%から21%は素晴らしいとは言えませんが、ゼロでもありません。これは、このベンチマークによると、LLMにはゼロではない知能があることを示唆しています。これは興味深いことですが、1つ覚えておく必要があるのは、このベンチマークは完璧ではないということです。純粋にパターンを記憶して再現することで、このスコアを達成できる可能性があります。
これがどこから来ているのかを調査する必要があります。なぜなら、もしこれが推論の種のようなものから来ているのであれば、このアプローチをスケールアップして、時間とともにより一般的になり、最終的には一般AIに到達する可能性があります。しかし、もしその性能が実際に記憶から来ているのであれば、一般性に到達することは決してないでしょう。新しいスキルを獲得するために、常にこの一回限りの人間主導のポイントごとの修正を適用し続ける必要があります。これは永続的な「もぐらたたき」ゲームになり、一般性にはスケールしません。
LLMが何をしているのかをよりよく理解するために、抽象化について話す必要があります。抽象化と汎化は密接に関連しています。なぜなら、抽象化は汎化を生み出すエンジンだからです。
一般的な抽象化を見てみましょう。そして、LLMにおける抽象化を見ていきます。
抽象化を理解するには、まず周りを見回す必要があります。ズームアウトして、宇宙を見てください。宇宙について興味深い観察は、多くの異なるものでできているが、それらはすべて互いに似ているということです。すべてが互いに類似しています。例えば、1人の人間は他の人間と似ています。なぜなら、共通の起源を持っているからです。電磁気学は流体力学に類似しており、それはまた重力にも類似しています。などなど。
すべてがすべてに似ています。私たちは同型性に囲まれています。私はこれを「万華鏡仮説」と呼んでいます。万華鏡とは何か知っていますよね?色付きのガラスの小片がいくつかあり、それが一連の鏡によって繰り返され、増幅されて、わずかな情報の断片から驚くほど豊かで複雑なパターンを作り出す管のようなものです。宇宙はそのようなものです。
このコンテキストにおいて、知能とは、経験をマイニングして再利用可能な断片を識別し、これらの断片を抽出して抽象化と呼び、プログラム、パターン、表現の形を取り、そしてこれらの断片を再結合して新しい状況を理解する能力です。
知能とは抽象的な類似性への感度です。実際、それがすべてです。類似性への高い感度があれば、少ない経験から強力な抽象化を抽出し、これらの抽象化を使って将来の経験空間の最大限に広い領域を理解することができます。
抽象化能力について理解すべき本当に重要なことは、それが二項対立ではないということです。抽象化ができるかできないかではありません。実際には程度の問題です。知識を整理する工場から、広く正確に一般化できる抽象モデル、そして新しい状況に応じてその場で新しいモデルを生成できるメタモデルまで、スペクトルがあります。
ゼロ度は、純粋に個別の事実を記憶している場合です。抽象化は全く関与していません。記憶したこと以外には全く一般化しません。ここでは、私たちの事実を引数のない関数として表現しています。すぐにその理由が分かるでしょう。Fに引数がないということは、それが全く抽象的ではないことを意味します。
関連する多くの個別の事実があれば、それらを知識をエンコードするより抽象的な関数のようなものに整理することができます。ここでは、この関数は変数xを持っています。つまり、xについては抽象的です。
この種のもの、個別の事実や個別の事実間の補間に基づいて整理された知識のようなものは、あまりよく一般化しません。LLMが数を足す方法のようなものです。抽象化のように見えますが、比較的弱い形の抽象化です。不正確かもしれませんし、以前に見たデータポイントから遠く離れたデータポイントでは機能しないかもしれません。
抽象化の次の段階は、整理された知識を強く一般化するモデルに変換することです。モデルはもはや事実間の補間ではありません。入力を処理して正しい出力を得るための簡潔で因果的な方法です。
ここでは、二進演算のみを使用した加算のモデルがこのようになります。これは100%正しい結果を返します。近似ではありません。そして、入力がどれほど大きくても、どんな入力でも機能します。これは強力な抽象化です。私たちが知っているように、LLMはまだこれには及びません。
次の段階は、抽象化を自律的に生成する能力です。これによって、準備されていない新しい問題のような新規の問題に対処できるようになります。これが知能です。ここまでのすべては実際には知能ではなく、単に結晶化したスキルでした。
最後の段階は、最大限の情報効率でそれを行う能力です。これがAGIでしょう。つまり、タスクについてごくわずかな経験、ごくわずかな情報を使って新しいタスクをマスターできるべきです。適用しているモデルが強く一般化できるという意味で高いスキルを示すだけでなく、そのモデルを生成するために数例、数状況を見るだけで済むのです。
これがAIの聖杯です。
抽象化のスペクトルでLLMを位置づけるとすれば、整理された知識と一般化可能なモデルの間のどこかにあります。議論した限界からも明らかなように、明らかにモデルの段階には達していません。LLMがモデルの段階にあれば、実際に数を足したりリストをソートしたりできるはずです。しかし、多くの知識を持っており、その知識は以前に見た状況からある程度離れた状況に一般化できるような方法で構造化されています。それは単なる個別の事実の集まりではありません。
LLMの限界、幻覚や脆弱性などをすべて解決すれば、次の段階に到達するでしょう。しかし、実際の知能、その場でのモデル合成に到達するには、まだ大きな飛躍が必要です。現在のアプローチを単に拡大しても到達することはできません。実際に新しい方向性が必要です。そしてもちろん、その後のAGIはまだかなり先の話です。
機械で抽象化をどのように構築するか見てみましょう。抽象化がどのように機能するかを見てみましょう。知能は類似性への感度だと言いましたが、実際には類似性を描く方法は1つ以上あります。2つの主要なカテゴリーの類似性があり、そこから2つのカテゴリーの抽象化が生まれます。
値中心の抽象化とプログラム中心の抽象化があります。これらはかなり似ています。互いに鏡像関係にあります。どちらも物事を比較し、個々のインスタンスを共通の抽象化にマージすることで、重要でないインスタンスの特定の詳細を消去します。
一連のものを取り、それらを互いに比較し、重要でないものを消去します。残ったものが抽象化です。
2つの主な違いは、1つ目は連続的なドメインで動作し、もう1つは離散的なドメインで動作することです。
値中心の抽象化は、LLMのドット積やL2距離のような連続的な距離関数を介して物事を比較することです。これは基本的に、人間の知覚、直感、パターン認知を支えるものです。
一方、プログラム中心の抽象化は、離散的なプログラム(明らかにグラフです)を比較することです。グラフ間の距離を計算する代わりに、正確な部分グラフ同型性、正確な部分グラフマッチングを探します。
ソフトウェアエンジニアが抽象化について話すのを聞いたことがあれば、実際にはこれが彼らが意味していることです。何かをより抽象的にするために因数分解するとき、これが行っていることです。
この2つの形式の抽象化は、どちらも類似性の作成によって駆動されます。ただし、類似性を作る方法が異なるだけです。類似性の作成は抽象化を生み出すエンジンです。
値の類似性は幾何学に基づいています。距離関数を介してインスタンスを比較します。プログラム中心の類似性はトポロジーに基づいています。正確な部分グラフマッチングを行います。
すべての認知は、これら2つの形式の抽象化の相互作用から生まれます。
左脳対右脳のアナロジー、またはカーネマンのタイプ1対タイプ2思考の区別を通じてこれらを覚えることもできます。
もちろん、左脳対右脳の話は実際にはイメージです。脳の認知機能の側性化が実際にどのように機能するかではありません。しかし、覚えるには面白い方法です。
トランスフォーマーは実際に、タイプ1、値中心の抽象化に非常に優れています。知覚、直感、パターン認知など、タイプ1が効果的なすべてのことを行います。その意味で、トランスフォーマーはAIにおける大きなブレークスルーを表しています。
しかし、タイプ2の抽象化には適していません。これが、私たちが列挙したすべての限界の原因です。これが、数を足すことができない理由や、「AはB」から「BはA」を推論できない理由です。インターネット上のすべてのデータで訓練されたトランスフォーマーでもです。
では、ここからどう進めばよいでしょうか?タイプ2にどのようにして到達するのでしょうか?ARCのような問題、つまり推論や計画の問題をどのように解決するのでしょうか?
答えは、連続的な補間的埋め込み空間を勾配降下で学習して純粋に操作するのではなく、離散的なプログラム検索を活用する必要があるということです。
これを扱う、完全に別の分野のコンピュータサイエンスがあります。AGIに到達するには、このプログラム検索を深層学習と融合させる必要があります。
簡単な紹介をしましょう。この離散的なプログラム検索とは正確には何でしょうか?基本的に、ドメイン固有言語(DSL)から取られた演算子のグラフに対する組み合わせ的な検索です。遺伝的プログラミングなど、このアイデアには多くのバリエーションがあります。
より良く理解するために、機械学習が行うこととプログラム合成が行うことを並べて類推することができます。
機械学習では、モデルは微分可能なパラメトリック関数です。プログラム合成では、DSLから取られた演算子のグラフです。
機械学習では、学習エンジンは勾配降下です。プログラム合成では、組み合わせ的な検索です。
機械学習では、連続的な損失関数を見ています。一方、プログラム合成では、二値的な正確性チェックだけがフィードバック信号としてあります。
機械学習における大きな難関はデータの密度です。モデルを学習するには、モデルが曲線なので、問題空間の密なサンプリングが必要です。
一方、プログラム合成は非常にデータ効率が良く、数例だけでプログラムを見ることができます。しかし、主な難関は組み合わせ爆発です。正しいプログラムを見つけるために探索しなければならないプログラム空間のサイズは膨大で、DSLサイズやプログラムの長さに応じて組み合わせ的に増加します。
プログラム合成は、これまでのところARCで非常に成功しています。これらはまだ赤ちゃん歩きの段階ですが。
ARCに対するすべてのプログラム合成ソリューションは、同じテンプレートに従っています。基本的に、ブルートフォースのプログラム検索を行っています。
それが非常にプリミティブであるにもかかわらず、はるかに少ない計算量で最先端のLLMを上回る性能を示しています。
さて、LLMの限界が何であるかを知り、何が得意で何が不得意かを知りました。タイプ1が得意で、タイプ2が不得意です。次はどこに向かうべきでしょうか?
答えは、機械学習、つまりこの種のタイプ1思考を、プログラム合成が提供するタイプ2思考と融合させる必要があるということです。
私は、これが実際に人間の知能がどのように機能するかだと思います。これが人間の知能が本当に優れているところで、私たちを特別にしているものです。知覚と直感を、明示的なステップバイステップの推論と組み合わせているのです。実際に両方の形式の抽象化を組み合わせています。
例えば、チェスをプレイする場合、特定の興味深い手を展開する際にタイプ2を使用します。しかし、可能なすべての手に対してこれを行うわけではありません。なぜなら、それらは非常に多いからです。組み合わせ爆発です。
代わりに、直感を使用して、計算を行う離散的な検索を絞り込みます。この直感は、多くのゲームをプレイすることで構築されます。
タイプ1とタイプ2を融合させているのです。これが、コンピュータが使用できる非常に小さな認知リソースでチェスをプレイできる理由です。
このタイプ1とタイプ2のブレンディングが、AIを次に進めるべき方向です。計画と離散的な検索を統一されたスーパーアプローチに組み合わせることができます。
これはどのように機能するのでしょうか?主要なシステム2の技術は、プログラムの空間上での離散的な検索です。そして、ぶつかる主な壁は組み合わせ爆発です。
一方、主要なシステム1の技術は、曲線フィッティングと補間による汎化です。多くのデータを補間的なマニフォールドに埋め込みます。このマニフォールドは、ターゲット空間について高速だが近似的な判断を下すことができます。
大きなアイデアは、これらの高速だが近似的な判断を活用して、組み合わせ爆発と戦うことです。これらを、探索しようとしているプログラム空間の構造に関する一種の直感として使用し、それを使用して検索を扱いやすくします。
少し抽象的に聞こえるかもしれませんが、簡単なアナロジーは地図を描くことです。通常は組み合わせ的な検索を必要とする離散的な関係を持つ離散的なオブジェクトの空間を取ります。パリの地下鉄での経路探索は良い例です。これは組み合わせ問題です。
これらの離散的なオブジェクトとその関係を、連続的な距離関数で物事を比較できる幾何学的マニフォールドに埋め込みます。これを使用して、関係について高速だが近似的な推論を行うことができます。
例えば、この地図上に線を引き、それが交差するものを見ることで、一つ一つ調べなければならない経路のセットを制限する候補経路のようなものを得ることができます。
これにより、組み合わせ爆発を抑制できますが、もちろん、どんな種類の空間でも地図を描くことはできません。プログラム空間は実際に非常に非線形です。
問題に深層学習を使用するには、2つのことが必要です。補間的な問題である必要があります。つまり、マニフォールド仮説に従う必要があります。そして、多くのデータが必要です。例が2つしかない場合は機能しません。
例えば、単一のARCタスクを見ると、それは補間的ではなく、2〜4の例しかありません。したがって、深層学習を使用することはできません。記憶したパターンを単に再適用することでも解決できません。したがって、LLMを使用することもできません。
しかし、抽象化のスケールを1段階下げて、ARCが構築されているコア知識システムを見ると、各コア知識システムは本質的に補間的であり、データから学習できます。もちろん、それらについて多くのデータを収集することができます。
そのレベルで深層学習を使用して、ARCの世界を離散的なオブジェクトに解析する知覚層として機能させることができます。
同様に、抽象化のスケールを1段階上げて、可能なすべてのARCタスクとそれらを解決するすべての可能なプログラムの空間を見ると、再び連続的な変動の次元を見つけることができます。
したがって、実際にその空間での補間をある程度活用することができます。深層学習を使用して、ARCタスクの空間とそれらを解決するプログラムの構造に関する直感を生成することができます。
これに基づいて、深層学習とプログラム合成を組み合わせるための2つの興味深い研究分野があると思います。
1つ目は、深層学習コンポーネントを組み込んだ離散的なプログラムを活用することです。例えば、深層学習を知覚層として使用して、実世界を離散的な構成要素に解析し、プログラム合成エンジンに適合させることができます。
また、深層計画システムにシンボリックなアドオンを追加することもできます。これは私が長い間話してきたことですが、実際に今始まっています。LLMの外部検証ツールの使用などがその例です。
もう1つの方向性は、離散的な検索を通知し、その効率を改善するために深層計画モデルを使用することです。計画をプログラム合成のドライバー、ガイドとして使用します。
例えば、プログラム検索をガイドするために直感的なプログラムスケッチを提供したり、各ノードで考慮すべき可能な分岐決定の空間を縮小したりすることができます。
ARCでこれがどのように見えるでしょうか?ARCをクラックして100万ドルを獲得する方法を説明しましょう。
2つの方向に進むことができます。まず、深層学習を使用して、ある意味でグリッド状態空間、グリッド空間の地図を描くことができます。
極限では、これはプログラム合成を解決します。初期のグリッド入力を取り、マニフォールド上に埋め込みます。次に、グリッド出力を見て、それを埋め込みます。
そして、マニフォールド上の2点間に線を引き、それが補間するグリッドを見ます。これにより、入力から出力への変換のシリーズが近似的に得られます。
もちろん、それらの周りでローカル検索を行う必要がありますが、これは高速ですが非常に近似的なものです。正確でない可能性がありますが、非常に良い出発点です。プログラム合成を純粋な補間問題に変換しているのです。
もう1つの方向性は、プログラム埋め込みです。深層学習を使用して、今度はグリッド空間ではなく、プログラム空間の地図を描くことができます。この地図を使用して、離散的なプログラムを生成し、検索プロセスをより効率的にすることができます。
LLMと離散的なプログラム検索を組み合わせる非常にクールな例は、この論文です。「言語モデルによる帰納的推論の後の検索」というタイトルです。
これは、LLMを使用して、まずARCタスクについての仮説を自然言語で生成し、次に別のLLMを使用して、各仮説に対応する候補プログラムをPythonで実装します。
これを行うことで、実際にARCで2倍の改善を得ています。これは非常に有望です。
もう1つの非常にクルードですが有望な例は、ARCのリーダーボード、パブリックリーダーボードでのRyan Greenblattの提出です。
彼は、GPT-4に基づく非常に洗練されたプロンプティングパイプラインを使用しています。GPT-4を使用してARCタスクを解決するための候補Pythonプログラムを生成し、外部検証ツールを持っています。
タスクごとに何千ものプログラムを生成し、望むものに近いプログラムを洗練する方法も持っています。
これはパブリックリーダーボードで42%のスコアを獲得しており、現在の最先端です。
さて、ここまでの状況をまとめましょう。LLMがAIに及ばないことが分かりました。システム1思考に優れていますが、システム2を欠いています。
一方、システム2への進歩、AGIへの進歩は停滞しています。LLMで対処している限界は、5年前に対処していたものと全く同じです。
新しいアイデアが必要です。新しいブレークスルーが必要です。私の賭けは、次のブレークスルーはおそらくアウトサイダーから来るだろうということです。大手研究所がより大きなLLMのトレーニングに忙しい間に。
もしかしたら、この部屋にいる誰かかもしれません。私が見たい新しいアイデアを持っているかもしれません。
ARCのリーダーボードでお会いしましょう。ありがとうございました。
[拍手]
質問はありますか?はい。
パブリックの最先端に従うと、アプローチはLLMを使用して本当に多くのプログラムをサンプリングすることのようです。1つのプロンプトに基づいて、数千、数万のサンプルを生成します。
性能が向上しているようです。10,000から20,000のプログラムサンプルに増やすと、おそらく2%ほど向上します。必然的に限界があるようには見えません。莫大な計算量を投入する以外は。
改善は…ARCは難しくありません。人間にとっては非常に簡単です。無限の計算能力があれば、実際にブルートフォースのプログラム検索でARCを解決できます。
データセンタースケールの計算能力があれば、実際に可能です。すでに、ブルートフォース検索で少なくとも50%を達成できることが分かっています。もちろん、ブルートフォース検索の性能は、より多くの計算を投入すると向上します。
チャレンジの一部は、限られた計算リソースでそれを解決できることです。パブリックトラックでは、厳しい計算制限はありません。
例えば、Ryan Greenblattのソリューションは実際に膨大な計算量を使用しています。APIの料金として、実行するのに約1万から2万ドルかかっていると思います。それは膨大です。それでも42%しか達成していません。
大規模なブルートフォースのプログラム検索を適用すれば、数百ドルを費やして同じ結果を得ることができるでしょう。
ですから、その性能の性質は、単に検索を通じて限界に近づいているだけだと思いますか?
ちなみに、改善は対数的になると思います。計算をスケールアップするだけでは、85%から90%の人間レベルの性能には到達しないと思います。宇宙に存在する以上の計算能力が必要になるでしょう。
簡単な質問ですが、フランソワさん、次のブレークスルーはビッグラボではなくアウトサイダーから来ると言いましたが、Googleのようなビッグラボはあなたのような外部の思想家を雇っていませんか?
私の見方では、数年前はAI研究にかなりの知的多様性がありました。しかし、LLMとChatGPTの台頭、そして大手テクノロジー企業間の最高のLLMを構築するための一種の軍拡競争は、知的な崩壊をもたらしました。
今や誰もが同じことに取り組んでいます。これは実際にAGIへの進歩を遅くしていると思います。
ARCでこれまでのトップエントリーはすべてアウトサイダーでした。ビッグテックラボからではなく、本当に面白い新しいアイデアを思いついたランダムな人々でした。
時々、これらの新しいアイデアは実際にビッグラボが行っていることと似ています。例えば、Alpha ProofとJack Caoのチームによる現在のリーディングソリューションには、かなり強い類似点があります。
より野心的な形の汎化を測定するARC 2チャレンジのようなものがあると思いますか?それともこれで十分でしょうか?
非常に良い質問です。ARCを最初にクラックするシステムが実際のAGIになるとは思いません。AGIに到達する前に、そこに到達すると思います。
ARCをAGIの十分条件ではなく、必要条件と考えることができます。ARCを解決しない限り、AGIは持っていません。AGIがすでにここにあると主張する人々への反証です。
ARC 2について言及しましたが、ARC 2はあります。ARCは進行中の作業です。2019年に思いついて、2017年から取り組み始めました。非常に粗い試みです。最初の試みです。
それが出てきて、人々がそれをクラックしようとし始めました。そこから学び、その学びをバージョン2に再投資します。そしてバージョン3が出てきます。
時間が経つにつれて、より洗練され、希望的には実世界の問題により近づき、より動的でオープンエンドなものになっていくでしょう。
長期的には、良いAGIテストが単なる静的な入出力プログラム合成データセットであるとは思いません。それを遥かに超えていくと思います。オープンエンドネスの問題にも取り組みたいと思います。
私が合理的に自信を持っていることの1つは、ARCを解決すれば、少なくとも「これまで見たことのない問題にアプローチし、それを解決する方法をどのように機械に教えるか」という質問に対する適切な答えがあるということです。
AGIの特定のサブ問題を解決しているのです。これが今日AGIに到達するのを妨げている最も重要な問題だと私は考えています。したがって、これは莫大な進歩につながるでしょう。
さて、3番目の寄稿論文セッションである因果関係に移行するにあたって、最初の論文は赤ちゃんが学び、世界を探索するだけで概念を抽象化し始める経験的学習について少し触れていることを知っています。これがあなたのアイデアとどのように統合されると考えていますか?
はい、私には2人の子供がいます。それぞれ3歳と3ヶ月です。子供の成長を見守ることは、人間の心の理論を考え出すための大きなインスピレーションの源だと思います。
特に1歳から2歳の間が特に当てはまると思います。なぜなら、その時期は認知がまだ単純で、実際に機能しているのを見ることができるからです。
その時点を過ぎると、非常に洗練されて見通すのが非常に難しくなります。それ以前の時点では、いくつかのアフォーダンスが完全にコントロールされておらず、あまり興味深くありません。
しかし、その時点では本当に魅力的です。個人的に、子供たちの中に、ARCに適用可能な特定のソリューションにインスピレーションを与えるようなものを見ています。
人間が少数ショットのプログラム合成を実行できるということは、それほど物議を醸す発言ではありません。ARCを解決するために必要な種類のプロセスです。
しかし、このようなIQのようなパズルに適用するのではなく、完全に日常的な状況に適用しているだけです。例えば、赤ちゃんが床を這っているとき、オブジェクトに到達したいという短期的な目標を設定します。
そして、フィードバックループに入ります。現在の状態を知っており、到達したい状態を想像できます。目標の潜在的な表現があります。そして、その2つの間で計画を立てようとします。これが短期的なプログラム合成です。
実行しようとし、そしてループを再開します。これが人間の認知が基本的にどのように機能するかだと思います。
ありがとうございます。そして、ありがとうございました。
コメント