
6,029 文字

私はここ最近、新しく登場したモデルのテストに忙しく取り組んできました。GPT-4.1、o3、o4 Mini、o4 Mini High、そしてOpenAIのCodexなど、一つの動画で紹介するには多すぎるほどたくさんのモデルがあります。そこで今日は一つのことだけに焦点を当てていきます。OpenAIの新しいモデル、Gemini 2.5 Pro、そしてClaude 3.7を使って、Pythonゲームの作成能力と強化学習を用いて自分自身にそのゲームをプレイするよう教える能力をテストしていきます。さっそく始めましょう。
世界最高のAIモデルを互いに対決させて、最高の自律型スネークゲームを作るコンテストを開催しましょう。スネークゲームだけでなく、他のゲームもいくつか試しますが、これが本当のLMアリーナ、全モデルが入り、一つだけが勝ち残る戦いです。さらに面白くするために、比較的シンプルなプロンプトから始めて、急速に難易度を上げていきましょう。
最初のプロンプトは比較的簡単なものですが、決して単純ではありません:「完全に自律的なスネークゲームを作成してください。すべてを1つのPythonファイルに収めてください。互いに戦う2匹のヘビを作り、累積スコアを記録するスコアボードを作成してください。ヘビが生き残るごとに1秒につき1ポイント、フルーツを食べるたびに10ポイント、そして相手のヘビが死亡して自分が生き残ったら50ポイント獲得します。いずれかのヘビが死ぬたびにゲームをリセットしますが、累積スコアは維持してください」
このまったく同じプロンプトをo3モデル、o4 Miniモデル、o4 Mini Highモデル、さらにGemini 2.5 Pro、そして最後にClaude 3.7 Sonnetにも与えていきます。
まずはClaude 3.7 Sonnetから始めましょう。完璧な2匹のヘビ、完璧なラウンド番号表示、左上にはヘビ1のスコア、右上にはヘビ2のスコアが表示されています。強いて言えば、青いテキストが少し見づらいですが、大した問題ではありません。毎秒スコアが1ずつ増えているのがわかります。フルーツを食べるたびに10ポイント、そして勝利するたびに50ポイント加算されているようです。あ、クラッシュしました。ここまでは多くの点で良かったです。グラフィックスも素晴らしく、すべてが非常に良く見えました。型エラーの問題でクラッシュしたようですが、次に進みましょう。
次は100万コンテキストウィンドウの獣、Gemini 2.5 Proです。Google製のこのモデルは現在おそらく最も競争力のあるモデルでしょう。今のところ良い感じです。スコアは機能していて、グリッドシステムではなく、ヘビが垂直に動けないようで少し揺れるような動きをしていますが、悪いと言える点は特にありません。プロンプトを完璧に実行しています。ラウンド終了時に小さなサマリーが表示され、累積スコアも維持されています。素晴らしいです。そのラウンドのスコアと累積スコアの両方を表示してくれています。
次はo4 Mini Highです。とても良いデザインを選び、グリッドスタイルのデザインになっています。スコアも良く、リセットも適切に行われています。ヘビ同士がよく衝突するようですが、これは選んだスクリプトやアルゴリズムが他のヘビと衝突することを考慮していないようです。少しマイナスポイントですが、全体的にはそれほど悪くありません。
o4 Miniは非常にシンプルですが、スコアが非常に見やすく、一方が緑、もう一方が青で表示されています。こちらもヘビ同士が衝突する傾向がありますが、問題ありません。シンプルながらも機能しています。
次はo3です。良いスコア表示がありますが、上に小さな疑問符があり、プレイヤーは単に1と2と名付けられているので、一見して何を表しているのか少し分かりにくいかもしれません。私はプロンプトを書いたので分かりますが、新しいプレイヤーには「上下している数字は何だろう?」と一瞬考える必要があるかもしれません。注目すべきは、ヘビ同士が衝突していないことです。実際、衝突を避けるのが非常に上手です。これがo3(フルサイズモデル)とo4 Miniモデル群の大きな違いです。o3はヘビ同士が衝突すべきでないことを考慮し、コードに組み込んでいます。素晴らしいです。
Claude 3.7はクラッシュしなければ私のお気に入りだったと思います。それが唯一の懸念点でした。o3とGemini 2.5 Proが恐らく最良の結果を出しました。Claude 3.7はヘビが自分自身を食べた時などにクラッシュするようです。
では、同じプロンプトに複雑さを追加するとどうなるでしょうか?まず、「ファイルを-playという引数で実行すると、2匹のヘビが単純なスクリプトで自律的にプレイするようにしてください。もしファイルを-trainという引数で実行すると、PyTorchを使用した強化学習とトレーニングパイプラインを作成し、500エピソードにわたってエージェントをトレーニングし、訓練されたモデルを保存してください。ファイルを1という引数で実行すると、保存されたモデル(AIの脳、ニューラルネットワーク)をヘビ1の脳として使用し、ヘビ2には元の単純なスクリプトを使用してください。また、逆も同様に、ファイルを2という引数で実行すると、保存されたAIモデルをヘビ2に使用し、単純なスクリプトをヘビ1に使用してください。さらに、ゲームを早く終わらせるためにいくつかの障害物を追加してください。毎秒、フィールドに2つの永久的な障害物を追加し、ヘビがそれに触れると死亡するようにしてください」
o4 Miniはこのタスクを最も速く終えましたが、エラーが発生し、スクリプトが実行されませんでした。次にo4 Mini Highを試しましたが、cell sizeが定義されていないというエラーが出ました。本来なら失格ですが、好奇心のために再試行させてみます。o3は何か別の問題が発生しています。Gemini 2.5 Proもクラッシュしました。これらは再試行させてみます。
Claudeは素晴らしい出来栄えです。スコア、累積スコア、すべてが完璧に表示されています。ラウンドのスコアと累積スコアが正しく加算されているようです。障害物が非常に速く出現し、障害物に衝突するとヘビは破壊されます。とても良いです。スクリプトはとてもシンプルで、ヘビは壁にぶつかると反対側から出てくることを期待しているようですが、それは起こっていません。全体的にClaude 3.7は素晴らしい出来です。
トレーニング機能をテストしてみましょう。トレーニングは非常に速く進んでいます。私は特にスネークゲームを選びました。ボンバーマンなど他のゲームも試しましたが、これらは時間がかかりすぎます。既に60/500エピソードまで進んでいます。報酬グラフを見ると、ヘビ1とヘビ2の報酬(獲得ポイント)がシミュレーションを通して向上しているのがわかります。時間とともにゲームのプレイ能力が向上することを期待しています。
500エピソードが実行され、ニューラルネットが保存されました。今度はそのニューラルネットをヘビ1に組み込んで実行してみましょう。実は、ゲームの単純さを考えると、Pythonスクリプトの方がニューラルネットよりも優れている可能性が高いです。ヘビ2の方がはるかに良いパフォーマンスを示すと思います。
おっと、完全に間違っていました!ヘビ1(AIモデル)は圧倒的に勝っており、700ポイント近くに達しています。一方、ヘビ2は130ポイントです。これまでの実験では単純なPythonスクリプトの方が優れていましたが、今回は500エピソードのトレーニングが明らかに効果を発揮しています。ヘビ1は1300ポイント以上に達し、ヘビ2は270〜280ポイントにとどまっています。
ヘビを入れ替えても同じ結果になるか確認してみましょう。今度はスーパーブレインをヘビ2に組み込みます。もし正しく機能していれば、ヘビ2が圧倒的に勝つはずです。ヘビ2は早い段階からリードを取り、100ポイント以上獲得しています。ヘビ1は78ポイントです。ヘビ2はさらにリードを広げて180ポイント、ヘビ1は130ポイントです。これで確認できました。このケースでは、ニューラルネットで訓練されたヘビの方が明らかに優れています。非常に素晴らしいです。
Claude 3.7 Sonnetは一発でこれを完璧に実行し、4つの異なるバージョンを引数付きで作成しました。すべてが最初の試行で完璧に動作し、Claudeが勝利しました!o3を試してみましょう。o3は果物を食べることができない時間旅行するようなヘビを作成しました。この勝負はClaude 3.7に明らかに軍配が上がりました。
次のチャレンジは「2D太陽系シミュレーターを作成してください。すべてを1つのPythonファイルに収めてください。プレイヤーが銀河の外側からプローブを発射し、惑星の重力井戸を利用したスリングショットができるようにしてください。1つは太陽系内に、もう1つは外側に、2つの静止ターゲットを配置してください。プレイヤーの目標は、重力を利用してプローブの方向を変え、両方のターゲットに命中することです」
o4 Miniから始めましょう。ここまでは良さそうですが、これをどう発射すればいいのでしょうか?なるほど、太陽に当たって跳ね返りました。何を狙っているのでしょうか?緑のものを狙っているのかも?それとも赤いものでしょうか?惑星が太陽の周りを回転していないのは私だけでしょうか?
赤い円がターゲットで、当たると緑に変わるようです。問題は、それらに当たるのではなく、通過する必要があるようです。こうやって回り込んで…やった!これは合格です。基本的に銀河系のビリヤードのようなゲームです。まさに私が求めていたものです。惑星が回転していないという点を除けば、プロンプトに入れるべきだったかもしれません。
次はo4 Mini Highです。こちらでは惑星が回転しており、赤い惑星がターゲットのようです。ここでは様々なプローブを発射できますが、速度をうまく設定できません。ゆっくりとした速度で中央に向かって移動し始めます。期待していたものとは少し違います。ここで役立つのは、速度を調整できるスライダーかもしれません。しかし、多くの点で良いところもあります。プローブが軌道に乗り、惑星の重力と相互作用しているようです。太陽の重力とは確かに相互作用しているようです。まずまずの出来でしょう。残念ながら、宇宙へとピンポンのように弾け飛ぶ傾向がありますが、全体的にはB評価でしょう。
o3はクラッシュしました。次はGemini 2.5 Proです。Geminiは巨大なシミュレーターを作成しました。緑のターゲットを両方ヒットするようですが、もう一つの緑のターゲットはどこですか?ああ、ここにありました。「クリックしてカーソルの方向にプローブを発射」とありますが、ここをクリックしても何も起こりません。もう一度試してみても機能しません。
次はClaude 3.7です。Claudeはすべてが動作しています。このように変更でき、スペースキーで発射できます。Rキーでリセットします。これはとても気に入りました。唯一の問題は、重力による影響を受けていないようなことです。グラフィックなど多くの点で気に入っていますが、重力シミュレーターとしては優れていません。しかし興味深いです。o3 Miniが実際に最も良い結果を出したようです。完璧ではありませんが、多くの点で正しく実装されていました。
次は「自律型2Dサッカーゲームを作成してください。3対3で、各プレイヤーには上部に表示されるステータスがあります。また、上手くプレイするとXPを獲得し、十分なXPを獲得するとレベルアップしてステータスが向上します。ボールを奪ったり相手プレイヤーをノックダウンしたりするメカニズムを持たせてください。ボールがネットに当たったときのスコアリングメカニズムを作り、瞬時に時間を遅くして画面を揺らす効果を作ってください。また、ゴールを記録するスコアボードを設け、各ゴール後にプレイヤーとボールをリセットしてください」
o3 Miniから始めます。かなり良さそうで、全員がボールに殺到していますが、レベルとXPを持っていることがわかります。基本的にリードを取ったプレイヤーは急速に制御不能になり、どんどん強くなっていきます。スコアリングシステムはありますか?はい、プレイヤーの一人はレベル16、17になっているので倒すのは難しくなりそうです。今や巨大な混沌としたものになっています。
次はo4 Mini Highです。このモデルはスコアボードを実装しており、画面揺れ効果もキャプチャしています。気に入らない点としては、プレイヤーが密集してしまい、どこにいるのか見えにくいことです。プレイヤーが密集しないようにリクエストすべきでした。また、なぜ青チームが横から始まり、赤チームがゴール前から始まるのでしょうか?赤チームに不公平なアドバンテージを与えているように思えます。
o3はこれを実行できませんでした。ここからGemini 2.5 Proの番です。複数のファイルを作成しましたが、1つのファイルに収めるように言い忘れたので、1つのファイルにまとめるようプロンプトしました。完了すると、これはかなり良さそうです。まず、素晴らしいキックメカニズムがあります。いくつか問題はありますが、もし再度行うとしたら、プレイヤーを分散させる方法やフォーメーションについていくつか追加することになるでしょう。レベリングシステムとXPシステムがあり、強さ、速さ、正確さが表示されています。これらのプレイヤーがレベルアップするにつれて、これらのスキルがどんどん向上しています。Gemini 2.5 Proには絶対にA+を与えます。素晴らしいの一言です。実行し続けて、速度がどんどん上がっていくとどうなるのか非常に興味深いです。超高速で制御不能な状態になる点に達するのか見てみたいものです。
最後にClaudeのゲームバージョンです。クラッシュしました。ボールまでの距離に問題があり、クラッシュを強制されました。クラッシュする前は良さそうでしたが、バグによりクラッシュしています。これらのテストはあくまで一回のテストなので、あまり深刻に捉えないでください。一つ言えることは、Googleは簡単には負けないようです。


コメント