汎用知能:定義し、測定し、構築する

General Intelligence: Define it, measure it, build it
Dr. François Chollet (Keras, ARC-AGI, Google) presents a keynote talk at the AGI-24, The 17th Annual AGI Conference, on ...

マシューさん、ご丁寧なご紹介ありがとうございます。はい、汎用知能(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にはいくつかの問題があり、これらの制限は教師なし学習に固有のものです。これらの制限はLLMを構築するために使用しているパラダイムに固有のもので、簡単には修正できません。実際、これらの制限については1日目からほとんど進歩がありません。1日目というのは去年のことではありません。Transformerベースの大規模言語モデルを使い始めてから5年以上経っています。
5年以上経っても、これらの問題についてほとんど進歩がありません。なぜなら、私たちが使用しているモデルは依然として同じだからです。データセットに対して勾配降下法でフィットさせたパラメトリックな曲線であり、依然として同じTransformerアーキテクチャを使用しています。
これらの制限について説明しましょう。実際、幻覚については触れません。皆さんはそれについてよくご存じだと思いますので。他の問題を見ていきましょう。
まず、LLMの興味深い問題の1つは、自己回帰モデルであるため、質問の内容を必ずしも見ずに、質問に続く可能性が高いものを常に追加してしまうことです。例えば、ChatGPTの最初のリリースから数か月間、「10キロの鉄と1キロの羽毛はどちらが重いですか?」と尋ねると、「同じ重さです」と答えていました。これは、「1キロの鉄と1キロの羽毛はどちらが重いですか?」というトリック問題がインターネット上に多く存在し、その答えがもちろん「同じ重さです」だからです。モデルは単に質問をパターンマッチングし、実際の数字を見たり、尋ねられている実際の質問を解析したりしませんでした。
同様に、マルチホールド問題のバリエーションを提供した場合、LLMは元のマルチホールド問題の定型的な答えを完璧に記憶しています。そのため、不条理なバリエーションを尋ねても、そのまま元の問題の答えを出力してしまいます。
明確にしておきますが、これら2つの特定の問題は、強化学習によってすでに修正されています。しかし、特別なケースとして修正されているだけで、この種のモードに当てはまる新しい問題を見つけるのは非常に簡単です。
「でも、これらの例は去年のものだから、今日ではもっと良くなっているはずだ」と言うかもしれません。実際、そうではありません。問題は1日目から変わっていません。これらの問題に対する進歩はありません。最新の最先端モデル、例えばClaude 3.5でも同じ問題が発生します。
これは、先月の論文からの例で、Claude 3.5を含む最先端モデルについてこれらの例を調査したものです。
密接に関連する問題として、LLMのフレーズに対する極端な敏感さがあります。テキストの段落で名前や場所、変数名を変更すると、LLMのパフォーマンスが低下する可能性があります。また、数式の数字を変更すると、同様の問題が発生します。これについて調査した興味深い論文があります。「自己回帰の余燼」というタイトルです。
人々は非常に楽観的で、この脆弱性は実際には素晴らしいことだと言います。モデルがより高性能であることを意味し、正しい方法でクエリを行えばより良いパフォーマンスが得られるということです。プロンプトエンジニアリングが必要なだけだと。
その主張の反対側は、任意のLLMにおいて、うまく機能しているように見えるクエリに対して、人間が容易に理解できる同等の言い換えがあり、それによってモデルの理解が破綻してしまうということです。非常に単純な名前の変更や言い換えでモデルの理解を破壊できるのであれば、それは堅牢な理解というよりも表面的なパターンマッチングのように見えます。
クリッカーが動かなくなってしまいました。次のスライドに進めてください。ありがとうございます。
さて、LLMのコンテキスト内学習能力、つまりその場で新しい問題に適応する能力について多くの議論がありますが、実際に起こっていることは、LLMが記憶した問題解決テンプレートのようなプログラムを取り出し、現在のタスクにマッピングしているようです。記憶済みのプログラムが準備されていない場合、つまり少し馴染みのないものに直面した場合、それが非常に単純なものであっても、人間のように一から分析することはできません。
1つの例を挙げましょう。シーザー暗号です。最先端のLLMはシーザー暗号を解くことができます。これは非常に印象的ですね。しかし、実際には、オンラインの例でよく見られる特定の鍵サイズ、例えば3や5のような値に対してのみ解くことができます。13のような鍵サイズの暗号の例を示すと、失敗します。つまり、暗号を解くアルゴリズムの実際の理解はなく、特定の値に対してのみ記憶しているのです。
私の仮説は、LLMのパフォーマンスは純粋にタスクの馴染み深さに依存し、タスクの複雑さには全く依存しないということです。解決策やプログラムを記憶する機会を与えれば、どんなに複雑なタスクでも解くことができるという複雑さの上限は実際にはありません。代わりに、LMのパフォーマンスは完全にタスクの馴染み深さに依存します。そのため、非常に単純な問題でも、馴染みがなければ手に負えないものになります。
クリッカーが戻りました。
最後に、LLMは実際に記憶したプログラムの一般化にも問題があります。例として、おそらくご存知のように、LLMは数の掛け算やリストのソートに苦労します。これらの問題の例を何百万も見ているにもかかわらずです。通常、これらを処理するには外部の記号システムの助けが必要です。
LLMが合成をどのように扱うかを調査した興味深い論文があります。「Transformerの合成性の限界」というタイトルです。主な発見は、LLMは実際には合成を全く扱っていないということです。代わりに、線形化されたサブグラフマッチングを行っています。
もう1つの非常に興味深い論文は「反転の呪い」です。著者らは、「AはB」という内容でLLMを訓練すると、「BはA」を推論することができないということを発見しました。これは本当に一般化の深いレベルでの崩壊です。これは実際にかなり驚くべきことです。私は通常AIに対して非常に懐疑的ですが、この結果には非常に驚きました。
これらの失敗事例について覚えておくべき1つのことは、特定のクエリは比較的迅速に修正される傾向があるということです。モデルは、人間の請負業者から収集された新しいデータに基づいて、クエリ履歴に基づいて常に微調整されているからです。そのため、私のスライドで示した例の多くは、おそらくすでに最先端のモデルでは動作しているでしょう。過去に失敗したため、それ以降手動で対処されているからです。
しかし、これは進歩を作る非常に脆弱な方法です。一度に1つのクエリしか対処していないからです。パッチを当てたクエリでも、言い換えたり変数や名前を変更したりすると、再び失敗し始めます。そのため、これは常にもぐらたたきのようなゲームであり、人間の労力に非常に大きく依存しています。
今日、おそらく1万から3万人の人間がフルタイムでLLMのトレーニングのための注釈付きデータを作成する仕事をしています。
バランスを取ると、少し矛盾しているように見えます。一方では、LLMは投げかけられるあらゆる人間のベンチマークで優れた成績を上げています。他方では、行っていることの堅牢な理解をあまり示していません。
この矛盾を解決するには、スキルとベンチマークがこれらのシステムを見る主要なレンズではないということを理解する必要があります。
大きく視点を広げてみましょう。AIの目標を定義するには、主に2つの思考の流れがありました。
1つ目は、ミンスキー流の見方で、現在の大手テック企業の見方とも重なります。それは、AGIが経済的に価値のあるほとんどのタスクを実行できるシステムであるというものです。ミンスキーは「AIは、人間が行えば知能を要する作業を機械に行わせる科学である」と述べました。これは非常にタスク中心的な見方で、AIが固定されたタスクのセットでうまく機能するかどうかを気にします。
2つ目は、マッカーシーの見方です。彼は私が引用している内容を正確に述べたわけではありませんが、これらのアイデアの大きな支持者でした。AIにおける一般性は、多くのタスクに対するタスク固有のパフォーマンスのスケールアップではなく、実際には準備されていない問題を扱う機械を作ることだという考えです。
この違いは、ロックの知能観とダーウィンの知能観の違いとも呼応します。知能を汎用的な学習メカニズムとして見るか、進化によって与えられたタスク固有のスキルの集合として見るかの違いです。
私の見方は、ロックとマッカーシーの見方に近いです。知能はプロセスであり、タスク固有のスキルはそのプロセスの出力だと考えています。これは非常に重要な点です。この講演から1つだけ持ち帰るポイントがあるとすれば、それはこれです。スキルは知能ではありません。そして、どんなに多くのタスクでスキルを示したとしても、それは知能を示すものではありません。いかなるタスクにおいても、知能を必要とせずにスキルを持つことは常に可能です。これは、道路ネットワークを持つことと道路建設会社を持つことの違いのようなものです。道路ネットワークがあれば、事前に定義された特定のAとBの間を移動できます。しかし、道路建設会社があれば、ニーズの変化に応じて任意のAとBを即座に接続し始めることができます。
結晶化した行動プログラムに知能を帰属させることは、カテゴリーの誤りです。プロセスの出力とプロセス自体を混同しているのです。知能とは、新しい状況に対処する能力、新しい道を切り開き、新しい道路を建設する能力です。道路そのものではありません。道路と、それを作り出したプロセスを混同しないでください。
今日、LLMで直面しているすべての問題は、この誤った知能の概念化の直接的な結果です。知能を定義し測定する方法は、外部から提供されたベンチマークに任せておける技術的な詳細ではありません。それは認知についての私たちの理解を反映しています。つまり、私たちが問いかける質問を反映し、それによって得られる可能性のある答えも制限します。進捗を測定する方法は、目標に近づくためのフィードバック信号です。悪いフィードバック信号を持っていれば、実際の一般性に向けて進歩することはできません。
知能を定義し測定するには、いくつかの重要な概念を考慮に入れる必要があります。まず覚えておくべきことは、静的なスキルと流動的知能の区別です。LLMが行うように、既知の問題を解決するための大規模な静的プログラムのコレクションにアクセスすることと、これまで見たことのない問題を解決するために新しいプログラムをその場で合成する能力の違いです。これは二項対立ではありません。つまり、流動性があるかないかという単純な話ではなく、もっとスペクトルのようなものです。しかし、スペクトルの右側にある方がより高い知能です。
2つ目の概念は、操作領域です。馴染みのある状況に非常に近い状況でのみスキルを持つことと、広範囲の状況で
スキルを持つことには大きな違いがあります。例えば、数の足し算ができるなら、特定の数や見たことのある数、それらに近い数だけでなく、任意の2つの数を足すことができるはずです。運転ができるなら、どんな都市でも運転できるはずです。アメリカで運転を学び、その後ロンドンに引っ越して、道路の反対側を走る運転もできるはずです。非常に特定の地理的に制限された場所でしか運転できないのであれば、それはあまり知的とは言えません。ここでも、二項対立ではなくスペクトルがあります。しかし、スペクトルの一般化の高い側にある方がより高い知能です。
最後に、3つ目の概念は情報効率です。新しいスキルプログラムを獲得するために、システムにどれだけの情報、どれだけのデータが必要だったでしょうか。より情報効率が高ければ、より知的だと言えます。
これらの3つの概念、3つの量は、一般化という概念によって結びついています。一般化は本当にAIにおける中心的な問題であり、スキルについては忘れてください。ベンチマークについても忘れてください。これが、人間の試験を使用してAIモデルを評価することが terrible idea である理由です。なぜなら、試験は一般化を念頭に置いて設計されていないからです。あるいは、人間に適切な一般化の仮定で設計されていますが、機械には適切ではありません。ほとんどの試験は、人間が事前に試験問題や答えを読んでいないことを前提としています。純粋な暗記試験でない限り、テストを受ける人にとってある程度馴染みのない質問をすることを前提としています。純粋な暗記試験であれば、LLMが優秀な成績を収めることは理にかなっています。インターネット全体を記憶しているのですから。
次のレベルの能力に到達するために、私たちは準備されていない新しい状況に適応し、一般化する能力をAIに持たせたいと考えています。そこに到達するには、この能力をより良く測定する方法が必要です。なぜなら、それを測定することで進歩することができるからです。フィードバック信号が必要なのです。
そこに到達するには、一般化が何を意味するかについての明確な理解が必要です。一般化とは、あなたが持っている情報(生まれ持った事前知識や、人生の過程で獲得した経験など)と、エージェントとして将来遭遇する可能性のある潜在的な状況の空間における操作領域との関係です。それらの状況は不確実性に満ち、新規性を持ち、過去とは異なるでしょう。一般化とは基本的に、過去の情報を効率的に操作化して将来に対処する能力です。
変換比として解釈することができます。数学が好きな人は、実際にアルゴリズム情報理論を使ってこの比率を正確に特徴付け、定量化しようとすることができます。私にはそれについての論文があります。興味があれば確認してみてください。
その論文で話している1つのことは、一般化力、つまり知能を測定するには、事前知識と経験をコントロールする必要があるということです。知能は変換比なので、何で割っているかを知る必要があります。特にAIと人間の知能を比較することに興味がある場合は、共有された認知的事前知識のセットに標準化する必要があります。それはもちろん、人間の認知的事前知識、つまり私たちが中核知識と呼ぶものです。
これらの要件を満たす良い知能のベンチマークを作成する試みとして、私はデータセットを作成しました。抽象推論コーパス(Abstraction and Reasoning Corpus for Artificial General Intelligence)、略してARC-AGIと呼びます。これは一種のIQテストのようなものと考えることができます。人間が受けることができる知能テストで、人間にとっては非常に簡単です。またはAIエージェントも受けることができます。プログラム合成データセットとしても考えることができます。
ARCの重要なアイデアは、見るタスクや与えられるタスクがすべて新規であることです。データセット内の他のタスクとは異なり、オンラインで見つけられるものとも異なります。そのため、ARCに対して事前に準備することはできません。解答を事前に記憶することで解決することはできません。
ARCは経験をコントロールしようとしています。なぜなら、少数のショットでのプログラム学習を行うからです。2つか3つの例を見て、そこから入力と出力を結びつけるプログラムを推論する必要があります。
また、事前知識もコントロールしています。ARCは純粋に中核知識の事前知識に基づいているからです。英語のような獲得された知識は使用せず、4つの中核知識システムのみに基づいて構築されています。それは、物体性、基本的な幾何学とトポロジー、数、そしてエージェンシーです。
2020年初頭に、このデータセットに関する最初のKaggleコンペティションを開催しました。それはいくつかの非常に興味深い解決策を生み出しました。すべてプログラム合成に基づいています。現在、テストセットの約40%を解決できるのが最先端の成績です。これはまだ赤ちゃんの一歩です。
このデータセットはLLMの時代以前のものですが、実際にはLLMの時代においてさらに関連性が高まっています。人間の試験などに基づくほとんどのベンチマークはLLMの時代にすでに飽和していますが、ARCはそうではありません。なぜなら、ARCは記憶に抵抗するように設計されているからです。他のすべてのベンチマークは記憶だけでハックできますが、ARCはそうではありません。
今年の6月、ARCに関するより野心的なコンペティションを開始しました。ARCプライズと呼んでいます。ここでZAPの共同創設者のMopとともに、研究者がARCを解決しオープンソース化するために100万ドル以上の賞金を提供しています。
コンペティションには2つのトラックがあります。1つは非公開トラックで、Kaggleで行われています。現在、最大のKaggleコンペティションです。100の隠されたタスクで評価され、解決策は自己完結型である必要があります。つまり、12時間以内にGPU VMで実行でき、良好な速度も必要です。85%以上を達成すると大きな賞金があり、トップスコアにも賞金があります。また、最優秀論文賞も4万5000ドルあります。トップの結果を出せなくても、良いアイデアがあれば論文を書いて提出すれば、賞金を獲得できる可能性があります。
また、公開トラックもあります。人々が「GPT-4やClaudeなどの最先端のLLMがこのデータセットでどのような成績を出すのか」と聞き続けたため、このトラックを追加しました。タスクは公開されていませんが、完全に非公開というわけでもないリモートAPIによって照会される半公開の評価を開始しました。
驚くべきことに、このトラックでの最先端の成績は、非公開トラックとほぼ同じです。これは実際に非常に興味深いことです。
ARCでのLLMの性能は正確にはどうでしょうか? あまり良くありません。最先端のLLMのほとんどは5%から9%の間です。そして1つだけ、より良い成績を出しているものがあります。Claude 3.5が大きく飛躍し、21%です。
一方、基本的なプログラム検索なら少なくとも50%は達成できるはずです。なぜそれがわかるのでしょうか? 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には多くの知識があり、その知識は以前に見た状況からある程度離れた状況に一般化できるように構造化されています。単なる点ごとのファクトイドの集まりではありません。
LLMの制限(幻覚や脆弱性など)をすべて解決すれば、次の段階に到達できるでしょう。しかし、実際の知能、つまりその場でのモデル合成に到達するには、依然として大きな飛躍が必要です。現在のアプローチを単純にスケールアップしても到達することはできません。実際に全く新しい方向性が必要です。もちろん、その後のAGIへの道のりはさらに長いです。
機械で抽象化を構築するにはどうすればいいでしょうか? 抽象化がどのように機能するか見てみましょう。知能は類推に対する感受性だと言いましたが、実際には類推を引き出す方法が1つ以上あります。2つの主要なカテゴリーの類推があり、そこから2つのカテゴリーの抽象化が生まれます。値中心の抽象化とプログラム中心の抽象化です。
これらは非常に似ており、互いに鏡像関係にあります。どちらも物事を比較し、個々のインスタンスを共通の抽象化にマージすることで、重要でないインスタンスの特定の詳細を消去します。つまり、一連の物事を取り、それらを互いに比較し、重要でないものを消去します。残ったものが抽象化です。
2つの主要な違いは、1つ目は連続領域で操作し、もう1つは離散領域で操作することです。
値中心の抽象化は、LLMのドット積やL2距離など、連続的な距離関数を介して物事を比較することです。これは基本的に、人間の知覚、直感、パターン認知を支えるものです。
一方、プログラム中心の抽象化は、離散的なプログラム(グラフ)を比較することです。グラフ間の距離を計算する代わりに、正確なサブグラフの同型性、正確なサブグラフマッチングを探します。ソフトウェアエンジニアが抽象化について話すのを聞いたことがあれば、これが彼らが意味していることです。何かをリファクタリングしてより抽象的にする時、これが行っていることです。
これらの両方の形式の抽象化は、類推によって駆動されます。ただし、類推を行う方法が異なります。類推作りは抽象化を生み出すエンジンであり、値の類推は幾何学に基づいており、距離関数を介してインスタンスを比較します。プログラム中心の類推はトポロジーに基づいており、正確なサブグラフマッチングを行います。
すべての認知は、これら2つの形式の抽象化の相互作用から生まれます。左脳対右脳の類推や、カーネマンのタイプ1思考対タイプ2思考の区別を通じてこれらを覚えることもできます。
もちろん、左脳対右脳の話は実際のイメージであり、脳の認知機能の側性化が実際にそのように機能しているわけではありません。しかし、覚えるのに面白い方法です。
Transformerは実際にタイプ1、値中心の抽象化が得意です。知覚、直感、パターン認知など、タイプ1が効果的なすべてのことを行います。その意味で、TransformerはAIにおける大きな飛躍を表しています。しかし、タイプ2の抽象化には適していません。これが、私たちがリストアップしたすべての制限の原因です。数を足せない理由や、「AはB」から「BはA」を推論できない理由がこれです。インターネット上のすべてのデータで訓練されたTransformerでさえも同様です。
ここからどのように前進すればいいでしょうか? タイプ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と離散的なプログラム検索を組み合わせる非常にクールな例は、「言語モデルを用いた追加の検索と帰納的推論」という論文です。この論文では、まず自然言語でARCタスクに関する多数の仮説を生成するためにLLMを使用し、次に別のLLMを使用して各仮説に対応する候補プログラムをPythonで実装しています。これにより、ARCで2倍の改善を達成しています。これは非常に有望です。
もう1つの非常にシンプルだが有望な例は、ARCのパブリックリーダーボードにあるRyan Greenblatの提出です。彼は、GPT-4に基づく非常に洗練されたプロンプティングパイプラインを使用しています。GPT-4を使用してARCタスクを解決するための候補Pythonプログラムを生成し、外部の検証機を持っています。タスクごとに数千のプログラムを生成し、また望む結果に近いプログラムを洗練する方法も持っています。これはパブリックリーダーボードで42%のスコアを達成しており、現在の最先端です。
ここで我々がいる場所を要約しましょう。LLMはAIには及ばないことがわかっています。システム1思考には優れていますが、システム2が欠けています。一方で、システム2に向けての進歩、AGIに向けての進歩は停滞しています。LLMで扱っている制限は、5年前と全く同じです。新しいアイデア、新しいブレークスルーが必要です。
私の賭けでは、次のブレークスルーはおそらくアウトサイダーから来るでしょう。大手のラボがより大きなLLMのトレーニングに忙しい間に。それは、この部屋にいる誰かかもしれません。あなたが私が見たい新しいアイデアを持っているかもしれません。
ARCのリーダーボードでお会いしましょう。ありがとうございました。
[拍手]
質問はありますか?
質問者: パブリックの最先端の手法を見ると、1つのプロンプトに基づいて本当に多くのプログラム、何千ものサンプルをLLMを使って生成しているようです。10,000から20,000のプログラムサンプルに増やすと、パフォーマンスが2%程度上がるようです。そして、この改善には必ずしも限界がないように見えます。計算リソースを大量に投入する以外には。
回答: 改善は… ARCは難しくありません。人間にとっては非常に簡単です。無限の計算リソースがあれば、実際に総当たり検索でARCを解決することができます。データセンタースケールの計算リソースがあれば、実際に可能です。総当たり検索で少なくとも50%が達成できることはすでにわかっています。もちろん、総当たり検索のパフォーマンスは、より多くの計算リソースを投入すると向上します。
課題の一部は、限られた計算リソースでそれを解決できることです。パブリックトラックでは厳しい計算制限がないので、例えばRyan Greenblatのソリューションは実際に膨大な量の計算を使用しています。API料金で10,000ドルから20,000ドルかかっていると思います。それは膨大です。それでも42%しか達成していません。大規模な総当たりプログラム検索を適用すれば、数百ドルを費やして同じ結果を得ることができます。
質問者: そのパフォーマンスの性質は、単に検索を通じて限界に近づいているだけだと考えていますか?
回答: ちなみに、改善は対数的になると思います。計算リソースをスケールアップするだけで85〜90%、つまり人間レベルのパフォーマンスに到達することはできないと思います。宇宙にある以上の計算リソースが必要になるでしょう。
質問者: フランソワさん、次のブレークスルーは大手ラボではなくアウトサイダーから来ると言いましたが、Googleのようなビッグラボはあなたのような外部の思想家を雇っていないのでしょうか?
回答: 私の見方では、数年前までは、AIの分野にかなりの知的多様性がありました。しかし、LLMとChatGPTの台頭、そして大手テック企業間の最高のLLMを構築するための一種の軍拡競争により、知的な崩壊が起こりました。今や全員が同じことに取り組んでいます。
これは実際にAGIへの進歩を遅らせていると思います。そうでなければもっと速かったでしょう。ARCのトップの参加者はこれまでのところ、すべてアウトサイダーでした。大手テックラボではなく、本当に面白い新しいアイデアを思いついた無作為の人々でした。
時々、これらの新しいアイデアは実際に大手ラボが行っていることと似ています。例えば、AlphaProofと現在のリーディングソリューションであるJack Koらのチームの間には、かなり強い類似点があります。
質問者: より野心的な一般化の形を測定する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つの間で計画を立てようとします。これが短期的なプログラム合成です。実行しようとし、そしてループを再開します。
これが、人間の認知が根本的なレベルでどのように機能しているかだと思います。
質問者: ありがとうございます。本当にありがとうございました。

コメント

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