Ordered Action Tokenization

Praxis 用于 VLA Policy 研究的 可控实验平台

Praxis 把 VLA 实验整理成显式声明的 policy cells:先写清 objective、动作表示、backbone 和 evaluator, 再留下可审计的比较记录。

Chaoqi Liu1

1Stanford University

Praxis 坐标系,覆盖 objectives、VLM backbones 和 action codecs
praxis-vla 用显式 cells 构建 policy
praxis-eval 统一本地和远程评测边界
36 cells 公开版本覆盖 objectives 与 backbones
3 objectives BAR、KI 和连续 flow matching
6 codecs Bin、FAST、QueST、ACodec、OAT 和 bOAT
3 backbones SmolVLM、Qwen3-VL 和 PaliGemma2
一分钟读懂 Praxis

VLA 研究需要实验平台,而不是又一个私有栈。

一个 rollout 分数常常把 objective、tokenizer、backbone、simulator adapter、normalization state 和 serving path 全部压成一个数字。Praxis 要做的是在训练和评测开始前,把这些选择先写清楚。

  1. 问题:很多 VLA 比较一次替换太多组件,最后分数差异很难归因。
  2. 方法:praxis-vla 定义 policy cells,praxis-eval 固定 benchmark drivers 看到的 reset/act 边界。
  3. 目标:一个新研究可以只添加一个 objective、codec、backbone 或 benchmark,而不必 fork 整个实验平台。
为什么需要 Praxis

Benchmarks 追踪能力,Praxis 追踪比较本身。

现在的 VLA 系统已经是完整 pipeline。如果一篇文章同时替换 action tokens、VLM family、processor logic、 action normalization 和 rollout glue,最后比较的可能是两个 pipeline,而不是一个清晰的研究想法。

Praxis 把讨论单位从系统名字改成 policy cell。这个 cell 会声明当前使用的 objective、 action representation、VLM backbone 和 evaluator interface。

Policy cell
一个被明确声明的组合:objective、action representation、backbone,以及 evaluator binding。
Study axis
这次研究真正想改变的那条轴,比如 OAT 对 bOAT,或者 BAR 对 KI。
Evaluation boundary
一条窄的 reset/act protocol,用来保证 simulator 语义仍由 benchmark driver 管理。
Artifact record
检查结果时需要的 metrics、configs、action specs、logs 和 runtime metadata。
两个组件

Praxis = praxis-vla + praxis-eval

Praxis 不是某一个 repository 的名字。praxis-vla 负责 policy 侧的 matrix, praxis-eval 负责面向 benchmark 的 protocol。两者合起来,才让一个 cell 可以被构建、运行和检查。

Policy cell 从 objective、action codec、VLM adapter 和 evaluation binding 装配到共享 interfaces
本地选择通过 objective、action codec、VLM adapter 和 evaluation binding 进入系统;被支持的 cells 会携带共享的 policy I/O、action specs、prefix state、artifacts、environment setup 和 runtime interfaces。
Policy 侧 praxis-vla

注册 objectives、action representations、VLM adapters、policy I/O 和保存下来的 artifacts。

Evaluation 侧 praxis-eval

通过共享 reset/act interface,让本地或远程 policies 跑在 benchmark drivers 上。

核心约束 一次只改变一件事。

让周围 protocol 保持可见,这样读者看到的是一项研究,而不是孤零零的分数。

Policy 设计矩阵

一个 VLA policy 先成为 cell,再成为 claim。

Tokenized policies 占据 objective、action-codec 和 backbone 三条轴。Tokenless flow-matching policies 位于 objective-backbone 平面上。当前 release 是具体的,但这些轴本身刻意保持开放。

Praxis policy-cell 几何结构,包含 objective layers、action-codec axis 和 VLM-backbone axis
公开 release 的数量会跨 backbones 展开:18 个 BAR cells、15 个 KI cells 和 3 个 FM cells。 轴上的省略号表示未来 objectives、codecs 和 backbones 可以继续进入。
Objective axis 动作生成发生在哪里?

BAR 预测 action-token blocks,KI 用 tokens 监督 VLM context,FM 直接预测连续 action chunks。

Action axis policy 在建模什么动作语言?

Bin、FAST、QueST、ACodec、OAT 和 bOAT 展示了不同 rate、distortion 与建模难度之间的 tradeoffs。

Backbone axis 控制使用哪一种 VLM context?

SmolVLM、Qwen3-VL 和 PaliGemma2 被视为可替换的 policy inputs,preprocessing 由 adapter 管理。

Policy cells

每个 objective 隔离一种不同的控制假设。

Policy-cell notation 不只是记账。它会在 training、loading、serving 或 rollout 开始前,先声明这次比较打算改变什么。

BAR、FM 和 KI objective families,展示动作生成由 VLM lane 还是 action expert lane 负责
BAR 让 VLM 生成 scheduled action-token blocks。FM 把最终控制交给连续 expert。 KI 用 token 监督 VLM context,再通过 stop-gradient flow expert 输出控制。
BAR
按 schedule 分块生成 action tokens,再 detokenize 成可执行控制。
KI
把 action tokens 作为 VLM 监督信号,同时由连续 expert 负责最终动作生成。
FM
移除离散 token 轴,直接预测连续 action chunks。
评测边界

Evaluation 应该是 protocol,不是藏起来的 glue。

一个 policy 只有放在具体上下文里才有意义:它接收什么 observations,需要满足什么 action convention, 在哪些 tasks 上 rollout,以及由哪个 simulator runtime 执行动作。praxis-eval 把这些责任分开。

praxis-eval boundary 将 benchmark-owned evaluation 与 policy-owned execution 分开
Benchmark drivers 负责 rollout semantics、metrics 和 artifacts。Policies 接收声明好的 observations, 并通过同一个本地或远程 protocol 返回 actions。
  • Benchmark-owned semantics. Task selection、simulator stepping、metrics 和 records 留在 driver 内部。
  • Policy-owned execution. policy 暴露 reset 和 act 行为,但不接管 evaluator。
  • Structured records. 每个 rollout 都可以携带 metrics、artifacts、metadata 和 runtime details,供之后检查。
扩展路径

新的研究应该扩展一条轴,而不是 fork 整个 lab。

Praxis 不是封闭清单。它提供的是一种结构:在尽可能保留共享 interfaces 的前提下,添加新的 objectives、 action representations、backbones 和 benchmarks。

  1. 添加 objective。声明 supervision signal、inference procedure、rollout-state 需求,以及兼容的 action representations。
  2. 添加 action representation。声明 token space、decode semantics、prefix behavior、schedules 和 validity assumptions。
  3. 添加 VLM backbone。把 processor、prompt format、image handling、prefix state、hidden geometry 和 cache behavior 局部化。
  4. 添加 benchmark。把 simulator semantics 留在 driver 中,同时暴露 policy-facing observations、actions、metrics 和 records。

附录

对使用 Praxis 感兴趣的读者,可以先看 praxis-vlapraxis-eval

BibTeX
@misc{liu2026praxis,
  title={Praxis: A Controlled Laboratory for Vision-Language-Action Policy Research},
  author={Liu, Chaoqi},
  year={2026},
  url={https://ordered-action-tokenization.github.io/praxis/}
}