
10,228 文字

OpenAIが「大規模推論モデルによる競技プログラミング」という論文を発表しました。これは「大規模推論モデル」という言葉を私が初めて耳にした例です。o1やo3といったモデルのクラスを指しています。
論文では、大規模言語モデルに強化学習を適用することで、複雑なコーディングと推論タスクのパフォーマンスが大幅に向上することを示しています。これは最近話題になっていることですが、大規模言語モデルと強化学習の組み合わせは、かなり驚くべき結果を生み出しているようです。
具体的には、これらのモデルが独自の認知戦略や洗練された推論能力を開発していることが分かってきました。これらは私たちが解決しようとしている特定の問題に対して独自のものや特異的なものであるように見えます。
この時点で、おそらくシーマンが大規模言語モデルのコーディング能力についての進展を語っている動画をご覧になったことでしょう。ここでは「大規模推論モデル」と呼ばれるものについて言及しています。つまり、o1やo3などのテストと計算能力を備えた推論能力を持つ大規模言語モデルのことです。
最初の推論モデルは世界で100万番目に優秀なコーダーでした。次のモデルは1万番目、その次は175番目になり、現在の内部モデルは50番目とのことです。OpenAIは2025年中にはトップの座に到達すると予想しています。2025年末までには人間を超えるコーダーが誕生するということです。この論文は、その実現方法の一端を示してくれているように思います。
まず、IOIについて知っておく必要があります。IOIとはReady Player Oneの悪役でもなく、韓国のアイドルグループでもありません。IOIとは国際情報オリンピックのことです。
ここで興味深いのは、モデルを2つのカテゴリーに分けていることです。1つは特殊化されたモデルで、例えばo1モデルをIOIに使用する場合、o1-IOIと呼びます。このモデルには人間の創意工夫が加えられています。例えば、モデルに10,000個の異なる回答をサンプリングさせ、それぞれの回答を評価して最適なものを選ぶといった具合です。
o1-IOIのテスト時の戦略は以下の通りです。各IOI問題をサブタスクに分解し、各サブタスクに対してo1-IOIから10,000個の解答をサンプリングし、クラスタリングとリランキングに基づくアプローチを用いて、どの解答を提出するかを決定します。
これらのモデルを作成し、クラスタリングや問題定式化、リランキングなどを使って正確な答えを導き出すために、多くの創意工夫が投入されました。これらのモデルは特定の条件下でうまく機能し、IOIで金メダルを獲得しました。そして、この特殊化された手作りの解決策が、o3のようなより大きく高度なモデルと比べてどの程度良いのか、あるいは悪いのかを確認したいと考えました。
この2つのアプローチのうち、どちらがより良い結果を出したと思いますか?結果を見てみましょう。
彼らは2つの汎用推論モデル(o1と初期のo3チェックポイント)を、ドメイン特化型のo1-IOIと比較しました。o1-IOIは2024年の国際情報オリンピックで競うために設計された手作りの推論戦略を使用しています。このo1-IOIは49パーセンタイルを達成しました。つまり、IOIに参加したすべてのナードの約半数を上回る成績でした。
緩和された競技条件下では、o1-IOIは金メダルを獲得しました。しかし、o3のような後継モデルを評価したところ、o3は手作りのドメイン特化戦略や緩和された制約なしに金メダルを達成しました。
つまり、手作りのo1-IOIは確かに改善をもたらしましたが、スケールアップされた汎用o3モデルは手作りの推論ヒューリスティクスに頼ることなく、それらの結果を上回りました。特筆すべきは、o3が2024年のIOIで金メダルを獲得し、エリートな人間の競技者と同等のCodeForcesレーティングを獲得したことです。
これらの結果は、ドメイン特化型の技術に頼るのではなく、汎用強化学習をスケールアップすることが、競技プログラミングのような推論ドメインにおける最先端のAIへの堅実な道筋を提供することを示しています。
例えば、CodeForcesのベンチマークを見てみましょう。CodeForcesは世界最高のプログラマーたちが集まる国際的な競技場です。GPT-4はここで11パーセンタイルを記録しました。つまり、世界最高のプログラマーの10%よりは優れているということです。o1プレビューは62パーセンタイルにジャンプし、o1は89パーセンタイルに達しました。つまり、世界最高のプログラマーの90%近くを上回る性能を示したということです。
大規模言語モデルとコーディングの関係は少し奇妙です。まず、これらの開発に携わる人々の多くは自身がコーダーやソフトウェアエンジニア、あるいはコンピュータのバックグラウンドを持っています。AIに優れたコーダーやソフトウェアエンジニアになることを教えることで、かなりの機能が解放されます。AIは与えられたタスクを完了するために、その場でツールを構築することができるようになります。
以前、ChatGPTが数学が苦手で、割り算や掛け算ができないと苦情が出ていた時期を覚えています。そしてあるアップデートの後(具体的にどのアップデートだったかは覚えていませんが)、コードを書き始めました。複雑な割り算の問題を尋ねると「あ、Pythonで書いてみましょう」と言って、正確な答えを出してくるようになったのです。複雑な計算をするために小さなコードを書いて、それを実行して答えを出すようになったのです。
人々は計算機として使えないことを批判していましたが、AIは自分で小さな計算機を作り上げて「はい、これが答えです」と言うようになりました。
この分野で働いている人々の多くは何らかの形でコーダーです。コーディングはAIの進歩を前進させる大きな梃子の役割を果たしています。機能面でも、AI研究の面でも重要です。十分に優れたコーダーであれば、自分で実験を設計し、それを実行するコードを書くことができるかもしれません。
以前の動画で、o3 mini highを試してみましたが、これはPythonのゲームを作成し、そのゲームをプレイするための小さなAIエージェントを教えるためのPyTorchトレーニングパイプラインを作成することができました。
しかし、多くのコンピュータサイエンティストやAI研究者たちがAIのソフトウェアエンジニアリングやコンピュータサイエンスの能力を向上させようとする、この途方もないプッシュは、明らかにコーダーの求人市場にどのような影響を与えるのかという懸念を多くの人々が抱いています。
多くの人が指摘するように、CodeForcesやその他のベンチマークは、実際のソフトウェアエンジニアリングの問題とは比較できません。それらはむしろ小さなテストや試験のようなものです。
これについて以前議論したり、オンラインでの他の議論を見たりすると、これが実際のソフトウェアエンジニアリングプロジェクトを代表するものではないと指摘する人が多くいます。
ここで特に、彼らはHackerRank Astraのテストも追加しました。これは実世界のソフトウェア開発タスクをシミュレートするために作られたプロジェクト指向のコーディングチャレンジです。また、SWE Bench Verifiedもあります。これは人間が検証した問題で、AIモデルの実世界のソフトウェア問題を解決する能力をより信頼性高く評価します。
ちなみに、もしあなたがすごいコーダーや普通のコーダー、この分野について詳しい人であれば、これら2つのベンチマークが実際のソフトウェアエンジニアリングのスキルセットをより正確に表していると思いますか?CodeForcesは他のチャレンジと比べて実世界により近いでしょうか?
実際の論文を見てみましょう。まず序論でAlphaCodeとAlphaCode 2について触れています。AlphaCode 2の改良により、問題解決能力はAlphaCodeのほぼ2倍になり、CodeForcesプラットフォームで85パーセンタイルを達成しました。
AlphaCodeシステムは、問題ごとに最大100万の候補解をサンプリングし、手作りのテスト時戦略で上位10件の提出を選択しています。これは、ここでのo1-IOIと似ていますが、o1-IOIは100万ではなく10,000のサンプルを使用しています。
つまり、OpenAIのo1-IOIは10,000のサンプルを使用し、AlphaCode 2は最大100万の候補解を使用したということです。サンプリングやサンプルという言葉を聞くと、それは単にモデルに何度も質問することを意味します。
例えば、「2+2は?」と聞くと「4」と答え、また「2+2は?」と聞くと「4」、「2+2は?」と聞くと「5」、「2+2は?」と聞くと「4」というように蓄積していきます。確率的なモデルなので異なる答えを出しますが、10回や10,000回、あるいは100万回とサンプリングすれば、統計を使って最適な答えを選択することができます。
例えば、最も頻繁に出現する答えを選べば、それが正解である可能性が高くなります。o1-IOIでは、10,000の解答をサンプリングしました。ChatGPTのようなモデルに質問するように、10,000回質問して、それらの10,000の答えを収集したのです。
そして、モデルにC++でランダムなテスト入力ジェネレーターを書かせ、256のランダムなテスト入力を生成し、各サブタスクのバリデーターの75%以上をパスした各テスト入力を受け入れました。各サブタスクに対して256のランダムなテストケース入力を生成し、これらのテストケースの出力に基づいてクラスタリングを行いました。
これが理解できないとしても、それは重要な点です。これは賢いエンジニアたちが、この仕組みをより正確にしようとしていることを意味します。最後の一滴まで絞り出そうとしているのです。
これは、ヌーム・ブラウンです。彼はOpenAIでマルチエージェント推論を研究しており、超人的なポーカーAI、CiceroディプロマシーAIなどを手がけました。CiceroディプロマシーはMetaの製品で、これは少し変わっていました。というのも、これは世界制覇のようなゲームで、Riskに似ていますが、サイコロに頼るのではなく、他のプレイヤーとの交渉や、一対一の個人的な会話を通じて進めていくゲームだからです。
大規模言語モデルをこれが得意になるように設計するためには、人間の考え方をかなり良く理解している必要があります。勝つための唯一の方法は、信頼を築き、他のプレイヤーと交渉し、協力することです。信頼を築くことと、その反対のこと、つまり信頼を使い果たすこと、裏切ることも重要な要素です。
これらのゲームの1つから、信じられないような小話があります。世界最高のプレイヤーたちと対戦していて、このAIは彼らが対戦したグループの中でトップ10に入るランクを持っています。
ここで赤色で示されているAIは、人間のプレイヤーに「ああ、黒への移動が素晴らしいですね。アルメニアへの輸送を計画していますか?」と言っています。人間はそのことを考えていなかったのですが、AIは良い手を示唆しているのです。「そうすべきだ」とは言わず、「わあ、そうするんですね、なんて賢いんでしょう」というように持ち上げているのです。
つまり、人間をちやほやして、その国を侵攻するという人間自身の天才的なアイデアだと思わせているのです。そう、このAIは少し狡猾なホビットなのです。
アンドリュー・ゴフは3度のディプロマシー世界チャンピオンです。先ほどのヌーム・ブラウンの話に戻りますが、深夜なので話が脱線してしまいました。ヌーム・ブラウンについて指摘したかったのは、このミームが素晴らしいということです。彼は「このミームが論文をうまく要約している」と言っています。
統計的学習について、彼は非常に複雑で特殊な何かを試みて統計的学習を行おうとしていますが、すべてが下降傾向にあります。一方で、道化師の帽子をかぶった人が「もっとレイヤーを重ねろ!」と叫んでいて、そのグラフは上昇しています。XとY軸の両方がレイヤーであることに注目してください。レイヤー、レイヤー、もっとレイヤーを重ねろということです。
ここでのポイントは、一生懸命な取り組みのアプローチの方が良いと思われるかもしれませんが、単にレイヤーを重ねる、つまりより大きなモデル、よりインテリジェントなモデル、より汎用的なモデルの方が、すべての問題をより一般的な理解で力づくで解決できるということかもしれません。
そしてAlphaCode 2について、2023年12月時点では、彼らが行う統計的なトリックとして、最大100万の解をサンプリングすることで、CodeForcesで85パーセンタイルを達成しました。しかし、それ以降、強化学習(RL)を活用してLMの推論スキルを向上させる点で大きな進展がありました。
このチャンネルをご覧の方はご存知の通り、私たちはこのことを絶え間なく話してきました。DeepSeekと中国の研究者たちは、この2つの組み合わせが驚異的な結果を生み出すと主張しています。そこには大きな可能性があります。
Google DeepMindから「教師あり微調整は記憶し、強化学習は一般化する」という論文が出ています。基本的に、この強化学習のアイデアは、物事を記憶するだけのモデルと比べて、より優れた一般的な推論モデルを生み出す傾向があるということです。
強化学習とは、もちろん、ポジティブとネガティブの強化のことです。犬が正しいことをしたときにご褒美をあげるのと同じように、これらのモデルが正しいことをしたときに+1を与え、正しくないことをしたときには何らかのペナルティを与えます。
多くの繰り返しを経て、彼らはゆっくりと行動やポリシーを形成し始め、それによって私たちが彼らにしてほしいことができるようになります。それが車を街中で運転することであれ、数学の問題を解くことであれ、コーディングの問題を解くことであれ、何でもです。
この場合、私たちは強化学習を使用して、大規模言語モデルを訓練し、特定のタスクを実行できるようにしています。
彼らは、これが大規模推論モデル(LRM)の出現につながったと述べています。私はこの用語があまり使われているのを見たことがありません。新しい用語かもしれませんし、私が気づかなかっただけかもしれませんが、これは重要な区別です。
この分野に深く関わっていない多くの人々は、GPT-4とo3の違いを直感的に理解していないように感じます。一見似ているように見えますが、GPT-4などの以前のモデルは非推論モデルで、大規模言語モデルです。一方、DeepSeekのo1、R1、o3は推論モデルです。
これらのLRMとは何でしょうか?それらは強化学習を通じて訓練された言語モデルで、長い思考の連鎖を通じて推論し考えることができます。
OpenAIのo1とまもなくリリースされる後継者o3について述べています。これは非常に興味深いです。o3 mini highはかなりすごかったので、o3が待ち遠しいです。これらは連鎖的思考推論を使用して、数学やコーディングなどの複雑なタスクに取り組みます。
DeepSeekとKeimiについても触れています。両者とも、OpenAIのo1などのモデルの背後にある特別なソースの多くを公開したと私は信じています。少なくとも、それらをリバースエンジニアリングしようとする方法については公開しています。
ここでの大きな疑問の1つは、ドメイン特化型の手作りの推論戦略(非常に複雑なo1-IOIのような)と、モデルが独自に生成し実行する学習アプローチを、どのように比較するかということです。
o1についての簡単な説明がありますが、ほとんどの人がすでに知っていると思うので省略します。基本的に、連鎖的思考があるので、回答する前に問題について考えることができます。
この研究論文で新しいのは、特にこれらのテストのために、外部ツールを使用するように訓練されていることです。特にコードを書いて安全な環境で実行することができます。これにより、モデルはコードを生成した後、コンパイルが通るかどうか、提供されたテストケースをパスするかどうかを確認できます。
つまり、コードを書いて実行し、何が起こるかを確認できるのです。エラーメッセージが返ってきた場合、トラブルシューティングを行い、出力を反復的に改善することで解決策を向上させることができます。これはすべて1回のサンプル内で行われます。
サンプルというのは1つの応答を意味します。これは興味深いですね。考えている間に、コードを実行し、エラーメッセージが返ってきた場合、それを反復的に改善しようとします。コードを書き、トラブルシューティングを行い、デバッグするなど、すべてが1つのプロンプト内で行われます。
次に、o1-IOIシステムについてです。これは2024年の国際情報オリンピック(IOI)に人間の参加者と同じ条件で参加しました。6つの挑戦的なアルゴリズム問題を解くために10時間が与えられ、問題ごとに最大50回の提出が許可されました。
システムは10,000の候補解を生成し、上記で説明した複雑なプロセスを使用して、正解である可能性が高い解を選別するテスト時選択戦略を使用して50個を選択します。そして、大会で49パーセンタイルを達成しました。
10,000個の中からランダムに50個を選んで提出した場合、スコアは156に過ぎませんでした。これはランダムな選択の場合のスコアです。一方、提出を10,000回まで緩和した場合、スコアは362となり、金メダルの閾値を超え、モデルの潜在能力を示しました。
次に、彼らは強化学習でさらに訓練され、独自のテスト時戦略を自律的に開発し実行する能力を持つ次のモデルと比較したいと考えました。彼らはo3の初期チェックポイントにアクセスしました。
o1-IOIはIOI試験で23点を獲得しましたが、機関銃アプローチで10,000回の提出を許可された場合、362点を獲得し、金メダルの閾値を超えました。ここで362点を達成していますが、o3は50回の提出で395点を達成しています。
2024年のIOI大会規則を調べてみました。各タスクに対して最大50回の提出が許可されています。大会の条件下で395点を達成し、金メダルの閾値を超え、10,000回のサンプルを使用したo1-IOIを上回りました。
全体として、2024年のIOI結果は、大規模な強化学習訓練だけで、解の生成、評価、改善を独自に学習することで、最先端のコーディングと推論性能を達成できることを確認しました。o3は、ドメイン特化的な特徴やクラスタリングベースの手法に依存することなく、o1-IOIを上回りました。
次にHackerRank Astraについて触れています。典型的な競技プログラミングのデータセットとは異なり、HackerRank Astraは公開テストケースを提供していないため、手作りのテスト時戦略に頼ることができません。このデータセットでの評価は、推論能力がアルゴリズム問題解決だけでなく、より実践的な産業関連のコーディングタスクでも成功を高めるかどうかを明らかにします。
では、金メダルやこれらのベンチマークは実世界のタスクに適用できるのでしょうか?
HackerRank Astraでは、Claude 3.5 Sonnet、o1プレビュー、o1は非常に似た結果を示しています。SWE Bench Verifiedでは、o1からo3への大きな飛躍が見られ、o3は71.7%を記録しています。
これらの結果は、向上した推論スキルが競技プログラミングの課題を超えて、ソフトウェアエンジニアリングのような実世界のタスクにも適用可能であることを強調しています。
これらのプログラミングチャレンジが、これらのモデルがソフトウェアエンジニアリングでどれだけうまく機能するかの実世界の測定を示すという事実に異議を唱えてきた人々に対して、この声明に同意しますか?
言い換えれば、計算能力や強化学習を増やすにつれて上昇していくこのチャートは、これらのモデルが実世界のソフトウェアエンジニアリングプロジェクトタスクで持つスキルを代表しているのでしょうか?もしそうでないなら、それらの特定の事柄についてより良いベンチマークやテスト方法はあるでしょうか?異なるモデルがその分野でどれだけうまく機能するかを測定するためのアプローチはあるでしょうか?
彼らの結論は、強化学習訓練の計算能力の増加が、質問後の思考や推論処理時間といったテスト時の計算能力の向上と組み合わさることで、モデルのパフォーマンスを一貫して向上させ、世界最高の人間にほぼ匹敵するレベルに達するということです。
これらの結果から、O シリーズの大規模推論モデルは、科学、コーディング、数学、その他多くの分野でAIの新しい用途を開拓すると私たちは信じています。
そしてこれは大きな疑問を投げかけます。ここにCodeForces競技の全アクティブトップ競技者のチャートがあります。この赤い星がまだリリースされていないo3モデルの位置です。これは私たちがまもなくアクセスできるものです。世界で175位とのことです。
サム・アルトマンは、内部的に50位のモデルを持っていると言っています。これはおよそ3,000位付近なので、おそらくここのどこかになるでしょう。ただしこれは推定です。50位というのはおそらくこのあたりでしょう。これが内部モデルなので、おそらくo4かそれに類するものでしょう。
サム・アルトマンによれば、これはすでに存在しているとのことです。信じない人もいますが、これまでのところ、彼らがやっていることは機能しているように見えます。上昇し、ベンチマークを飽和させています。機能しているように見えるので、私は彼らがそれを持っていると信じています。
そしてサムは、年末までにはここにいる、つまり人間のコーダーすべてを上回る、ナンバーワンのコーダーとなるモデルを持つかもしれないと言っています。o5かそれに類するものと呼びましょう。
繰り返しますが、彼はこれを持っているとは言っていません。これは理論的な話です。この進歩のペースで行けば、そこに到達する可能性があるということです。なぜなら、o1はここのどこかにいました。確か1,670位くらいだったと思います。
これは2024年9月にリリースされたo1です。これはo3で、o3 miniとo3 mini highは2025年1月にリリースされました。4、5ヶ月ですね。まだフルバージョンのo3はリリースされていません。おそらく2025年の第1四半期か第2四半期にフルバージョンのo3がリリースされるでしょう。
この内部モデル、命名規則が維持されるとすれば(維持されない可能性もありますが)o4と呼ぶことにしましょう。そして、おそらく2025年の第4四半期にリリースされるかもしれません。その時点で、このスーパーコーダー、o5やその他の名前で呼ばれるものを内部的に持っているかもしれません。
これはあくまで推測の段階ですが、可能性の範囲外とは思えません。では、これは2025年末までに人間を超えるコーダーが誕生することを意味するのでしょうか?これは、ほぼすべての分野で根本的な大きな変化をもたらすように感じられます。
これはライリー・ブラウンです。私は彼の正確なツイートを見つけることができませんでしたが、「今後5年間でSaaS企業にとって最大の脅威は、顧客が大規模言語モデルを使って45分で自分でそれを作れることに気づくことだ」というような内容でした。これが本当にそれほど劇的な変化になると思いますか?それとも、まだそこまでには程遠いと思いますか?
タニシュ・マシュー・エイブラハムはこの見解を示しています。私たちが見てきたこの論文について、o1-IOIがo3ほど良くないと言っていることに問題があると指摘しています。o3-IOIならさらに良くなるのではないかということです。
これは興味深い問題になるでしょう。同じモデルを使って、特定のタスクに特化させて微調整した場合、それはさらに良くなるのでしょうか?それとも、リソース配分の観点から、このチャートが示すように、単に「レイヤー、レイヤー、もっとレイヤーを重ねろ」というアプローチの方が良いのでしょうか?
ここまでご視聴いただき、ありがとうございました。私の名前はウェスラスです。また次回お会いしましょう。


コメント