ACT模型
ACT(Action Chunking with Transformers)是具身智能里一个非常有代表性的模型:它不是最大、最新的 foundation model,但它把 action chunking 这条路线做成了清晰范式,因此在理解后续 VLA 动作头、生成式策略和低成本双臂操作时都很关键。
这篇笔记关注的不是“ACT 在模仿学习里出现过”,而是把它当成一个模型级里程碑来看:它解决了什么问题、为什么在 2023 年重要、它和 Diffusion Policy / OpenVLA / pi0 之间是什么关系。
1. ACT 是什么,为什么值得单独看
ACT 的一句话定义是:
给定当前观测,不是只预测一步动作,而是一次预测未来一个短动作块,再通过时间集成平滑执行。
形式上,它把经典行为克隆中的
改写成
其中:
- \(o_t\) 是视觉观测
- \(s_t\) 是机器人本体状态
- \(H\) 是 chunk horizon
- 输出是未来 \(H\) 步动作,而不是单步动作
它值得单独看的原因有三个:
- 历史位置特殊:它是从经典模仿学习走向 chunk-based policy 的关键桥梁。
- 工程意义很强:少量示教、低成本硬件、双臂精细操作这些关键词,让它至今仍有复现价值。
- 影响后续模型设计:很多后来的 VLA、tokenized action、快速推理工作都延续了“动作块而不是单步动作”的思路。
2. 问题背景
ACT 出现时,要解决的是一类很具体、但很难的问题:
- 精细双臂操作:例如开半透明杯盖、插电池、整理绳线、对准插槽
- 少量示教:目标不是几十万 episode,而是几十条高质量演示
- 低成本硬件:依托 ALOHA 这样的低成本双臂遥操作系统
- 高频控制与时间一致性:逐步输出动作容易抖动,尤其在接触和协调操作中
传统单步 BC 的主要问题是:
| 问题 | 表现 |
|---|---|
| 单步回归抖动 | 每一步都独立预测,动作序列容易不平滑 |
| 多模态动作 | 同一观测下可能有多种合理操作路径,MSE 容易平均掉 |
| 长时序误差累积 | 每一步小误差都会在后续放大 |
| 双臂协调难 | 两只手之间需要时间上连续、空间上同步 |
ACT 给出的回答是:
- 用 CVAE 处理多模态性
- 用 action chunking 预测短时未来动作块
- 用 temporal ensembling 融合重叠预测,减少抖动
3. 核心思想
3.1 Action Chunking
不再直接预测单步动作 \(a_t\),而是预测一个短时序动作块:
这样做有三个直接好处:
- 模型显式学习短期时间结构
- 推理调用次数减少
- 动作在时间维上更连贯
3.2 Temporal Ensembling
模型会在连续多个时刻反复预测未来 chunk,因此某个时间步 \(t\) 的执行动作,通常对应多个 chunk 的重叠预测。ACT 用指数衰减加权平均来融合它们:
越新的预测权重越高,越旧的预测权重越低。
3.3 CVAE Latent
ACT 不是只做确定性回归,而是引入潜变量 \(z\) 来表示“这次动作风格/模式”:
在训练时,编码器看到观测和真实未来动作,学习把动作风格压缩到 latent 里;在推理时,不再依赖真实未来动作,而是使用固定先验来生成一个稳定的 chunk 输出。
4. 模型结构
4.1 总体结构
graph LR
subgraph Inputs["输入"]
IMG[多视角图像] --> ENC
STATE[机器人状态] --> ENC
end
subgraph TrainEncoder["训练时的 CVAE 编码器"]
GT[未来动作块] --> LAT
ENC --> LAT
LAT[推断 q(z|obs, actions)] --> Z[z]
end
subgraph Decoder["Transformer 解码器"]
ENC[视觉+状态编码] --> TF[Transformer]
Z --> TF
TF --> CHUNK[预测动作块]
end
style Inputs fill:#e3f2fd
style TrainEncoder fill:#fff3e0
style Decoder fill:#e8f5e9
4.2 输入与输出
ACT 的典型输入包括:
- 多视角 RGB 图像
- 机械臂关节状态 / 末端状态
- 夹爪状态
输出则是:
- 未来 \(H\) 步的动作块
- 通常是双臂关节或末端控制命令
4.3 编码器和解码器分工
| 组件 | 作用 |
|---|---|
| 视觉编码器 | 提取多视角图像特征 |
| 状态编码 | 提取本体感觉信息 |
| CVAE 编码器 | 训练时根据真实未来动作推断 latent 风格变量 |
| Transformer 解码器 | 在观测和 latent 条件下输出未来动作块 |
5. 数学表达与训练目标
5.1 Chunk Prediction
ACT 学的是条件分布:
而不是单步的:
5.2 Reconstruction Loss
解码器输出的 chunk 要尽量接近真实未来动作块:
5.3 KL Regularization
CVAE 需要让 posterior 不要偏离标准正态 prior 太远:
5.4 总损失
ACT 的训练目标通常写为:
其中 \(\beta\) 控制多模态潜变量约束的强度。
6. 推理过程
ACT 的训练和推理并不完全对称,这是它容易被误解的地方。
graph TD
T1[训练] --> T2[观测 + 真实未来动作]
T2 --> T3[CVAE 编码器推断 z]
T3 --> T4[Transformer 输出 chunk]
T4 --> T5[计算重建损失 + KL]
I1[推理] --> I2[只有当前观测]
I2 --> I3[不再使用真实未来动作]
I3 --> I4[使用 prior / 固定 latent]
I4 --> I5[Transformer 输出 chunk]
I5 --> I6[Temporal ensembling 平滑执行]
style T1 fill:#fff3e0
style I1 fill:#e8f5e9
6.1 为什么推理时常写成 z = 0
因为训练时 KL 项把 posterior 拉向标准正态先验,推理时可直接用先验均值作为稳定默认值:
这意味着模型在部署时选择一种“默认动作风格”,减少随机采样带来的不稳定。
6.2 为什么还要 Temporal Ensembling
即使一次预测了一个 chunk,接触任务里仍可能因为视觉噪声、状态偏差或相机遮挡而出现不稳定。重叠 chunk 的加权融合能显著改善:
- 抖动
- 双臂不同步
- 末端在接触边缘的细小震荡
7. 为什么 ACT 当时重要
7.1 它证明了“少量高质量示教 + 合适结构”可以做成精细操作
ACT 最让人印象深刻的不是参数量,而是它在 ALOHA 上用大约 50 条示教就完成了一批精细双臂任务,成功率相当高。
7.2 它让 chunk-based policy 成为清晰路线
ACT 之后,很多研究者不再把“逐步出动作”视为唯一默认选择。后续工作越来越自然地接受:
- 一次预测未来多个动作
- 让时间窗口成为显式设计维度
- 把动作表示做成 chunk / token / diffusion trajectory
7.3 它和 ALOHA 一起构成了“低成本具身研究套件”
ACT 的影响力还来自它不是孤立论文,而是和 ALOHA 硬件、遥操作采集和复现代码一起形成了完整闭环。对很多研究者来说,它是第一套“真的能在实验室里复现”的双臂精细操作系统。
8. ACT 的局限
ACT 很重要,但也必须看清它的边界:
| 局限 | 说明 |
|---|---|
| 任务范围偏窄 | 更适合桌面、短时程、操作性强的任务 |
| 泛化边界有限 | 不属于 web-scale 预训练的 foundation model |
| 数据分布敏感 | 相机布局、动作定义、遥操作习惯变化都会影响效果 |
| 语义能力较弱 | 不像 VLA 那样天然继承强语言和常识能力 |
| 频率与时序仍需工程调参 | chunk 长度、重规划频率、衰减权重都很重要 |
9. 与邻近方法的关系
9.1 ACT vs BC
- BC:通常单步回归动作
- ACT:预测动作块,并通过 latent 建模多模态性
9.2 ACT vs Diffusion Policy
- ACT:
CVAE + Transformer,推理通常更轻 - Diffusion Policy:生成分布能力更强,复杂接触任务更有优势,但推理更慢
9.3 ACT vs BeT / Tokenized Actions
- ACT:chunk 是连续动作序列
- BeT / action tokenizers:更强调把动作压成 token,便于 Transformer 统一处理
9.4 ACT vs VLA / OpenVLA / pi0 / FAST
| 维度 | ACT | Diffusion Policy | OpenVLA | pi0 |
|---|---|---|---|---|
| 主要定位 | 精细操作策略模型 | 生成式操作策略 | 开源 VLA | flow-based VLA |
| 输入模态 | 图像 + 状态 | 图像 + 状态 | 图像 + 语言 + 状态 | 图像 + 语言 + 状态 |
| 输出方式 | 连续 action chunk | 扩散生成动作序列 | 离散动作 token | 连续 chunk / flow |
| 语言能力 | 很弱 | 很弱 | 强 | 强 |
| 典型数据规模 | 数十到数百演示 | 中等离线示教 | 近百万 episode | 大规模多具身数据 |
| 核心价值 | 建立 chunked policy 范式 | 强多模态动作建模 | 社区可复现 VLA 主线 | 更强连续动作生成与跨具身 |
这里最重要的关系不是“谁替代谁”,而是:
- ACT 让大家接受了 chunked action prediction
- Diffusion Policy 把生成式动作分布做得更强
- OpenVLA / pi0 把动作建模进一步放进更大的 vision-language-action 统一模型里
10. 工程落地
10.1 数据组织
ACT 很依赖高质量演示,数据通常需要严格对齐:
- 多相机时间同步
- 机器人状态与图像帧对齐
- 双臂动作定义一致
- 遥操作示教风格尽量稳定
10.2 关键超参数
| 超参数 | 作用 | 调大时的影响 | 调小时的影响 |
|---|---|---|---|
chunk_size / horizon |
预测未来动作长度 | 更强短期规划,更依赖稳定性 | 更接近单步控制 |
beta |
KL 正则强度 | latent 更规整,但可能欠拟合 | 更灵活,但可能过拟合 |
batch_size |
训练稳定性 | 梯度更稳,但显存更高 | 噪声更大 |
camera_views |
视觉覆盖范围 | 遮挡更少,工程更复杂 | 信息不足更明显 |
replan interval |
多久重新预测一次 chunk | 更稳但算力更高 | 更省算力但适应更差 |
10.3 训练资源
ACT 的一个现实优势是训练成本相对可控,尤其和 7B 级 VLA 相比更容易上手。它很适合作为:
- 小实验室的双臂精细操作起点
- LeRobot/ALOHA 风格数据管线的第一条基线
- 判断“数据问题还是模型问题”的工程诊断工具
11. 适用场景与不适用场景
更适合
- 双臂桌面精细操作
- 中短时程任务
- 演示数量不大但质量较高
- 需要时间一致性、但不想承受扩散推理成本的任务
不太适合
- 强语言理解和开放词汇指令
- 跨大量机器人平台直接泛化
- 很长时程任务的高层规划
- 高度开放环境中的通用 foundation model 目标
12. 开源生态与复现入口
ACT 之所以今天还值得单独看,一个重要原因是它依然有清晰的开源入口:
- ALOHA / 官方项目页:低成本双臂遥操作 + ACT
- 官方代码仓库:
tonyzhaozh/act - LeRobot:把 ACT 当作统一训练框架中的重要基线策略
工程上很常见的一条路径是:
- 先用 LeRobot / 仿真数据管线验证流程
- 再迁移到真实 ALOHA 风格双臂采集
- 最后再决定是否升级到 Diffusion Policy 或更大的 VLA
13. 为什么它重要但又不是终局方案
ACT 的历史价值,主要在于它把“动作块”作为主要建模对象明确立住了;
但它并没有解决 foundation model 时代最核心的几个问题:大规模跨具身预训练、强语言泛化、开放环境长期规划。
所以最准确的定位是:
- 不是终点
- 不是过时基线
- 而是承上启下的桥梁
如果你正在搭知识体系,ACT 应该和下面两类东西一起看:
14. 参考文献
- Zhao et al., Learning Fine-Grained Bimanual Manipulation with Low-Cost Hardware, RSS 2023
- ACT 官方仓库:https://github.com/tonyzhaozh/act
- Tony Zhao / ALOHA + ACT 项目页:https://tonyzhaozh.github.io/
- LeRobot ACT 文档:https://huggingface.co/docs/lerobot/act
- Chi et al., Diffusion Policy: Visuomotor Policy Learning via Action Diffusion, RSS 2023
- Kim et al., OpenVLA: An Open-Source Vision-Language-Action Model, 2024
- Black et al., pi0: A Vision-Language-Action Flow Model for General Robot Control, 2024
- Physical Intelligence, FAST: Efficient Robot Action Tokenization, 2025