跳到主要内容

π0 与 π0.5 模型微调

π0 与 π0.5 是 Physical Intelligence 的视觉-语言-动作(Vision-Language-Action,VLA)策略,训练链路来自 OpenPI。π0 与 π0.5 即 OpenPI 仓库中的 openpi-0 与 openpi-0.5,官方写法为 π₀ 与 π₀.₅,对应的模型标识为 pi0 与 pi05,基础权重为 pi0_base 与 pi05_base。平台以这两个标识注册模型,两者均支持 jax 与 lerobot 两种训练框架,支持 LeRobot v2 与 v3 数据集。

适用角色与前提​

适用角色​

角色是否可创建训练任务说明
管理员是不受模块权限限制
项目经理需授权由管理员在模块权限中授予 「创建训练任务」
标注员需授权同上
审核员需授权同上
采集员需授权同上

仅查看训练任务与指标需「查看训练」。

前置条件​

项要求
数据集版本LeRobot v2、v3。训练服务按数据集 meta/info.json 的 codebase_version 识别版本并选择训练镜像
框架jax(OpenPI 链路)、lerobot
显存单卡启用 LoRA 时约 22.5 GB 起;全量微调约 70 GB 起
依赖平台的模型训练服务已启用并配置至少一个训练位置;jax 框架使用 OpenPI 训练镜像,lerobot 框架按数据集版本选择 LeRobot 训练镜像
数据集结构目录内包含 meta/info.json、data/ 与 videos/
权限创建需「创建训练任务」,查看需「查看训练」

创建训练任务与参数​

操作步骤​

  1. 进入「模型」→「训练」,点击「创建训练任务」。
  2. 选择训练位置,可选本机 GPU 或管理员已启用的云训练位置。
  3. 在「选择模型」中选中 pi0 或 pi05。
  4. 在「训练框架」中选择 jax 或 lerobot。框架决定「训练参数」中显示的参数集合。
  5. 在「训练数据集」中选择数据来源:导出记录、已上传 LeRobot 数据集、下载链接或 HuggingFace。
  6. 在「训练参数」中设置参数,含义与默认值见下表。
  7. 填写备注(可选)。
  8. 点击「创建训练任务」。

训练参数​

jax 框架与 lerobot 框架使用两套参数。jax 框架面向 OpenPI 训练入口:

参数说明默认值取值范围
batch_size全局批大小1整数,≥ 1
steps训练步数10000整数,≥ 1
save_intervalcheckpoint 保存间隔5000整数,≥ 1,且不大于 steps
learning_rate余弦衰减调度的峰值学习率2.5e-5浮点数,> 0
fsdp_devicesFSDP 设备数autoauto 或正整数;不超过可见 GPU 数并为其因数
ema_decayEMA 衰减系数未启用0 < x ≤ 1;启用 LoRA 时忽略
action_horizon每次预测的动作序列长度50整数,≥ 1
prompt数据集缺少任务文本时的默认指令空字符串

lerobot 框架先应用通用训练参数:

参数说明默认值取值范围
batch_size批次大小1整数,≥ 1
steps训练步数10000整数,≥ 1
seed随机种子1000整数
num_workersDataLoader 进程数4整数,≥ 1
eval_freq评估间隔1000整数,≥ 1,且不大于 steps
log_freq日志间隔100整数,≥ 1,且不大于 steps
save_freqcheckpoint 保存间隔5000整数,≥ 1,且不大于 steps
save_checkpoint是否保存 checkpointtruetrue / false

再追加 policy. 前缀的模型参数:

参数说明默认值取值范围
policy.n_obs_steps输入观测步数1整数
policy.chunk_size动作预测长度50整数
policy.n_action_steps单次调用执行的动作步数50整数
policy.max_state_dim状态向量补齐维度32整数
policy.max_action_dim动作向量补齐维度32整数
policy.num_inference_steps推理去噪步数10整数
policy.dtype模型数据类型bfloat16bfloat16、float32
policy.tokenizer_max_length分词最大长度pi0 为 48,pi05 为 200整数
policy.optimizer_lr优化器学习率2.5e-5浮点数
policy.optimizer_weight_decay权重衰减0.0浮点数
policy.optimizer_grad_clip_norm梯度裁剪阈值1.0浮点数
policy.scheduler_warmup_steps学习率预热步数1000整数
policy.scheduler_decay_steps学习率衰减步数10000整数
policy.scheduler_decay_lr衰减后的最终学习率0.0浮点数

结果校验​

训练监控​

训练详情页按框架解析日志并绘制指标曲线。jax 框架的指标口径:

指标含义判断标准
step已完成训练步数逐步递增至设定的 steps
loss训练损失总体下降;长时间不下降时检查学习率与数据
gradient_norm梯度范数无持续增大
param_norm参数范数随训练缓慢变化

lerobot 框架的指标口径:

指标含义判断标准
step已完成训练步数逐步递增至设定的 steps
sample已处理样本数随 step 递增
episode已处理 episode 数随 step 递增
epoch已训练轮次随 step 递增
loss训练损失总体下降
gradient_norm梯度范数无持续增大
learning_rate当前学习率按调度策略变化
update_time_s单步更新时间稳定,无持续增大
data_time_s数据加载时间稳定

校验清单​

训练服务按容器退出码判定任务终态:退出码为 0 记为成功,非 0 记为失败。

校验项通过标准
任务状态训练详情页状态为「成功」,容器退出码为 0
产物目录jax 框架写入输出目录下的 docker_train/train/;lerobot 框架写入 checkpoints/
检查点「模型输出」列出 checkpoint,jax 内容含 params/,lerobot 内容含 pretrained_model/;last 指向的条目类型为「最终」,其余为「步骤」
指标曲线「训练指标」绘制 jax 的 step、loss、gradient_norm;lerobot 另含 sample、episode、epoch、learning_rate
日志「实时日志」可读取,无持续报错

「模型输出」中的 checkpoint 可下载、同步到对象存储,或用于创建推理服务;推理侧说明见模型推理。

异常处置​

现象可能原因处置责任方
训练立即失败,提示找不到数据集数据集缺少 meta/info.json,或所选来源路径错误重新选择正确的导出记录或已上传数据集项目经理
显存不足batch_size 过大;单卡执行全量微调降低 batch_size;单卡保持 LoRA 启用算法工程师
提示 FSDP 设备数非法fsdp_devices 大于可见 GPU 数,或不能被其整除将 fsdp_devices 改为 auto,或改为可见 GPU 数的因数算法工程师
提示保存间隔大于训练步数save_interval 或 save_freq 大于 steps将保存间隔调小至不超过 steps算法工程师
单卡与多卡结果差异大单卡默认 LoRA、多卡默认 FSDP,训练参数量不同固定框架、fsdp_devices、batch_size 与随机种子后重新比较算法工程师
loss 长时间不下降学习率不合适、任务文本缺失、数据覆盖不足检查 prompt 与数据集;调整 learning_rate算法工程师
训练位置不可用平台未启用该训练位置,或该位置 GPU 不可用更换训练位置;联系管理员检查训练服务管理员

相关页面​

页面用途
模型训练训练任务的创建、监控与配额
LeRobot 数据集与训练数据导出与训练总览
LeRobot v2 与 v3 格式差异两种数据格式的差异与迁移
数据导出生成 LeRobot 训练包