Open Dreamer、Dreamer 4 の完全再現版を公開
AI研究者グループ「Reactor」が、Dreamer 4 の世界モデルパイプラインを JAX/Flax で完全再現したオープンソース実装「Open Dreamer」とその詳細なトレーニングレシピを発表しました。
キーポイント
完全なオープンソース実装の公開
Dreamer 4 の研究を忠実に再現するため、トレーニングパイプラインとローカルロールアウトハネスを提供する2つのリポジトリがリリースされました。
独自のアーキテクチャ設計
トークナイザーに VAE に代わりトランスフォーマーベースのマスクドオートエンコーダーを採用し、ダイナミクスモデルには拡散強制やフローマッチングを適用した新しい構造が採用されています。
具体的なトレーニングレシピの提供
Minecraft 環境での学習設定として、16 億パラメータのモデル構成や Muon オプティマイザの使用など、再現可能な詳細なハイパーパラメータが明記されています。
ブラウザデモによる実証
リアルタイムで生成された Minecraft 世界をストリーミングし、ゲームと世界モデルのフレームごとの切り替え(Game ⟷ Dream)が可能になるブラウザデモが公開されています。
不完全な実装と未公開の要素
このリポジトリには行動学習や強化学習のトレーニングループが含まれておらず、CoinRun のポリシーはマインクラフトでは使用されずリリースもされていません。
大規模モデルと高い計算効率
16 億パラメータのダイナミクスモデルが JAX/Flax NNX で実装され、B200 GPU 上で 57-58% の MFU を達成しています。
安定性がボトルネック
スループットではなくトレーニングの安定性が課題であり、損失曲線が生成品質の低下を隠していたことが報告されています。
重要な引用
A small group of AI researchers (Reactor) have released Open Dreamer, an open implementation of the Dreamer 4 world-model pipeline written in JAX and Flax NNX.
The tokenizer is a transformer-based Masked Autoencoder rather than a VAE. The team reports roughly 100× compression and notes the design needs no KL or adversarial loss.
Critically, world-model tokens cannot read the agent token. Task and policy information can therefore influence future states only through the next action.
The repository does not include the behaviour-cloning or RL training loop; a full Dreamer 4 BC/RL agent loop is listed as an open roadmap item.
Stability, not throughput, was the bottleneck; loss curves hid most generation-quality regressions.
影響分析・編集コメントを表示
影響分析
この発表は、Dreamer 4 という最先端の予測型世界モデルの実装ハードルを劇的に下げ、研究コミュニティにおける再現性と検証の可能性を大幅に高めます。特にトレーニングレシピの完全公開と JAX/Flax による効率的な実装は、大規模計算リソースを持つ組織だけでなく、単一 GPU で実験可能な環境での技術検証も可能にし、次世代の強化学習・世界モデル研究の加速に寄与します。
編集コメント
Dreamer 4 のような複雑な世界モデルの「再現」に成功し、かつトレーニングの詳細まで公開した点は極めて貴重です。これにより、理論と実装のギャップが埋められ、次世代の AI エージェント開発における基盤技術としての検証が容易になるでしょう。
AI 研究者の少人数グループ「Reactor」が、JAX と Flax NNX で実装された Dreamer 4 ワールドモデルパイプラインのオープンソース版「Open Dreamer」を公開しました。
実際に公開されたもの
2 つのリポジトリがリリースされました。1 つ目は next-state/open-dreamer で、因果関係を持つ動画トークナイザー、行動条件付き潜在ダイナミクスモデル、ロールアウト生成、FVD スコアリングを含むトレーニングパイプラインを保持しています。2 つ目は reactor-team/open-dreamer で、MP4 動画と対応するアクションファイルからフレームを生成する最小限のローカルロールアウトハネスを提供します。
3 つ目の成果物は、Reactor ランタイム上でホストされているブラウザデモです。これはリアルタイムで生成されたマインクラフトの世界をストリーミングし、「ゲーム」と「ドリーム」を切り替えるトグル機能を備えています。これにより、ストリーミングが実際のゲームからワールドモデルへフレーム単位で引き継がれます。
公開の目的は Dreamer 4 の研究再現です。研究チームは検索範囲を狭めるため、論文に記載された手法以外のアプローチを意図的に避けています。まずは単一の GPU で学習可能な手作業生成 2D プラットフォーマー「CoinRun」から始め、その後、マインクラフトや VPT スタイルのゲームプレイ動画へとパイプラインを拡張しました。
アーキテクチャ:1 つのバックボーンと 2 つのモデル
トークナイザーもダイナミクスモデルも、同じブロック因果トランスフォーマーのバックボーンを使用しています。このバックボーンは 2 種類の注意機構を交互に用います。「空間層」は単一フレーム内の要素間で情報を伝播させ、「因果時間層」はフレーム間での情報伝達を担当します。
トークナイザーは VAE(変分オートエンコーダー)ではなく、トランスフォーマーベースのマスクド・オートエンコーダーです。チームによると圧縮率は約 100 倍で、KL 正則化や敵対的損失を必要としない設計となっています。彼らの主張では、マスク処理によって潜在空間がより拡散しやすくなるとのことです。
ダイナミクスモデルは次フレームの予測を行い、ディフュージョン・フォーシング、フローマッチング、ショートカットモデルを用いて訓練されます。また、次の行動も同時に予測します。遷移モジュールとポリシーを別々に切り替えるのではなく、ロールアウトは「過去の行動」「状態」「ポリシー」を時系列ごとに結合したブロックに統合されています。各ブロック内では空間アテンションが動作し、時間軸に沿ったブロック間には因果関係を持つ時間アテンションが機能します。
重要なのは、世界モデルのトークンがエージェントのトークンを参照できない点です。タスクやポリシーに関する情報は、次の行動を通じてのみ未来の状態に影響を与えることができます。
訓練レシピは、設定された構成に基づいています。
提供されている Minecraft の設定ファイルにより、このレシピが具体的に示されています。
ダイナミクスモデルはパラメータ数が 16 億、30 層のブロック因果構造を持ち、d_model は 1920、アテンションヘッド数は 30 です。グループ化クエリ・アテンションには KV ヘッドが 3 つ用意されています。4 層に 1 回、時間アテンション層が配置されます。
各タイムステップには 32 の学習済みレジスタートークンが含まれ、packing_factor を 2 に設定することで、隣接するトークナイザーの潜在変数を 1 つのダイナミクス空間トークンにパックします。時間アテンションは 192 ステップのスライディングウィンドウを使用します。
トレーニングは 20 万ステップ実行され、最適化には Muon オプティマイザと WSD スケジュールを採用し、学習率の最大値は 3e-4 です。ショートカット/ブートストラップサンプルは 10 万ステップ目からバッチの 0.25 の割合で有効になります。EMA(指数移動平均)の減衰係数は 0.999 です。
トークナイザーの設定では、ボトルネック幅を 16 にし、フレームあたり 512 の潜在トークンを生成します。元の解像度 360×640 の画像は、両方の次元が 16×16 パッチに割り切れるよう 368×640 にパディングされます。エンコーダーの深さは d_model 1536 で 12 層、デコーダーは d_model 1024 で 8 層です。MAE(マスクド・オートエンコーダー)のマスク確率は最大 0.9 まで上げられ、LPIPS は全タイムステップの半分に対して重み 0.2 で適用されます。
VPT アクションは、連続値チャネルを含まない 27 のバイナリアクションチャンネルと 121 のカテゴリカルなマウスクラスに解析されます。
計算能力最大化とメモリーウォール
研究チームによると、モデルの FLOPs 利用率は 57〜58% に達しており、健全なトランスフォーマー学習における目標値である 60% に近づいています。これは「ルーフライン」の観点からの説明です。
B200 グラフィックボードにおいて、帯域幅制約と計算能力制約が入れ替わる境界点は 1 回あたりの演算量あたり 292 FLOP/byte です。GPU あたり 256 フレームを処理すると、この負荷は境界点を越えて計算能力制限側にシフトします。
シャードリングの方向性は予想とは逆でした。16 億パラメータのモデル状態(パラメータ、勾配、オプティマイザの状態、EMA)は約 24 GiB を占め、これは B200 グラフィックボードに収まるサイズです。しかし、真のコストは活性化値(activations)でした。
研究チームはデータ並列処理、FSDP、テンソル並列処理、シーケンス並列処理を試しましたが、最終的に単純なデータ並列処理と活性化チェックポイント化を採用しました。
データ読み込みの問題は、データセット全体を事前にトークン化して .arrayrecord ファイルに保存し、GPU 側でプリフェッチバッファを持つ Grain を使用することで解決しました。ffmpeg によるデコードでは GPU の供給速度が追いつかないことが判明したためです。
安定性に関するセクションこそが本質的な価値があります。
研究チームは明確に述べています。彼らの時間を最も多く割いたのは安定性の確保でした。重要な観察点は、損失関数の値が低下しているにもかかわらず、多くの安定性問題が発生することです。MSE(平均二乗誤差)は滑らかに改善していく一方で、生成品質は劣化していきます。
これに対する 6 つの対策が文書化されています。まず、Muon が LaProp に置き換えられました。LaProp は約 400 B200 時間ずつの 2 回のランで、ランダムかつ頻繁にスパイク(急激な上昇)を起こすことが判明したためです。また、拡散推論には EMA(指数移動平均)重みを必須としました。
混合精度計算は境界条件に敏感です。パラメータは float32 を維持し、BF16 は行列乗算の活性化値やアテンション入力の大部分をカバーします。一方、正規化処理とダイナミクスフロー出力ヘッドには float32 を使用し続けます。
損失の重み付けについては、V スペースにおける損失を用いた X 予測を採用しています。これは Dreamer 4 の手法に似ていますが、分母が二乗になっている点が異なります。この変更により、わずかながらも明確な性能向上が確認されました。
ノイズと潜在シーケンスの間のミニバッチ・バリセントリック最適輸送を導入したことで、ロールアウト生成の安定性が大幅に改善されています。
また、μ パラメータ化の実験も行いましたが、これは不要であると判断されました。その理由の一つとして、Muon 法はモデルサイズが変わってもハイパーパラメータをより安定して維持できる点が挙げられます。
CoinRun フェーズにおけるもう一つの重要な知見として、計算量(FLOPs)を一定に保ったスウィープ実験の結果があります。これにより、計算最適化の観点でのスケーリング則が導き出されました。具体的には、モデルサイズ N は C の 0.56 乗に比例し、データセットサイズ D は C の 0.44 乗に比例することが示されています。
Box に含まれていないこと
このリポジトリには、行動クローニングや強化学習のトレーニングループは含まれていません。完全な Dreamer 4 の BC/RL エージェントループについては、今後の公開予定項目としてリストアップされています。本記事で言及されている CoinRun ポリシーの研究は Minecraft では使用されておらず、まだリリースされていません。
また、FVD スコアの公表も行われていませんが、scripts/eval_fvd.py には I3D ベースの評価フレームワークが含まれており、4 フレームのコンテキストと 240 フレームのホライズンで構成されています。
(function(){
window.addEventListener("message", function(e){
if(!e.data || !e.data.mtpOdDeployHeight) return;
var f = document.getElementById("mtp-od-deploy-frame");
if(f) f.style.height = e.data.mtpOdDeployHeight + "px";
});
})();
主なポイント
Open Dreamer は、JAX/Flax NNX で Dreamer 4 のパイプラインを再現したものであり、トレーニングコードと Minecraft デモを提供しています。
ダイナミクスモデルは、16 億パラメータ、30 レイヤー、d_model は 1920 で構成されています。このモデルは、Muon オプティマイザーを用いて 20 万ステップの学習を行いました。
報告されたエンジニアリングの数値によると、B200 グラフィックボード上での MFU(計算効率)は 57〜58% に達し、GPU あたり 1 秒間に 256 フレームを処理可能です。モデルの状態量も約 24 GiB とコンパクトです。
ボトルネックとなっていたのはスループットではなく安定性でした。損失曲線(loss curves)だけを見ていると、生成品質の低下が隠れてしまうケースが多かったのです。
詳細は公式ブログやデモ動画で確認できます。また、トレーニング用リポジトリ、推論用リポジトリ、そして X 上の Reactor 情報も公開されています。本プロジェクトにおけるすべての研究貢献は、このプロジェクトに携わった研究者たちに帰属します。
「Meet Open Dreamer: A JAX/Flax Reproduction of the Dreamer 4 World Model Pipeline, With the Full Training Recipe Published」という記事は、MarkTechPost で最初に公開されました。
原文を表示
A small group of AI researchers (Reactor) have released Open Dreamer, an open implementation of the Dreamer 4 world-model pipeline written in JAX and Flax NNX.
What actually shipped
Two repositories were released. next-state/open-dreamer holds the training pipeline: a causal video tokenizer, an action-conditioned latent dynamics model, rollout generation, and FVD scoring. reactor-team/open-dreamer holds a minimal local rollout harness that generates frames from an MP4 and a matching action file.
A third artifact is the browser demo hosted on the Reactor runtime. It streams a generated Minecraft world in real time and exposes a Game ⟷ Dream toggle that hands the stream from the real game to the world model frame by frame.
The stated objective was to reproduce the Dreamer 4 research. The research team deliberately avoided methods outside that research paper to keep the search space narrow. They started on CoinRun, a procedurally generated 2D platformer trainable on a single GPU, then scaled the working pipeline to Minecraft/VPT-style gameplay video.
Architecture: one backbone, two models
Both the tokenizer and the dynamics model use the same block-causal transformer backbone. That backbone alternates two attention types. Space layers propagate information among the elements of a single frame. Causal time layers propagate information between frames.
The tokenizer is a transformer-based Masked Autoencoder rather than a VAE. The team reports roughly 100× compression and notes the design needs no KL or adversarial loss. Masking, they argue, makes the latent space more diffusible.
The dynamics model performs next-frame prediction and is trained with diffusion forcing, flow matching, and shortcut models. It also predicts the next action. Rather than alternating between a separate transition module and policy, the rollout is folded into per-timestep blocks of (previous action, state, policy). Spatial attention runs inside each block; causal temporal attention connects blocks across time.
Critically, world-model tokens cannot read the agent token. Task and policy information can therefore influence future states only through the next action.
(function(){
window.addEventListener("message", function(e){
if(!e.data || !e.data.mtpOdTermHeight) return;
var f = document.getElementById("mtp-od-term-frame");
if(f) f.style.height = e.data.mtpOdTermHeight + "px";
});
})();
The training recipe, as configured
The shipped Minecraft configs make the recipe concrete.
The dynamics model is 1.6B parameters: 30 block-causal layers, d_model 1920, 30 attention heads, and 3 KV heads for grouped-query attention. Every fourth layer is a time-attention layer. Each timestep carries 32 learned register tokens, and packing_factor: 2 packs neighbouring tokenizer latents into each dynamics spatial token. Time attention uses a 192-step sliding window.
Training runs for 200,000 steps with Muon, a WSD schedule, and a peak learning rate of 3e-4. Shortcut/bootstrap samples switch on at step 100,000 at a 0.25 batch fraction. EMA decay is 0.999.
The tokenizer config emits 512 latent tokens per frame at a bottleneck width of 16. Raw 360×640 frames are padded to 368×640 so both dimensions divide into 16×16 patches. Encoder depth is 12 at d_model 1536; decoder depth is 8 at d_model 1024. MAE masking probability tops out at 0.9, and LPIPS is applied at weight 0.2 on half the timesteps.
VPT actions are parsed into 27 binary action channels plus 121 categorical mouse classes, with no continuous channels.
Computemaxxing and the memory wall
The research team reports 57–58% model FLOPs utilization, against a stated 60% benchmark for healthy transformer training. The reasoning is a roofline argument. On a B200, the crossover between bandwidth-bound and compute-bound sits at 292 FLOP/byte. Feeding 256 frames per GPU pushes the workload past that ridge point.
Sharding went the other way from expectations. At 1.6B parameters the model state — parameters, gradients, optimizer state, and EMA — occupied roughly 24 GiB, which fits on a B200. Activations were the real cost. The research team tried data parallelism, FSDP, tensor parallelism, and sequence parallelism, then settled on plain data parallelism plus activation checkpointing.
Dataloading was solved by pre-tokenizing the entire dataset into .arrayrecord files, then using Grain with a GPU-side prefetch buffer. ffmpeg decoding was not fast enough to keep the GPUs fed.
The stability section is the real payload
The research team is explicit that stability consumed the largest share of their time. Their key observation: most stability problems occur despite the loss going down. MSE improves smoothly while generation quality degrades.
Six fixes are documented. Muon replaced LaProp, which spiked randomly and increasingly often, across two runs of roughly 400 B200 hours each. EMA weights are treated as mandatory for diffusion inference. Mixed precision is boundary-sensitive: parameters stay float32, BF16 covers most matmul activations and attention inputs, and float32 is kept for normalization and the dynamics flow output head.
On loss weighting, they use x-prediction with a v-space loss, which reduces to a weighting term similar to Dreamer 4’s but with a squared denominator. They report a small but noticeable improvement. Minibatch barycentric optimal transport between noise and latent sequences made rollout generation more stable. μ-parametrization was tested and judged unnecessary, partly because Muon holds hyperparameters steadier across model sizes.
One further result from the CoinRun phase: an iso-FLOPs sweep put compute-optimal scaling at roughly N∝C0.56 and D∝C0.44.
What is not in the box
The repository does not include the behaviour-cloning or RL training loop; a full Dreamer 4 BC/RL agent loop is listed as an open roadmap item. The CoinRun policy work described in the post was not used for Minecraft and was not released.
The post also does not publish FVD scores, though scripts/eval_fvd.py ships with an I3D-based harness configured for 4 context frames and a 240-frame horizon.
(function(){
window.addEventListener("message", function(e){
if(!e.data || !e.data.mtpOdDeployHeight) return;
var f = document.getElementById("mtp-od-deploy-frame");
if(f) f.style.height = e.data.mtpOdDeployHeight + "px";
});
})();
Key Takeaways
Open Dreamer reproduces the Dreamer 4 pipeline in JAX/Flax NNX, with training code and a Minecraft demo.
The dynamics model is 1.6B parameters, 30 layers, d_model 1920, trained 200K steps with Muon.
Reported engineering numbers: 57–58% MFU on B200, 256 frames per GPU, ~24 GiB model state.
Stability, not throughput, was the bottleneck; loss curves hid most generation-quality regressions.
Check out the blog post and demo, the training repo, the inference repo, and Reactor on X. All credit for this research goes to the researchers of this project.
The post Meet Open Dreamer: A JAX/Flax Reproduction of the Dreamer 4 World Model Pipeline, With the Full Training Recipe Published appeared first on MarkTechPost.
関連記事
今日のまとめ
AI日報で今日の重要ニュースをまとめ読み