Metaのコード世界モデル

Meta・マイクザッカーバーグ
この記事は約10分で読めます。

Metaの研究者たちがFairから新たにCode World Model(CWM)という32億パラメータのモデルを発表した。これは単なるコード生成ではなく、コードの実行過程を理解し、変数やメモリの変化を追跡することで「世界モデル」の概念をコーディングに応用したものである。従来のモデルがシンタックス(構文)の記憶に依存していたのに対し、CWMはセマンティクス(意味論)の理解を目指し、コードの因果関係や実行結果を予測できる能力を持つ。観察行動軌跡による学習とエージェント的相互作用を通じて、SWE benchや数学推論において優秀な成果を示している。

Meta's Code World Model
In this video I look at some new research out of Meta which is a code world model and is basically an LLM trained in a d...

Metaから新たなモデルがリリース

よっしゃ、Metaから新しいリリースが出てきたで。これはLLaMA 5ちゃうし、超人工知能ラボからの何かでもないねん。Fairの研究者たちからのもんで、基本的に32億パラメータのモデルをリリースしてくれたんや。商用利用はあかんけど、論文も一緒に出してくれてて、これがなかなか面白いねん。

せやから、これが実際何なんかを見ていこうと思うで。リリースされたのは「Code World Model」っちゅうもんや。全体のアイデアは世界モデルを使ったコード生成についてなんや。

このチャンネルを聞いてる人やったら、どっかの時点でAIを使ってコード書いたことあるやろう。まだやったことないんやったら、絶対試してみるべきや。そのコードをちゃんとチェックすることを忘れんかったら、すごいことができるで。

で、多分いくつかのモデルで、めっちゃええ結果が出ることもあるけど、他の時は深く見てみたら実際には微妙なバグがあったり、意味が分からんもんがあったりするんを見つけたことあるやろう。

従来のモデルの限界

よくあることやけど、これはモデルが基本的にコードのシンタックスを複製するように訓練されてるからなんや。実際に何をしてるかは本当には理解してないねん。十分なデータと十分な例があったら、それでもめっちゃええ結果は出せるんや。モデルは自分がやってることをほんまにうまく真似できるけど、実際に何をしてるかは理解してないねん。

そこでこの論文の出番や。基本的に、モデルが実際に理解を持つようにしようとしてるんや。理解って言うときは、引用符を付けて言うてるけど、コードの各行の間の因果関係のようなもんの理解や。そして実際にそのコードが実行されたときに何をするかの理解や。

これがCWM、つまり世界モデルを使ったコード生成の研究のためのオープンウェイトLLMや。ここでの全体的なアイデアは、研究者たちが基本的に、ただコードを書くだけやなくて、コードについて推論できるモデルを作ろうとしてることや。

世界モデルとは何か

これで世界モデルって何かっていう概念全体の話になってくるねん。世界モデルについて動画まるまる一本作ろうと思ってたんや。この概念を勘違いしてる人が多いと思うし、Genieモデルみたいなもんのゲームモデルとして見がちなんや。

実際のところ、世界モデルの全体的なアイデアは、例を通じて世界がどう動くかを理解して学習できるもんが欲しいっちゅうことや。せやからVeoみたいなもんでも、水の性質、重力の性質なんかを学習できるっていう、めっちゃ面白い世界道徳的特性を示すことができるねん。

最近DeepMindから出たGenie 3みたいなモデルは、ゲームの中におるみたいに見えて動き回れるから、めっちゃすごく見えるねん。そして動き回れるだけやなくて、元いた場所に戻ってきたときに、状態が自分が残したとおりになってるんや。彼らがめっちゃええ例を出してるのは、壁にペンキを塗ってるところで、それから振り向いて戻ってきたら、ペンキが前と同じ場所にまだあるっていうやつや。

これが世界モデルの魅力や。何かを見た目で複製できるっていう表面レベルやなくて、実際に下で何が起こってるかの理解のような表現を学習できるもんが欲しいねん。

料理の例で理解する

これのええ例は料理やな。たくさんの違うレシピを記憶できるモデルを作ることもできるし、レシピ同士を補間して新しいもんを作ることもできるやろうけど、実際にそれらの中で何をしてるかの概念は多分ないやろう。

ただ、特定の組み合わせが一緒になるっていうのを覚えてるだけで、これらの組み合わせをいじることで何かを再現できるねん。世界モデルの目標は、システムが実際にどう動くかの内部表現を持つことや。

このコーディング世界モデルの場合の目標は、実際にコード用の世界モデルを構築して、前に見たもんのシンタックスを記憶するだけやなくて、動作してる計算宇宙のルールを学習することや。

実際のアプローチ

せやから、実際にどうやってやるんか?ただ静的なコードをめっちゃたくさん訓練するんやなくて、観察行動軌跡っていうアイデアで訓練するんや。つまり、モデルが何かアクションを取ったら、そのアクションが何を引き起こすかを予測できるかっちゅうことや。

CWMでやった方法は、Pythonプログラムが一行ずつ実行されるのを見ることができて、各ステップで変数とメモリがどう変化するかを観察できるモデルを作ることや。せやから、それらのもんがどう動くかのシンタックスを覚えるだけやなくて、実際にそれらの変数を操作することを学習してるねん。

これらが軌跡やトレースとして考えてるもんや。彼らはエージェント的相互作用っていうアイデアも研究したんや。せやから、バグフィックスなんかの現実世界のソフトウェアエンジニアリング問題を解決しようとする仮想エージェントを作ったんや。

そしてこのコード世界モデルは、強化学習技術を通じてそのエージェントの成功と失敗から学習するんや。

効果はあるのか

うまくいくんか?そうみたいやな。ここで面白いのは、これは事前訓練で一番でかいモデルを作ることやそういうことについてやないっちゅうことや。この世界モデルの特性を作り出そうとする新しい訓練方法についてなんや。

ベンチマークを見ると、このモデルはSWE benchみたいなもんでめっちゃうまくやってて、特に同じサイズのモデルと比較したときにな。数学と推論でもめっちゃうまくやってる。これらのベンチマークそれぞれで最先端やないかもしれんけど、このサイズのモデルがこれをできるっちゅうのは、そして彼らがここで事前訓練を最大化してないと思うけど。

でもこれは長い思考連鎖を生成する方法以上の強力な推論能力を持つモデルを本当に作ってるねん。

訓練の詳細

実際に何をしたかを見ると、事前訓練では、8兆トークンの生成されたテキストとコードだけを使ってるねん。せやから、最近のQwenモデルから見たもんよりずっと少ないで。彼らの大きいモデルは約36兆やってるからな。

Qwen nextでもその半分ぐらいやったと思うで。せやから相対的に、これはかなり小さいねん。ここの中間訓練の部分がめっちゃ面白いねん。ここで、これらの特別な実行トレースとエージェントデータの追加5兆トークンで訓練することで、モデルにこれらの世界モデル特性を学習させてるねん。

そして最後に、指示に従うことと複雑な複数ステップを解決することでさらにうまくなるように、強化学習でファインチューンしてるねん。せやから本当に重要なことは、モデルにこれらの推論トレースでずっとうまくやれるようになる新しい訓練ステップを追加してることや。

応用可能性

せやから、ここでのアイデアは、コード世界モデルがコード実行を理解してるから、コードが何をするかをシミュレーションできるっちゅうことや。そしてこれが彼らが「ニューラルデバッガー」と呼んでるもんの機会を開くねん。基本的に、自分自身で通り抜けて、うまくいかないもんを提案したり、それらの変数が何をしてるかを意識したりできるねん。

これの他の大きな応用は、これでもっと賢くて信頼できるエージェントを作れるはずやっちゅうことや。せやから現在のエージェントは、何かがうまくいくまで色々試すだけのことが多いねん。このCWMモデルのアイデアは、前に見たよりもうまい方法で自分たちのアクションについて計画して推論できるはずやっちゅうことや。

これは彼らがここで実験してることや。ここでのアイデアは、エージェントが試行錯誤を力任せでやって正しいコールを取得するまでやるんやなくて、確実にバグを修正したり、機能を追加したり、その場でもんを実行したりできるっちゅうことや。

モデルの利用可能性

クールなことの一つは、彼らが実際にモデルの重みを研究者や人々がこれを試せるように利用可能にしてくれたことや。まだ商用利用はあかんし、本当に完全に最適化されてないねん。もっと事前訓練、これらのエージェント軌跡の一部を導くもっとRLなんかで、ずっとうまくなるバージョンを想像できるで。でもMetaが実際にこれらのもんの一部をリリースすることに戻ってるのを見るのはええことや。

忘れたらあかんのは、元々最初のLLaMAモデルはまさにこんな感じで、研究のみのモデルやったんや。商用利用やなかった。これが実際にどれぐらいうまくやれるかを見るためだけやったんや。

まとめ

せやから、ここでの重要なもんをまとめよう。これは本当にシンタックスを学習して次のトークンを予測できることから離れて、予測してるアクションの結果を本当に理解することに移ろうとしてるねん。

そしてこれを、これを通り抜けながらシミュレーションで実際に何が起こってるかのセマンティクスについてずっと学習することへのシンタックスの並びとして本当に考えることができるねん。

よし、せやからこれは普通やったら実際にモデルが動いてるのを見せに入る部分やねん。残念ながらMetaは僕にアクセスを与えてくれてないみたいや。

アクセスを申請してから多分36時間以上経つけど、まだもらってないねん。そしてこれはゲート付きモデルやから、基本的に重みに実際にアクセスするには詳細を記入せなあかんねん。アクセスをもらってないのが僕だけやなかったのを見るまでは、個人的に受け取ろうかと思ってたで。これを見る限り、かなりの数の人がアクセスを申請してもらってないみたいやからな。

論文の例を見てみる

せやから今のところ、基本的にここの実際の論文の付録にある例のいくつかを見ることができるねん。モデル自体は32億パラメータのモデルや。これが量子化バージョンをやるかどうかで、どう影響されるかを見るのは面白いやろうな。量子化なしで実行するには、多分H100か何かみたいなもんがいるやろうな。

でも、ここの論文の例を見ることで、出力のいくつかを見ることができるねん。せやから、これは彼らが示してる最初のもんの一つや。そしてここで興味深いのは、これがbash環境を使ってて、実際に何か間違ったもんを得てるのが見れることや。そして基本的に間違いを得たことを理解して、それを更新するためにそれについてバックトラックするねん。

せやから、ここで思考、ツールコール、出力、そしてこれらのシリーズが出てくるのを見るのは興味深いねん。これは普通の推論思考連鎖やとかが出てくるだけやないねん。

LLMでのバックトラックの全体的なアイデアは新しいもんやない。多分18ヶ月ぐらい前から、人々が間違ったもんを出力したことを理解して、基本的に戻ってそれを修正するようにモデルを訓練してきてるからな。そしてこれが、エージェント的トレーサーがこの種のタスクで本当に役に立つところやと想像できるで。

SWE benchの例

これはSWE benchの例の一つで、Pythonで、また、エージェントの違う種類の思考、ツールコール、各ステップで実際に何をするかを決めることを示してるねん。

実際にモデルを適切にテストしないと分からんのは、このモデルがこの種のSWE benchタスクに対してどれぐらい過適合されてるか対より一般的なプログラミングとコ生成タスクに対してかや。これは将来チェックアウトせなあかんことや。

でも全体的に、最後にまとめると、これは間違いなくめっちゃ面白い論文や。このアイデアがうまくいくみたいやったら、コーディングモデルと数学だけやなくて、あらゆる種類の専門エージェントモデルに組み込まれるのを見ることになると思うで。

今後の展望

最近やったQwenの動画の一つで話した、旅行エージェントみたいなもんで、エージェント的でお互いに適したモデルがあったやつのことを話したねん。この種の世界モデル軌跡でまさに同じ種類のことがされて、その種のタスクでずっとうまくなることを学習できると想像できるで。そしてQwenがやってることも、これらのアイデアの一部をすでに実験してると思うで。

よし、このビデオはここまでにしとこう。このアイデアについてどう思うか、コメントで教えてや。これがどこに向かうか見るのは興味深いやろうな。これがもっと流行るもんなんか、それとも人々が実際にポスト訓練ですでにやってる違う種類のRLに折り込まれるアイデアを見ることになるんか?とにかく、いつものように、ビデオが気に入ったら、いいねとチャンネル登録をクリックしてや。そして次のビデオで話そう。それじゃあな。

コメント

タイトルとURLをコピーしました