LeRobot documentation
用于 LeRobot 的 DM0.5
用于 LeRobot 的 DM0.5
DM05(也发布为 DM0.5)是 Dexmal 用于开放世界机器人控制的视觉-语言-动作模型。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()。
基础配置记录了 OpenDM 的 14 维状态/动作契约。DM05 的核心模型最多支持 32 维;新的微调会从目标数据集中解析出有效的图像、状态和动作特征。
数据集合约
DM05 接受标准的 LeRobot 数据集,其包含:
- 一个或多个图像或视频观测;
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 |
环境控制模式与策略动作表示是分开配置的。相对模式要求状态/动作维度相匹配。
相机
相机集是策略配置的一部分,提示词始终只渲染这些相机。从声明了空相机集的 lerobot/dm05_base 开始微调时,将采用训练数据集中的相机。微调后的检查点会保留其自身的相机名称:如果数据集使用了不同的名称,请使用 --rename_map 将它们映射到检查点的相机名称上,例如 --rename_map='{"observation.images.top": "observation.images.front"}'。
归一化统计
训练使用 meta/stats.json 中数据集的状态/动作统计信息。动作统计信息必须与训练时使用的表示形式相匹配。当设置 policy.use_relative_actions=true 时,请在相对动作变换之后计算这些统计信息,并使用相同的块大小和排除维度。请参阅相对动作指南。
评估
LIBERO 检查点 lerobot/dm05_libero 训练了 50,000 步,并在全部 40 个 LIBERO 任务上进行了评估,每个任务运行 5 个回合:
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%) |
这是一项 200 回合的复现检查,而非 2,000 回合的 LIBERO 基准测试协议。
检查点布局
请使用完整的检查点目录,其中包含策略权重、配置和处理器状态。单独的 model.safetensors 不足以用于训练或推理。
许可证
LeRobot 集成采用 Apache-2.0 许可证。模型权重遵循对应 DM05 模型卡上附带的许可证。
Update on GitHub