
6,509 文字

今日のビデオでは、二つのモデルを対決させて、どっちがええパフォーマンスを見せるか見てみましょう。一つはSonnet 3.5で、ClaudeやWebsiteで使えるやつです。もう一つは、新しいOpenAI o1モデルです。
どないして対決させるかっちゅうと、物理エンジンを使った車の駐車シミュレーターを書かせてみます。これ、前にSonnet 3.5に何回も挑戦させたんやけど、うまいこといかへんかったんです。だから、今回は面白くなりそうやね。
なんでこれが面白いかっちゅうと、o1は新しいOpenAIの推論モデルなんです。実際には、GPTの中に二つのモデルがあります。一つは01 Previewっちゅうて、大きくて遅いけど高価で性能のええモデル。もう一つは01 Miniで、こっちは速いけど小さくて安い。今んとこ、01 Previewは週に30回、01 Miniは週に50回しか使えへんねん。ちょっと制限があるわけや。
で、「推論モデル」っちゅうのはどういう意味かっちゅうと、OpenAIのブログで例として挙げてるんやけど、こんな感じや。前のモデルのGPT-4は、国際数学オリンピックの問題を13%しか正解できへんかったんやけど、01は83%も正解できるようになったんや。これ、6倍の改善やねん。100倍とかじゃないけど、それでも600%の改善で、かなりすごいし、めっちゃ印象的やね。
どないしてこんなことができるようになったかっちゅうと、特別な訓練を受けてんねん。OpenAIが隠してる方法で、長く考えられるように訓練されてるんや。考えるけど、その過程は見せへん。考えたことをまとめて、検閲して、それからあんたに見せて、問題を解いたり質問に答えたりするわけや。これで6倍もの改善ができたんやけど、まあ、めっちゃすごいことやね。
でも、わいも自分で試してみたかってん。どないしたら自分でこの改善を体験できるか、一番簡単な方法は何やろか。「ほんまにええんか?」っちゅうのを確かめるには、比較するのが一番簡単やろ。だから今日は、わいが知ってる中で一番ええモデルやったSonnet 3.5と比べてみようと思うてん。AnthropicのClaudeとWebinで使えるやつやね。
モデルがどれだけすごくても、どれだけ印象的なことをしても、前にわいを驚かせたこともあるんやけど、一回こんなん頼んでみたんや。教育用の駐車ゲームを作ってくれって。上から見下ろす感じで、物理エンジンがあって、車輪が回転して、加速したり止まったりできて、車輪の軌跡も見えるようにしてくれって。どこを走ったかわかるように可視化して、正しく駐車する方法を学べるゲームやね。これを前に頼んだんやけど、何回やっても失敗してしもてん。
せやけど今日は、01がこの問題に対してどないできるか見てみようと思うてん。これが対決や。第一ラウンド、始めましょか。
ほな、ここにClaudeとのチャットがあります。わいのプロンプトをコピペしたんやけど、フォーマットが崩れてしもてます。HTML、CSS、JavaScriptで、GTAみたいな上から見下ろすスタイルのゲームを作ってくれって頼んでるんです。駐車ゲームで、車に4つの車輪があって、回転するんです。リアルな物理エンジンと摩擦もあって、車輪の軌跡も残るようにしてくれって。
あんまりええプロンプトちゃうかもしれんけど、とりあえず急いで書いたやつや。で、Claudeがどう理解して、どないしようとしたかっちゅうと、こんな感じや。「はい、HTML、CSS、JavaScriptで回転する車輪とリアルな物理エンジン、車輪の軌跡のあるゲームを作ります」って言うてくれたんや。ちゃんと理解してくれたみたいやね。
せやけど、結果はこれや。灰色の四角が出てきただけで、何も起こらへん。エラーもないし、何も起こらへんのや。一発で失敗してしもたわけや。
コードを見てみると、サードパーティのライブラリは使ってへんし、CSSもあるし、JavaScriptもある。キャンバスを使ってて、全部自分で書いてるんやけど、動かへんのや。エラーすらないから、何が悪いんかわかりにくいねん。
次に、Webinでどうなったか見てみよう。同じモデルを使ってるんやけど、ここでも同じプロンプトを使ってる。ただ、ちょっと整形してある。これも一発目で失敗してしもて、エラーが出たんや。エラーを直そうとしたら、こうなってしもた。
わいが頼んだ通りにはなってるんやけど、ちょっと問題があるんや。物理エンジンを使ったゲームを頼んだんやけど、横スクロールゲーム用の物理エンジンを使ってしもてる。上から見下ろすゲームには向いてへんのや。
ここでわかるのは、このプロンプトの問題点やね。物理エンジンを使うっちゅうことは、サードパーティの依存関係が出てくるわけや。物理エンジンっちゅうのは、ちょっとでも間違えると大変なことになるんや。小さなミスでも、物理の動きがおかしくなってしまうんや。それがここで起こってるわけや。
モデルにこういうコードを書かせるっちゅうのは、コードを書くだけやなくて、ライブラリの使い方も理解せなあかんし、わいが頼んだことを理解して、上から見下ろす駐車ゲームを作るのに物理エンジンをどう正しく使うかも理解せなあかんのや。これ、簡単やないで。テキストのモデルに、見たこともないもんをどう推論して、物理エンジンを使って正しくシミュレーションするか考えさせるんやから、難しいに決まってるやん。
Sonnet 3をWebinやClaudeで使って、何回も何回もやってみたけど、全部失敗してしもたんや。嫁はんに駐車の仕方を説明するのに役立つかなと思て作ろうとしたんやけど、駐車するときにどこをどう考えて、車のどの部分がどういう軌跡を描くかを説明したかってん。でも、できへんかってんや。
わい自身が座って一からやるんも時間かかるし、実際それほど簡単やないからね。ゼロから正しく動くもん作るのは難しいんや。だから、SonnetもClaudeもWebinも、このプロンプトではうまくいかへんかったわけや。
じゃあ、OpenAIはどないしたか見てみよう。ここに同じプロンプトがあるやろ。これはCHAT-1 Previewとのチャットや。遅いけど高価で賢いモデルやね。24秒考えて、全ての推論過程は見せへんかったけど、まとめを見せてくれた。
ここで見えるのは、「シミュレーションを作ってます。GTA2スタイルの上から見下ろす車のゲームをHTML、JavaScriptで作ります。キャンバスにデザインして、コントロールもマッピングします。HTMLをセットアップして、ゲームのキャンバスがレンダリングエリアになります。環境をセットアップして、ゲームのキャンバスをまとめています。」って感じやね。
「運転する車のクラスに集中して、速度、加速、ステアリング、位置の更新、レンダリングをやっています。」って言うてる。違う方法で何をするか推論してるのがわかるね。
それから「車の物理的な動きを強化しています。車輪の回転を含めた現実的な車の物理的な動きを作っています。」って。人間がやるみたいな自己対話をしてるみたいやね。「今何してるんやっけ?ああ、そうそう、これやってるんや。」みたいな感じやね。
面白いのは、Claudeもこれをやってるってことや。ここでも推論の一部が出てるけど、見せてへん部分もあるんや。プロンプトから、考える部分があって、それを見せてへんのはわかってる。Claudeもこれをやってるし、これもやってる。
でも、パフォーマンスはどうやったんやろ?こんなコードを生成してくれたんや。普通、GPTはこんな大きなコードは生成せえへんかったんやけど、o1 PreviewとMiniはめっちゃ大きな答えを出力できるんや。前の8倍から16倍くらい大きいんちゃうかな。これは8倍から16倍ほど大きくはないけど、かなり大きな答えやね。
説明もついてて、HTMLのキャンバスがこのサイズで、色はこうで、車のコードはこうやって、コードの全てを説明してくれてる。読んで、ある程度どんなコードを書いたかわかるようになってる。特徴としては現実的な物理エンジンがあって、矢印キーで使えるようになってる。
コードもあるし、どないしようかな。コードをコピーして、CodePenに貼り付けてみよう。保存して、空のやつを作って、もう一回保存したら、こんな感じになったんや。ちょっと完成してへんけど、動いてる。車輪も回転するし、前にも後ろにも行ける。線も描いてる。
ただ、ちょっと問題があって、この線が車の四角形の真ん中から出てるみたいなんや。ちょっとわいが求めてたんとちゃうかも。車の角から線が出るようにした方がええと思うんやけど、このゲームにはそっちの方が大事やと思うわ。
でも、やってくれたんや。一発で、一つのプロンプトで、修正なしで。ただ動いたんや。これはすごいわ。
これで終わりや。Sonnetとo1モデルを比較してみたんやけど、o1は一発でWebinやClaudeで何回も挑戦して達成できへんかったことをやってのけたんや。完璧やないけどな。
それから、もう一つ面白いことが起こったんや。このコードをWebinに渡して、どないなるか見てみたんや。ここやね、同じコードをWebinに渡したら動いたんや。o1が生成した同じ車があるんやけど、Webinが他のもんも追加してくれたんや。
スピードメーターがあって、駐車スポットがあって、スコアがあって、建物もある。建物に入ったら赤くなるし、駐車しようとしたら…おっ、100点取れたで!残り4つの駐車スポットがある。次のに行けるし。
軌跡の周りにもうちょっと工夫してほしかったんやけど、今は4本の軌跡があって、設定もある。加速とか他のもんも変えられる。今はもっと速く走れる。うわぁ、すごい!
ここで何が起こったかっちゅうと、最初のプロンプトはo1が生成したコードだけやった。それから「4本の軌跡を描いて、他はそのままにして。設定コントロールを追加して、最小速度と最大速度、摩擦のコントロールとかを追加して。左右の矢印で車輪を回転させて」とかって言うたんや。ちょっと改良を重ねて、もっとええバージョンができたわけや。
ここで起こってるのは、たぶんo1の方が賢いっぽいけど、その賢いモデルの結果を、能力の低いモデルに渡したんや。そしたら、それを正しく使って、壊さずに改良できたんや。これは面白いし、印象的な使い方やね。賢いモデルを使って始めて、難しい問題を解決して、他のことは安くて速いモデルを使う。面白い未来が来そうやね。
これがもう一つ見せたかったことや。今まで見せたんは全部昨日の晩にやったことやねんけど、今からちょっとライブでテストしてみたいと思うてんねん。GPT-4モデルを使ってな。
ここで新しいチャットを始めて、Previewを使うてみるわ。今まで見せたんが、ちょっと現実味が足りへんような気がしてん。本物の車みたいに動いてへんし、それで思たんやけど、o1はすごいけど、限界がまだあるんやなって。できることは増えたけど、まだ人間レベルまでは行ってへんのやな。これを見せたいと思うてん。
ちょっと遊んでみたら、やっぱり失敗することもあるんや。ただ、もっと複雑なことができるようになって、失敗する確率は下がってる。でも、まだ失敗はするんや。
せやから、もっと難しいゲームを作らせてみよう。3Dゲームを作らせてみようと思うてん。もっと難しくして、どこまでいけるか試してみるんや。限界まで押してみよう。
HTML、JavaScript、CSSで3Dの物理エンジンを使った駐車ゲームを作ってほしいんや。車があって、4つの車輪があって、前輪は曲がるようにして。車輪は丸くて、摩擦もあるし、慣性もあるし、リアルに動くようにしてほしいんや。
このゲームの目的は、人々に駐車の仕方を教えることなんや。いつ、なんで、どう車輪を回転させるか、車輪や車の角がどんな軌跡を描くかを考えて理解できるようにしたいんや。ゲームで学んで、その知識を実際の駐車に活かせるようにしたいんや。
これをお願いしてみよう。面白いのは、たぶん失敗すると思うんやけど、ここでサードパーティのライブラリやゲームエンジンを使うように頼んでるんや。3Dで、リアルで、人々に駐車を教えるっていう目的もあるし。どないなるか見てみよう。
かなり難しい課題やと思うで。考えてるわ。「3DのHTML、JavaScript、CSSで駐車ゲームを作ってます。3D要素をセットアップして、リアルな3D駐車ゲームを作ってます。Three.jsライブラリとCannon.jsを物理エンジンに使います。ゲームの複雑さを考えると、以下のコードは基本的な枠組みを提供するものです。これを元に機能を追加できます。」って言うてるな。
ここまではええんやけど、ちょっと気に入らんのは、コードを複数の部分に分けて書いてるところやな。「一つの大きなHTMLコードブロックとして書いてくれへんか?一度にコピペできるように。」って聞いてみよう。
推論の面では、Three.jsを選んだんはええ選択やと思う。一番人気のあるライブラリやからな。Cannon.jsは知らんけど、3Dの物理エンジンとしては正しそうや。車を作って、ジオメトリがあって、車輪もあるし、失敗する可能性はたくさんあるな。かなり難しい課題やからな。
さて、一つのブロックで書いてくれるよう頼んだら、7秒考えて、小さめのブロックを書いてくれたわ。ちょっと見てみよか。
新しいペンを作って…おっと、ちょっと足りへんところがあるな。全部入れられへんかったんかな。検索してみると…ああ、2回出てくるな。
フィードバックを送ってみよう。「車輪の向きがおかしいみたいや。地面と平行になってて、矢印キーを押しても車が動かへん。なんでこうなってるんか考えて、どう直せばええか教えてくれへん?」
この動画を長くしすぎんようにしたいから、このイテレーションで終わりにしよう。ただ、魔法みたいなもんやないってことを見せたかってん。ある面ではかなりよくなってるけど、まだ人間レベルの開発者にはなってへんのや。
一方で、速いんやで。人間の開発者よりも、こういうことをするのは速いんや。
また考えてるな。「ユーザーが指摘した問題に気づきました。車輪が地面と平行になってて、矢印キーを押しても動かへんのやな。オプションを考えて、コードのセットアップを分析して、正しい車輪のセットアップを確認して、向きの違いを調整しよう。」
しばらく考えてたけど、失敗してしもたな。ほら、魔法やないってことや。もう一回やってみよう。
今回はちょっと短く考えて、新しいコードを書いてくれたわ。指を組んで、うまくいくといいな。
見てのとおり、もっと多くのコードを書いてくれたわ。何行くらいあるんやろ。32,000とか16,000とか64,000トークンって言うてたの覚えてるけど、これはかなり多いな。
直そうとしたところを説明してくれてるし、実行の仕方まで書いてくれてる。面白いな。テストする時にサーバーを立ち上げんでもええように工夫してくれてるみたいや。いつかはブラウザを操作できるようになるんかな。
さて、新しいコードができたで。試してみよう。
おっと、完全に失敗してしもたな。
魔法やないってことやな。前より良くなってて、印象的やけど、まだイテレーションが必要な問題もあるんや。これからも失敗することはあるやろうな。
今日はこれだけ見せたかってん。前より良くなってて、これからどうなっていくか楽しみやな。これが第一ラウンドで、Sonnet 3.5に勝ったんや。
これから数週間、もっと遊んでみて、面白いことがわかったら、また動画を作るつもりや。
こういうのが好きな人は、下のサブスクライブボタンを押してな。じゃあ、また次回!


コメント