ACT (Action Chunking with Transformers)
ACT 是一个轻量级且高效的模仿学习策略,特别适合精细操作任务。由于其快速的训练时间、低计算要求和强大的性能,它是我们推荐初学者使用 LeRobot 时的首选模型。
观看 LeRobot 团队的教程了解 ACT 的工作原理:LeRobot ACT 教程
模型概述
Action Chunking with Transformers (ACT) 在 Zhao 等人的论文 Learning Fine-Grained Bimanual Manipulation with Low-Cost Hardware 中提出。该策略旨在使用经济实惠的硬件和最少的演示数据实现精确的、接触丰富的操作任务。
为什么 ACT 非常适合初学者
ACT 作为一个出色的起点有几个原因:
- 快速训练:在单个 GPU 上几小时内完成训练
- 轻量级:仅约 80M 参数,使其高效且易于使用
- 数据高效:通常仅需 50 个演示即可达到高成功率
架构
ACT 使用基于 Transformer 的架构,包含三个主要组件:
- 视觉主干网络:ResNet-18 处理来自多个摄像头视角的图像
- Transformer 编码器:综合来自摄像头特征、关节位置和学习到的潜在变量的信息
- Transformer 解码器:使用交叉注意力生成连贯的动作序列
策略的输入包括:
- 多个 RGB 图像(例如来自腕部摄像头、前置/顶部摄像头)
- 当前机器人关节位置
- 潜在风格变量
z(在训练期间学习,在推理期间设置为零)
输出 k 个未来动作序列的块。
安装要求
- 按照我们的安装指南安装 LeRobot。
- ACT 包含在 LeRobot 基础安装中,因此不需要额外的依赖项!
训练 ACT
ACT 与标准 LeRobot 训练流程无缝配合。以下是在您的数据集上训练 ACT 的完整示例:
lerobot-train \
--dataset.repo_id=${HF_USER}/your_dataset \
--policy.type=act \
--output_dir=outputs/train/act_your_dataset \
--job_name=act_your_dataset \
--policy.device=cuda \
--wandb.enable=true \
--policy.repo_id=${HF_USER}/act_policy
训练技巧
- 从默认值开始:ACT 的默认超参数对大多数任务都很有效
- 训练时长:在单个 GPU 上进行 100k 训练步骤预计需要几个小时
- 批次大小:从批次大小 8 开始,根据您的 GPU 内存进行调整
使用 Google Colab 训练
如果您的本地计算机没有强大的 GPU,您可以通过遵循 ACT 训练笔记本使用 Google Colab 训练您的模型。
评估 ACT
训练完成后,您可以使用 lerobot-record 命令和您训练的策略来评估您的 ACT 策略。这将运行推理并记录评估回合:
lerobot-record \
--robot.type=so100_follower \
--robot.port=/dev/ttyACM0 \
--robot.id=my_robot \
--robot.cameras="{ front: {type: opencv, index_or_path: 0, width: 640, height: 480, fps: 30}}" \
--display_data=true \
--dataset.repo_id=${HF_USER}/eval_act_your_dataset \
--dataset.num_episodes=10 \
--dataset.single_task="您的任务描述" \
--dataset.streaming_encoding=true \
--dataset.encoder_threads=2 \
# --dataset.camera_encoder.vcodec=auto \
--policy.path=${HF_USER}/act_policy