ACT 模型训练
ACT(Action Chunking Transformer)来自 ALOHA 工作,官方实现位于 tonyzhaozh/act,论文为 Learning Fine-Grained Bimanual Manipulation with Low-Cost Hardware。官方代码以 HDF5 episode 为训练输入。
艾欧智能已经基于官方 ACT 实现构建并发布 ioaitech/train_act:cuda Docker 镜像。该镜像包含 CUDA 训练环境、ACT 训练依赖、LeRobot 到 HDF5 episode 的转换层,以及标准 ACT 训练入口。因此读者可以直接挂载 LeRobot 数据集训练,不需要先手动整理官方 HDF5 数据。
国内镜像
镜像默认发布在 Docker Hub:ioaitech/train_act:cuda。中国大陆环境可改为 swr.cn-east-3.myhuaweicloud.com/ioaitech/train_act:cuda。
何时使用
ACT 适合任务边界清晰、动作模式相对稳定的模仿学习任务。它不依赖大规模语言模型,训练链路比 Pi0/Pi0.5 更直接;代价是跨任务泛化能力通常不如 VLA 基座模型。
优先考虑 ACT 的情况:
- 数据来自同一机器人、同一任务或少量相近任务。
- 希望快速得到一个可部署的单任务策略。
- 语言指令不是主要变量,任务名主要用于实验管理。
- 你愿意通过多 checkpoint 实机评估,而不是只看最终 loss。
官方 ACT README 明确建议:真实世界任务在 loss 平台后仍可能继续改善,必要时应延长训练并比较多个 checkpoint。
数据要求
镜像输入为 LeRobot 数据集,容器内路径固定为 /data/input。至少需要:
your_dataset/
├── meta/
│ └── info.json
├── data/
└── videos/
转换层会读取:
observation.state:写入 ACT HDF5 的observations/qpos,不足 16 维会补零,超过 16 维会截断。action:写入 HDF5 的action,同样按 16 维处理。observation.images.*:自动推断相机字段,也可以用--camera_keys显式指定。
如果你的机器人状态不是 16 维,务必确认补零或截断是否符合下游控制接口。文档示例以跑通训练为目标,不代表任何机器人都可以直接部署。
使用镜像训练
先做 GPU 自检:
docker run --rm --gpus all nvidia/cuda:12.1.0-base-ubuntu22.04 nvidia-smi