供稿 / Discrete Forcing 研究团队
Discrete Forcing: Infusing Discrete Guidance into Continuous Denoising for Few-Step Action Experts
机器人系统可以有越来越强的视觉理解、语言推理和世界建模能力,但最后仍要靠 Action Expert 把这些能力转化为可执行的动作。动作专家一旦需要多轮迭代生成,整条推理链路就会被拖慢。
因此,除了升级上游模型,我们也想回答一个更直接的问题:能否给现有系统换一个更快、更强的动作专家? 对推理链路本就较长的 Agent 和 World-Action Model(WAM)来说,减少动作生成耗时尤其有价值。
在当前的 Vision-Language-Action(VLA)模型中,连续动作生成正在成为越来越主流的选择。
从 Diffusion Policy 到 ,Diffusion / Flow Matching Action Expert 能够直接在连续空间中生成高精度动作,但这种精度通常伴随着一个代价:
需要反复去噪。
如果直接把 10 次 denoising 压到 2 次甚至 1 次,推理确实快了,但动作质量也往往随之下降。
那么,一个自然的问题是:
我们真的需要让连续 Action Expert 从纯噪声开始,一步一步“摸索”出完整动作吗?
我们提出 Discrete Forcing,作为一种动作专家的升级方案:
先用离散动作快速确定整体结构,再用连续动作完成精细修正。
也就是:
Discrete → Continuous
先搭骨架,再补细节。

01. 为什么是 Discrete → Continuous?
动作表示长期以来存在两条路线。
离散动作将连续控制量量化为 token。它的表达更加紧凑,很适合描述动作的大体结构,但量化不可避免地会损失精度。
连续动作则保留了完整的控制精度,但在 Diffusion 框架下,往往需要多轮迭代,才能从随机噪声逐渐形成结构化动作。
换句话说:
Discrete 擅长 structure,Continuous 擅长 precision。
但过去,我们往往把它们看成两种互相竞争的 Action Representation。
Discrete Forcing 换了一个思路:
为什么不让它们负责生成过程中的不同阶段?

生成图像时,我们很自然地接受“从整体到局部”的过程。
画一栋建筑,先确定布局,再补充细节;拍一部电影,先写好剧本和场景,再进行具体拍摄。
机器人动作生成是否也可以显式地遵循这样的 coarse-to-fine 过程?
这就是 Discrete Forcing 的出发点。
02. Discrete Forcing:让离散动作成为连续生成的「草稿」
Discrete Forcing 的推理过程非常简单。
第一步:Discrete,确定动作结构
模型首先进行一次离散动作预测。
它并不需要在离散空间里反复迭代,而是通过 一次 forward,直接预测整个 action chunk 的离散表示。
这一阶段的目标并不是得到最终可以执行的精确动作。
它更像是在回答:
机器人接下来大致应该往哪里走?轨迹应该长什么样?
第二步:Continuous,恢复精确动作
接下来,我们将预测出的离散动作重新映射回连续空间,并利用它构造 Continuous Flow Matching 的 source。
连续分支不再从毫无结构的纯 Gaussian Noise 开始生成。
它面对的是一份已经带有动作结构的“草稿”。
于是 Continuous Action Expert 要做的事情从:
“从噪声中生成完整动作”
变成了:
“在已有动作结构上完成精细修正”
最终只需要再进行 一次 continuous forward。
因此完整生成过程只有:
1× Discrete Forward + 1× Continuous Forward = 2 NFE
而这里的关键并不仅仅是“多加了一个 discrete head”。
Discrete prediction 直接改变了 Continuous Flow Matching 的生成起点。
这也是我们所说的 Discrete Forcing。
03. 如何升级现有系统的 Action Expert?
Discrete Forcing 改造的是动作生成模块:上游模型提供视觉、语言和状态信息,新的 Action Expert 负责把这些条件转化为动作。论文分别在 StarVLA 和 上进行了实验,展示了这一设计可以结合不同模型使用。
这也让它有望成为其他机器人系统升级动作生成环节的一种选择。对 Agent、WAM 等上游推理较重的系统而言,更高效的动作专家有望缓解末端动作生成的延迟。
为了实现这一过程,我们设计了一个 Partially Shared Action DiT。
Discrete 和 Continuous 两条路径首先经过共享的 Transformer layers,学习共同的动作表征;随后进入各自独立的 branch,分别负责离散动作预测与连续动作 refinement。
这样做有两个目的:
一方面,两种 action representation 可以共享对当前视觉、语言和机器人状态的理解;
另一方面,它们又可以保留各自不同的建模能力。
更重要的是,虽然引入了两个 branch,整个 Action Expert 的参数量仍与对应的普通 single-branch DiT 保持相当。

04. 离散动作真的学到了「结构」吗?
这是我们很关心的一个问题。
如果 Discrete → Continuous 只是工程上把两个 predictor 串了起来,那么它本身并不能说明 coarse-to-fine 的假设成立。
因此,我们进一步分析了 Action Expert 内部的生成过程。

结果很有意思。
在 第一次 discrete forward 之后,动作轨迹已经能够形成接近 Ground Truth 的整体运动方向与轨迹几何。
此时:
Global Direction Similarity 达到 0.989。
而连续生成 baseline 则需要随着 NFE 增加,逐步形成完整的动作结构。
类似的现象也出现在轨迹形状上。
Discrete Forcing 第一步得到的 Normalized Trajectory Shape Error 为 0.0399,甚至低于实验中 Continuous Baseline 从 1 到 10 NFE 的结果。
随后第二次 continuous forward 所做的,更像是在这个已经成形的轨迹周围进行局部修正。
这给出了一个很直观的解释:
Discrete stage 负责尽早建立 global action structure,Continuous stage 则负责恢复 fine-grained details。
05. 只有两步,性能怎么样?
我们在 LIBERO、RoboTwin 2.0 和 RoboCasa-GR1 三类机器人操作 benchmark 上进行了实验,覆盖单臂、双臂以及更复杂的高维控制场景。
LIBERO:2 NFE,97.6%
在 LIBERO 上,Discrete Forcing 仅使用 2 NFE,平均成功率达到:97.6%。
在相同 1.5B 参数规模和 2 NFE 设置下,StarVLA 为 95.1%。
更重要的是,这一结果甚至超过了表中多种需要更多 iterative generation steps 的方法。
RoboTwin 2.0:49.80% → 59.32%
在双臂操作 benchmark RoboTwin 2.0 上:
StarVLA:49.80%
Discrete Forcing:59.32%
并且这里没有使用 robot-specific pre-training。
RoboCasa-GR1:43.9% → 56.8%
在 RoboCasa-GR1 上:
StarVLA:43.9%
Discrete Forcing:56.8%
说明 Discrete → Continuous 的生成方式并不局限于某一种 embodiment 或 action space。

06. 更快,而且可以继续 Scaling
Few-step generation 最直接的价值,当然是速度。
在 LIBERO 的效率测试中,相比 StarVLA 的 10-step continuous generation:
Action Generation:约 5× 加速
End-to-End Inference:超过 2× 加速
同时,Discrete Forcing 的成功率从 baseline 的 96.7% 提升到 97.6%。
也就是说,这里减少 NFE 并没有以牺牲任务性能为代价。
除此之外,我们还从 1.0B → 2.6B → 5.5B 对模型进行了 scaling。
随着模型规模增大,Discrete Forcing 的性能持续提升,并且在对应规模下始终保持比 continuous baseline 更低的 inference latency。
一个比较直观的结果是:
1.0B 的 Discrete Forcing 已经可以接近 5.5B Continuous Baseline 的任务表现,同时推理快 2.97×,参数减少 81.8%。

07. 真实机器人实验
我们设计了四个真实机器人任务,分别测试两类能力:
精细操作
Transfer Tubes Match Size
动态操作
Pick Rotating Light Grasp Moving Cube
其中后两个任务要求机器人面对持续运动的目标进行快速定位、跟踪和抓取,对 policy 的响应速度提出了更直接的要求。

我们在 上实例化 Discrete Forcing,并将四个任务的数据共同训练在一个模型中。
最终,Discrete Forcing 在四个任务上的平均 Task Progress 达到 74.9%,相比对应 baseline 的 58.5% 提升 16.4 个百分点。
尤其是在 Pick Rotating Light 和 Grasp Moving Cube 两个动态任务中,Discrete Forcing 展现出了更加明显的优势。
这也说明:
Action generation 的效率并不仅仅是一个 latency benchmark。
对于真实机器人,尤其是面对动态环境时,更快地产生高质量动作,本身就是控制能力的一部分。
08. 总结:给动作专家换一种生成方式
如何让 Diffusion / Flow Matching Action Expert 更快?
一个直接的答案是减少 denoising steps。
但 Discrete Forcing 想探索的是另一个方向:
与其让一个 continuous action expert 用很多步逐渐寻找动作结构,为什么不先显式生成结构,再恢复细节?
因此,我们把原本互相独立的两种 Action Representation 串成了一条生成路径:
Discrete → Continuous
Coarse Structure → Fine-grained Action
最终,一个完整 action chunk 只需要 两次 forward。
从系统角度看,Discrete Forcing 提供了一条清晰的升级路径:保留上游的感知与推理能力,重点升级最后的动作生成环节。 已有 VLA 实验验证了速度和任务表现;对于 Agent 和 WAM,它也提供了一个值得进一步接入和验证的方向。
从生成方式看,它展示了另一种思考方式:
离散动作与连续动作并不一定是二选一。
Discrete can define the structure. Continuous can restore the details.
Paper & Project
📄 Paper: Discrete Forcing: Infusing Discrete Guidance into Continuous Denoising for Few-Step Action Experts
🔗 arXiv: 2609.39526
🌐 Project Page: discrete-forcing.github.io
-END-
点击下方卡片,关注【Xbotics具身智能实验室】公众号
你想要的这里都有~~
Ask Me Anything|提问箱
对文章有疑惑,或想聊更深?欢迎把你的问题丢给我们:技术方案、实操踩坑、课程与资料、项目合作、职业发展,都可以问。
怎么问:在评论区留言,或私信公众号
我们会做什么:每周集中整理高质量问题并公开回复,重点问题邀请作者或嘉宾深度解答;典型问题会加入知识库并持续更新。
提问小提示:尽量说明「你的目标—当前做法—期望产出」,附上必要信息(硬件/软件版本、数据规模等),能更快获得有用答案。
一起把问题变成知识,推动社区进步 🚀