FAST:把机器人动作「JPEG 压缩」后再丢给 Transformer 预测
🎯 为什么重要:动作 token 化曾是 VLA 的隐形天花板
要把 VLA 做成「下一个 token 预测」(和 LLM 同款训练目标),就必须先把连续动作切成离散 token。过去的主流做法(RT-2、OpenVLA)是逐维度、逐时刻地把动作值分到 256 个 bin——简单粗暴。
作者用一个插值玩具实验(Fig.3)揭了底:给定 4 个点,预测插值的样条曲线。当采样率从 25 提到 800 时:
问题不在「模型不够大」,也不在「数据不够多」,而在动作信号的表示形式错了——它本来就是高度冗余的时序信号。语言模型能用 BPE 把英文压成 1 token/词,因为英文天生就稀疏;但机器人动作「每一拍都很像上一拍」,必须主动压缩才能喂给自回归 Transformer。
💡 核心思想:把动作当信号,先 DCT 再 BPE
FAST 把动作序列当一段一维信号,套用 JPEG 压缩图像的同款思路:信号 → 频域 → 砍高频 → 无损压零。三步全部解析可逆,推理时解码极快。
两个小巧思让 FAST 真正好用:
- 低频优先展平:把所有维度的最低频系数排在前面,让 Transformer 自回归时先预测整体形状,再补细节——和人类画画「先打稿再上色」同理,rollout 更稳。
- BPE 是唯一学到的部分:DCT 是解析的,BPE 只需训个词表(几分钟)。这让 FAST 几乎「零训练成本」就能用,远比 VQ-VAE 省心。
🛠️ 三个让 FAST 真好用的关键设计
| 设计 | 心智 | 为什么必要 |
|---|---|---|
| ① DCT(而非 DFT / 小波) | 把动作看成一段平滑信号,转成频率系数;低频 = 整体形状,高频 = 细节抖动 | 机器人动作大多平滑(关节角、末端速度),低频分量就能描述大部分能量 → 砍掉高频系数几乎无损(同 JPEG 之于照片) |
| ② scale-and-round 量化 | 乘以 γ 后取整,丢弃小幅系数 | γ 是唯一调参(论文用 γ=10),在压缩率和重建精度间 trade-off;量化后系数矩阵大半为 0,为下一步 BPE 铺路 |
| ③ BPE(byte-pair encoding) | 把频繁共现的整数序列合并成新 token(GPT/LLM 同款算法) | 能无损地把稀疏矩阵压成定长词表(1024),且直接接入预训练 VLM 的 vocabulary——无需改 backbone |
自回归 VLA 的训练信号 ∝ 「给定前面 token,预测下一个 token 的边际信息量」。Binning tokenization 下,相邻 token 几乎相同 → 边际信息 ≈ 0 → 学不动。FAST 把冗余压没了,每个 token 都携带新信息 → 同样算力下学得快、学得准。论文实测:T-shirt 折叠任务 token 数 700 → 53(13.2× 压缩),训练信号密度同步 ×10。
📊 关键结果:高频任务 5-13× 压缩,π0-FAST 训练快 5×
Table I:动作 chunk 压缩(1 秒 chunk,token 数对比)
| 数据集 | 动作维度 | 控制频率 | Binning token | FAST token | 压缩比 |
|---|---|---|---|---|---|
| BridgeV2 | 7 | 5 Hz | 35 | 20 | 1.75× |
| DROID | 7 | 15 Hz | 105 | 29 | 3.6× |
| Table Bussing | 7 | 20 Hz | 140 | 28 | 5.0× |
| T-Shirt Folding | 14(双臂) | 50 Hz | 700 | 53 | 13.2× |
Fig.6 / Fig.9:训练性能(vs binning / 扩散 π0)
| 维度 | 数字(PDF 溯源) |
|---|---|
| 任务覆盖 | 7 个评测环境(6 真机 + 1 仿真:Libero / DROID / Table Bussing 20Hz / T-Shirt Folding 50Hz / Grocery Bagging / Toast / Laundry Folding 50Hz) |
| Binning 表现 | 在 Table Bussing(20Hz)和 T-Shirt Folding(50Hz)完全无法做出进展(论文:「unable to make progress」) |
| FAST vs FSQ | FAST 在灵巧真机任务上「as good or at times better」,且无需训练额外网络 |
| π0-FAST vs 扩散 π0 | 性能持平(包括最难的 Laundry Folding),但 训练只需 1/5 GPU 时 |
| OpenVLA + FAST | OpenVLA 在 T-Shirt Folding 上原本训不动;换用 FAST 后能训起来 → 说明 FAST 与 backbone 解耦 |
| DROID 零样本 | 首次实现 DROID 策略零样本部署到完全未见的环境(3 所大学场景),仅靠自然语言提示 |
🌐 在领域中的位置
FAST 是自回归 VLA 「再扳回一城」的关键。此前人们以为扩散 VLA(π0、RDT-1B)注定赢——因为 binning 在高频任务上崩。FAST 证明:只要 tokenization 选对,自回归 VLA 也能做灵巧任务,且训练比扩散快 5×。关联线索:T05 扩散策略谱系(与扩散头对照)。
❓ 常见误区
FAST 是一种新的 VLA 模型架构吗?
不是。FAST 只是一个 tokenizer——把连续动作序列转成离散 token 的方法。它可以叠加在 π0、OpenVLA 等任何自回归 VLA 上,无需改 backbone。论文把它和 π0 / OpenVLA 都组合实验过。
DCT 不是有损吗?压缩后动作精度会不会变差?
有损的部分在量化(scale-and-round),但 γ 可调。论文 Table I 的对比是在「重建精度相当」的设置下做的——FAST 既压得紧又重建得准。BPE 本身是无损的。整体 trade-off 远优于 VQ-VAE。
那为什么不直接用 VQ-VAE / FSQ 学一个编码器?
能做,论文也对比了 FSQ——但 VQ 类方法需额外训练一个网络,超参敏感,重建质量随数据集结构变化。FAST 无需训练神经网络(BPE 词表训练只要几分钟),2 个超参(scale γ=10、BPE 词表 1024)跨数据集通用。简单就是胜利。
FAST+ 通用 tokenizer 是怎么训的?
在1M 条 1 秒真实机器人动作 chunk 上训练 BPE 词表,覆盖单臂 / 双臂 / 移动操作、关节 / 末端控制、多种频率。发布为 HuggingFace AutoProcessor,三行代码即可用作黑盒 tokenizer。在未见过的机器人上仍有 2× 以上压缩。
推理 750ms 一个 chunk,控制不就慢了吗?
是当前主要局限。但 1 秒 chunk 只需预测一次(执行整秒),750ms 离线预测 + 1s 执行 → 实际控制频率不受影响,只是首次延迟较高。论文说在静态操作任务上未观察到性能损失。未来靠 LLM 推理加速技术(speculative decoding 等)解决。