跳到主要内容

ACT 模型训练

ACT(Action Chunking with Transformers,动作分块 Transformer)来自 ALOHA 工作,官方实现位于 tonyzhaozh/act。平台以模型标识 act 注册该策略,输入为 LeRobot v2 或 v3 数据集;训练在容器内先将 LeRobot 数据转换为 ACT 的 HDF5 episode,再执行训练。

适用角色与前提​

适用角色​

角色使用场景依赖
算法工程师为单任务或相近任务微调 ACT 策略训练与数据集模块权限
项目经理跟进 ACT 训练任务的进度与产物训练任务查看权限
数据提供方提供满足字段与维度要求的数据集数据导出模块权限

前置条件​

项要求
数据集版本LeRobot v2 或 v3
数据集结构含 meta/info.json;data/ 下有 parquet;视频字段位于 videos/
数据字段含 observation.state 与 action,且两者维度一致
相机字段features 中 dtype 为 video 的字段构成视觉输入,可用 camera_keys 指定
训练框架ACT 原生(PyTorch)或 LeRobot,默认 ACT 原生
计算资源GPU 容器;显存需求随 batch_size 与相机数量变化,平台未设固定门槛
运行名run_name 对应的输出目录必须为空

创建训练任务与参数​

操作步骤​

  1. 在训练页面新建训练任务,模型选择 act。
  2. 选择数据来源:平台导出记录、外部 URL 或本地上传的 LeRobot 数据集。
  3. 选择数据集版本 v2 或 v3,与数据集实际格式一致。
  4. 配置参数,其中 run_name 与 camera_keys 建议显式填写。
  5. 选择计算资源并提交任务。

训练参数​

参数默认值与取值范围:

参数说明默认值取值范围
batch_size批次大小64≥ 1
num_epochs训练轮数12000≥ 0;大于 0 时优先使用
stepsnum_epochs 的别名0≥ 0;仅 num_epochs 为 0 且 steps 大于 0 时生效
learning_rate主学习率5e-5> 0
save_interval轮次存档间隔6000≥ 1;取默认值时按 num_epochs 的一半
seed随机种子42整数
num_workersDataLoader worker 数0≥ 0;容器内建议 0
policy_class策略类型ACT固定 ACT
kl_weightKL 项权重10≥ 0
chunk_size动作 chunk 长度100≥ 1
hidden_dimTransformer 隐层维度512≥ 1
dim_feedforwardFFN 隐层维度3200≥ 1
task_name任务名autoauto 或字符串
run_name运行名空,自动生成时间戳名称字母、数字、点、下划线、连字符,长度不超过 128
camera_keysLeRobot 视觉字段空,自动推断逗号分隔的字段名
camera_namesACT 相机名空,按 camera_keys 生成与 camera_keys 数量一致且不重复
episode_len覆盖 episode 长度0≥ 0;0 表示自动检测
idle_threshold静止帧过滤阈值1e-4≥ 0
max_episodes仅转换前 N 个 episode0≥ 0;0 表示全量
convert_workers转换并发 worker 数0≥ 0;0 表示自动策略,上限 8
keep_converted_hdf5保留中间 HDF5false布尔

多卡训练时 batch_mode 固定为 fixed_global,不单独暴露。首次验证数据链路可按最小配置提交:num_epochs 设为 1、batch_size 设为 8、max_episodes 设为 2。

结果校验​

训练监控​

训练日志输出 Epoch N 与 Val loss: X。平台将 epoch 记为训练步、验证损失记为 loss,用于训练详情页的损失曲线。

指标含义
Epoch当前训练轮次
Val loss验证损失

校验清单​

校验项通过标准
检查点目录生成 checkpoints/<run_name>/
检查点文件含 policy_last.ckpt、policy_best.ckpt;按 save_interval 生成 policy_epoch_<epoch>_seed_<seed>.ckpt
数据集统计生成 dataset_stats.pkl
运行清单manifest.json 的 state_dim、num_episodes、camera_keys、camera_names 与所选数据集一致
损失曲线Val loss 随训练下降
中间产物未开启 keep_converted_hdf5 时,转换产生的 HDF5 在训练结束后清理

异常处置​

现象可能原因处置责任方
启动报运行名已存在输出目录下同名 run_name 目录非空更换 run_name 后重试训练配置方
报相机名与相机字段数量不一致camera_names 与 camera_keys 数量不同或相机名重复使两者数量一致且名称唯一训练配置方
报状态与动作维度不一致数据集 observation.state 与 action 维度不同修正数据集使两者维度一致数据提供方
报未找到相机字段features 中无可用 video 字段,或 camera_keys 指定错误核对 meta/info.json 的 features,显式指定 camera_keys数据提供方、训练配置方
报数据集缺少必要列parquet 缺少 episode_index、frame_index、observation.state 或 action补齐数据集列后重新导出数据提供方
显存不足batch_size 与相机数量过大下调 batch_size训练配置方
多卡训练不稳定转换阶段的磁盘与内存压力保持 num_workers 为 0,下调 convert_workers训练配置方

相关页面​

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