关于 physicalai-train-training-a-policy
此技能介绍如何使用 physicalai 库训练策略,面向通过 Python API 或命令行开展工作的开发者。内容涵盖模型、数据模块与 Trainer 的配置、冒烟测试,以及基于检查点进行验证或预测。
主要功能
- 01通过 Python API 或命令行训练
- 02配置策略、数据模块和 Trainer
- 03解析并覆盖 YAML 配置
- 04使用 fast_dev_run 进行冒烟测试
- 05基于检查点验证、测试和预测
适用场景
- 01运行策略训练实验
- 02训练前检查配置与数据连接
- 03验证或测试已保存的检查点
- 04排查模型、数据模块或命令行设置
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ open-edge-platform/ physical-ai-studio --skill physicalai-train-training-a-policy安装后在 Claude Code 中输入/physicalai-train-training-a-policy确认已加载。
详细介绍
训练策略(库)
训练使用 physicalai.train.Trainer(library/src/physicalai/train/trainer.py,lightning.Trainer 的子类),并搭配一个 Policy 和一个 DataModule。该库刻意支持两种同等的入口:
- 命令行界面 —
physicalai fit(以及validate、test、predict):使用library/configs/下由 jsonargparse 解析的 YAML 配置,并可在命令行中覆盖;默认将检查点保存到experiments/{name}/version_N/。请参阅library/docs/how-to/training/cli.md。 - Python API — 构建
Policy、LeRobotDataModule(或其他数据模块)和Trainer,然后调用trainer.fit(model=policy, datamodule=datamodule)(以及根据需要使用检查点调用validate/test/predict)。请参阅library/docs/getting-started/quickstart.md和library/docs/explanation/trainer/README.md。
命令行子命令和 Python API 共用相同的对象;YAML 中的 class_path / init_args 应与代码中的配置一致。
四个命令行子命令共用相同的 --model / --data / --trainer.* 参数结构(参见 cli/_dispatch.py);validate / test / predict 还需指定 --ckpt_path。如果任务关注的是库的行为,而非命令行用法,请优先采用 Python API 路径,然后在面向用户的改动中验证命令行行为是否一致。
配置剖析
配置通过 class_path / init_args 连接以下三个部分:
model—Policy子类(例如physicalai.policies.ACT)。data—DataModule,通常为带有repo_id(例如lerobot/pusht)的physicalai.data.lerobot.LeRobotDataModule。trainer— Lightning 参数(max_epochs、accelerator、devices、回调等)。
第一方配置位于 library/configs/physicalai/<policy>/<embodiment>/ 下;由 LeRobot 封装的配置位于 library/configs/lerobot/ 下。使用 __base__ 组合配置,并可在命令行中覆盖任意字段(--trainer.max_epochs 200 --data.train_batch_size 64)。
Python API 工作流
当用户需要代码、笔记本、测试、直接集成库,或修改 Trainer、Policy 或数据模块时,请使用此路径。
from physicalai.data import LeRobotDataModule
from physicalai.policies import ACT
from physicalai.train import Trainer
datamodule = LeRobotDataModule(repo_id="lerobot/pusht", train_batch_size=2)
policy = ACT()
trainer = Trainer(fast_dev_run=True)
trainer.fit(model=policy, datamodule=datamodule)
- 构建与命令行将实例化的相同对象:
Policy、DataModule和Trainer。- 完成标准:无需依赖 jsonargparse YAML 即可完成构建。
- 对 API 连线进行冒烟测试,使用
Trainer(fast_dev_run=True)。- 完成标准:一个训练批次和一个验证批次均能完成,且没有形状或特征错误。
- 从 Python 执行验证 / 测试 / 预测,使用对应的
Trainer方法,并在需要时传入ckpt_path。- 完成标准:API 调用与等效的命令行命令在检查点和配置行为上保持一致。
命令行工作流
当用户需要终端命令、library/docs/how-to/ 下的文档、YAML 配置、可复现的实验或入口行为时,请使用此路径。
- 从与策略系列匹配的现有配置开始;复制该配置,而不是从头编写。
- 完成标准:运行
physicalai fit --config <your.yaml> --print_config后,可无错误地输出完全解析后的配置。
- 完成标准:运行
- 在正式运行前对连线进行冒烟测试:
physicalai fit --config configs/physicalai/<policy>/<embodiment>/<config>.yaml --trainer.fast_dev_run=true- 完成标准:一个训练批次和一个验证批次均能完成,且没有形状或配置错误。
- 运行训练,并根据需要在命令行中覆盖参数:
physicalai fit --config configs/physicalai/<policy>/<embodiment>/<config>.yaml --trainer.max_epochs 200- 完成标准:检查点出现在
experiments/{name}/version_N/下。
- 完成标准:检查点出现在
- 从检查点执行验证 / 测试 / 预测:
physicalai validate --config configs/physicalai/<policy>/<embodiment>/<config>.yaml --ckpt_path experiments/<name>/version_0/checkpoints/last.ckpt - 根据指标迭代,而不只是关注损失 — 确认与任务相关的验证指标有所改善,并记录产生该指标的配置和检查点。
调试一次运行
- API:在简短脚本或测试中直接构造
Policy、DataModule和Trainer,以隔离故障究竟出在对象构造、数据加载还是 CLI 解析。 --trainer.fast_dev_run=true— 每个阶段运行一个批次;遇到任何故障时,首先尝试此项。--print_config— 查看 jsonargparse 构建的确切解析后配置。- 形状或特征不匹配通常意味着数据模块的
Feature名称或动作维度与策略不一致 — 对照physicalai-train-adding-a-policy技能检查。 - 数据集下载停滞:运行正在拉取 LeRobot
repo_id;请参阅physicalai-train-working-with-datasets技能。
必需检查
- 配置解析成功(
--print_config),且fast_dev_run通过,然后再进行长时间运行。 - 对于面向库的更改,等效的 Python API 构造路径能够通过。
accelerator/devices与已安装的后端额外组件(xpu/cuda/cpu)匹配。- 新增或重命名的配置字段与策略的
Config类保持一致。 - 展示训练命令的文档代码块仍能通过
tests/test_docs.py。
验证
# from library/
physicalai fit --config configs/physicalai/<policy>/<embodiment>/<config>.yaml --trainer.fast_dev_run=true
uv run --no-sync pytest tests/unit/train
对于面向 API 的更改,添加或运行一个等效的 Python 冒烟测试(而非 shell heredoc),直接构造 Policy、DataModule 和 Trainer,并调用 trainer.fit(...)。
相关技能
physicalai-train-adding-a-policy— 模型本身需要更改时使用。physicalai-train-working-with-datasets— 用于配置中的data部分。physicalai-train-benchmarking-a-policy— 在 gym 中评估训练好的检查点。