見出し画像

AIにおける計画力の寓話:ポーカーから外交まで - ノーム・ブラウン(OpenAI)

20,769 文字

はい、みなさん、こんにちは。今日はOpenAIのノーム・ブラウンをお迎えできて本当に嬉しいです。彼は過去数年間、AIのゲームプレイにおける最大の進歩の多くを担ってきました。
トップクラスの人間プレイヤーに勝てる初のAIシステムを作ったのが彼です。ポーカーの分野でね。これは2019年のScience誌で最高の科学的ブレイクスルーの1つとして認められました。この功績で、AIにおける優れた業績を称えるマービン・ミンスキー賞も受賞しました。MIT Technology Reviewの「35歳未満の革新者35人」にも選ばれたんです。
最近では、自然言語戦略ゲームの外交において人間レベルのパフォーマンスを達成した初のAIシステム、Ciceroも開発しました。今日、あなたが共有してくれる内容を聞けるのを本当に楽しみにしています。
ノーム: ありがとうございます。マイクは大丈夫ですかね?
はい、みなさん、こんにちは。ノームです。まず、少し動機付けのお話をさせていただきます。大学院生として、AIの研究を始めた頃のことについてお話しします。
2012年に大学院に入学しまして、最初からポーカーのAIに取り組んでいました。私が始めた頃には、すでに何年もの間、ポーカーのAIの研究が行われていました。当時は、システムの仕組みが解明されたと感じられていて、あとはモデルをさらにスケールアップするだけだと考えられていました。
ここにグラフがありますが、毎年、大体のパラメータ数を示しています。毎年トレーニングしたモデルのパラメータ数に比例しているんです。毎年、このモデルをトレーニングして、他の研究室も同じようにAIをプレイするモデルをトレーニングしていました。そして毎年、みんなで集まって、年に一度のコンピューターポーカー大会でお互いのモデルを競い合っていたんです。
毎年、基本的に同じアルゴリズムを使っていましたが、スケーリングには多くの課題がありました。より分散化させたり、より長時間、より多くのコンピューティングリソースでトレーニングしたりする必要がありました。そして毎年、モデルは改善され、前年のモデルを打ち負かしていきました。
2014年、私と指導教官は、その年のコンピューターポーカー大会で他のすべてのボットを打ち負かすAIを開発しました。1位を獲得したんです。そこで、実際の人間の専門家と対戦させてみようと決めました。
これが2015年の「頭脳 vs AI」ポーカー大会につながりました。トップクラスのポーカープロ4人に、8万ハンドのポーカー対戦を挑んだんです。プロたちに全力を尽くしてもらうため、賞金として12万ドルを用意しました。
結果、私たちのボット「Claudico」は、かなりの差で負けてしまいました。100ハンドあたり9.1ビッグブラインドの差がついたんです。ポーカーに詳しくない人には、あまり意味がないかもしれませんが、要するにかなりの敗北だったということです。完全に粉砕されたわけではありませんが、相当な差をつけられました。
この大会中、面白いことに気づきました。私たちのボットは、この大会に向けて約1兆ハンドのポーカーをトレーニングしていたんです。何ヶ月もの間、何千ものCPUで昼夜を問わずポーカーをプレイし続けていました。
でも、いざこれらの専門家と対戦するときになると、ほぼ瞬時に行動を決めていたんです。状態に対応するポリシーを参照するのに、約30ミリ秒しかかかっていませんでした。
一方、人間のプレイヤーは、難しい状況に陥ると立ち止まって考えていました。時には5秒、時には5分も考え込むことがありました。難しい状況では、次の一手を決めるのに時間をかけていたんです。
これが私たちのボットに欠けているものなのではないか、と思いました。大会後、この方向性を調べてみることにしました。実際にこの能力を追加すると、どれくらの違いが出るのか見てみようと思ったんです。
そして、これが私の発見です。このデータは、2017年に指導教官と一緒に発表した論文からのものです。
青い線は、検索や計画を全く行わず、それまで何年も行ってきたように、ただより大きなモデルをトレーニングして、実際にプレイするときには瞬時に行動を決めるという方法です。
x軸はバケットの数を示しています。これはニューラルネットワークが本格的に普及する前の話で、当時はC-means クラスタリングを使っていました。基本的には、モデルのパラメータ数に比例しています。正確には、モデルのパラメータ数に定数を掛けたものですが、細かいことは置いておいて、大体モデルのパラメータ数に比例していると考えてください。
y軸はナッシュ均衡からの距離を示しています。この数字が小さいほど、ポーカーが上手いということになります。ポーカーの詳細には深入りしませんが、要するにこの数字が小さいほど、実際のポーカーでより良い成績を収めるということです。
確かに、モデルをスケールアップするにつれて、ポーカーの腕前は向上していきました。ナッシュ均衡からの距離が約800から約400に減少しています。モデルを100倍にスケールアップした結果です。
オレンジの線は、同じモデルに検索機能を追加したものです。ポーカーの最終ラウンドで行動を決める前に、約30秒間考える能力をモデルに追加しました。同じサイズのモデルでも、ナッシュ均衡からの距離が約7分の1に減少しているのが分かります。
これには本当に驚きました。当時、私は大学院でポーカーのAIの研究を3、4年続けていて、その間にモデルを約100倍にスケールアップすることができました。それを本当に誇りに思っていたんです。印象的な成果だと思っていました。
ところが、検索機能を追加するだけで、モデルを10万倍にスケールアップしたのと同等の効果が得られたんです。3年かけて100倍にスケールアップしたのに比べると、驚異的な改善です。
この時点で、それまでの私の博士課程での研究は、検索機能を追加するだけのことに比べれば脚注程度のものになるだろうと気づきました。
この結果に基づいて、私たちはアプローチを完全に変えました。検索機能をどうスケールアップするかに焦点を当てるようになりました。
2017年、再びトップクラスのポーカープロ4人との大会を開催しました。今回は1万2000ハンドのポーカーを、20万ドルの賞金をかけてプレイしました。プレイヤーたちに全力を尽くしてもらうための動機付けです。
結果、ボットは100ハンドあたり15ビッグブラインドの差をつけて勝利しました。2015年の前回の大会では、ボットが100ハンドあたり9ビッグブラインド負けていたのと比べると大きな違いです。そして、各人間プレイヤーが個別にボットに負けたんです。
この結果は、みんなを本当に驚かせました。ポーカー界にとっても、AI界にとっても、私たち自身にとっても大きな驚きでした。まさかこれほどの差をつけて勝てるとは思っていませんでした。
この状況をよく表しているのが、大会の発表後の出来事です。ポーカー界で、当然のことながら、勝敗を予想する賭けの市場が活発になりました。私たちに対するオッズは約4対1でした。大会の最初の3日間、私たちが3日連続で勝利した後でさえ、賭けの市場では勝敗の確率は50対50のままでした。
でも、8日目くらいになると、私たちが勝つことは明らかになってきました。残った賭けの対象は、どの人間プレイヤーが最も小さい差で負けるかということだけになりました。
2019年、この方向性をさらに追求しました。ポーカーにおける検索と計画をどのように行うかについて研究を続けました。2019年には6人プレイのポーカーボットを作りました。それまでのボットは2人プレイだけでしたが、今回は6人プレイのノーリミットテキサスホールデムポーカーです。
5人の人間プレイヤーと1台のボットで、12日間にわたって1万ハンドのポーカーをプレイしました。運の要素を減らすために分散低減技術を使いました。今回もボットが統計的に有意な差をつけて勝利しました。
このボットの面白いところは、トレーニングにかかったコストが150ドル以下だということです。クラウドコンピューティングリソースを使ってトレーニングした場合の費用に換算してもそれくらいです。そして、テスト時には28個のCPUコアで動作します。
トレーニングコストが150ドル以下ということは、適切なアプローチさえ取っていれば、90年代にでもこれを実現できたということです。
はい、これが私のその後のAI研究の大きな動機付けになりました。計画に焦点を当てるということですね。
今から振り返ると、「なぜもっと早くポーカーでの計画に取り組まなかったんだ?明らかにこんなに大きな成果が出るのに」と言うのは簡単です。でも、後知恵では何でも明らかに見えるものです。当時は、これがこれほどうまくいくとは明らかではありませんでした。
ポーカーのAIにおいて、なぜ検索が優先されなかったのか、いくつか理由があると思います。これは一般的な研究アプローチにも通じる教訓があると思います。
まず言っておきたいのは、ポーカーにおける検索の研究は行われていたということです。ただ、私が思うほどの重要性は与えられていなかったんです。最優先事項とは考えられていませんでした。
ちなみに、ここで「検索」と言うとき、私は「計画」と同じ意味で使っています。検索は計画の一種だと考えています。基本的に、モデルが事前に計算されたポリシーよりも長い時間をかけて行動を決定するという考え方です。
では、なぜ以前は高く評価されていなかったのでしょうか。
1つは文化的な要因です。特にゲーム理論の研究者たちは均衡を計算したがりました。均衡にあることを確認したいのです。そのためには、解全体を前もって持っていなければなりません。計画を行うということは、解全体を前もって持っていないということになります。そうすると、均衡からどれだけ離れているかを正確に計算できません。
これは、ポーカーのAIに取り組んでいたコミュニティがゲーム理論から来ているという要因がありました。そのため、ポリシー全体を計算しないものに対する偏見があったんです。
もう1つは、計画を含む実験の難しさです。テスト時に使用するコンピューティングリソースを増やすと、パフォーマンスの測定が非常に難しくなります。特にポーカーのような分散の大きいゲームでは、どちらのボットが優れているかを判断するのに100万ハンドものポーカーをプレイする必要があります。
モデルが1ハンドに30秒もかけていたら、事態は非常に困難になります。
インセンティブの問題もありました。これは特に今日のアカデミックな研究者たちに注目してほしいポイントです。先ほど言及した年間コンピューターポーカー大会のようなものがあって、みんながそこで勝つという短期的な目標に集中していたんです。
この年間コンピューターポーカー大会では、テスト時に使用できるコンピューティングリソースを2個のCPUコアに制限していました。これは主に予算の問題です。もしボットがテスト時にたくさんのリソースを使うなら、何百万ハンドもプレイさせるのは非常にコストがかかります。
そのため、人々は年間コンピューターポーカー大会で勝つという短期的な目標に集中していました。トップの人間プレイヤーを打ち負かすという、より重要なベンチマークで機能する技術を開発することを犠牲にしてね。
最後に、そして多分一番重要なのは、単純に人々が計画を加えることでどれだけ違いが出るかを過小評価していたことです。この方向性の研究をする前に、「計画をポーカーボットに追加したらどれくらいの違いが出るだろう」と聞かれたら、「まあ、モデルを10倍にスケールアップするくらいの効果はあるかもしれないな」と答えたでしょう。それでもかなりの効果です。でも、10万倍になるとは思いもしませんでした。
これは私が見てきた一般的な傾向です。人々は計画がモデルにもたらす違いをかなり過小評価しているんです。
ポーカーについて何か質問はありますか?
質問者: ポーカーのプロセスにおける「検索」について少し説明してもらえますか?
ノーム: はい。あまり詳しく説明したくないんですが、それには理由があります。全てのゲームで検索がどのように行われているかを見ると、それぞれのゲームに非常に特化しているんです。別の領域に移ると、必ずしもそのまま使えるわけではありません。
でも、ここに一般的な傾向があると思います。検索をどのように行うかを解明すると、非常に有用になるんです。もし非常に一般的な検索の方法を開発できれば、それは非常に有用な可能性を秘めています。
あなたの質問に答えると、ポーカーの場合、私たちは反復アルゴリズムを使って均衡計算を行いました。最初はランダムにプレイし、徐々に均衡に収束していくんです。
例えばじゃんけんなら、グー・チョキ・パーを均等に選ぶようになります。そうすれば期待値で負けないことが保証されます。もちろん、ポーカーのような複雑なゲームでは、戦略はもっと複雑になります。
一見、負けないことを保証する防御的な戦略をプレイしているように見えても、実際には相手のミスによって勝つことになります。
以前は、この均衡計算は全てオフラインで事前に行われていました。私たちが開発したのは、このような反復プロセスをより多く行うことで均衡をより良く近似できる技術です。ただし、ゲームの一部分についてのみ行います。
チェスで特定の盤面の状態にあるとき、その盤面の状態から起こりうる可能性だけを探索すればいいのと同じように、ポーカーでも現在の状況から起こりうる状態についてのみ均衡を計算する技術を開発しました。それ以前の状態や、今の時点で到達不可能な状態については考慮しません。
質問者: ポーカーのことは全然知らないんですが...今おっしゃったことは、時間と空間のトレードオフもあるということですよね? 均衡を計算してルックアップテーブルに保存するのは膨大なサイズになりそうですが、ゲームの数ステップ先だけを条件として検索するなら、探索する空間がずっと小さくなりそうです。計算量全体と保存すべき情報量の間にトレードオフがあるように思えるのですが、いかがでしょうか?
ノーム: いい指摘ですね。確かにこれは、ポーカーの研究をしていた頃の要因の1つでした。戦略の表現をできるだけ小さなスペースに圧縮する方法を見つけるのに、かなりの時間を費やしたのを覚えています。
例えば、ゲームの大部分で、確率を気にせずに「レイズするかフォールドするか」という2値の表現だけを使うなど、賢い工夫をしていました。
パフォーマンスのボトルネックになっていたわけではありませんが、確かに要因の1つでした。検索と計画を行うことの利点の1つは、ポーカーの後半ラウンドでは戦略の細かい表現を持つ必要がなくなったことです。
質問者: ポーカーにはさまざまな状況がありますよね。スタックサイズやベットサイズが異なったりします。このモデルはどの程度制約されていたのでしょうか? 例えば、200ビッグブラインドや500ビッグブラインドの状況にどの程度一般化できるのでしょうか?
ノーム: 今説明した2人プレイと6人プレイのボットの場合、常に200ビッグブラインドか100ビッグブラインドの固定スタックでプレイしていました。後に、任意のスタックサイズでプレイできる技術も開発しました。
質問者: テスト時の計算について質問です。モデルが大きくなれば、それに応じてテスト時にも時間がかかると思います。例えば100倍大きなモデルなら、テスト時に100倍の時間がかかるのでしょうか?
ノーム: 私たちが使っていたモデルの場合、そうではありませんでした。これは、ニューラルネットワークを使っていなかったからです。多くの計算がモデルサイズとは独立していました。
質問者: 与えられたテスト時間の予算内で、検索や計画を行う小さなモデルと、推論に全ての時間を使う非常に大きなモデルのどちらが良いのでしょうか?
ノーム: いい質問ですね。ある時点で、より大きなモデルをトレーニングするよりも、テスト時に計画を行う方が価値があるようになると思います。
より大きなモデルをトレーニングするには、事前トレーニングを10倍、100倍とし続ける必要があります。例えば、囲碁の世界チャンピオンと1回だけ対戦するために推論を1回行うなら、事前トレーニングを100倍にするよりも、テスト時の計算を100倍にする方が価値があるかもしれません。
質問者: あなたのモデルはゲーム理論的に最適なものを目指していたのでしょうか?それとも、相手の弱点を突く搾取的な部分も考慮していたのでしょうか?
ノーム: これらのポーカーボットは、ゲーム理論的に最適なものを目指していました。均衡を計算しようとしていたんです。そしてその均衡をプレイすることで、実際に人間の専門家に対して非常に良い成績を収め、彼らに勝つことができました。積極的に相手を搾取しようとしていたわけではありません。
多くの人が、エキスパートプレイヤーをどのように搾取するかという問題に興味を持っていました。後に外交ゲームで、他のプレイヤーをモデル化することで効果的にこれを行う技術を開発しました。後でその話をします。
ポーカーには実際にこの技術を適用しませんでしたが、もし面白い研究の方向性を探しているなら、これらの技術をポーカーに適用することをお勧めします。私の知る限り、誰もやっていません。でも、十分可能だと思います。
それでは、次に囲碁の話に移りましょう。
この検索と計画のアイデアは、ポーカーに限ったものではありません。実際、チェスや囲碁のようなゲームでも広く使われています。囲碁のパフォーマンスを見ると、同じようなパターンが見られると思います。ほとんどの人が、どれほど大きな違いが出るかを過小評価しているんです。
これはAlphaGo Zeroの論文からのグラフです。AlphaGoは2016年にイ・セドルに勝った有名なAIですね。AlphaGo Zeroはさらに強力な後継版で、人間の知識をほとんど使わずにトレーニングされました。
y軸はEloレーティングで、人間やさまざまなモデルのパフォーマンスを測る方法です。x軸にはAlphaGoの異なるバージョンがあります。
AlphaGo Leeがイ・セドルと対戦したバージョンで、超人的パフォーマンスのラインをわずかに超えた約3600 Eloです。AlphaGo Zeroはさらに強力なバージョンで、約5200 Eloのレーティングです。明らかに超人的ですね。
しかし、AlphaGo Zeroは単なる生のニューラルネットワークではありません。ニューラルネットワークとモンテカルロ木探索というアルゴリズムを組み合わせたシステムなんです。
AlphaGo Zeroの生のニューラルネットだけを見ると、パフォーマンスは約3000 Eloで、トップレベルの人間のパフォーマンスを下回ります。
この点を強調したいんです。AlphaGo Zeroの生のニューラルネット、モンテカルロ木探索なしで、テスト時にそのまま実行すると、パフォーマンスはトップレベルの人間を下回るんです。
これは2016年のAlphaGoの話です。今は2024年、8年経っていますが、まだ誰も囲碁で超人的な生のニューラルネットを訓練できていません。
これを人々に言うと、「もっと大きなモデルをトレーニングすれば、いずれは囲碁で超人的になるだろう」と言われます。原理的にはそうですが、AlphaGo Zeroのパフォーマンスに匹敵するには、どれくらい大きなモデルが必要でしょうか?
経験則があります。Eloを約120ポイント上げるには、モデルサイズとトレーニングを2倍にするか、テスト時の計算量を2倍にする必要があります。
この経験則に従うと、生のポリシーネットが3000 Eloなら、5200 Eloに到達するには、モデルサイズとトレーニングを10万倍にスケールアップする必要があります。
ただし、大きな注意点があります。実際にAlphaGo Zeroが5200 Eloかどうかは分かりません。彼らは同じボットの以前のバージョンと対戦して測定しているので、自己対戦を通じてトレーニングされているため、それらのボットに対して有利になるバイアスがあります。
おそらく実際の数字は1000倍から1万倍の間だと思います。でも、いずれにしても、モンテカルロ木探索を使って30秒程度考えてから行動を決めるボットのパフォーマンスに匹敵するには、モデルとトレーニングを膨大にスケールアップする必要があります。
しかも、これはまだトレーニング中の自己対戦でもモンテカルロ木探索を使っていると仮定しての話です。トレーニングプロセスからモンテカルロ木探索を取り除いたら、この数字は天文学的なものになるでしょう。
このパターンに気づいたとき、新しい領域を見るたびに、こんな風に考えるようになりました。2019年頃のトレンドだった、モデルフリーの深層強化学習をどう行うかということではなく、その領域でどのように計画を適用できるかを考えるようになったんです。
ハナビという協力型不完全情報ゲームも、この良い例だと思います。
ポーカーと囲碁でAIが超人的になった後、人々は新しい難題となる領域を探していました。2019年2月、DeepMindがハナビを新しいベンチマークとして提案しました。
彼らは新しい深層強化学習アルゴリズムを発表し、ハナビで58.6%の勝率を達成しました。これはとても良い成績でしたが、まだ超人的ではありませんでした。
それから6ヶ月もしないうちに、私とFairの同僚たちが新しいアルゴリズムを発表しました。2人プレイのハナビで75%の勝率を達成したんです。これは超人的なパフォーマンスです。
驚くほど単純な技術を使ってこれを実現しました。後で説明しますが、キーとなるブレイクスルーは、またしても強化学習では何も新しいことをしなかったということです。ただ検索を行っただけです。
特に、想像できる最も単純な形の検索を行いました。ハナビでは、自分がどの状態にいるかについて不確実性があります。そこで、自分がいる可能性のある状態について確率分布を持っています。そして、ゲーム中に取れる行動が約20種類あります。
私たちがしたのは、可能性のあるそれぞれの状態に対して、取れる各行動について多数のロールアウトを行うことです。例えば、「カード1をプレイする」「カード1を捨てる」「赤を暗示する」などの行動があります。それぞれの行動を取った後、残りのゲームを私たちのポリシーに従ってプレイした場合の期待値を計算します。
1000回ほどロールアウトを行って、各行動の期待値の良い推定値を得ます。そして、最も高い期待値を持つ行動を選びます。
ここに、検索を除いて、さまざまな事前トレーニングされたボットのパフォーマンスを示すグラフがあります。
SmartBotは、手作りのヒューリスティックボットで、約25%、おそらく28%のゲームに勝ちます。
DeepMindの論文で紹介されたアルゴリズムは、深層Q学習を使ったボットで、約45%の勝率でした。
ハナビに関する一連の論文があり、パフォーマンスが徐々に向上していきました。私たちの論文発表時点で最新のものは、約58%のスコアを出していました。
これらの異なるボットに、この検索アルゴリズムを追加した場合のパフォーマンスを示しています。
28%しか勝てなかった手作りのヒューリスティックボットに、想像できる最も単純な検索を追加しただけで、パフォーマンスは約60%まで向上しました。これは、それまでの全ての深層強化学習ボットを上回る成績です。しかも、テスト時には1つのCPUコアを1秒程度使うだけです。
さらに素晴らしいのは、この検索を他の全ての深層強化学習ボットにも追加できることです。最新最高の深層強化学習ボットに追加すると、パフォーマンスはさらに約72%まで向上します。
これは1人のプレイヤーにのみ検索を適用した場合の結果です。両方のプレイヤーに適用すると、それが緑の棒グラフで、パフォーマンスはさらに向上します。
また、このゲームの理論上の上限は100%ではないことに注意してください。絶対に勝てない配り方もあるからです。実際に達成可能な最高のパフォーマンスは、おそらく90%くらいです。
ご覧のように、このドメインでのパフォーマンスは急速に飽和しつつあります。
FairLの同僚と私がこの結果を得たとき、同僚は最初、バグだと思ったそうです。こんな単純なことをしただけで、パフォーマンスが28%から最先端の58%まで跳ね上がるなんて、想像もできなかったからです。
これもまた、私が見てきた傾向の1つです。人々は、自分が取り組んでいる領域で実際に目にするまで、計画の価値を本当に過小評価しているんです。
囲碁やこの件について、何か質問はありますか?
さて、このパターンに気づいたのは私たちだけではありません。2021年に発表された素晴らしい論文があります。現在Anthropicにいるアンディ・ジョーンズが、AlphaZeroのような手法を使ってヘックスというゲームのスケーリング則を調べたものです。
このグラフのx軸は、ヘックスボットのトレーニングに使用された計算量です。ヘックスは囲碁の単純版のようなボードゲームです。y軸は、モンテカルロ木探索アルゴリズムを使用したテスト時の計算量です。
異なるEloパフォーマンスの等高線が見えますね。このゲームで1500 Eloを達成したい場合、テスト時に多くの計算を費やすか、トレーニング時に多くの計算を費やすか、あるいはその組み合わせで実現できます。
基本的に、トレーニングの計算量を10倍にすることと、テスト時の計算量を15倍にすることが等価であることが分かりました。
つまり、このドメインでテスト時の計算量を15倍にすることで、トレーニングの計算量を10倍にするのと同等の効果が得られるということです。
これがなぜ重要かというと、例えば10億ドルかかるシステムをトレーニングしていて、さらにパフォーマンスを向上させたい場合を考えてみましょう。10倍にして100億ドルにするか、あるいは推論コストを1セントから15セントに増やすか、どちらを選びますか?
特定のドメインでは、事前トレーニングコストを10倍にするよりも、推論コストを15倍にする方が好ましいでしょう。
チェスの領域でも研究を行いました。これは最高のパフォーマンスを追求するというよりも、人間のプレイを模倣することに関する興味深い例です。
2020年に発表されたMayaという論文があります。彼らは単に最先端のチェスボットを作るのではなく、非常に人間らしいチェスボットを作ろうとしました。
人間の何億ものチェスゲームでこれらのチェスボットを訓練し、異なるEloレーティングに合わせて異なるモデルを作成しました。当時、これはチェスにおける人間の手を予測する最先端の手法でした。
Mayaの興味深い点の1つは、高いEloのモデルで、目標のEloレーティングを100から300ポイント下回っていたことです。例えば、Eloレーティング2000の人間でトレーニングしても、モデルは約1700 Eloしか達成できませんでした。
低いEloレーティングではこれは問題になりませんでしたが、高いEloレーティングでは課題となりました。
なぜこうなるのかについて、1つの仮説があります。人間の計画プロセスを近似することは、ニューラルネットワークにとって難しいのです。Eloレーティング2000の場合、計画プロセスが非常に洗練されているため、それをニューラルネットワークに凝縮するのは実際にかなり困難です。
この証拠の1つとして、Mayaモデルでエロのギャップがなかったチェスの1つのバージョンがあります。それはブリッツチェス(超高速チェス)です。ここでは人間はほとんど先を計画する時間がなく、基本的に直感で動く必要があります。
私たちは2022年のICMLで発表したフォローアップ論文で、これらの教師あり学習モデルの上に計画を追加しました。
ここに示すのがそのパフォーマンスです。基本的に、大量の人間のゲームで事前トレーニングを行い、その上にモンテカルロ木探索を追加します。モンテカルロ木探索のハイパーパラメータを調整して、人間のポリシーに近づけるよう正則化しています。
この青い点は、人間のデータで模倣学習を行っただけの場合です。x軸は異なるゲーム状態での人間の手の予測精度を示し、y軸はこの青いモデルに対する勝率です。当然、自分自身に対しては50%の勝率です。
人間の手の予測精度は、テストデータセットで約53.2%です。これは高レーティングの人間に対するものです。
モンテカルロ木探索を追加すると、予測精度と勝率が上がります。これは異なるレベルの正則化に対応しています。人間のポリシーに非常に近く正則化した場合がこれで、正則化を減らすにつれて予測精度は上がり、その後かなり下がります。
しかし、パフォーマンスは上がり続けます。これは理にかなっています。人間のポリシーへの正則化を完全に無視すると、ポリシーを大幅に改善する柔軟性が高まりますが、予測精度は下がります。
興味深いのは、予測精度が最初にかなり大幅に上がることです。大まかに言って、このテストセットでの予測精度を1パーセントポイント上げるには、ニューラルネットワークを4倍大きくし、トレーニングデータを4倍にする必要があります。
ここでは、チェスと囲碁の両方で約1.5パーセントポイント、囲碁では約1パーセントポイント上昇しています。面白いことに、時間のハイパーパラメータは両方で同じでした。
これは本当に驚くべきことです。普通、データセットの予測精度を最大化したいなら、巨大なモデルにそのデータを学習させ、出力を見るものです。
しかし、ここではそうではありません。適切なハイパーパラメータでモンテカルロ木探索を追加すると、予測精度が大幅に向上します。これは、ニューラルネットワークだけでは十分に近似できない人間の計画能力を追加しているからだと思います。
何か質問はありますか?
質問者: ゲーム以外の領域で、最適解が明確に定義されていないような空間でも、検索を使って同様の利益が得られるか気になります。
ノーム: はい、後でそのことについて少し触れます。
質問者: 状態が離散的ではなく連続的な領域でも、テスト時と訓練時の計算量に関して同じようなスケーリング則が成り立つと思いますか?
ノーム: 可能性はあります。ドメインと技術によると思いますが、可能性はあります。
さて、人間の手を予測する能力を向上させるためにこの計画のアイデアを使うという考えですが、これはMayaの続きです。
x軸に異なるEloレーティング、つまり人間のレーティングレベルがあります。y軸はそのEloレーティングバケットの人間の手を予測する精度です。
青い線に注目してください。丸はMayaの生のモデルで、四角はMayaモデルに調整されたハイパーパラメータのモンテカルロ木探索を追加したものです。
例えば、Eloレーティング1900の人間でトレーニングされたMayaを使って、Eloレーティング1900の人間の手を予測しようとすると、予測精度は約54%です。ここにモンテカルロ木探索を追加すると、予測精度は2パーセントポイント上がります。
このアイデア、つまり計画をAIに追加することで人間の手をより良く予測するという考えを、私たちは外交のゲームにも適用しました。
Ciceroは、FairLで開発したAIで、自然言語戦略ゲームの外交をプレイします。web-diplomacy.netとのパートナーシップを通じて獲得した5万の人間のゲームでトレーニングされました。
パフォーマンスはかなり強力でした。Ciceroの詳細には深入りしませんが、外交は非常に複雑な自然言語戦略ゲームです。
私たちはCiceroを匿名でオンラインの外交リーグに参加させました。結果を後で説明しますが、まず面白いのは、Ciceroが40ゲームをプレイし、1ゲーム平均292のメッセージを送受信したにもかかわらず、AIエージェントだと気づかれなかったことです。
後で人間プレイヤーたちに「実はずっとボットとプレイしていたんです」と伝えたとき、みんな本当に驚いていました。こんなメッセージをたくさん受け取りました。
幸い、全体的に人々はボットとプレイしていた事実を受け入れてくれました。私たちはかなり心配していたのですが、みんな意外とよく受け止めてくれました。
パフォーマンスに関しては、Ciceroは上位10%のプレイヤーの中に入り、5ゲーム以上プレイした19人中2位でした。人間の平均スコアの2倍以上を記録しました。
また、ゲーム後にあるプレイヤーが、Ciceroのスクリーンネームがボットっぽいと冗談めかして言っていました。ただ、他の何人かのプレイヤーもボット扱いしていたので、Ciceroに特有の反応だったのか、それとも他の研究所も外交のエージェントを参加させていたのかは分かりません。
Ciceroの仕組みについて説明します。入力としてボードの状態と対話の履歴を受け取り、それを対話条件付きアクションモデルに送ります。
このモデルは、対話とボードの状態を入力として受け取り、現在のターンで全てのプレイヤーが何をするかを予測しようとします。
これらの行動は次に計画エンジンに送られます。これがCiceroの新しい点の1つで、今日の多くの言語モデルでは見られないものです。全プレイヤーが何をするか、そして彼らが私たちに何をすると思っているかについての予測を繰り返し洗練していくのです。
ポーカーで行っていたのと似たような方法で、何回かループを回してこれらの予測を洗練します。その結果、最終的に私たちがプレイする行動が決まります。同時に、対話モデルを条件付けるための意図、つまり行動も決まります。
つまり、このターンで私たちがすべき行動と、他のプレイヤーがすると思われる行動を計画して決めた後、それらの計画を対話モデルに入力します。対話モデルはそれらの計画で条件付けられ、それに応じてメッセージを出力します。
これもCiceroのあまり認識されていない特徴の1つですが、典型的な言語モデルのように瞬時に行動するのではありません。実際、実行にはかなりのコストがかかります。数十のGPUを使用し、送信するメッセージを決定するのに少なくとも10秒はかかっていました。
しかし、この計画に費やした時間が、ボットのパフォーマンスに大きな違いをもたらしたのです。
ここに一般的な傾向があります。なぜ多くの領域で計画が有効なのでしょうか?その根本的な理由の1つは、「生成器-検証器ギャップ」と呼べるものです。
つまり、ある問題において、良い解を検証することは、それを生成するよりもずっと簡単だということです。
例えば、ポーカーでは、均衡にあることを検証するのは、均衡を計算するよりもずっと簡単です。チェスでは、非常に良いボードの状態にあることを検証するのは、その良い状態に至る道筋を見つけるよりも簡単です。
数独パズルでも、解答を検証するのは、解答を見つけるよりもずっと簡単です。これは、パズル、数学、プログラミング、証明などの領域でも同じです。例えば、証明を検証するのは、証明を生成するよりもずっと簡単です。
しかし、これが当てはまらない領域もあります。例えば、情報検索の場合です。「ブータンの首都は何か」と聞かれて、10個の選択肢を与えられても、正解を言うのには役立たないでしょう。少なくともほとんどの人には。
画像認識のような分野でも、検証は生成よりも大して簡単ではありません。これらの領域では、計画はあまり大きな違いを生まないと予想されます。
しかし、生成器-検証器ギャップがあり、非常に優れた検証器がある場合、生成プロセスにより多くの計算を費やし、良い解が見つかったら検証することができます。
言語モデルの話に移る前に、ここまでで質問はありますか? 言語モデルの話をしないわけにはいきませんからね。
質問者: これは、目標からの後方検索と初期位置からの前方検索の効果の違いと考えることもできますか? それとも別の話ですか?
ノーム: どういう意味か分からないですね。
質問者: つまり、目標があって、そこから現在の位置まで後ろ向きに探索するか、初期位置から目標に向かって前向きに探索するかということです。
ノーム: 両方を行う形の探索もあります。私が説明しているのは、どちらか一方を前提としているわけではありません。領域によって、どちらを行うかは変わると思います。
それでは、言語モデルの話に移りましょう。もちろん、公開された研究についてしか話せないので、議論は全て公開されたものに限定します。
言語モデルにおいて、テスト時の計算量をスケールアップするとはどういうことでしょうか? 実際にそのような例がありますし、これらの技術がどれほど大きな違いを生むかを人々は過小評価していると思います。
最も単純なのは「コンセンサス」と呼ばれるアルゴリズムです。基本的なアイデアは、1つの解を生成するのではなく、多数の解を生成し、最も一般的なものを選ぶというものです。
「数学」というベンチマークをご存じの方もいるかもしれません。これは文字通り「数学」と呼ばれるベンチマークで、高校から大学レベルの難しい数学問題が多く含まれています。
人々は、このベンチマークで50%のパフォーマンスに達するのに長い時間がかかると考えていました。しかし2022年、GoogleがMinervaというボットに関する論文を発表し、数学ベンチマークで50%以上のスコアを達成しました。
これは言語モデルコミュニティの人々を驚かせました。なぜなら、数学は言語モデルが非常に苦手な難しいタスクの1つだと考えられていたからです。
50%のパフォーマンスを達成するために彼らは多くのことを行いましたが、その1つがコンセンサスの使用でした。多数の解を生成し、最も一般的なものを返すのです。これによって、Minervaのパフォーマンスは33.6%から50.3%に向上しました。1000個のサンプルを生成することで。
しかし、コンセンサスには限界があります。例えば、答えとして1つの数字を返す必要がある場合は簡単にコンセンサスを取れますが、証明を書く必要がある場合などは、同じ証明を複数回生成することはないので、難しくなります。
他にも方法があります。「N個の中で最良」というアプローチです。これは、生成の良さをスコア化する報酬モデルを持ち、最初に生成したものを返すのではなく、N個の解を生成し、報酬モデルが最も良いと判断したものを返す方法です。
十分に良い報酬モデルがあれば、「N個の中で最良」はコンセンサスを上回ります。しかし、多くの場合、報酬モデルの質がボトルネックになります。
実際、報酬モデルがあまり良くない場合、ここに示すような過学習の動きが見られます。x軸は生成する解の数で、y軸はテスト時のパフォーマンス、つまり解のスコアです。
最初は、より多くの解を生成し、報酬モデルに従って最良のものを選ぶにつれてスコアは上がりますが、やがて過学習し、下がっていきます。非常に良い報酬モデルがない場合、これはコンセンサスよりも悪くなる可能性があります。
地上真理がある領域では非常に有用です。チェスは良い例で、勝つか負けるかが明確です。数独も同様で、解けたかどうかが明確です。
これらの方法以上のことができるでしょうか? 実は、OpenAIが最近発表した論文があります。約1年前にオンラインに掲載され、数週間前にICMLで正式に発表されました。「Let's Verify Step by Step(一歩ずつ検証しよう)」というタイトルです。
彼らは「プロセス報酬モデル」というアイデアを導入しました。最終的な解だけでなく、各ステップを個別に検証するというものです。
各ステップを見て、正しいか間違っているかを判断します。間違っていれば、その解全体を間違いとしてマークします。
これはどのように比較されるでしょうか? このグラフでは、x軸が生成された解の数で、2000まで示されています。y軸は数学ベンチマークでの成功率です。
灰色の線はコンセンサス(多数決とも呼ばれます)で、最初は上がりますが、やがて平坦になります。しかし、かなり大きな改善が見られます。約60%から70%近くまで上がっています。
「N個の中で最良」を使うとさらに大きな改善が見られ、72.4%まで上がります。
そして、非常に良い報酬モデルで各ステップを検証するこのプロセス報酬モデルを使うと、さらに大きな改善が見られ、78.2%まで上がります。この線はまだ上昇し続けそうに見えます。もっとサンプルを生成すれば、さらに上がる可能性があります。
これの例をいくつか紹介します。これは特に興味深い例です。tan(100°) + 4*sin(100°)を簡略化せよという数学の問題です。
生のGPT-4モデルに与えると、1000回に1回しか正解できません。しかし、各ステップを検証するプロセスを経ることで、1000個のサンプルを生成し、報酬モデルが正しいと判断したものだけを選ぶことで、この問題での成功率が大幅に上がります。
ここで一歩下がって、今日のAIの大きな図を見てみましょう。
冒頭で話したように、私が大学院でポーカーのAI研究を始めた頃、人々は超人的パフォーマンスを達成する方法を見つけたと感じていました。あるアルゴリズムがあって、それが機能し、あとはスケールアップするだけの問題だと。
毎年、モデルは大きくなり、より多くのデータでより長時間トレーニングされ、常に前年のモデルを打ち負かしていました。
これは、今日のAIの状況にとてもよく似ています。機能する技術があり、より多くのデータで、より長時間、より大きなモデルでトレーニングすれば、どんどん良くなっていきます。
これだけで十分だと言う人もいます。しかし、1つ指摘したいのは、これらのモデルの推論コストがまだ非常に低いということです。
今すぐChatGPTを使って質問をすれば、ほぼ瞬時に、非常に低コストで応答が得られます。しかし、必ずしもそうである必要はないのです。
私たちが見てきた多くのゲームではそうではありませんでした。言語モデルでもそうである必要はないかもしれません。
次の目標、そして私が取り組んでいるのは、汎用性です。推論の計算量をスケールアップする本当に一般的な方法を開発できるでしょうか。
これは非常に難しい問題です。これまで、推論の計算量をスケールアップする多くの検索技術を開発してきましたが、それらは常に特定の領域に非常に特化したものでした。
私や他の研究者が取り組んでいるのは、非常に一般的な方法を開発することです。これには、テスト時にはるかに多くの計算を費やすことが含まれますが、それによってモデルの能力が大幅に向上します。
多くの領域では、このトレードオフを受け入れる価値があると思います。確かに、コーディングタスクのコパイロットとしてChatGPTを使う場合、応答を5分も待ちたくないでしょう。
しかし、何時間、何日、場合によっては何週間でも答えを待つ価値がある質問もたくさんあります。例えば、リーマン予想の証明や、新しい命を救う薬、次のハリー・ポッター小説のためなら、そのくらいのコストをかける価値があるでしょう。
そして非常に重要なのは、これによって将来の方向性が見えてくることです。これらのモデルをさらにスケールアップしていく中で、AIの将来の姿を垣間見ることができるのです。
さて、アカデミアの研究者へのアドバイスです。特に多くの大学院生が、この新しいAIの時代にどのように研究を行うべきか悩んでいることを知っています。
1つ提案したいのは、計画はアカデミックな研究にとって比較的良い領域だということです。「比較的」と言いましたが、それでも産業界で研究を行う方がずっと簡単で良いと思います。
現実には、産業界の方がアカデミアよりもはるかに多くのリソースがあり、それによって研究がずっと簡単になります。
しかし、事前トレーニングのような領域と比べると、計画はアカデミアでも取り組みやすい領域だと思います。
その理由は、大企業のインセンティブを考えるとわかります。何十億人ものユーザーにサービスを提供している企業があれば、非常に良いモデルを事前にトレーニングするために多くの計算資源を使うことはいとわないでしょう。
しかし、その後の推論コストは極めて低くしたいと考えます。なぜなら、おそらく何兆回もの問い合わせを処理するからです。
つまり、インセンティブは実際には計画に有利ではありません。むしろ、非常に巨大な事前トレーニング済みモデルを作成し、推論コストをできる限り低くすることに有利なのです。特に...はい?
質問者: アカデミアにいる場合、モデルを何兆人ものユーザーに提供することは気にしません。ただ概念実証を生成し、論文を発表して、アイデアを証明するのに十分なサンプルを生成したいだけです。
ノーム: その通りです。この領域では、産業界に対するアカデミアの不利さがそれほど大きくないのです。
また、先ほど「N個の中で最良」の手法について、ボトルネックは本当に報酬モデルの質にあると言いましたね。外部の検証器がある領域で作業することを検討してもいいかもしれません。そうすれば、報酬モデルの質によってボトルネックが生じるのを避けられます。
最後に、「The Bitter Lesson(苦い教訓)」からの引用で締めくくりたいと思います。まだ読んでいない方は、ぜひ読んでみてください。非常に短くて素晴らしい論考です。
その終わりの方で、こう言っています。「70年に及ぶAI研究から読み取れる最大の教訓は、計算力を活用する一般的な方法が最終的に最も効果的だということだ。この方法で任意にスケールできそうなのは、探索と学習の2つである。」
学習のスケーリングに関しては、私たちは素晴らしい仕事をしてきたと思います。この苦い教訓は内面化されたと思います。しかし、探索の次元ではまだやるべきことがあると思います。
以上で終わります。残りの時間で質問を受け付けます。ありがとうございました。(拍手)
質問者: 特定の瞬間に対して遊んでいるのではない一般的なアプリケーションで、悪い行動を元に戻すことの重要性についてどう思いますか? 後になって、悪い行動をしてしまったことが判明した場合、それを元に戻して別のことをすることはできますか?
ノーム: 将来の技術について推測することは避けたいと思います。どのようなものになるかについても。以前に発表された研究と非常に広範な議論に限定したいので、この質問に答えるのは難しいかもしれません。
質問者: 議論したアルゴリズムは、状態の複雑さに応じて時間が変化する任意時間アルゴリズムでしたか? それとも、常に固定時間でしたか?
ノーム: 好きなだけ計算を使え、使えば使うほどパフォーマンスが向上するアルゴリズムでした。
質問者: 一度決めた固定時間で...
ノーム: ポーカーでやったときは、実際に可変の時間を使いました。特定の反復回数や解の質を目指していたので、思考時間は可変でした。ただ、それを最適化することにはあまり時間をかけませんでした。
質問者: あなたが説明した研究では、探索とモデルを非常にきれいに区別し、探索の中でモデルをある種の代替として使用していますね。しかし、トランスフォーマーを見ると、モデル内でもある程度の探索が行われているという研究がたくさんあります。そうすることで、モデリングと探索を分離するよりも実際にはより良い結果が得られる可能性があるのではないでしょうか?
ノーム: それは十分にあり得ますね。探索について話すとき、私が本当に言いたいのは推論の計算量をスケールアップすることです。探索はその一例ですが、より大きな問題は推論の計算量をどうスケールアップするかということです。
それは何か外部のプロセスかもしれませんし、アーキテクチャ自体の中で動的に計算を使用する方法かもしれません。追求すべき方向性はたくさんあります。
確かに、単にモンテカルロ木探索や現在存在するアルゴリズムだけでなく、もっと広く考える価値はあると思います。
質問者: ポーカーの背景から来ているのですが、これらのモデルの主な用途の1つは、人間が何らかの形で実装することです。これらのモデルの実装可能性について調べたことはありますか? 例えば、ポーカーの分野では、マシン均衡は非常に複雑になる可能性がありますが、多くの場合それは単なるノイズです。前提条件を入れると、これをするかあれをするかの非常に小さな確率が出てきます。これらのモデルを扱う中で、人間向けの何か教訓はありましたか?
ノーム: ポーカーに関しては、ボットが行うような種類の計算を人間が行うのは非常に難しいと思います。一般的な教訓はありましたが、それはボットが計画にアプローチする方法についてというよりは、ボットの一般的な戦略についてでした。
例えば、ボットが好んで行っていたことの1つは、非常に慎重に選んだ状況で、巨額の賭けをすることでした。典型的には、ポットに100ドルある状況で、人間なら50ドルから100ドルの間で賭けるところを、ボットは時々2万ドルも賭けたりしました。
当時の人間にとって、これは非常に異例のことでした。実際、これが賭けの市場が私たちに不利だった理由の1つです。ボットがこのような行動をするのを見て、「このボットはジョークだ、良いはずがない」と思ったのです。
しかし、結果的にはある特定の状況で非常に効果的だったのです。これは人間がボットから学び、自分たちのゲームに取り入れ始めたことの1つです。
質問者: 新しい探索・計画アルゴリズムを開発するとしたら、このアルゴリズムをよりスケーラブルにする良い特性は何でしょうか?
ノーム: スケーラブルにする良い特性ですか。与えられた計算量に応じてどのように性能が向上するかをプロットできると思います。理想的には、より多くの計算を与えるほど性能が向上し続けるのが見たいところですね。
(司会者): もう一度、講演者に拍手をお願いします。
(拍手)
ノーム: ありがとうございました。

この記事が気に入ったらサポートをしてみませんか?