LeRobot documentation
LeRobot用DM0.5
LeRobot用DM0.5
DM05(DM0.5としてもリリース)は、Dexmalのオープンワールドロボット制御用のVision-Language-Actionモデルです。LeRobotアダプターは、OpenDMのモデルパスを維持したまま、標準的なLeRobotのデータセット、プロセッサー、トレーニング、チェックポイント保存、Hubからの読み込み、および評価を使用します。
モデルの詳細については、DM0.5技術ブログ、OpenDMリポジトリ、およびDexmal/DM05のリリースを参照してください。
インストール
pip install -e ".[training,dm05]" # training
pip install -e ".[libero,dm05]" # LIBERO evaluation on Linuxチェックポイント
lerobot/dm05_base を --policy.path と併せて使用してください。これは生の OpenDM チェックポイントの自己完結型 LeRobot 変換であり、DM05Policy.from_pretrained() をサポートしています。
ベースのconfigは、OpenDMの14次元の状態/アクション契約を記録しています。DM05のコアモデルは最大32次元をサポートしており、新規のファインチューニングでは、ターゲットデータセットから有効な画像、状態、アクションの特徴を解決します。
データセットの契約
DM05は、以下の条件を満たす標準的なLeRobotデータセットを受け入れます:
- 1つ以上の画像または動画の観測;
observation.state;action;- タスクの説明。
カメラの順序を明示する必要がある場合は、policy.image_keysを設定してください。RoboTwin、ALOHA、その他のソースは、標準的なLeRobotスキーマへの変換後、DM05専用のリーダーを必要としません。標準的なobservation.stateおよびactionキーを維持し、rename_mapはカメラ名の整合を取るためにのみ使用してください。
トレーニング
LIBEROレシピはOpenDMに従います:
lerobot-train \
--dataset.repo_id=lerobot/libero \
--rename_map='{"observation.images.image": "observation.images.front", "observation.images.image2": "observation.images.wrist"}' \
--dataset.video_backend=pyav \
--policy.path=lerobot/dm05_base \
--policy.add_state=false \
--policy.chunk_size=10 \
--policy.n_action_steps=10 \
--policy.repo_id=your_repo_id \
--output_dir=outputs/train/dm05-libero \
--steps=50000 \
--batch_size=8 \
--policy.device=cuda主要な学習パラメータ
| パラメータ | LIBERO 値 | 意味 |
|---|---|---|
dataset.repo_id | lerobot/libero | 標準的なLeRobot学習データセット |
policy.path | lerobot/dm05_base | 自己完結型ベースチェックポイント |
rename_map | image/image2 を front/wrist に | evalコマンドとlerobot/dm05_liberoで使用されるカメラ名 |
policy.add_state | false | OpenDMのLIBEROプロンプトに一致し、状態トークンなし |
policy.use_relative_actions | false(チェックポイントのデフォルト) | 保存されたアクションをそのまま学習します。相対モードは明示的なオプトインです |
policy.chunk_size | 10 | チャンクごとに予測されるアクション数 |
policy.n_action_steps | 10 | 次のモデル呼び出しの前に実行される回数。最大chunk_size |
policy.repo_id | your_repo_id | Hubの保存先。ローカルでのみ実行する場合はpolicy.push_to_hub=falseを使用します |
Environment control modeは、policy actionの表現とは独立して設定されます。Relative modeでは、state/actionの次元が一致している必要があります。
カメラ
カメラセットはポリシー設定の一部であり、プロンプトは常にそのカメラのみをレンダリングします。lerobot/dm05_base からファインチューニングを行う場合、このモデルではカメラが宣言されていないため、学習データセットのカメラが使用されます。ファインチューニングされたチェックポイントは、独自のカメラ名を保持します。異なる名前のデータセットをこれらにマッピングするには、--rename_map を使用します。例えば、--rename_map='{"observation.images.top": "observation.images.front"}' のように指定します。
正規化統計
Trainingでは、meta/stats.json内のデータセットの状態/アクション統計情報を使用します。アクション統計は、Trainingで使用される表現と一致する必要があります。policy.use_relative_actions=trueの場合、相対アクション変換後に、同じチャンクサイズと除外次元を使用して計算してください。相対アクションガイドを参照してください。
評価
LIBEROのチェックポイントlerobot/dm05_liberoは50,000ステップで学習され、各タスク5エピソードでLIBEROの全40タスクについて評価されました:
MUJOCO_GL=egl lerobot-eval \
--policy.path=lerobot/dm05_libero \
--env.type=libero \
--env.task=libero_spatial,libero_object,libero_goal,libero_10 \
--env.camera_name_mapping='{"agentview_image":"front","robot0_eye_in_hand_image":"wrist"}' \
--env.observation_height=256 \
--env.observation_width=256 \
--env.control_mode=relative \
--eval.n_episodes=5 \
--eval.batch_size=1 \
--seed=7 \
--policy.device=cuda| スイート | 成功事例 |
|---|---|
| 空間 | 49/50 |
| オブジェクト | 50/50 |
| 目標 | 50/50 |
| LIBERO-10 | 48/50 |
| 合計 | 197/200 (98.5%) |
これは2,000エピソードのLIBEROベンチマークプロトコルではなく、200エピソードの再現性チェックです。
チェックポイントのレイアウト
ポリシーの重み、設定、プロセッサの状態を含む完全なチェックポイントディレクトリを使用してください。単体のmodel.safetensorsでは、学習や推論には不十分です。
ライセンス
LeRobot統合はApache-2.0ライセンスです。モデルの重みは、対応するDM05モデルカードに添付されているライセンスに従います。
Update on GitHub