本页面概述 LeRobot 的训练和评估系统:涉及的脚本、配置如何流入流水线,以及训练和评估之间的关系。
训练和评估共享一个通用结构:配置数据类驱动所有选择,工厂层实例化数据集、策略和环境,循环处理数据流。评估集成在训练中(定期运行 rollout),也可通过 lerobot-eval 独立运行。
| 命令 | 脚本 | 配置类 | 主函数 |
|---|---|---|---|
lerobot-train | lerobot/scripts/lerobottrain.py | EvalPipelineConfig | eval_main() |
train() 函数是监督离线训练的单一入口点。它使用 Hugging Face Accelerator 进行设备管理、混合精度和多 GPU 支持。
lerobot-train --policy.type=act --dataset.repo_id=lerobot/pusht --training.output_dir=./output
TrainPipelineConfig 是训练的唯一根数据类,包含以下子配置:
所有子配置在启动时通过 validate() 方法验证。
LeRobot 支持多种优化器和学习率调度器:
通过 Hugging Face Accelerator 实现:
评估在向量化仿真环境中运行 rollout 并报告汇总指标。
从 lerobot-eval CLI 调用,也可在训练过程中定期触发:
lerobot-eval --policy.type=act --policy.pretrained_model_name_or_path=./output/checkpoint
在所有环境的 VectorEnv 中运行一批 episodes。滚动直到所有环境完成或达到 max_steps,返回形状为 (batch, sequence, *) 的动作、奖励、成功和完成张量。
除了监督学习,LeRobot 还支持强化学习流水线:
RewardModelConfig 支持自定义奖励函数和基于 Hub 的奖励模型共享训练和评估都使用工厂函数实例化策略及其处理器:
makepolicy():根据配置创建策略实例
* makeenv():创建仿真环境makeenvprepostprocessors():创建环境和策略之间的预处理器和后处理器