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 对应的输出目录必须为空 |
创建训练任务与参数
操作步骤
- 在训练页面新建训练任务,模型选择
act。 - 选择数据来源:平台导出记录、外部 URL 或本地上传的 LeRobot 数据集。
- 选择数据集版本
v2或v3,与数据集实际格式一致。 - 配置参数,其中
run_name与camera_keys建议显式填写。 - 选择计算资源并提交任务。
训练参数
参数默认值与取值范围:
| 参数 | 说明 | 默认值 | 取值范围 |
|---|---|---|---|
batch_size | 批次大小 | 64 | ≥ 1 |
num_epochs | 训练轮数 | 12000 | ≥ 0;大于 0 时优先使用 |
steps | num_epochs 的别名 | 0 | ≥ 0;仅 num_epochs 为 0 且 steps 大于 0 时生效 |
learning_rate | 主学习率 | 5e-5 | > 0 |
save_interval | 轮次存档间隔 | 6000 | ≥ 1;取默认值时按 num_epochs 的一半 |
seed | 随机种子 | 42 | 整数 |
num_workers | DataLoader worker 数 | 0 | ≥ 0;容器内建议 0 |
policy_class | 策略类型 | ACT | 固定 ACT |
kl_weight | KL 项权重 | 10 | ≥ 0 |
chunk_size | 动作 chunk 长度 | 100 | ≥ 1 |
hidden_dim | Transformer 隐层维度 | 512 | ≥ 1 |
dim_feedforward | FFN 隐层维度 | 3200 | ≥ 1 |
task_name | 任务名 | auto | auto 或字符串 |
run_name | 运行名 | 空,自动生成时间戳名称 | 字母、数字、点、下划线、连字符,长度不超过 128 |
camera_keys | LeRobot 视觉字段 | 空,自动推断 | 逗号分隔的字段名 |
camera_names | ACT 相机名 | 空,按 camera_keys 生成 | 与 camera_keys 数量一致且不重复 |
episode_len | 覆盖 episode 长度 | 0 | ≥ 0;0 表示自动检测 |
idle_threshold | 静止帧过滤阈值 | 1e-4 | ≥ 0 |
max_episodes | 仅转换前 N 个 episode | 0 | ≥ 0;0 表示全量 |
convert_workers | 转换并发 worker 数 | 0 | ≥ 0;0 表示自动策略,上限 8 |
keep_converted_hdf5 | 保留中间 HDF5 | false | 布尔 |
多卡训练时 batch_mode 固定为 fixed_global,不单独暴露。首次验证数据链路可按最小配置提交:num_epochs 设为 1、batch_size 设为 8、max_episodes 设为 2。