ロボット 学習 の 世界 の モデル を 始め て いる: 実践 的 な ガイド
ロボティクスの世界モデルを訓練するためのステップバイ・ステップガイド.前提条件,データ準備,ドリーマー v3トレーニング,評価,展開をカバーする.コード例,一般的なエラー,FAQを含む.
ジェリー・フアン による 2026年4月22日
これはロボット工学の任務のための最初の世界モデルを訓練するための実践的なガイドです.我々は,モデルを選択し,データを準備し,トレーニングし,想像力品質を評価し,計画や政策改善のために訓練されたモデルを使用します.すべてのコード例では,Dreamer v3を主要な例として使用し,TD-MPC2とIRISの代替案の注意点が異なる場合もあります.
必須条件
硬件
- GPU: NVIDIA RTX 3090, RTX 4090,または A100.ドリーマー v3 と TD-MPC2 は単一の消費者のGPU で動作します. VRAM 要求:状態ベースのタスクには最低12GB,視覚ベースのタスクには64x64 イメージで24GB が推奨されます. 256x256 イメージには24GB+ VRAM が必要です.
- CPU/RAM: 8+コア,32GB+RAM.データロードは画像観測による大規模なデータセットでCPUに縛られている.NVMe SSDストレージは強く推奨される.HDDベースのデータロードはボトルネックトレーニングになります.
- ロボット (初期実験ではオプション): 物理的なハードウェアを必要としないシミュレーション環境 (DMControl, Meta-World, Robosuite) を開始できます.実際のロボット実験に準備ができると,位置/速度制御と少なくとも1台のカメラを持つ腕は動作します.
ソフトウェア
- サイコン310+
- JAXとCUDA (ドリーマー v3) または PyTorch 2.0+ (TD-MPC2,IRIS)
- シミュレーション環境のための Gimnasium (旧 OpenAI Gym)
- 重量と偏見 (選択的だが実験追跡のために推奨)
データ
軌道のデータは,ロボットまたはシミュレーション環境から記録された (観察,アクション,報酬,完成) ツープルの連続です.初期実験では,既存のデータセットを使用するか,シミュレーション環境からデータを収集してください.実際のロボット世界モデルでは,作業の複雑さに依存して50-500話が必要です.詳細なデータ要件については, [私たちの世界モデル概要]
ステップ 1: 世界 の モデル を 選ぶ
この決定木を使って,プロジェクトに適切な出発点を選択してください.
決定樹: どの 世界 の モデル?
Q1: あなたのアクションスペースは連続ですか
- 答えを表示する
- 対応する (ディスクレットアクション) -> IRIS (ネイティブディスクレットサポート) または Dreamer v3 (ディスクレットサポートも) を考慮してください
Q2: 配備時に報酬/目標を変更する必要があるか?
- はい -> 使用 TD-MPC2 (柔軟な報酬でオンラインプランニング)
- 違う -> Q3 に 行く
Q3: できるだけ早く訓練を繰り返す必要があるか?
- 確認 -> TD-MPC2**を使用する (2-12h のトレーニングが単一のGPU で)
- 違う -> Q4 に 行く
Q4: あなたの任務は15以上のステップを計画する必要があるか?
- ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎
- ドライマー v3 または TD-MPC2 が動作します.ドリーマー v3 はより安全なデフォルトです.
このガイドの残りの部分では,最も広く適用されるものとして Dreamer v3を主な例として使用します.
ステップ 2: データを準備する
番組形式
ドリーマー v3では,NPZファイルの一つのエピソードごとにデータをディレクトリとして期待する.NPZファイルごとに以下のキーを持つNumPyアレイが含まれます:
輸入 numpy を np # 例: 1 節を保存する 200 時間のステップ エピソード = { # 視覚観測: (T, H, W, C), uint8, 0-255 '画像': np.random.randint(0, 255, (200, 64, 64, 3), dtype=np.uint8), # 独自の状態: (T, state_dim), float32 # 例: 7 共同位置 + 7 共同速度 + 1 共同速度 + 1 握手状態 = 15 状態: np.random.vezn(200, 15). 固定タイプ(np.float32), # 行動: (T, action_dim), float32 エピソード # 例: 7 共同速度コマンド + 1 速 = 8 '行動: np.random.dn200, 8) 固定式 (spectrum) 操作: (spectrum) 操作: (spectrum) 操作: (spectrum) 操作: (spectrum) 操作: (spectrum) 操作: (spectrum) 操作: (spectrum)
観測構造
観察代表のための主要な決定:
- 画像解像度: 64x64から始めましょう.これはほとんどのテーブル操作作業に十分で,128x128より4倍速く電動します. 64x64でモデルが作業に関連した視覚的な詳細を区別できないと観察した場合のみ,解像度を増加します.
- カメラの数: 1台から始めましょう (上頭または腕に搭載).多カメラセットアップは性能を向上させるが,追加カメラごとにデータのサイズとトレーニング時間を倍にする.
- プロピオセプション: 常に関節位置,関節速度,グリッパー状態を含む.これらは騒音な視覚観測を補完する正確な状態情報を提供します.各次元をほぼゼロの平均と単位差まで正常化します.
- ** 歴史:** ドリーマー v3 の RSSM は,復元状態を通じて内部で歴史を処理します.フレームを積み重ねる必要もありません.観察の歴史を提供する必要はありません.ただ,現在の時間ステップの観測だけです.
行動正常化
これは訓練失敗の共通原因です. 全3つの世界モデルは標準的な範囲での行動を期待しています.
輸入 numpy np def 標準化_action (動作,行動,動作,動作,動作,動作) 高い): """動作を原始範囲に[-1, 1] 変換する."""中点 = (動作,動作,動作,動作,動作,動作,動作,動作,動作,動作,動作,動作,動作,動作,動作,動作,動作,動作,動作,動作,動作,動作,動作,動作,動作,動作,動作,動作,動作,動作,動作,動作,動作,動作,動作,動作,動作,動作,動作,動作,動作,動作,動作,動作,動作,動作,動作,動作,動作,動作,動作,動作,動作,動作,動作,動作,動作,動作,動作,動作,動作,動作,動作,動作,動作,動作,動作,動作,動作,動作,動作,動作,動作,動作,動作,動作,動作,動作,動作,動作,動作,動作,動作,動作,動作,動作,動作,動作,動作,動作,動作,動作,動作,動作,動作,動作,動作,動作,動作,動作,動作,
ドリーマー v3 は,内部でアクションを [-1, 1] に切り替えます.あなたの原動は既にこの範囲内に存在する場合は,正常化は必要ありません. TD-MPC2 はまた [-1, 1] の正常化アクションを期待します.IRIS は動作をビンのように дискрет化します.したがって,正常化はビニングスキームによって処理されます.
LeRobot 形式から変換する
変換スクリプトを使用します.
画像輸入 numpy np import os dataset = LeRobotDataset("あなたのユーザー名/あなたのデータセット") os.makedirs("dreamer_episodes", exist_ok=True) # 集編別_index = dataset.hf_dataset.lp import 画像輸入_index"のpp_idx: ep_data = dataset.hf_data = LeRobotDataset.filter lambda: x"episode_index"\\idx) d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d
3 ステップ: 電車
ドリーマー v3をインストールする
# CUDAサポートのpipeをインストールする JAXをインストールする --"jax[cuda12]"jaxlibをアップグレードする #Clone Dreamer v3 git clone
構成
設定ファイルを作成する.ドリーマー v3は YAML設定を使用します.
構成/ロボット_操纵.yaml # データデータ_dir: /path/to/dreamer_episodes/replay_size: 1e6 #再プレイ バッファーのサイズ 移行パッチ_size: 16 #訓練パッチ_長さのためのパッチサイズ: 50 #訓練のための次要長さ # 世界モデル rssm: deter: 4096 #決定的な状態サイズ (GRU隠された) ストック: 32 #カテゴリー変数クラス: 32 #カテゴリー変数単位ごとにクラス: 1024 # MLP隠された単位 暗号: mlp_keys: 'state' # MLP暗号を使用する MLP暗号: 'image' # どの観察キーが MLP暗号を使用する MLPコード: 'image' # すべての観察キーが c_deepth: 48 # 行動単位 解析: #m\p\e 評価: #m\e 評価: #m\e 評価: #m\e 評価: #m\e 評価: #m\e 評価: #m\e 評価: #m\e 評価: #m\e
訓練開始
#オフラインデータから電車 python dreamerv3/main.py \ --configs デフォルト \ --config config/robot_manipulation.yaml \ --logdir ./logdir/robot_v1 \ --steps 1000000 # TensorBoardテンソールボードでモニターする --logdir ./logdir/robot_v1
TD-MPC2代替:
# インストール pip インストール tdmpc2 # データを列車 (HDF5形式) python train.py \ task=custom \ data_dir=/path/to/hdf5_episodes/ \ model_size=19 \ steps=500000 \ batch_size=256
訓練 の 時 に 注意 する こと
このメトリックを TensorBoard または W&B で監視する:
- 画像再構築損失 (デコダース_画像): 安定して減少する.高原であれば,エンコーダー/デコダース容量は不足する. cnn_深度を増やす.
- KL差異 (kl_loss): 適度に値 (通常1~10ナッツ) に収束する. 0 に近い場合,モデルはストカスタシー潜伏を無視している. KL の自由ビットを増やしたり, KL のスケールを減少させる.非常に高い場合 (>50),動力モデルは後部を予測するのに苦労している.
- 報酬予測損失 (デコダース_報酬): 減少すべき,特にモデルがどの状態が最終/成功しているかを学ぶ必要がある,稀な報酬の課題では.
- 俳優の損失と批評家の損失: これらは時間の経過とともに減少する必要があります.もし俳優の損失が不規則であれば,想像力展開は信頼性がないかもしれません.まず世界モデル損失をチェックしてください.
- 想像された返済: 俳優を世界モデルに展開することで想像された軌道の平均返済. 政策が改善するにつれて増加すべきです. 政策が急速に増加するが,実際の評価パフォーマンスは改善しない場合,政策は世界モデルの不正確性を利用している可能性があります.
4 ステップ: 評価する
想像力 展開 品質
世界モデルを評価する最も直接的な方法は,想像の展開を視覚化して現実と比較することです.実際のエピソードを考慮して,最初の観測をコード化して,記録されたアクションを使用して世界モデルを展開し,予測された観測を解読します.
輸入 numpy npから dramerv3 輸入エージェント # 訓練されたエージェントエージェント = 代理.ロード. ./logdir/robot_v1/checkpoint.pkl') # 実行されたテストエピソードエピソードをロード = np.load('test_episodes/episode_050.npz') real_images = episode['image'] # (T, 64, 64, 3) real_actions = episode[action'] # (T, action_dim) # Encode first observation = {'image': real_images[0:1], 'stateagesages': episode[state'][0:1] latent agent._model.tode) #decimed_images in imagination\_objects = t\\\\\\\\\\\\\\\\\\\\\\\\\\\\
量度測定値
| Metric | What It Measures | Good Value | Horizon |
|---|---|---|---|
| Reconstruction MSE | Pixel-level prediction accuracy | < 0.01 (normalized) | 1-step |
| SSIM | Structural visual similarity | > 0.85 at step 10, > 0.7 at step 50 | Multi-step |
| Reward prediction accuracy | Can the model predict task success? | > 90% binary classification | エピソード-level |
| State prediction error | Latent state divergence from ground truth | Task-dependent | Multi-step |
| Policy success rate (in imagination) | Does the learned policy solve the task in the world model? | > 80% | エピソード-level |
| Policy success rate (real robot) | Does the policy actually work? | Task-dependent (gap with imagined rate indicates model error) | エピソード-level |
最も重要な評価は想像された成功率と実際の成功率の間の格差です. 想像力では政策が95%が成功するが,実際のロボットでは40%しか成功しない場合,世界モデルは政策が搾取している重大な不正確性を持っています. 失敗地域でのより多くのデータを収集し再訓練します.
ステップ5 計画や政策改善のために使用する
選択肢A: 学習された政策を導入する (夢見る者)
ドリーマーのアクターネットワークは反応的ポリシーです. 現在の潜伏状態を考えると, ~ 1msでアクションを出します.これは最も簡単な展開経路です.
ロープ (簡略化) 代理 = 代理.ロード('./logdir/robot_v1/checkpoint.pkl') 潜伏 = 完成していない間,何もない: obs = get_robot_observation() # {'image': ..., 'state': ...} # エンコード観察とアクターからのアクションを潜伏,アクション = 代理.政策(obs,潜伏) # 標準化・ロボットに送信 ロー_action = 標準化_action_action((アクション_low,action_high) 送信_to_robot(raw_action) 時間.睡眠(1.0 / 制御_周波数) # 例 10Hz
選択肢B: TD-MPC2によるモデル予測制御
TD-MPC2は,MPPIを通じてオンライン計画のために世界モデルを直接使用する.これはより計算密集型だが,実行時に目標を変更することを可能にする.
TD-MPC2部署ループ (簡略化) から tdmpc2輸入 TDMPC2エージェント = TDMPC2.ロード('./チェックポイント/tdmpc2_robot.pt') が完成していない間: obs = get_robot_observation() # MPPI 計画:サンプル 512 アクションシーケンズ,世界モデルアクション = agent.act(obs, eval_mode=True) 送信_to_robot(denormalize_actions(action, action_low, action_high)) 時間.sleep(1.0 / control_frequency)
選択肢C:データ増幅としての世界モデル
訓練された世界モデルを使って 合成エピソードを生成して ダウンストリーム ディフュージョン・ポリシーの訓練や VLAをします これは最もリスク低いアプローチです 世界モデルは オフラインで使用されます 制御ループでは使用されません
輸入 numpy npから dramerv3 輸入代理代理 = Agent.load.jpk.jpk.jpk.jpk.jpk.jpk.jpk.jpk.jpk.jpk.jpk.jpk.jpk.jpk.jpk.jpk.jpk.jpk.jpk.jpk.jpk.jpk.jpk.jpk.jpk.jpk.jpk.jpk.jpk.jpk.jpk.jpk.jpk.jpk.jpk.jpk.jpk.jpk.jpk.jpk.jpk.jpk.jpk.jpk.jpk.jpk.jpk.jpk.jpk.jpk.jpk.jpk.jpk.jpk.jpk.jpk.jpk.jpk.jpk.jpk.jpk.jpk.jpk.jpk.jpk.jpk.jpk.jpk.jpk.jpk.jpk.jpk.jpk.jpk.jpk.jpk.jpk.jpk.jp
常識 の 誤り
1 データの不足
チームでは20〜50話を集めて世界モデルを訓練し,不正確だと判断し,世界モデルが任務に不十分だと結論付けます.実際には,20話は最も簡単な作業に十分です.予算は100〜200話まで最小で,非微小な操作作業に十分です. オンライン計画によりデータ効率が高まる TD-MPC2 を ドリーマーではなく使ってください
2 誤った観察方式
画像のプロピオセプティブ状態は,画像の隣に常にプロピオセプティブ状態を含みます. 機械状態で捉えられない物体の位置や方向について 推論を促すときに 独自の認識のみを使用します この場合は画像が必要です
3 劇情多様性不足
データのセットで,すべてのエピソードが同じ位置にあるオブジェクトから始まるのは,世界モデルに状態空間の狭い片方を教えてくれます. テスト時にオブジェクトが少し異なる位置にいるとき,モデルは野蛮な予測をします. データ収集中に,意図的に初期条件をランダム化します. 物体の位置,方向,ロボット開始設定,環境条件 (照明,背景).
4.不一致制御周波数
訓練データが30Hzで記録され,その方針が10Hzで展開される (または逆).世界モデルはデータの時間解像度で動態を学ぶ.30Hzで訓練すると,各アクションが小さな状態変化を生む.10Hzで展開すると,各アクションが3倍大きい状態変化を生む.しかし,モデルはそれを見たことがない.データ収集中に使用される同じ周波数で常に展開する. 周波数を変更する必要がある場合は,ターゲット周波数でデータを再収集します.
5 報奨 の 信号 を 無視 する
賞与予測器は,少数の報酬 (エピソード終了時に成功/失敗) を得る作業では,学ぶのに十分なポジティブな例が必要である.エピソードのうち10%しか成功しない場合,モデルは賞金を正確に予測することを決して学ばないかもしれません. 効率的な示例を収集する (a) ほか) 介質報酬の形成を加える (b) ほか) 政策最適化ではなく,ダイナミック (データ増強) のためだけに世界モデルを使用する (c)
6 評価 さらには 訓練 時間が 過ぎる
世界モデルトレーニングの損失は,実際の政策パフォーマンスが停滞するまたは低下する間に減少し続けることができる (再プレイバッファにオーバーフィット).実際のロボット (または継続したシミュレーションエピソード) に 100Kのトレーニングステップを評価する.パフォーマンスが低下した場合,トレーニングを停止し,最後の良いチェックポイントを使用する.
訓練 資料 を どこ から 入手 できる か
RCSVデータサービス
RCSVの [管理データ収集サービス] (
世界モデルプロジェクトに特に"ダイナミック・ディバーシティ"の収集プロトコルを提供しており,その範囲は最大限に拡大します.エピソードには,成功と失敗の両方のタスク完了,多様なアプローチ戦略,混乱復旧,エッジケースシナリオが含まれます.これは成功のみデータセットよりも幅広い範囲の世界モデルを生成します. 試行キャンペーンでは200話で2,500ドルから開始します 定番のオートメントで
データセットを開く
| Dataset | Episodes | Robots | Observations | ワールドモデル Suitability |
|---|---|---|---|---|
| DROID | 76K | Franka Panda | Multi-view RGB, proprio, language | Excellent -- large, diverse, multi-task |
| Bridge V2 | 60K | WidowX | Single RGB, proprio, language | Good -- diverse tasks, single viewpoint |
| Open X-Embodiment | 1M+ | 22 robot types | Varies by sub-dataset | Good for pre-training foundation world models |
| RoboTurk | 2.1K | Sawyer | RGB, proprio | Fair -- smaller scale, good for initial testing |
| RCSV Public Datasets | Varies | UR5e, Franka, ALOHA | Multi-view RGB, proprio, F/T | Good -- pre-formatted for Dreamer/TD-MPC2 |
一般的な世界モデルを予備訓練するには,Open X-EmbodimentまたはDROIDから始め,その後に特定のロボットとタスクからのデータに細かな調節を行います.予備訓練のないタスクの特定世界モデルでは,DROIDまたは Bridge V2があなたのような操作タスクにフィルタリングされ,良い出発点を提供します.RCSVの [公開データセット]
よく 聞かれる 質問
ロボットのための世界モデルを訓練するには どれだけのデータが必要ですか?
Dreamer v3 または TD-MPC2で単一の操作作業では,最低でも50-200エピソード (10K-50K移行) が必要です.オブジェクト位置変異による強力な展開性能のために,予算は300-500エピソードです.VQ-VAE(変分オートエンコーダ)トークネイザー訓練オーバーヘッドのために,IRISは2-3倍以上を必要とします.品質と多様性は原始容量よりも重要です.200の多様なエピソードがほぼ同一の1000個を上回ります.
世界モデルを 単一の消費GPUで訓練できますか?
レーニング時間はデータセットサイズとモデル構成に応じて224時間程度です.IRISは,単一のGPUで計算密集型 (1248時間) です.UniSimスケールピクセル空間の世界モデルを訓練していない限り,A100やマルチGPUセットアップは必要ありません.
MuJoCoやIsaac Simのようなシミュレーターと 世界モデルの違いは何ですか?
物理シミュレーターは手工による運動方程式 (硬体動力学,接触モデル,摩擦コーン) を実装する.世界モデルではデータから動力学を学ぶ.このシミュレーターは硬体について正確だが,変形可能な物体,ケーブル,液体,センサーノイズと闘う. 世界モデルは,分析的にシミュレーションするのが難しい現象を含む,トレーニングデータに含まれるあらゆる動態を捕捉します.妥協点は,世界モデルは,トレーニング分布の中で正確に予測できるだけです.
世界モデルか 拡散政策か?
拡散政策は,観測から行動を生成する制御政策である.拡散政策のために合成訓練データを生成する世界モデルを使用するか,拡散政策によって提案される候補経路を評価し,選択する世界モデルを使用することができます. オンラインRL,計画,または部署時に目標を変更する能力が必要な場合,示範から直接模倣学習のための [T5
私の世界モデルは 部署に適したかどうか どうやってわかる?
記録された観測と実際の記録された観測を比較する.重点メトリックは:再構築MSE,視覚品質のSSIM,報酬予測精度,10/20/50の地平線での状態予測エラー. 想像した展開が,あなたのタスクの典型的なエピソード長さの範囲内で 現実から目に見えるように異なれば,モデルにはより多くのデータや建築上の変更が必要です.
ロボットのデータで 訓練された世界モデルを 調整できますか?
ドライマー v3 と TD-MPC2 の場合は,シミュレーションデータ (例えば,MuJoCo や Isaac Sim) で訓練されたチェックポイントから初期化し,実際のロボットデータで細かな調整することができます.これは通常,ダイナミックモデルを現実世界物理学に適応させるには50~100回実話が必要です. 基礎の世界モデルであるGenieは 訓練前のパラダイムに 明確に設計されています
関連 読書
- [ロボットのための世界モデル:なぜ重要なのか] (T6
) -- 総合的な導入と建築概要 - Dreamer vs IRIS vs TD-MPC2 --詳細な建築比較
- [ロボット学習の分散政策] (
T8 ) -- 補完政策構造 - LeRobot フレームワーク Guide --データセット形式とトレーニング枠組み
- [ロボット訓練データとは何か?]
T10 ) - データ品質の基本 - RCSVデータサービス --世界モデル訓練のためのカスタマイズされたデータ収集
- 公開データセット --訓練準備の準備を準備した,プリフォーマットされたデータセット







