您的足迹: 训练与评估

LeRobot 训练与评估

本页面概述 LeRobot 的训练和评估系统:涉及的脚本、配置如何流入流水线,以及训练和评估之间的关系。

返回概述

系统概览

训练和评估共享一个通用结构:配置数据类驱动所有选择,工厂层实例化数据集、策略和环境,循环处理数据流。评估集成在训练中(定期运行 rollout),也可通过 lerobot-eval 独立运行。

CLI 入口

命令 脚本 配置类 主函数
lerobot-train lerobot/scripts/lerobottrain.py | TrainPipelineConfig | train() | | lerobot-eval | lerobot/scripts/leroboteval.py EvalPipelineConfig eval_main()

训练流水线

train() 函数是监督离线训练的单一入口点。它使用 Hugging Face Accelerator 进行设备管理、混合精度和多 GPU 支持。

lerobot-train --policy.type=act --dataset.repo_id=lerobot/pusht --training.output_dir=./output

训练配置

TrainPipelineConfig 是训练的唯一根数据类,包含以下子配置:

  • 策略配置:选择策略类型和超参数
  • 数据集配置:指定数据集路径或 Hub repo_id
  • 训练配置:批量大小、学习率、epoch 数等
  • 评估配置:评估频率和 rollout 参数

所有子配置在启动时通过 validate() 方法验证。

优化器和学习率调度器

LeRobot 支持多种优化器和学习率调度器:

  • 优化器:AdamW、SGD 等
  • 调度器:Cosine annealing、StepLR、Constant 等
  • 支持 warmup 阶段

多 GPU 和分布式训练

通过 Hugging Face Accelerator 实现:

  • 自动设备放置
  • 混合精度训练(FP16/BF16)
  • 多 GPU 数据并行
  • 梯度累积支持

评估流水线

评估在向量化仿真环境中运行 rollout 并报告汇总指标。

eval() 函数

lerobot-eval CLI 调用,也可在训练过程中定期触发:

lerobot-eval --policy.type=act --policy.pretrained_model_name_or_path=./output/checkpoint

rollout()

在所有环境的 VectorEnv 中运行一批 episodes。滚动直到所有环境完成或达到 max_steps,返回形状为 (batch, sequence, *) 的动作、奖励、成功和完成张量。

强化学习

除了监督学习,LeRobot 还支持强化学习流水线:

  • HIL-SERL:人类介入的强化学习框架
  • TDMPC:基于模型预测控制的强化学习
  • 奖励建模:通过 RewardModelConfig 支持自定义奖励函数和基于 Hub 的奖励模型共享

策略和处理器连线

训练和评估都使用工厂函数实例化策略及其处理器:

  • makepolicy():根据配置创建策略实例 * makeenv():创建仿真环境
  • makeenvprepostprocessors():创建环境和策略之间的预处理器和后处理器

相关页面

评论

请输入您的评论. 可以使用维基语法:
 
机器人/lerobot/训练与评估.txt · 最后更改: 2026/07/14 05:33