Ordered Action Tokenization

OAT 把连续的机器人动作变成一串紧凑的 token,并让它们从左到右逐步变得更精确。

1Harvard University · 2Stanford University

OAT、动作生成、token co-training 和 VLA 任务覆盖总览
OAT 把三件事连在一起:渐进式动作 tokenization、用于控制的 OAT 生成,以及用于训练连续 VLA policy 的 OAT 监督。
从动作到 token

Action token 到底是什么?

一个机器人动作块,是一小段未来连续指令:关节怎么运动、夹爪怎么变化,等等。Action tokenizer 把整段动作压缩成离散符号,detokenizer 再把这些符号还原成连续运动。

在 VLA policy 中,VLM 把相机观测和语言指令连接到机器人控制。Action token 可以扮演两种角色:VLM 可以直接生成并解码它,也可以在连续 action expert 输出运动时从它学习。无论哪种用法,tokenization 都会决定 policy 的预测目标、序列长度,以及模型能够学到的结构。

OAT 的核心思路很简单:先训练短前缀重建完整动作块,再让更长的 token 预算逐步补充细节。下面的方法、Prefix Lab 和实验会展示这种顺序是如何学出来、又如何被测量的。

简短术语表

本文会反复用到的五个术语。

动作块
一小段未来连续机器人动作序列,记作 \(a_{1:H_a}\in\mathbb{R}^{H_a\times D_a}\)。
Action token
离散符号 \(T_i\in\mathcal{V}\),既可以作为 AR 预测目标,也可以作为 VLM 的 token 监督。
有序前缀
一个已经可以解码成完整粗粒度动作块的前缀 \(T_{1:k}\)。
BAR
一种分块式自回归生成方法,按 schedule 逐步增长 action-token 前缀。
TC
Token co-training:action token 监督 VLM,但机器人由连续 expert 控制;相关工作有时也称为 knowledge insulation (KI)。
设计原则

Action token 应该保证什么?

在常见的 rate-distortion 视角下,token 数量近似表示 rate,期望重建误差则是 distortion;精确的编码长度还取决于 vocabulary 大小。但一个低 rate、低 distortion 的编码,还不一定是好的 policy interface。它需要满足三项保证。

1 · 高压缩率
缩短 policy 的预测目标。

一个动作块包含每个时间步、每个控制维度的指令。逐项写下这些值会产生很长的序列。紧凑的 token 用更少符号保留控制相关运动,减少训练目标;逐个生成 token 时,也能减少 VLA 调用。

2 · 全域可解码
让 policy 的每个采样结果都有确定解码。

Policy 可以从输出空间采样任意序列,而不只会输出 tokenizer encoder 产生过的 code。Policy 能生成的每个固定长度 vocabulary index 序列,都应直接映射到定义明确的连续动作块,不需要拒绝、补齐、截断或受约束生成。

3 · 有序结构
先放普遍有用的运动,再放 residual 细节。

完整序列的低重建误差,并不能说明信息分布在哪里。好的顺序让早期训练前缀重建粗粒度、高影响力的运动,后续 token 再细化剩余部分。这种结构既能帮助生成,也能帮助 VLM 监督。

用于分组生成

可以一次预测多个新 token 吗?

分块兼容性是减少 VLA 调用所需的另一项条件。如果几个新 token 要一起预测,同一 block 内的 token 就不能依赖先看到彼此;tokenizer 和 policy 也都必须针对这种分组方式训练。

现有 tokenizer 差在哪里?

前三列评价 tokenizer 本身;当一次 VLA 调用要预测多个新 token 时,还需要看分块兼容性。现有格式各自解决了 policy interface 的一部分。

高压缩率
全域可解码
有序结构
分块兼容性

工作方式与代价 每个时间步的每个坐标都成为独立 token。任意序列都有定义明确的解码,但目标长度随动作一起增长,坐标顺序也没有显露粗粒度轨迹结构。

Ordered Action Tokenization

OAT 通过前缀训练学出顺序。

OAT 把动作块压缩进 registers,再用 FSQ 将它们离散化。它不只训练最终 token 序列,而是反复要求更短的前缀重建完整动作。

带有序 registers、FSQ tokens 和 prefix decoding 的 OAT tokenizer
OAT 把连续动作块编码进 registers,用 FSQ 将它们离散化,并训练各个前缀重建完整动作。
步骤 1
读取完整动作。

Transformer registers cross-attend 到完整动作块,因此每个 token 位置都能汇总跨时间和控制维度的运动。

步骤 2
把表示变成离散 token。

FSQ 把每个 register 映射成固定 vocabulary 中的 token。学到的 decoder 会把 vocabulary 中任意固定长度序列映射成连续动作块,而不只解码 encoder 见过的 code。

步骤 3
在不同 token 预算下训练。

训练时采样一个预算,保留对应前缀、mask 掉 suffix,再重建完整动作。每个训练预算都是一个完整重建点,而不是一段坐标碎片。

渐进式信息分配

为什么有用信息会向左移动?

Token 1 出现在每个非空训练前缀中;token 8 只有在采样预算达到 8 或更大时才会出现。早期位置因此会参与更多预算下的动作重建,也承受更强压力去携带普遍有用的信息。

这种不对称的训练压力,会把粗粒度、普遍有用的信息推向前面,把 residual refinement 留在后面。OAT 从变化的信息预算中学出顺序,而不是手工把 token 指派给特定坐标、时间步或频率。

信息分配推导

令 \(\varepsilon(K)\) 表示使用前 \(K\) 个 token 时的期望重建误差,\(\Delta_i=\varepsilon(i-1)-\varepsilon(i)\) 表示第 \(i\) 个 token 平均带来的改进。对前缀预算 \(B\) 进行采样,可得

\[ \mathbb{E}_{B}[\varepsilon(B)] = \varepsilon(0) - \sum_{i=1}^{H_l}\Pr(B\ge i)\,\Delta_i. \]

Token \(i\) 的权重由它的存活概率 \(\Pr(B\ge i)\) 决定,而这个概率不会随着位置右移而增大。因此,越靠前的 marginal gain 会改善越多采样预算下的重建。

Token-wise OAT
训练每一个前缀长度。

因果 register attention 每次把序列扩展一个 token,对应每次调用预测一个新 OAT token 的 policy。

Power-of-two OAT
训练选定的分组边界。

预算按 1、2、4、8 等增长。顺序在这些 group 之间学习;同一 group 中一起引入的 token 彼此没有预设优先级。

Prefix Lab 中可以看到 token 增加时动作如何变得更精确;MeshCat 轨迹则在实测机器人运动上展示同一现象。

分块自回归

在 VLM-scale AR 中,BAR 将生成代价显式化。

OAT 让有序前缀可执行,但长度为 \(K\) 的前缀仍需要 \(K\) 次顺序 VLA 调用。BAR 通过在前缀边界上引入 schedule 来降低这种串行深度,并统一 token-wise AR、block-wise AR 和 parallel decoding。

用于 block-wise autoregressive action-token generation 的 BAR schedule 图
BAR 将 action-token 的生成 schedule 显式化:每次 policy 调用可以追加一个 token、一个 token block,或完整的 action-token 序列。

选择 AR 的分块粒度。

对一段 16-token 的 action-token 序列来说,schedule 决定顺序 VLA 调用次数,以及每次调用需要联合预测的最大块。

Action-token 前缀
阶段 1 预测 1 个 token。

进度条显示已经生成的前缀,以及当前阶段正在生成的 block。

Token-wise AR

每个阶段生成一个新 token。

16 次调用 · 最大块 1

上下文最充分,但串行深度也最大。

策略含义

每个 token 都能看到所有更早 token 作为上下文,但推理仍然完全串行。

Schedule 控制生成速度。

它决定每次 VLA 调用生成多少 token,也就决定了串行深度和预测难度之间的取舍。

Tokenizer 必须配合。

BAR policy 通过 block-shifted teacher forcing 学习联合 block targets;tokenizer 则必须单独提供与之匹配的重建预算和依赖结构。

分块式 OAT

分块生成必须同时对齐 OAT 与 BAR 的训练。

BAR policy 通过 block-shifted teacher forcing 联合预测每个 schedule block。Tokenizer 解决的是另一个与之匹配的问题:power-of-two OAT 在相同 endpoints 上训练重建,并阻断同一新 group 内 registers 之间的直接依赖;其 encoder、FSQ bottleneck、prefix decoder 和 nested-dropout 目标保持不变。

OATsing 和 OATpow2 训练不同的依赖模式。

BAR 会把后续 action-token positions 合并到同一个预测步骤里。关键问题是:新的 block 能否只依赖已实现前缀来联合预测,而不依赖同一 block 内部的串行依赖。

OATsing

平坦因果链

token-wise

行表示 query,列表示 key。

后续 registers 可以依赖所有更早的 registers。这适合 token-wise AR,但 post-hoc BAR 可能把一组已经在训练中学到块内串行依赖的 token 合并到同一个 block。

OATpow2

块因果 registers

block-wise

2^n 块:[1] [2] [3-4] [5-8]

Registers 可以 attend 到更早 groups 和自身,但不能 attend 到同一 group 内的其他 registers。Tokenizer 因而避免直接的 group 内串行依赖;BAR policy 再单独学习联合预测该 block。

依赖 自身 阻断
预览诊断

只改 schedule 不会让 OAT 变成 block-compatible。

在 PaliGemma2 的 LIBERO 实验中(每个任务 50 次 rollout 的平均成功率),post-hoc BAR 减少调用但损失成功率。Power-of-two OAT 使用匹配的 tokenizer endpoints 和 register dependencies,保留五次调用并弥合差距。

OATsing16 token-wise tokenizer + token-wise AR
79.7% 16 次调用
OATsing16 + post-hoc BAR token-wise tokenizer + power-of-two BAR
66.3% 5 次调用
OATpow216 block-wise tokenizer + power-of-two BAR
80.8% 5 次调用
Post-hoc BAR 还不够。

它改变了生成 schedule,但 tokenizer 训练时仍在每个 schedule block 内保留串行依赖。

OATpow2 训练 block-compatible tokens。

它让 tokenizer budget 和 register mask 与 BAR policy 联合预测的 block 对齐。

前缀预算

先验证表示本身:每个训练过的前缀都必须可执行。

在训练 VLA policy 之前,我们先测量每个保留前缀是否真的增加了动作信息。短前缀应当已经能解码出粗粒度动作;后续 token 应该带来 refinement,而不是重复前缀已经携带的信息。

\[ \hat A^{(K)} = D_\theta\!\left( T_{1:K}\oplus \langle\mathtt{MASK}\rangle_{K+1:H_l} \right), \qquad \varepsilon(K) = \mathbb{E}\!\left[ \left\lVert A-\hat A^{(K)}\right\rVert_2^2 \right]. \]

Nested dropout 在多个所选预算上训练重建,而不仅是端点 \(\varepsilon(H_l)\)。Token-wise OAT 使用每个 token 长度;单独训练的 power-of-two 变体使用边界 \(1,2,4,8,\ldots\)。二者分别在各自训练预算上形成渐进式 rate–distortion 曲线。

Prefix Lab

每个训练预算都能解码出完整动作。

每个训练前缀都会解码成完整动作,而不是动作片段。示意图展示 token 增加时路径如何变得更精确;下方 MeshCat 则展示实测机器人轨迹。

1 个前缀 token

在 1-token 训练预算下,示意图展示了完整但较粗粒度的动作块。

这是概念示意,不是实测 rollout。绿色点表示参考路径;红色点示意所选训练预算下的完整动作块。下方 MeshCat 面板提供实测重建。

实测前缀重建。

这些 MeshCat 轨迹展示 decoder 在 1、2、4、8 个 token 训练预算下的输出,并与真实动作块并排比较。

1 个 token

2 个 token

4 个 token

8 个 token

真实轨迹

Rate-distortion

看整条曲线,而不只是终点。

这些曲线衡量不同前缀预算下的 rate-distortion 取舍。更好的表示能用更少 token 达到更低的期望重建误差。只在完整序列上训练的 autoencoder 只优化一个终点;OAT 则在多个前缀预算上训练重建。

比较 OAT 前缀预算与 action tokenizer baselines 的 rate-distortion 曲线
不同动作域上的重建质量,越靠左下越好。OAT 评估多个训练过的前缀长度;固定长度 baseline 只提供完整序列的单个点。窄屏上可横向滚动查看。
短序列

在每个设定的 horizon 下,OAT 都用远少于逐坐标 serialization 的 token 表示动作块。

平滑改进

两种 OAT 都会随着保留 token 增多而降低重建误差。

每个点都是完整重建

每个训练前缀都解码成完整动作块,而不是一段坐标或系数碎片。

这里真正不同的地方

OAT 显式训练中间重建预算。这里的固定长度 baseline 都在完整序列长度上训练和评估。这些曲线证明了渐进式重建;下方 VLA 实验评估的是完整 OAT,而不是单独隔离 ordering 的作用。

Policy role I · Action token 作为输出

生成 OAT,执行动作。

这是最严格的 policy role:VLM 预测 OAT 序列,再把它解码成机器人运动。生成 token 序列中的任何错误,现在都会直接进入控制路径。

分块自回归

分块生成 OAT。

这里正是分块兼容性发挥作用的地方。要在一次 VLA 调用中预测多个新 token,这个 block 中的每个 token 都必须能只根据观测和已经实现的前缀来预测,不能先看到同一 block 中的其他新 token。

分块自回归决定每个 block 的大小。一次 VLA 调用,就是当前动作块的一次顺序模型预测。每次一个 token 提供最强的串行 conditioning;更大的 block 能减少调用,但也会产生更难的联合预测目标。

每次一个 token 16 次 VLA 调用
每次调用生成一个新 token
Power-of-two blocks 5 次 VLA 调用
Block 大小:1 + 1 + 2 + 4 + 8

对一个 16-token 动作,power-of-two schedule 让前缀依次增长到 1、2、4、8 和 16 个 token。Power-of-two OAT 在同样的边界上训练,并阻断同一新 group 内 token 之间的直接 register attention。VLM policy 还要单独训练,学习只根据生成时可见的 context 联合预测每个 block;只有兼容的 tokenizer 还不够。

我们分别使用 PaliGemma2 和 Qwen3VL 作为 VLM policy backbone。成功率是完成任务的闭环评估 rollout 比例;下方汇总在四套 benchmark 之间取平衡,越高越好。

VLM 生成 OAT 动作 token 时,在不同 benchmark 上的闭环成功率
闭环生成结果。使用 PaliGemma2 时,分组版 OAT[16] 为 63.8,逐个生成的 OAT[16] 为 63.7,模型调用次数从 16 降到 5。使用 Qwen3VL 时,最大 token 数量下逐个生成更强:56.8 对 50.6。
我们从中看到什么

两个不同的 VLM backbone 都能生成 OAT,并把它用于闭环控制。分组可以减少模型调用,但更大的组也更难预测,最佳平衡取决于 backbone。

Policy role II · OAT 作为监督

OAT 教 VLM,expert 负责动作。

如果机器人从不解码 action token,为什么还要训练它?在 token co-training 中,OAT 先为 VLM 提供有结构的动作监督,再由 VLM 把 context 传给连续 action expert。Token 在训练时负责教,expert 在部署时负责控制机器人。

带 VLM token loss 和 flow-matching action expert 的 token co-training
左侧,OAT 目标根据图像、语言和机器人状态训练 VLM;右侧,独立的 flow-matching loss 根据 stop-gradient 后的 VLM context 训练连续 action expert。
训练
两个 loss 走不同路径。

OAT prediction loss 更新 VLM;与此同时,flow-matching loss 根据 stop-gradient 后的 VLM context 训练连续 expert,因此 expert 的 loss 不会改写 VLM。

部署
移除 token branch。

每次 policy query 时,VLM 编码图像、语言和机器人状态;连续 expert 使用缓存的 context 生成动作块,不会生成或 detokenize OAT 序列。

受控 token co-training

换一个 tokenizer,就会换一个 policy。

这组对比保持连续控制器架构不变,只改变为 VLM 提供训练目标的 tokenizer。我们在同样四套 benchmark 上报告闭环任务成功率,越高越好。

VLM 使用不同 action tokenizer 训练后的闭环成功率
Token co-training 结果。OAT 在 PaliGemma2 上达到 59.0 平均成功率,与 QueST、ACodec 基本持平;在 Qwen3VL 上则以 62.5 获得最高平均值。最佳 tokenizer 仍取决于 backbone 和 benchmark:QueST 在 PaliGemma2 Robomimic 和 Qwen3VL SIMPLER 上更强。
我们从中看到什么

Tokenizer 的选择会改变下游闭环表现。OAT 在 Qwen3VL 上取得最强平均值,在 PaliGemma2 上也与最强平均值的点估计接近,但并非每个 benchmark 都最好。这组对比改变了整个 tokenizer,因此不能单独隔离 ordering 的作用。

总结

为 policy 设计 token。

OAT 用更少符号表示动作,把每个固定长度 vocabulary 序列映射到定义明确的连续动作块,并训练前缀把信息组织成从粗粒度运动到 residual 细节的顺序。用于分组生成时,它的训练边界也与预测 schedule 对齐。

生成

生成的 OAT 会直接解码成控制动作,并在两个 VLM backbone 和四套 benchmark 上进行评估。

减少模型调用

如果计划分组生成 token,训练 OAT 时就要使用相同的分组边界。只在部署时临时分组并不等价。

监督

只在训练时出现的 token 仍会塑造连续控制器使用的 VLM context,它的结构并不是可有可无。

认识边界

这里的 VLA 研究覆盖两个 VLM backbone、四类 benchmark、固定的控制器设计,以及部署前选定的 token 数量。Adaptive stopping 和更广泛的机器人覆盖仍是开放问题。

论文、代码与引用

使用 OAT 进行 visuomotor policy learning 时请引用完整论文;使用原始 tokenizer 时请引用 RSS 版本;使用受控 VLA 研究平台时请引用 Praxis。

对受控 VLA 实验感兴趣的读者可以使用 praxis-vla 进行训练,并使用 praxis-eval 完成评测。

Full Paper BibTeX
@misc{liu2026oatpolicy,
  title={Ordered Action Tokens for Visuomotor Policy Learning},
  author={Chaoqi Liu and Yue Zhao and Haonan Chen and Xiaoshen Han and Jiawei Gao and Ehsan Adeli and Yilun Du},
  year={2026},
  eprint={2607.21670},
  archivePrefix={arXiv},
  primaryClass={cs.RO},
  url={https://arxiv.org/abs/2607.21670},
}
RSS Version BibTeX
@misc{liu2026oat,
  title={OAT: Ordered Action Tokenization},
  author={Chaoqi Liu and Xiaoshen Han and Jiawei Gao and Yue Zhao and Haonan Chen and Yilun Du},
  year={2026},
  eprint={2602.04215},
  archivePrefix={arXiv},
  primaryClass={cs.RO},
  url={https://arxiv.org/abs/2602.04215},
}
Codebase BibTeX
@misc{liu2026praxis,
  title={Praxis: A Controlled Laboratory for Vision-Language-Action Policy Research},
  author={Liu, Chaoqi},
  year={2026},
  url={https://chaoqi-liu.com/praxis/}
}