【MicroDuck RL 04】训练:一条命令背后发生了什么

:books: 《MicroDuck RL:训练机器鸭从仿真走到真机》 系列课程 · 第 04 集 / 共 14 集
上一集:【MicroDuck RL 03】环境配置全过程(含踩坑记录) | :open_book: 课程目录 | 下一集:【MicroDuck RL 05】解剖主任务 Velocity 行走:观测、奖励、域随机化与课程学习

环境就绪,这一集开始训练,并把一条命令背后的每个参数讲清楚。

启动命令

uv run train Mjlab-Velocity-Flat-MicroDuck \
    --env.scene.num-envs 4096 \
    --agent.logger tensorboard
  • --env.scene.num-envs 4096:4096 个平行仿真环境。这是吞吐量的核心——每次 PPO 更新有 4096 × 24 = 98304 步经验。
  • --agent.logger tensorboard:默认 logger 是 wandb(需要账号登录)。没有 wandb 账号就改用 tensorboard,日志落在本地 logs/rsl_rl/velocity/<时间戳>_velocity/,功能上不缺东西。

关键参数(默认值)

用 uv run train <TASK> --help 可以查看全部参数,重点几个:

参数 默认 含义
物理步长 0.005 s MuJoCo 每步仿真 5 ms
decimation 4 每 4 个物理步执行一次控制 → 控制周期 0.02 s = 50 Hz
回合时长 20 s 每个环境每 20 s 重置一次
--agent.max-iterations 50000 最大训练迭代数
--agent.save-interval 250 每 250 迭代存一个 model_*.pt checkpoint
学习率 1e-3,adaptive 按 KL 散度自适应调整
epochs / minibatches 5 / 4 每批经验的 PPO 更新结构

一次迭代的流程

  1. 4096 个环境各走 24 步(策略推理,GPU 上并行);
  2. 计算每步奖励、终止、优势(GAE);
  3. PPO 更新(5 epochs × 4 minibatches);
  4. 写日志(tensorboard),每 250 迭代存 checkpoint。

实测性能(RTX 5080)

指标 数值
单迭代耗时 ≈ 1.13 s
显存占用 ≈ 7.3 GB / 16 GB
GPU 利用率 ≈ 84%
参考预算 简单技巧任务 ~1000 迭代;步态类 4000–6000 迭代(来自项目经验文档)

断点续训

uv run train Mjlab-Velocity-Flat-MicroDuck --env.scene.num-envs 4096 \
    --agent.run-name resume \
    --agent.load-checkpoint model_2000.pt \
    --agent.resume True

冒烟测试(改完配置先跑这个!)

uv run train Mjlab-Velocity-Flat-MicroDuck --env.scene.num-envs 64 --agent.max-iterations 5

项目文档原话:64 环境 5 迭代的冒烟测试能提前抓住 ~95% 的配置错误,成本几乎为零。正式长训练之前永远先跑它。

下一集进入本系列最硬核的部分:逐行解剖这个任务的观测、奖励、域随机化和课程学习。


:open_book: 系列课程目录:【系列课程】MicroDuck 强化学习:训练机器鸭从仿真走到真机 · 课程目录与导读