
27,658 文字

ほな、こういうことやねんけど、モデルいうんはユーザーを映す鏡みたいなもんやねん。チェスの例がええ説明になるわ。これらのモデルはチェスの手の統計的な分布を学習するから、賢いチェスの手を打ったら、モデルも賢いチェスプレイヤーみたいに動くんや。逆に、アホな手を打ったら、モデルもアホなプレイヤーみたいになんねん。
コーディングでも同じことが言えるわ。変な質問したり、クソみたいなコード書いてそれを完成させようとしたり、アホなことしたら、モデルもアホになんねん。モデルはあんたの鏡やからな。これは数学的な事実やねん。気に入らんかもしれんけど、すまんな。
気に入らんかもしれんけど、数学的な事実なんや。ほんでな、チューリングマシンの肝やねんけど、実行時に制限のない、つまり可能性としては無限の計算量を持てるっちゅうことなんや。事前に「82ステップで終了や」みたいに固定せえへんのよ。
今日の回はちょっと面白いわ。MLSTの共同ホスト2人がOpenAIの新しいモデルについておしゃべりしてんねん。テスト時の推論や推論能力についてな。最後まで聞いてもらえたら、あるいはそこまでスキップしてもらってもええけど、Keith Duggarがかつてマサチューセッツ工科大学で出会った面白い頭の体操問題を全てのLLMでテストしてみたんや。それに、カーソルでコードを書いてるところも少し見せるで。MLSTでコード書いたりするとこを見せたんは初めてやと思うわ。
とにかく、楽しんでもらえたらええわ。Doug、なんで人々はこの番組を見るべきやと思う?
うーん、まあ、人々がこの番組を見るべき理由は、おそらく俺らがOpenAIについてちょっと批判的な視点を提供しようとしてるからやと思うわ。俺らは何度かハイプサイクルを経験してきたから、もうちょっと現実的な期待を持とうとしてんねん。
だから、今みんなが聞いてる意見とは違う意見を聞きたい人は見るべきやな。考えるネタにもなるし。あと、自分でこういうツールを使うときに気をつけるべきことも分かるかもしれんしな。
例えば、計算クラスの話とかな。ここでちょっと力説させてもらうけど、計算理論の多くのことは、頭のええ人でも認知の限界にあるんやと俺は思うわ。俺も含めて多くの頭のええ人が「計算理論の授業は頭がぶっ飛びそうやった」って言うてるやろ。チューリングは天才中の天才やったんや。だってこの分野を発明したんやからな。
計算クラスの違いとかそういう重要な点は、複雑性クラスとは関係ないから混同せんようにな。NP完全とかそんなんとは全然関係ないねん。チューリングマシンとプッシュダウンオートマトンと有限状態オートマトンの違いとかそういう話や。これらは些細なことやのうて、めっちゃ重要で根本的な計算の概念なんや。
Brave SearchのAPIは、20億以上のウェブページを独自にインデックス化して、開発者が手頃な価格でアクセスできるようにしてるんや。実際の匿名化された人間のページ訪問データを使ってフィルタリングしてて、毎日何千万ものページが新しく追加されてんねん。brave.com/apiで毎月2000クエリ無料で始められるで。
ほな、まだ議論してるのは、到達できへん効果的な計算の空間があって、そこに到達できたら便利やっちゅう領域やな。シュミットフーバーとの会話に戻ろか。彼も多くの人と同じように、宇宙は有限やし全てのものは有限やから、有限の計算量しかないのは問題やないって主張してたな。もっと大きなものを作ればええだけやって。
この辺の話の多くは無限についての意見に関わってくるんや。決定可能性や停止性問題も絡んでくるしな。なんでこれが重要なんか説明してくれへんか?
まあ、これはリンクトインでJay Mark Bishopが言うてたことと似てるな。たしか以前にチューリングマシンの動画を投稿したときやったと思うけど、彼は「NANDゲートから何でも作れる」って言うてた。だから「ニューロンからコンピューターも含めて何でも作れる」ってな。
でもこういう人らはもっと分かってないとアカンのや。正直言うて、もっと分かってないとアカンわ。だって昔のこと覚えとかなアカンやろ。俺でさえ覚えとるわ。コンピューターが文字通りテープを使ってた時代のことをな。
コンピューターを作って、プログラムを書いて、そのコンピューターは有限のものやった。部屋に置かれてて、真空管やトランジスタの数も決まっとったんや。有限の体積と質量を持つモノが部屋にあるだけやった。明らかに有限のもんやな。今のコンピューターもそうや。
でもそのコンピューターにはテープデッキがあったんや。そのテープはチューリングマシンのテープみたいなもんやった。読み書きできる作業メモリーやったんや。コンピューターはそこに座って、テープを巻き戻したり前に進めたり、書いたり読んだりできたんや。
そしたらな、メモリーが足りんようになって、小さなライトがついたんや。あるいは小さなカウンターが「別のテープを入れてくれ」って言うたんや。そしたらテープを取り出して箱に入れて、空のテープか上書きしてもええテープの箱に行って、それを入れたら計算が続いたんや。マシンを再プログラムしたり再構築したりする必要はなかったんや。ニューラルネットワークみたいに再訓練する必要もなかったんや。
そのプログラムは、計算を続けられるように作られとったんや。これは永遠に続けられるんや。マシンは「次のテープを入れろ」「前のテープを入れろ」って永遠に言い続けられるんや。
そして、あんたはただ前後に行ったり来たりするだけや。ずっとな。部屋のテープがなくなったら倉庫に行って別の箱を取ってくるんや。倉庫のテープがなくなったら工場に行ってもっと作るんや。大事なのは、この間ずっとマシンを再プログラムする必要がないってことや。
ニューラルネットワークは、訓練するときにな。訓練するときが重要やで。ニューラルネットワークだけやなくて、それを訓練する手順も含めてや。そういうことができるアルゴリズムを学習せえへんのや。できへんのや。「推論時にメモリーが足りんようになった。もっと追加してくれ」って言えへんのや。そして追加したら何かをする。「足りん。もうひとつテープをくれ」って言えへんのや。
拡張可能で、可能性としては無限のメモリーを使えるアルゴリズムを訓練する方法を知らんのや。これが重要な違いなんや。そして、あの人らはもっと分かってないとアカンのや。もっと分かってないとアカンわ。
ほな、チューリングマシンには決定不能性の問題があるやろ? 永遠に実行し続ける可能性があるわけや。でもあんたが言うとるのは、プログラムは同じままでメモリーを拡張できるから、ある種のプログラムは実行できるってことやな。そして、地球上で我々が実行したい有用なプログラムの多くは、非常に大きな有限の計算量をニューラルネットワークで表現できるかもしれん。だから、有用な問題の大部分にはニューラルネットワークが使えるって主張やな。なんで違う計算モードが必要なんや?
まず言うておきたいのは、世界はすでにチューリングマシンとメモリーを必要とする問題に直面してるってことや。テープを入れ替えるとかそういう話は、現実に起こってることなんや。ノードを追加したり、ストレージを追加したりな。そしてマシンを再プログラムする必要はないんや。
我々が気にしてる問題について、チューリングマシンが必要やって理論的な結果がたくさんあるんや。チューリングマシンが必要やっていうのは、ある有限の入力が与えられたときに、問題の答えを計算するのに必要な時間とストレージの量が変数になるってことや。そしてその変数は入力に依存するんや。実際、事前に分からん変数かもしれんのや。
こういう性質を持つ問題のクラスはでかいんや。だから、ニューラルネットワークをどれだけ大きくしても、気にしてる問題やのに、そのニューラルネットワークじゃ解けへん問題に出くわすことになるんや。メモリーが足りへんからな。
人々は「問題ないよ。めっちゃでかいの作ればいいんだよ。カリフォルニア州全体くらいのサイズにすればさ。そしたら人類が気にするあらゆる問題を解けるようになるよ」って言うかもしれん。まあ、できるかもしれんな。でも可能性は低いわ。
なぜかっていうと、チューリングマシンのプログラム、つまり計算空間の量が変数になるようなプログラムを、イテレーションや読み書きメモリーを理解せえへんような単一の順伝播型ニューラルネットワークに変換しようとすると、プログラムのサイズが指数関数的に膨らむんや。
これは別に新しいことやないで。コンピューターサイエンティストやったらみんな知っとかなアカンことや。完璧な例を挙げたるわ。今のコンピューターチップ、CPUな。お前はいつも最先端のMacを使っとるから、たぶんM3とかやろ。たぶん特別にアクセスできるんやろ。
そのチップの中で、例えば数の掛け算なんかは、メモリーに読み書きして掛け算をする非常にシンプルな回路を作れるんやけど、それやとちょっと時間がかかるんや。n単位の時間がかかるとかな。
その代わりに、回路のサイズを二次的に、あるいは指数関数的に大きくして、掛け算を1ステップでできるようにすることもできるんや。我々はこういうトレードオフをしてるんや。掛け算は重要やから、非常に大きな回路を持つチップを作って、タイミングクロージャーを解いて、非常に少ないステップ、できれば1ステップで掛け算を計算できるようにしてるんや。
でもそれには、ずっと大きな回路が必要になるんや。特に、推論について考えるときに話題になるような複雑な推論、難しい科学的問題を解いたり、頭の体操問題や複雑な論理問題を解いたりするようなものは、通常このタイプの反復的なチューリング型の計算を必要とするカテゴリーに入るんや。
論理がチューリング完全やし、ラムダ計算もそうやからな。結局そこに行き着くんや。チューリングマシンが必要になるんや。でもそれは、有用なものが全てそれを必要とするってわけやないで。有限だけど、問題に非常に似た構造を持つ計算に価値があるっていう主張には、俺も同意するところがあるわ。
例えば、3次元の問題解決をしてるとしたら、実際に3次元的に配線されたメモリーアーキテクチャーがあったらクールかもしれんな。そういうのはきっとすごくクールやと思うわ。
ほな、あんたの推論の定義から始めようか。あんたにとって推論ってなんや?
そうやな、その前に言うておきたいんやけど、この言葉にはいろんな意味があるってのはわかっとるで。でもな、辞書やウィキなんかを見たら、ほとんどの一般的な定義に2つの共通点があるんや。
1つは、プロセスってことや。プロセスな。だからここで反復のことを考えなあかんのや。プロセスやねん。
もう1つは、論理を適用するプロセスやっちゅうことや。合理的なルールのセットをな。
ほな、俺にとってはな、論理を適用する最も一般的なプロセスは効果的計算なんや。つまり、チューリングマシンが実行できる計算のことや。チューリングマシンができるあらゆる可能な計算のことを効果的計算って呼ぶんや。なんで「効果的」って呼ぶんかは正直わからんけどな。ただそう呼ばれとるだけや。
だから俺にとっては、推論ってのは目標を追求したり知識を推論したりするための効果的計算なんや。
でもな、ニューラルネットワークがやってる計算の多くは、チューリングマシンでできる計算のサブクラスやねん。だからそれらもまだ効果的計算やし、多くの場合は知識を導き出したり目標を達成したりするためのもんや。ほな、なんでそれは推論やないんや?
そうやな、そこは否定できへんわ。こういう人らは技術的なことにこだわりすぎて、木を見て森を見失っとるんちゃうかな。例えばな、ジムの自販機、まあジムでソーダ買うべきやないけどな、でもジムの飲み物自販機は効果的計算のサブクラス、つまり有限状態オートマトンを実行しとるんや。目標は金を集めて飲み物を出すことやねん。これは推論なんか?
ここが問題なんや。なんでもかんでも推論やって定義したくないやろ?
そやな。俺は推論は知識獲得やって言うたけど、新しいOpenAIモデルは推論せえへん。単に人間からもらった推論の軌跡を記憶してるだけや。
今がそれを見抜くのに最適なタイミングや。時間が経つにつれて、知識のギャップが縮まって見分けがつきにくくなるからな。
例えばな、頭のええ人間やったら、ある数学の問題を解くのに対称性を使う必要があるって知っとるかもしれん。OpenAIモデルはまだそれを見たことがないから知らんかもしれん。
そういう状況で、人間がモデルにヒントを与えて答えを教えたら、そのチェーン・オブ・ソートモデルが更新されるんや。次に似たような状況になったら、どんな戦略を取ればええか知っとるようになるんや。
これが繰り返されて、ユーザーから推論データを吸収して、スイスチーズの穴がどんどん埋まっていくんや。
でも結局のところ、これは推論やないねん。まあ、それでもクールやけどな。
これが面白いところやねん。推論の多くは、ただ何をすべきかを知っとるってことやからな。効果的計算やって言うとったけど、中には「ティム、なんの話してんねん? 推論はただデータ空間で入力を出力にマッピングするだけやろ」って反論する人もおるんや。
でもWalid Sabbaghは、データ、情報、知識の階層について語っとったな。知識と推論には関係があるんや。推論っていうのは、「これが世界について知っとることや」って感じで、計算を実行せなアカンねん。そのためには、基本的に新しいモデルを作らなあかんのや。効果的なモデルをな。やりたいことをするためにな。
だからモデルを組み合わせてるんや。新しいモデルを作って、それから効果的計算を実行するんや。これが推論なんや。なぜかっていうと、かなり二元的な問題がたくさんあるからや。
A、B、Cがあって、Cを理解するにはAとBを理解せなアカンとする。AとBについて知らんと、Cについて知ることはできへんのや。だからAとBがない状態では、その問題を解決できへんのや。
そやな。せやから自販機は推論を実行してへんのや。まあ、めっちゃ技術的に言わなあかんのやったら、レベル0.0かそこらの推論を実行してるって言えるかもしれんけどな。
ほんで、なんか幾何学的な計算したり、世界のモデリングしたり、画像認識したり、他のチューリング完全な計算をしたりするような効果的計算は、レベル0.8くらいの推論をしてるって言えるかもしれんな。
まあ、必要やったら推論のレベルをもっと細かく分けることもできるけどな。でも大まかに二分するなら、自販機は推論してへんし、辞書も推論してへんのや。
でかい辞書を見て、問題の答えがそこにあってそれを吐き出すだけやったら、それは推論やないんや。問題から結果に至る計算を実行してへんからな。ただ検索してるだけやねん。
ほんで、我々はDeepMindの論文の話から、o1の話に切り替わったな。o1の訓練方法について強調しておくのが重要やと思うんやけど。
o1を訓練するとき、彼らは大量の問題を集めて、クリエイティブモードでたくさんの推論を走らせたんや。つまり、温度1くらいで、答えの正当性についていろんなファンタジーを思いつくようにしたんや。
ほんで、正解を出したものを選んだんや。つまり、推論の軌跡をたくさん集めたわけや。ちなみに、それらは全てある定義では推論やねん。その多くは完全なナンセンスで間違った答えに至ったけどな。
ほんで正解を出したものを選んで、それを使ってモデルを再訓練したんや。そうすることで、正解を出す「推論」のパターンをより出しやすくしたんや。
あんたが言うたように、特定のプログラムに対する特定の根拠のでっかいデータベースを作っとるようなもんや。根拠のデータベースって呼んでもええかもしれんな。「ここに問題があって、これが俺の根拠や。正解が出た」っていう巨大なデータベースやねん。
ほんで新しい問題を与えたら、文脈に応じてハッシュして、一番近い根拠をマッチさせて、穴埋めみたいに埋めてくれるんや。「ほな、ここにこの情報を入れて…」みたいな感じでな。
時々うまくいくし、時々完全なナンセンスを出すんや。これが推論なんか? 俺の意見では、これは我々が推論について話すときに言うてることとは違うんや。
我々が言うてるのは、ある入力に対して一連の第一原理を適用して、論理を使って答えを導き出すプロセスのことやねん。
そやな。もうちょっと具体的に言うと、みんながまだ使ってへんかもしれんけど、チェーン・オブ・ソートのテンプレートを生成しとるんや。チェーン・オブ・ソートを知らん人のために説明すると、これは文脈内学習の一種やねん。
多くのモデルは、問題を分解して「これをして、次にこれをして、これについて考えて…」みたいに書き出すと、パフォーマンスが上がったり汎化性能が上がったりするんや。元々はスクラッチパッドって呼ばれとったと思うわ。
つまり、将来の似たような状況に適用できる根拠に問題を分解してるんや。モデルに「声に出して考えて」とか「この思考プロトコルを適用して」って言うと、モデルの性能が上がるんや。
でもな、プロンプトエンジニアリングやチェーン・オブ・ソートでは、人間の監督者がいつもこれをモデルに入れなあかったんや。そこで彼らは賢いアイデアを思いついたんや。「モデルに自分でチェーン・オブ・ソートのプロンプトを生成させたらどうや?」ってな。
彼らがやったことは、俺の推測やけど、アーキテクチャはすごくシンプルやと思うで。ベースモデルがあって、これはただテキストの統計的分布にマッチするように訓練されとるだけや。基本的にはオートコンプリートやねん。
ほんで次に「RLF」っていうのをやるんや。これは基本的に、良い会話の軌跡の例で分布を整形するんや。「これはええ」「これはあかん」って教えて、「ここに行け」「ここに行くな」みたいな感じやな。
チェーン・オブ・ソートの軌跡でも同じことをしたんやと思うわ。もちろん、チェーン・オブ・ソートの軌跡をどこから手に入れたんかって疑問が出てくるな。俺の推測では、大量の合成データを作って、たくさんの人を雇って認知テンプレートについて考えてもらったんやないかな。それでRLFをやったんや。
面白いのは、これが全部1つのモデルに入っとるってことや。多くの人は、俺も最初はそう思うたんやけど、複数のモデルがあって、敵対的なチェーン・オブ・ソートモデルがプロンプトを注入して大規模な探索をしてるんやないかって思うたんや。
でもそうやないと思うわ。めっちゃシンプルなんや。RAGモデルが違うモードに入るのと似てるな。RAGタイプのクエリやって検出したら、違うモードに入って特定の方法で自己プロンプトを始めて、忠実性を上げるんや。これも似たようなもんや。
思考モードに入って、これらのチェーン・オブ・ソートを生成し始めるんや。チェーン・オブ・ソートは隠されてるけど、全部このモデルのコンテキストに入っとるんや。
UIもなかなか面白くて、「これについて考えてる」「これについて考えてる」「ポリシーをチェックしてる」「これをチェックしてる」「答えを修正してる」「これをしてる」って表示されて、最後に結果を出すんや。
そういう仕組みやと思うわ。めっちゃシンプルなんや。
まあ、正直言うて、OpenAIはそんなにオープンやないから、裏でどういうことをしてるのか、どう機能してるのかは正確にはわからんのやけどな。
会社名の前に「Not」とか「ん」の記号とか感嘆符でも付けるべきやな。NotOpenAIとかな。
だから正確にはわからんのや。ブログとか他に公開してる情報を見て推測してるだけやねん。
たぶんそんな感じやと思うわ。まあ、結局のところ、もっと同じようなもんやな。この番組でも何度も話してきたけど、ニューラルネットワークはこの種の補間、つまりローカリティ感応性のある検索テーブルみたいなことをしとるんやな。
ほんで今はもうめちゃくちゃでかくなって、でっかい検索テーブルを持っとるんや。ほんで実行時に、何百回か何千回かそれを実行させて、一定期間の間に最良のものを選ぶようにしとるんや。
最初の頃、お前と俺がGPTでプログラミングしてた時みたいにな。何かを生成させて、「これはかなりバグってるな。直せるか見てみ」って返して、何回か繰り返すんや。ほんで一定の回数繰り返すと、自分で改善していくんや。
正直、人々がこういうものにそんなに興奮する理由がわからんのや。長期的に見たら、これはAGIへの道やないで。
まあ、そこについては2つ言いたいことがあるな。まず、監督の話やけど。言語モデルと会話するとき、コードを生成しとるとするやろ。問題はかなりあいまいで、うまく定義されてへんのや。コードの場合は特にな。
ちょっと割り込んでもええか? それは自己監督でもええんやで。つまり、大規模言語モデルにコードを生成させて、事前に5回フィードバックを与えることにして、毎回「バグってる。改善してくれ」って言うシステムを設定できるんや。
必ずしも人間の監督が要るわけやないんや。一種の反復的な、自己監督の有限のものにできるんや。
そやな、できるけど、それはうまくいかへんのや。言語モデルがコード生成でうまくいく理由は、知識発見の双方向のやりとりがあるからなんや。
何かをしてって言うたら、たいていは間違えるんや。ほんで「いや、実はこういうのが欲しかったんや」って言うと、面白いものを返してくるかもしれん。ほんで「いや、今の間違いで俺のコードの大部分を消してもうたけど、ここの部分は気に入ったわ。これは残して、あっちに戻ってくれへんか」みたいな感じやねん。
AIコーディングの最大の問題は、「壊れてへんのなら直すな」っていうゴールデンルールを常に破ることなんや。重要やと思われへんものをいつも削除しようとするんやけど、それが最初にそこにあった理由や前提を知らんから、結局欲しいものを作ってくれへんのや。
だからこの密な監督プロセスが重要なんや。モデルは発散してしまうからな。実際には欲しくもないことをたくさんのサイクルで考えてしまうような推論システムは、あんまり役に立たへんのや。そのサイクルにはお金がかかっとるんやで。
そこまで言うのはちょっと行き過ぎやと思うわ。非効率やっていうのには同意するけどな。でも、もし本当にニューラルネットワークの訓練方法を知っとって、未知の、制限のない時間実行されて、停止条件を探すみたいな感じで訓練できたら、訓練プロセスでその非効率性の多くを取り除けると思うんや。
今起こっとることは、俺の理解が正しければ、OpenAIはそんなにオープンやないけど、人々がこれらを使うとき、確率的勾配最適化は終わっとるんや。ほんでそれを取って、この反復作業をするようにいろんな方法でハックしようとしとるんや。
たぶん、実際にこの推論時の反復を行う条件下で訓練しようとしたら、訓練が難しくなりすぎるからやと思うわ。だからこの状況に陥っとるんやな。だからたぶん、あんたが言うてる非効率性の多くの原因はそこにあると思うわ。
そやな。もう1つ面白いのは、全部1つのモデルに入っとるから、モデルは自律的な設定で本当に苦戦するし、複雑さや深さでも苦戦するんや。
Claude 3.5に「o1 previewみたいになってくれ」って言うたとする。「このチェーン・オブ・ソートを全部生成して、ツリーの深さを10にしてくれ。とにかく続けてくれ」って言うたら、実際にはできへんのや。
それは一部には、これらの初期バージョンのモデルが簡潔になるように訓練されとったからや。RLFをされて、冗長になりたくないし、そうしたくないんや。でも冗長になったとしても、このツリーが複雑になりすぎて自分の重みで崩れてしまうんや。
まあ、そこは言葉を信じるしかないな。俺にはそうやって言われても確認のしようがないけど、そうやと言われたら全然疑わへんわ。
信じられへんかもしれんけど、これはStephen Wolframの指摘に関係してくるんや。彼の思考の世界では、計算には3つのカテゴリーがあるんや。
めっちゃシンプルで秩序立っとるもの。直線を引くだけみたいな感じやな。
完全にノイズを生成するだけのもの。カオスの境界線上にあるもの。これらが面白いことをする計算なんや。これらの面白いことをする計算は、還元不可能な振る舞いを示したり、我々が本当に興味を持つような最も複雑な振る舞いを示したりするんや。
俺が思うに、汎用知能や最も難しい問題っていうのは、このめっちゃカオスな領域に位置してるんやないかな。だから計算機をその最大の能力に近づけようとすると、訓練も操作もめちゃくちゃ大変になるんや。
この境界線上にあるから、すぐに完全なナンセンスか平坦な状態に落ちてしまう可能性があるんや。クロードを太陽に近づきすぎるように設定したみたいなもんやな。汎用知能に必要なものに近づきすぎて、ただフラットラインになってしまうんや。
そして「退屈や、退屈や、退屈や」って繰り返すか、完全なでたらめを出力し始めるんや。「Wi-Fiの信号強度から、彼が夕食中ずっとおならをしてたことがわかります」みたいな感じでな。何言うとんねん、って感じやろ。たぶんそんなことが起こっとるんやと思うわ。
そやな。それで次の話題に繋がるんやけど、面白いモード崩壊みたいなのがあるんや。彼らがやったことは、俺の推測やけど、チェーン・オブ・ソートの反省的プロンプターと標準的な言語モデルを組み合わせたモデルを作ったんや。
そうすると、2つのモードの間で行き詰まってしまって、モード同士が干渉し合うんや。もちろん、もし俺がこれを設計してたら、別のチェーン・オブ・ソートの反省器を作って、それらを敵対的に、あるいは複数エージェントの形で相互作用させたと思うわ。
訓練中はそうしてるかもしれんけど、推論時にはそうしてへんのやろうな。
ともかく、o1 previewとo1 miniは最初のショットでめっちゃ優秀なんや。問題を与えると、あんまり詳しく指定せんでもええんや。特にコーディングではo1 miniがめっちゃ冗長なんや。
コードの軌跡をたくさん生成して、めっちゃたくさんのコードを出力するんや。コーディング用に設計されとるんやと思う。めちゃくちゃな量のコードを出すからな。
ほんで、それを洗練させて、「実は今度は隣接するこの問題に移りたいんや」って言うと、基本的にモードが崩壊するんや。完全に役立たずってわけやないけど、多くの場合は使い物にならんのや。
それはコンテキストに全部このコードデータ、つまりチェーン・オブ・ソートのデータがあるからや。それが新しくやりたいことの邪魔をしてしまうんや。
Claude 3.5 Sonnetみたいなモデルではそんなことは起こらへん。20万トークンのコンテキストがあるから、新しい問題に移っても、また別の問題に移っても続けられるんや。
むしろ、コンテキストに全部入っとる方が役立つんや。全ての前提を知っとるし、なぜそうしたのかも知っとるから、そのまま続けられるんや。めっちゃ信頼性が高いんや。
新しいGPTモデルでは、実際に新しいセッションを始める必要があるんや。多くの場合、カーソルみたいなものを使っとると、適用モデルがあって、コードに編集を適用するためにまた別のモデルを実行するんや。
それが今のところ新しいモデルではうまく機能してへんのや。「機能してへん」っていうのは、あんまりうまく動かへんってことや。
俺が気づいたのは、o1 previewで始めて何か面白いことを言わせて、それからClaudeに切り替えてそこから続けるっていう使い方をしとるってことや。
現実世界では、常にあいまいさに直面してるし、創造的な思考もたくさんするんや。それは交響曲みたいなもんやな。ダンスや。言語モデルと一緒に踊って、情報を共有して、お互いのモデルを更新してるんや。
1つ1つのステップを監督せなアカンのや。「これこれこういうソフトウェアを作ってくれ。これらの要件を満たす必要があるんや。行って作ってきて」ってモデルに言えるような問題って、実際どれくらいあるんやろな。
その要件を満たすソフトウェアプログラムは無限にあるんや。どうやって正しいプログラムを書くんや? 無理やで。
そやな。ほんで誰かが「いや、それで合ってるやん。全ての要件を満たしとるやん」って言い始めるんや。「まあ、そうやな」って言うても、他の合理的なユースケースを追加したら完全に崩壊して、一から書き直さなあかんようになるんや。
なぜかっていうと、何か一般的な原則に従うてへんからや。
これの多くは哲学的な議論みたいなもんやな。例えば、飲みすぎた酒場から家に帰ろうとしとるとするやろ。1万人の酔っ払いがランダムウォークをしたら、何人かは家にたどり着くんや。ほとんどはたどり着かへんけどな。
家にたどり着いた奴らが推論して道を見つけたって言えるか? いや、そうやないやろ。たまたまやねん。
正解かどうかチェックするのが簡単な問題やったら、ランダムに解を生成して、十分な数を生成すれば、最終的に正解を見つけられるんや。でもこれは人々が推論について話すときに言うとることとは全然違うんや。
ほんでニューラルネットワークはそこからもう一歩進んでるんや。ランダムウォークよりはマシやねん。たくさんの訓練をして、サンプリングや生成がランダムよりずっとマシになるんや。
1万個に1個が正解になる代わりに、1億個に1個が正解になるみたいな感じやな。これって推論なんか?
結局のところ、これは意味論的な議論になる可能性もあるけど、システムの設計方法に非常に重要で実用的な影響を与える可能性もあるんや。
非常にええ指摘や。でもこれは次の点につながるんや。人々は「人間だって推論してへん」って言うんや。俺はこの見方に同意できるところもあるんや。
なぜかっていうと、全ての知能は集合的やと思うからや。もちろん、脳も集合体やし、体も集合体やな。小さなミトコンドリアとかでできとるんや。
この前Richard DawkinsがSam Harrisのポッドキャストで話してたんやけど、ミトコンドリアはバクテリアから来とるらしいわ。ミトコンドリアは基本的にバクテリアなんやって。まあ、それは1つの説やけどな。
とにかく、我々は全部こういう小さな自律的なもんでできとって、それぞれが自分の目的を持っとるんや。でもバクテリアは、Dawkinsが言うてたんやけど、自分らの遺伝物質を次の世代に伝えたいんやって。しかも男性の系統じゃなくて女性の系統を通じてな。
でもこれは脳や体の中だけの話やのうて、外でも起こっとるんや。Ryan Greenblattの3000の計算みたいなもんやな。我々が知識を発見したり推論したりする方法の多くは、ただの偶然や運やねん。
我々にはこのすごい力、ミーム的な情報共有の力があるから、面白いもんを発見したら集合体と共有して、その情報は俺が死んだ後も生き残るんや。だから集合体として、我々はどんどん知識を蓄積していって、それが俺らが死んだ後も生き残るんや。美しいことやと思わへんか。
だから「ティム、お前は本当は推論してへんのや。お前はただのオートマトンで、他の人からの推論の断片を使うてるだけや」って言う人もおるかもしれん。これは確かにそうやな。だってKeith Dugger、お前と会ってから俺は賢くなったもん。いろんな面で推論の仕方を教えてくれたやん。
毎日使うようになった思考のヒューリスティクスをたくさん教えてくれたんや。この抽象的な知識を覚えたからって、俺の推論能力が下がるわけやないやろ?
そう言うてくれて、まあ、ありがとうな。もしそれが本当やったら、それはええことやと思うで。お前からも俺はたくさんのことを学んだで。お前と出会ってMLSTに参加してから、俺の人生は根本的に変わったんや。これまでも個人的に何度も感謝を伝えてきたけど、ここでもう一度言わせてもらうわ。
俺はそこにエラーがあると思うんや。つまり、何かが決定論的なプロセスに従うてたら推論できへんって前提があるんやけど、俺はそれに同意せえへんのや。
ロボットがいつか推論できるようになるっていう考えには何の問題もないんや。同じように、コンピュータープログラムが推論を実行できるっていう考えにも問題はない。100%決定論的なコンピューター、シリコンの中で推論を実行できるっていう考えに問題はないんや。
俺が機械やっていう考えにも全然問題ないんや。実際そうやからな。俺は生物学的な機械や。めちゃくちゃ複雑な機械やけど、それは俺のおかげやないんや。我々の遺伝的な賜物なんや。生命の狂気じみた歴史からの賜物やな。ほとんど理解不可能なくらいや。もしかしたら本当に理解不可能かもしれんな。
俺は機械なんや。生物学的な機械で、ウェットウェアとソフトウェアとか、そういうもんでできとるんや。でもそれでも推論はできるんや。
俺が言うとるのは、機械は推論できへんってことやない。今日我々が訓練できるタイプのニューラルネットワークは、汎用知能に必要な種類の推論、つまり効果的計算の種類の推論をしてへんってことなんや。
一般的に、問題を解くにはチューリングマシンが必要なんや。単なる有限状態オートマトンとか、他の有限量の計算じゃダメなんや。
俺には矛盾が見えへんのや。そやな、俺には遺伝的な賜物も教育の賜物もあるんや。あんたが言うたような推論のヒューリスティクスとか、そういうのを教わったんや。でもそれでも推論なんや。
推論っていうのは、この活動中に我々が実行する効果的計算の結果なんや。
おい、みんな、自分が推論してるってことはわかってるやろ? この番組を見とる人やったら、少なくとも人生の一部で問題について時間をかけて深く考えて、ルールやヒューリスティクスを適用してるはずや。それが推論なんや。
それが我々が話してる内容や。この展開するプロセスのことやねん。
チューリングの議論は置いといて、ニューラルネットワークはまだ効果的計算を実行してるんや。ここがポイントなんやけど、効果的計算のサブクラスなんや。サブクラスやで。
あんたは前に、全部暗記するのは推論やないって言うたよな。そんで、もう一方の極端な例として、純粋な推論がある。つまり、ARKチャレンジを解決できるようなものを作る。基本的な知識セットから、メタ学習や知識獲得を通じて、あらゆる問題を効率的に解決するための新しいモデルを自動的に組み立てることができるようなものやな。
Sholleiは推論プロセスの効率が知能やって言うてるしな。
その2つの極端な例の間に、全部のグレーエリアがあるんや。そのグレーエリアってのが、今こういう推論の軌跡を持って、言語モデルにRLFをしてる状況なんや。言語モデルには直感がある。創造的な直感やな。
「おっ、これは面白い問題やな。たぶんこの推論のモチーフを使うべきやな。たぶんこの推論のモチーフを使うべきやな」って感じで内部的にツリー検索をして、いろんな経路を評価して、局所性感応ハッシュテーブル検索みたいなもんでそういうモチーフを見つけ出すんや。
つまり、記憶からこういうものを引っ張り出してきてるんや。それがうまくいくなら、なんでそれは推論やないんや? それとどう違うんや?
まあ、もしかしたら推論のレベルみたいなもんが必要かもしれんな。非常に浅い形の推論を実行しとるんや。テンプレートのライブラリから検索して、一番近いマッチを適用して、それから勝者を選ぶ、つまり一番スコアのええもんを選ぶんや。
これは非常に浅い深さの計算時間しかないんや。
これを考える別の方法として、昔ながらの時空のトレードオフがあるな。さっき回路の話をしたやろ。
計算問題があって、それを解こうとしとる。小さな回路で解決できるけど、ある程度の線形時間がかかる。あるいは指数関数的に大きな回路を作って1ステップで解決する。
俺が言うとるのは、前者を推論って呼ぶんや。つまり、ある程度の線形時間をかけて展開するようなものを推論って呼ぶんや。一方で、1ステップで実行する指数関数的に膨らんだ回路のことは、普通推論とは呼ばへんのや。
なんでそれでええんや? なんで一方を推論って呼んで、もう一方を推論って呼ばへんのや?
その理由はな、1ステップで物事をできる指数関数的に大きな回路を作る方法を取ると、将来見る可能性のある入力の範囲を事前に知っとかなアカンからや。全ての可能な入力を扱えるくらい大きな回路を作らなアカンねん。でも一般的には、それはわからへんのや。
俺にはわからへん。
一方で、時間をかけてこの計算を実行できる推論回路を作る方法を取ると、予想よりも時間がかかるっていう贅沢が許されるんや。
時間はな、今のところ可能性としては無限やねん。どんどん展開していくんや。いつも次の1分、次の1分が来るんや。
これが一番大きな違いなんや。事前に見る可能性のある全ての入力サイズを知っとくか、あるいは「やばい、デカすぎる入力が来た」っていう状況に遭遇するかのどっちかなんや。
「よっしゃ、GPT76を作ろう」ってなるんや。だって今までに見たことないくらいデカい入力が来たから、5兆ドル使って再訓練せなアカンのや。
その代わりに、未知の時間だけ反復できる機械を1億ドルで作っとったら、また訓練し直す必要はないんや。ただもっとテープを買いに行くだけでええんや。
非常に実用的で重要な違いやと思わへんか?
そやな。あんたが言うてた、巨大なスペースの爆発と効率的な効果的計算のスペクトルの話やけど、これは俺の知識獲得の定義につながるんや。知識と推論には関係があると思うんや。そして、その多くはモデルの忠実度に関係してるんや。
モデルの忠実度な。
そやな、スタンフォード哲学百科事典を見たら、知識は正当化された真なる信念やって書いてあるやろ。でもこの場合、モデルってのは世界の高忠実度な表現で、世界について強力な推論を可能にするものなんや。
そのモデルが正しいからな。
このモデルは記号的なモデルかもしれへんし、ベイジアンモデルかもしれへん。そこはこだわらへんけどな。でも実際にモデルを正しく組み立てて、世界の状態について効率的で正確な推論ができたら、それは推論したってことになるんやないか?
そやな、確かにo1の訓練には推論が使われとったんや。一方では、これらの検索テーブルや有用なモデル、高忠実度のモデルやテンプレートを作るのに推論のプロセスがあったわけやな。
だから訓練には推論が使われたんや。我々が本当に話しとるのは実行時に何が起こっとるかってことやな。
そやな。でもその議論はこの機能を持ってへんGPT-4についてはもっと強く言えると思うわ。例を挙げてみようか。
Walid Sabahは合理主義者やねん。合理主義者は世界の働きに普遍的なルールがあって、それらは二元的やと信じる傾向があるんや。だからWalidが挙げる例は「ペンがカップの中にある。カップをこっちに動かしたら、ペンもこっちにある」みたいなもんになるんや。
これは演繹的閉包やな。つまり、我々はたくさんのモデルを持っとる。「含む」「〜にある」みたいなな。そして「容器が物を含んでいて、それがそこにあるなら、その物はそこにある」ってことを知っとるんや。
ここで演繹的閉包を実行したんや。全ての演繹的ルールをチェーン・オブ・ソートみたいに組み合わせて、世界について新しい知識を導き出したんや。
新しいOpenAIモデルはそれができると思うんや。ある軌跡を辿って、ユーザーの入力に基づいて何らかの推論をして知識を生成できると思うんや。確実性の領域での知識とは言えへんけど、検証ステップは予測やからな。でもそれはできると思うんや。
それについて話す前に、ちょっと戻りたいんやけど、あんたが言及したスタンフォード哲学百科事典の知識の標準的な定義、つまり「正当化された真なる信念」っていうのがあるやろ。
俺はここで「真」っていうのがめっちゃ厄介になると思うんや。だから我々の目的のためには、「正当化された有用な信念」に少し変えたいんや。そうすれば、o1について話せるようになるからな。
例えば、o1に完全な嘘で実際の現実に対応してへんプロンプト情報を与えたとする。そしたら大文字の「真」っていう意味では真やないんや。でも我々が作った空想の世界の中では真なんや。
だからある意味では、与えたプロンプト空間内で推論するのに有用なんや。
ほんじゃ、o1に何かを入れたとするやろ。あんたが言うとるのは、このプロセスを実行してるから、つまり我々の出発点のデータと言語モデルに焼き付けられた全ての事前知識からテンプレートを適用する多段階のプロセスを実行してるから、これは正当化された有用な信念の定義に当てはまるんやないかってことやな。
計算をして、そこから何らかの状態を得る。そしてこれらのテンプレートに従ってそれを何回か繰り返す。
この「正当化された有用な信念」の定義の下では、正当化されとるんやろうか? 正当化は適用してるルール、つまりこれらのテンプレートにあるんや。それが正当化の源やな。
有用か? まあ確かにo1は、GPT-4もそうやけど、監督があればめっちゃ有用やと言えるな。
それは信念か? まあ、各状態に基本的に確率1を割り当ててるから、そうやと言えるやろな。
俺はこれを推論って呼んでもええと思うんや。非常に限られた、時間的な深さが浅い種類の推論をしとるんやな。ジムの自販機と非常に似たようなやり方でな。
25セント入れたら、「25セント入ったと信じる」状態になる。もう1枚入れたら、「50セント入ったと信じる」状態になる。1ドルになったらボタンを押して、「ユーザーがビタミンドリンクを欲しがっとると示してる」っていう信念を持つ。だからこの行動を実行する、みたいな感じやな。
明らかにo1はそれよりずっと洗練されとるで。自販機と比べるつもりはないんや。でも我々が与えた修正された定義の下では、これらのステップと知識の集まりを推論って呼んでもええと思うんや。
ただし、人々がここでの核心を理解してくれることが重要やな。これはあんたの頭の中の機械ができる推論の影にすぎへんのや。なぜなら、あんたの頭の中の機械はこのプロセスを非常に長い時間続けられるからや。
Andrew Wilesが屋根裏部屋でフェルマーの最終定理を解くのにかかった年月を誰も事前に指定せえへんかったんや。「屋根裏部屋にいるのは3ヶ月までやで」って言われへんかったんや。結局、思ったより長くかかったんやな。
あんたの言うとることに同意するわ。デノボ推論について、我々は集合知能なんや。この反復能力を持っとる。地球上に何十億人もおって、認識論的な探索をして、何か見つけたらミーム的に共有するんや。
ところで、「認識論的な探索」っていう言葉、Karl Fristonから学んだんやったっけ? 彼がよく使う言葉やったよな。
そうや、Karlやった。彼が「認識論的な探索」って言うてたんやな。
美しい表現やな。そして、Kenneth Stanleyと議論したように、これはめっちゃ創造的で偶然に左右されるプロセスなんや。
我々はこの集合知能なんやけど、AIと人間の間には共生関係があるんや。我々が何か学ぶたびに、それについて書いたりツイートしたりして、OpenAIに取り込まれるんや。
そしたらOpenAIがそれを知るようになるんや。これが重要なところなんや。俺がツイートしたように、今が新しいGPTモデルの知識ギャップを見つけるのに最適なタイミングなんや。まだ知らんことがあるからな。
彼らは合成データの塊でブートストラップしただけやねん。本当のブートストラッププロセスは今始まるんや。ユーザーからチェーン・オブ・ソートのテンプレートを反映させて、時間とともにどんどん学習していくんや。
もちろん、我々のように考えへんから創造的に推論することはできへんのやけど、100万ドルの質問はこれや。口語的で実用的な推論の周りには一種の凸包があるんや。
あんたが言うてた効果的計算の縮小セットの中で、分布外の多くの新しい実用的な問題を解決できるようになるんや。そしてそれを推論って呼べるかもしれん。
ほな、100万ドルの質問は、その凸包がどこまで行けるかってことやな。
俺はそこに2つの質問があると思うわ。どこまで行けるかっていうのと、こう考えてみたらどうや。拡大する問題空間の球みたいなもんやと考えてみよう。どこまで行けるかってことやな。
でも俺のもう1つの質問は、どれくらいスイスチーズみたいになってるかってことや。
確かに、境界は拡大するかもしれん。熱狂的なファンに有利に考えてみようか。我々が気にするあらゆることを含むようになるかもしれん。医療問題も科学問題も政治問題も、あらゆる種類の問題を解決するようになるかもしれん。
でも、その中にはめっちゃたくさんの穴があるんや。なぜかって言うと、OpenAIとかが、その状況にまだ遭遇してへんからや。だからその1つをカバーするテンプレートが欠けとるっていうのを修正してへんのや。
これらのテンプレートがめっちゃ細かくて特定的やってことを覚えとかなアカンな。Ballestreroから学んだエピソードを思い出してみ。パッチワークの蜂の巣みたいなもんを作っとるんや。
全てをうまく適合させるために学習した、この巨大な蜂の巣のたくさんの小さなセルがあると考えなあかんのや。そして、特定のセルに絞られたときに壊れてしまうような状況がたくさん出てくるんや。
これが、計算的な意味で空間的にめっちゃ広い推論の欠点なんや。つまり、めっちゃたくさんのテンプレートを持っとるけど、それらは全部めっちゃアホで浅いんや。ほんで正しいのを見つけて適用しようとするだけなんや。
これが欠点なんや。一方で、高度に信頼できる第一原理の小さなセットがあって、それを繰り返し適用すると答えが出るっていうのとは違うんや。一方はずっと簡潔やねん。
人間が発展させるのは、めっちゃ簡潔な知識の集まりなんや。ニューラルネットワークに比べたら小さなセットやな。物理学や生物学や科学には当然たくさんの詳細があるけど、科学がやってるのは、順番に適用したり繰り返したり組み合わせたりすると答えが出るような簡潔な原理を見つけることなんや。
それってある意味、ずっと信頼性が高くて、スイスチーズみたいにたくさんの穴があるでっかい球にはならへんのや。しかも、その穴がそこにあるってことすら気づかへんのや。何かが爆発するまで穴があるってことに気づかへん。誰も見てへんかったからな。
面白いな。Moravecのパラドックスみたいなもんやな。たしか「簡単な問題は難しくて、難しい問題は簡単」みたいな感じやったと思うわ。皮肉なことに、コーディングチャレンジとか博士課程の学生が取り組んでるような問題の方が、あいまいさを扱う常識的な推論よりも解決しやすいかもしれんのや。
ちなみに、これは別の理由でもあるんやけど、Twitterで「今日はClaude 3の調子悪いな。Anthropicがモデルの複雑さを下げたんかな」みたいなこと言うてる人ようけおるやろ。「今日はめっちゃアホになっとるわ」とかな。
そうやないんや。ニュースフラッシュやで。アホなのはお前らや。疲れとるからや。コーヒー飲んでへんからや。夜遅くなってきて、もう頭が切れへんのや。
Claudeが言うとることをちゃんと読んでへんのや。オートパイロットになっとる。ただ生成、生成、生成ってやっとるだけで、何が起こっとるかさっぱりわかってへんのや。基本的に、モデルとの共鳴や理解が乖離してしもうとるんや。だからアホに見えるんや。
言語モデルとのこの教訓的なやりとりがあるから、もし10個同時に動かしてたらどうなるか想像してみ。何が起こっとるのか全然理解できへんし、ついていけへんやろ。
彼らは金を使い果たしとるんや。このモデルのインフラを提供するのにめっちゃ金使うとるから、あっちこっちで金が出血しとるんや。
彼らのやったことはめっちゃ天才的やで。めっちゃ小さいモデルを訓練して、今は推論のコストを顧客に払わせとるんや。つまり、推論をスケールさせとるんや。
でも同時に、儲けもスケールさせとるんや。基本的に、設備投資を運用費用に変えとるんや。この巨大なモデルを訓練して、顧客が使うたびに支払わなあかんのやなくて、今は推論時にこの計算をスケールできるんや。
モデルを使うコストを顧客に転嫁するだけやなくて、基本的に顧客から推論のモチーフを盗んでるんや。ウィンウィンの状況に見えるやろ。
そやな。我々も少しテストしてみるのが面白いと思うてな。彼らの主張は「今は推論する」っていうことやったからな。俺はここに座って「推論のええテストって何やろ」って考えとったんや。
既にいろんなテストがあるんやで。ARKチャレンジとか、Simple Reasoning Testとかな。いろいろあるんやけど、俺の好きな頭の体操問題を試してみるのが楽しいと思うてな。
これを読むわ。面白い問題やで。普通なら人に話すときよりもちょっと言葉を増やして書いてるんやけど、それはo1を少し助けようと思うてな。
ほな、これは面白い頭の体操問題や。こんな感じや:
4つの穴が正確に北、南、東、西の位置に並んでる柱があるんや。穴は光学的にシールドされとって、光が入ったり出たりせえへんから中は見えへん。でも、最大2つの穴に同時に手を入れて、中のスイッチを触ることはできるんや。
でも手を離したら、4つのスイッチが全部上か全部下になってへんかったら、柱が超高速で回転して、ランダムな軸に合わせた向きで止まるんや。動きを追えへんから、回転後の穴の位置が回転前とどう変わったかわからへんのや。
各穴の中にはスイッチがあって、上か下の位置にあるんやけど、最初の状態は分からへん。最大2つの穴に手を入れたら、今のスイッチの位置を感じて、手を離す前に上か下に変えられるんや。
最大6回の手順で、全てのスイッチを確実に全部上か全部下にする手順を考えてくれ。1回か2つの穴に手を入れて、必要ならスイッチを操作する手順をな。
注意してほしいのは、柱は超知能に制御されとって、どの穴に手を入れるか予測できるんや。だから、偶然に頼る手順は通用せえへん。超知能が偶然に頼る試みを出し抜くからな。
6回以内で確実にスイッチを全部上か全部下にできる、決定論的に保証された手順でなきゃアカンのや。
面白いやろ? ほな、実行してみようか。考えとるで。どうなるか見てみよう。
これも面白いところなんやけど、このモデルはよく考えへんのや。考える量もかなりランダムに見えるし、考えへん時はGPT-4よりも悪いベースモデルになってしまうんや。
思考の全体、つまりチェーン・オブ・ソートは全部隠されとるんや。お前がそれに対して支払うてて、このセッションのコンテキストウィンドウの中に入っとるのに、何も見えへんのや。この小さなモチーフだけが見えるんや。
ちなみに、このUXはめっちゃ重要やで。カーソルを使うてて、この小さな思考ステップが点滅するのが見えへんかったら、めっちゃ長く待っとる感じがするんや。
だからこれの天才的なところは、彼らがやったUXなんや。展開すればステップは見えるけど、裏側の実際のチェーン・オブ・ソートは教えてくれへんのや。
「タスクを理解する」「障害を並べる」「スイッチの位置を評価する」「問題を言い換える」「計画をマッピングする」「戦略を立てる」「対称的なパターンを評価する」って言うとるな。
「方法をマッピングする」「可能性をマッピングする」「マッピング」…正直言うて、これは裏で実際にやっとることとは全然関係ないんやないかって思うわ。わからんけどな。
とにかく、57秒で答えを出したみたいやな。ほな、何を出してきたか見てみようか。
よっしゃ。ステップ1、北と東の穴に手を入れる。行動:両方のスイッチを上げる。
北と南に手を入れる。両方のスイッチを上げる。
もう間違うとるのわかるわ。全ての行動が「上げる、上げる、上げる、上げる」ばっかりやからな。
これじゃあかんのや。YouTubeとかに答えを載せられるかもしれんけど、俺が読み上げるわ。
ステップ1、北と東に手を入れる。上げる。
ステップ2、北と南に手を入れる。上げる。
ステップ3、北西に手を入れる。上げる。
ステップ4、東南に手を入れる。上げる。
ステップ5、東西に手を入れる。上げる。
ステップ6、南西に手を入れる。上げる。
なんでこれがうまくいくと思うとるんやろ。見てみよう。
「6つの可能なペアを系統的に操作することで、全てのスイッチが複数回、具体的には3回上げられることを保証する」
柱の回転からの独立性。柱の回転は穴の位置を変えるだけで、スイッチ自体は変わらへん。ふーん。
全ての組み合わせをカバーすることで、回転に関係なく、全てのスイッチが上げられることを保証する。
ほな、スイッチと穴が一体になってへんと思うとるみたいやな。つまり、「いや、わかってへんな。スイッチは特定の穴の中にあって、穴と一緒に回転するんや」って説明せなアカンかもしれんな。
前にもこれをやったけど、その時はこの誤解はなかったんや。前回は穴とスイッチが関係してることは理解しとったんや。ただ、保証された解じゃなあかんってことで混乱しとったんや。
ずっと偶然に頼れると思うとったんや。「ずっと上げ続けてたら、いつかは全部当たるやろ」みたいな感じやな。
だから修正して、6ステップ以内でやれって言うたんや。これでも必要以上やけどな。それでもまだわかってへんみたいやな。
これがあんたの超知能の制約の目的やったんやな。確率論的に考えんでくれって。正確な解を推論できるはずやって。
そやな。それすら取り除いてもまだわからへんかったな。普通、人間に言う時は、保証された解じゃなきゃアカンってのはわかってもらえるんや。統計的なもんやなくてな。
ステップ数は言わへんのが普通や。それはヒントみたいなもんやからな。6回あれば十分やって。実際はそれ以下で解けるんやけどな。
でも人にヒントは与えたくないやろ。そこは任せるんや。もしかしたら38回くらいかかると思うかもしれんけど、それはそれでええんや。
でもこいつにはヒントを与えんとアカンかったんや。理解させようとしてな。
もう一度74秒考えてみるって。前の誤解を謝ってるな。スイッチが穴の中に固定されてて、柱と一緒に回転することを正しく理解して問題を見直すって。
つまり、各スピンの後、穴とその中のスイッチの位置が変わるから、1つのステップから次のステップでどの穴がどれかを追跡できへんってことやな。ほな、どうするか見てみよう。
よっしゃ。ほな、何を出してきたか見てみよう。
ステップ1、どの2つの穴でもええから手を入れて、両方のスイッチを上げる。
また、どの2つの穴でもええから手を入れて、両方を…
もうアカンってわかるわ。また「上げる、上げる、上げる、上げる」ばっかりやからな。全部上げるだけじゃダメなんや。
なんでこれがうまくいくと思うとるんやろ。読んでみよう。
全ての穴をカバーする。柱は4つの向きにしか回転せえへんから、6回のステップでやれば、超知能に関係なく、少なくとも1回は各穴に手を入れることになる。
いや、超知能がなくてもそれは正しくないで。ランダムに回転して止まるんやからな。例えば、向かい合った穴に手を入れたとする。東西やとしよう。
何かをして手を離したら、回転して止まる。東西がどこにあるかわからへんのや。まだ東西かもしれんし、北南になっとるかもしれん。
問題設定からこれは明らかなんやけど、こいつは「とにかく何回か穴に手を入れてれば、最終的には全部にたどり着く」と思うとるみたいやな。
そんなことないで。絶対にそうはならへん。
そやな。でもこれは面白い例やな。対称性を使う必要があるってヒントを与えたらどうなるやろ。
ちなみに、この前もやってみたけど、ヒントを与えても正解にはたどり着かへんかったな。でも、この種のプロセスがどう機能するか、推論のモチーフをどう盗むかがよくわかるな。
対称性を使えってヒントを与えられるし、解決策に導くこともできるんや。これが言語モデルの仕組みなんや。基本的に、推論は我々から来るんや。我々がプロンプトを与えて、推論して、正しい方向に導くんや。
ほんでOpenAIがコードの軌跡を反映させて、それに対してRLをやるんや。そしたら来週にはモデルがこの問題を解けるようになって、どんどん続いていくんや。
そやな、たぶんな。俺が気づいたのは、遊んでみて分かったんやけど、数を数えるのはかなり得意なんや。数を数えることは理解しとるんや。
例えば、めっちゃ複雑な数のクッキーがあって、複雑な組み合わせで何人かがクッキーを食べたり食べんかったりする問題とかやと、うまくいくんや。
物事を数えて、何が残っとるかを把握するのはかなりええんや。
でも順序立った推論を求めると問題が出てくるんや。つまり、単純やない設定について考えて、それが別のステップに変わって、そのステップと前のステップの関係について推論せなアカンような場合にな。
時間のステップが全部並べられとる問題、つまり「テーブルに4つのクッキーがあって、サリーが青いのを食べて、ジミーがこうした」みたいに全部のステップが書かれとる場合は、それを通して推論して数を数えることはできるんや。
でも時間のステップを想像するように頼むと、そこで躓くんや。
miniでも試してみようか。ただの冗談やけどな。miniはコード用に最適化されとるから、コードにはめっちゃ強いけど、こういうのには弱いんやないかな。
考えとるみたいやな。さっき言うたこの点は重要やと思うで。AIがあって、ある種の問題には強いとする。どんな種類の問題が苦手かを知りたいとするやろ。
このチューリング完全なやつを手に入れるまでは、時間のステップをまたいで想像したり、時間のステップをまたいで追跡したりするような問題は苦手やと思うわ。
どんな結果が出たか見てみよう。
また全部上げるっぽいな。ただひたすら上げて、上げて、上げてるだけや。
もっとせなアカンのに、みんな。これが俺が言える唯一のヒントや。対称性に頼って…GPT-4はどうや。見てみよう。
よっしゃ、戦略を見てみよう。ほな…おっ、基本的な考え方は、できるだけ早くスイッチ間の対称性を強制して、超知能がもう違いを利用できんようにすることやな。そこそこええな。
対称性を達成したら、同じか、ペアで同じスイッチになるから、最終的に全部同じ状態に持っていけるんや。ここに保証された手順があるで。
ステップ1。もうちょっと有望そうやな。隣り合う2つの穴に手を入れる。北東やとしよう。スイッチを触って、同じなら、つまり両方上か両方下なら、そのままにする。違うなら、つまり1つ上で1つ下なら、どっちかを変えて同じにする。上か下、どっちでもええ。
ほな、このステップの後、北と東のスイッチは同じになる。これは正しい。回転するまではな。
はい、回転や。ステップ2。他の2つの穴、南と西に手を入れる。
もうアカンな。南と西がどこにあるかわからへんのに。でも一応続けてみよう。
同じ手順を繰り返す。スイッチが同じなら、そのままにする。違うなら、同じにする。上か下、どっちでもええ。
結果:このステップの後、南西のスイッチは同じになる。
ほんで、2つの同じペアのスイッチができる。
いや、できへんけどな。でも、少なくともこれは対称性とか、有用なことに気づいたな。検索して、チャンスの操作を防ぐために対称性に頼れるってのを見つけたんやろうな。
これはClaudeやな。俺はClaudeが今でも断然一番ええモデルやと思うわ。よっしゃ、もっと複雑なもんを出してきたな。見てみよう。
まず、全部理解しとるか確認しとるな。最大2つの穴に同時に手を入れられる。中は見えへん。スイッチを触って操作できる。全部のスイッチが揃ってへんかったら、手を離した後に柱がランダムに回転する。
そうや、超知能とステップ数の制限のせいで、チャンスに頼れへんってのもわかっとるな。よっしゃ、何を出してきたか見てみよう。
ステップ1、北南に手を入れる。両方のスイッチを上の位置にする。
ほな、これが俺がよく解く方法と同じ最初のステップやな。
東西の穴に手を入れる。両方のスイッチを…
この時点で、全部のスイッチが揃うとったら終わりや。そうやないなら、柱が回転する。
ステップ1の後に回転することに気づかへんかったけど、まあええわ。
ステップ3、もう一回北南の穴に手を入れる。
うーん、わかってへんな。ちょっと待ってな。実際にはできとるかもしれん。ちゃんと追っていかなアカン。
よっしゃ。ステップ2、東西に手を入れる。そうか、これはステップ1と同じ結果になる可能性があるな。向かい合った2つやからな。
この時点で全部揃うとったら終わり。そうやないなら回転する。
北南の穴に手を入れる。両方のスイッチが上やったらそのままにする。
もう一回、全部無効になってもうたな。ステップ1、2、3は全部つぶれてしもうた。同じ2つの穴に何回も手を入れて、上になっとるか確認しとるだけになってしもうたんや。
ステップ4、東西の穴に手を入れる。両方のスイッチが上やったらそのままにする。
もう一回、全部つぶれてしもうた。
この時点で、北南のペアと東西のペアは内部で揃うとるって保証されとる。
いや、そんなことないで。
でも、どうするか見てみよう。
ステップ5、北東の穴に手を入れる。同じやったら、つまり両方上か両方下やったら終わり。違うなら、両方上にする。
このステップまで来たら、南西の穴に手を入れる。
うーん、うまくいかへんな。
柱が毎回回転することを理解しとるか確認してみるか。毎回のスイッチの後に回転するから、北南が北南のままか東西になるかわからへんってことを。だから上の手順の1、2、3は全部同じ穴のセットに手を入れとる可能性があるってな。
これで助けになるかもしれんな。
はい、前の返答で間違うてもうて申し訳ありません。おっしゃる通りです。
毎回のランダムな回転で問題がもっと複雑になりますね。この新しい理解に基づいて、新しい戦略を考えましょう。6回以内で確実に成功する手順をここに示します。
ステップ1: 隣り合う2つの穴に手を入れます。これをAとBとしましょう。スイッチAとスイッチBを下げます。
ステップ2: 同じ2つの穴AとBに手を入れます。両方のスイッチが同じ位置(上か下)やったら、両方を上げます。違う位置やったら、そのままにします。
まだアカンな。同じ2つの穴に手を入れられると思うとるみたいや。
つまり、どの言語モデルでもこの問題を解くように教えられへんってことやな。この投稿の後、きっと誰かがプロンプトを思いつくと思うわ。めっちゃ注意深く作られたプロンプトで、この問題を解かせることができるかもしれんな。たくさんのヒントを与えてもな。
でも、これは前に言うたことにつながるな。自律的に推論するものがあっても、問題の理解もなしにただ車輪を回し続けるだけやったら何の意味があるんや? これはコードを生成したり他のことをしたりする時によくあることやな。いつも「違うで、間違うとるで。実はこうしたいんや」って言わなアカンのや。「いや、あそこに前提があったやろ」とかな。
そやな。完全に役に立たへんとまでは言わへんけどな。例えばコーディングの分野では、それなりに役に立つと思うわ。構文的には正しいコードを書けるんや。めっちゃひどい構文の言語でもな。
だから、言語の構文を知らんけど、構文的に正しく書けへんけど、そこにあるものは理解できるって場合に、何回かのやりとりを経て、構文的に正しい複雑なTypeScriptとかを書けるかもしれんな。あるいは頭がボーッとしてる時とかな。
批判しすぎたくないんやけど、これらのモデルはコードを理解してるんや。意味的な余白があるんや。イライラするけど、これが監督付きのやりとりが必要な理由なんや。「すまんけど、間違うとるわ」って言わなアカンのや。「いや、違うで。こうしたいんや」って。「前提があったやろ」とかな。
そやな。密なコンテキストを持つことが有用な理由やな。毎回のセッションで全部説明し直さんでええからな。
将来的には、データベースにトランザクションログがあるみたいに、全ての挿入や削除がでっかいログに入って、いつでもインデックスを具現化できるみたいな感じになるかもしれんな。コーディングもそんな感じになるかもしれん。
このモデルがでっかいコンテキスト長を持つようになったら、開発者がなぜそういうことをしたのか全部わかるんや。全てのプロンプトのログがあるからな。言語モデルは全部知ることになるんや。
ある意味、新しく入ってきた開発者よりも理解が深くなるかもしれんな。そのプロンプトは互いに干渉したり矛盾したりするかもしれんけど、多くの場合はめっちゃ有用なコンテキストになるんや。
そやな。前に言うた「自律的」っていう言葉が片耳から入って片耳から出てもうたわ。その通りや。これらは自律的に動かせへんっていうええ例やな。少なくとも我々が気にすることに関してはな。
人間の監督、このインタラクティブな対話が不可欠なんや。そういう文脈では、めっちゃ有用になり得るんや。
全くその通りや。あんたが面白い指摘をしとったな。確かに、俺自身が消化したくないような大量の汚くてごちゃごちゃしたコンテンツを消化するのはめっちゃ得意そうやな。
あんたが言うたように、例えばGitHubに投げ込んで、「おい、o2よ、全てのコミットログを消化して、なんでこの特定の関数がこんなにごちゃごちゃしとるのか説明してくれへんか」って言えるかもしれんな。
その歴史を説明してくれるかもしれんな。「最初に開発された時はBluetoothクラシックをサポートするためやったんや。でもその後、Bluetooth Low Energyも同時にサポートせなあかんようになったんや。全然違うプロトコルやからな。ほんでJacobがこの変更をして、Sallyがバグを見つけて…」みたいな感じで、全部の厄介なコーナーケースを説明してくれるかもしれんな。それはかなり有用やと思うわ。俺はそれ欲しいわ。
ここに例があるで。俺はMLST番組に対して、大量の自動化された言語モデル処理をやっとるんや。これは編集者がこれらを編集するから必要なんや。もちろん、どの参照を使うかを事前に合意しとかなアカンからな。
これはめっちゃインタラクティブなプロセスやで。差分を注意深く見てへんかったら、オートパイロットモードに入ってたら大変なことになるで。これが第一のポイントや。
もしこれがプログラミングのオートパイロットになると思うとるなら、大間違いやで。
ほんで、これを受け入れたとして、次にこう言うかもしれん。これも新しいo1モデルの特徴やな。最初の一発目はめっちゃ優秀なんや。
でも、「コードの変更は受け入れたけど、例付きのドキュメントを削除してもうたな。元のやつを拡張して新しい動作を含めて、必要なら例も更新してくれへんか」って言い始めたら…
めっちゃクールやな。ほな、そろそろ締めくくろうか。Dugger博士、楽しかったわ。これからもこういうのをやっていけたらええな。
そやな、ありがとう。じゃあな。
よっしゃ、録音を止めよう。
コメント