让 VLA 实时运行:推理延迟这道坎

控制策略必须比世界变化得更快地输出动作(几十 Hz),可一个大的 VLA 单次前向就要 100 ms 上下。看看动作分块、异步推理、蒸馏与量化如何弥合这道鸿沟。

阅读约 8 分钟

一台人形机器人去接一只正在下落的杯子,是没有五分之一秒可供它思考的。杯子在动,接触在逼近,手必须在这段物理过程把它甩下之前就到位。机器人的控制器活在一口时钟上:它必须每隔几十毫秒就吐出一条新指令,永不停歇,否则运动就会撕裂。这个硬约束几乎从不出现在展示集锦里,却正是决定一个策略能否真正落地的那一条。

矛盾就在这里。今天最强的操作策略,是庞大的 vision-language-action 模型:拥有数十亿参数的 transformer,读入相机画面和一句语言指令,返回电机指令。让它做一次前向传播要花实打实、可测量的时间,在部署硬件上往往是 100 ms 上下。而世界却在以几十 Hz 的节奏持续变化。若是天真地每个控制步跑一次模型,机器人就会一顿一顿:它等待,基于过时的感知动作,再等待。

弥合这道鸿沟靠的不是单个技巧,而是一整摞技巧,且每一个都会在你必须采集的数据上留下印记。这才是值得细说的部分。延迟通常被归进系统工程,可它的种种解法,一路回溯到了一段示范最初该如何被记录。

机器人错不起的那口时钟

先大致看看数字。一个灵巧操作控制器希望以 30 到 200 Hz 之间的频率更新,具体取决于任务和硬件。就当一个双臂桌面系统是 50 Hz 吧:每 20 ms 一个新目标。而一次大 VLA 的前向传播,在机载 GPU 上要慢得多,一旦把视觉编码器、语言骨干和动作解码器都算上,通常落在 50 到 200 ms 区间。即便取乐观的那一端,模型给出一个决策的工夫,控制器本想要五个。

你没法干脆把控制器跑慢。把操作回路降到 5 Hz,富接触的运动就散架了:夹爪过冲,力的尖峰无从纠正,任何带动态的动作都没戏。所以真正的问题从来不是怎样让一次前向传播瞬间完成,而是怎样让一个快速控制回路持续被一个慢速模型喂饱,同时两者互不干等。下面每一项技术,都是对这个问题的作答。

动作分块争取时间

第一步、也是最重要的一步,是别再向模型只要一个动作。取而代之,策略在一次前向里预测未来的一小段动作,也就是一个动作块,控制器一步步把这段动作播出去,与此同时下一次推理正在跑。如果一次前向能产出 50 Hz 下半秒的运动,那就是一次思考换来二十五条指令。模型的延迟被摊到了整段动作上,而不是卡住每一步。正因如此,几乎每一个严肃的 VLA,包括 Physical Intelligence 的 π0 系列,都是预测动作块而非单步。

不过,一个动作块是对未来的一次押注。时程越长,机器人开环运行得就越久,执行的是一份基于如今已经过时的感知所做的计划。押上太长的块,策略就不再反应了:它会照旧去抓一只早已挪走的杯子。押得太短,你又回到每隔几步就交一次延迟税的境地。块长,是反应性与算力之间一场直接的取舍,需按任务调校。

一个以突发方式思考、并在两次思考之间开环执行的策略,其好坏的上限,取决于训练数据是否记录得足够快、计时足够准,足以监督它将要独自走出的每一步。

异步推理与反射层

光靠分块,仍留着一道接缝。当一个块播完,下一个必须已经就绪,而若推理很慢,机器人要么停顿,要么在新计划覆盖旧计划的一刻猛地一顿。异步推理把这道接缝藏了起来:下一个块在后台计算,同时当前这个块正在执行,两者在边界处融合,于是切换是连续的,而不是一次跳变。Physical Intelligence 就描述过正是这种实时分块:在当前动作序列跑完之前就生成下一段,并把它们缝合起来,让机器人永不因等待大脑而卡住。

第二种结构性的答案,是按速度把模型拆开。NVIDIA 的 Isaac GR00T 就围绕一套松散借鉴人类认知的双系统设计构建:一个较慢的 System 2,即一个对场景与目标进行推理的视觉语言模型,和一个更快的 System 1,把那份意图转成高频运动。慢的那一半以几赫兹运行,快的那一半以控制频率运行。Google DeepMind 把同样的直觉推向了边缘端,做出一个端上版本的 Gemini Robotics,一个在本地运行的更小模型,好让从感知到动作无需往服务器来回跑一趟。这个形态在各家实验室反复出现:让一个重模型偶尔定方向,让一个轻模型去处理毫秒到毫秒之间的反射。

把模型变小:蒸馏与量化

工具箱的另一半,直接向前向传播本身开刀,其中两种技术占主导。

蒸馏训练一个小的学生策略去模仿一个大的教师 VLA。大模型,或它们的集成,生成或评分行为;紧凑的模型学着以零头的参数量和延迟去复现它。你拿教师的一部分泛化能力,换来一个塞得进机器人算力预算、又跟得上控制频率的策略。量化保留同一张网络,却缩小它的数字,从 16-bit 浮点降到 8-bit 甚至 4-bit 整数,削减内存搬运,并加速主导推理的矩阵乘法。小心地做,几乎不损精度;粗心地做,恰恰会侵蚀操作策略最需要的那点精细运动精度。

两者都不是免费的,且都与上面的一切相互牵连。一个蒸馏出的反射策略更容易异步运行,却只能可靠地规划更短的时程。一个量化后的模型更快,却更吵,这抬高了对其训练数据必须多干净的要求。这些取舍的公开记录,多半躺在机器人学文献里,而非产品页上,而且更新很快。

在实时控制预算内运行一个大 VLA 的各种技术,以及各自的代价
技术延迟收益主要代价
动作分块把一次前向摊到许多控制步上开环带来的过时;时程越长越不反应
异步推理消除两个块之间的停顿需要融合逻辑;计时必须严丝合缝
慢脑加快反射快回路从不等待 VLM两个模型要训练并保持同步
蒸馏更小的学生跑在控制频率上丢掉教师的一部分泛化
量化(int8 或 int4)更便宜、更快的矩阵运算精度损失可能伤及精细操作

延迟同样是个数据问题

现在说说贯穿始终的那条线。上面每一个解法,都对底下的数据有所假设,而且大体是同一个假设:那些示范是被又快、又密、且计时准确地记录下来的。

分块是最清楚的例子。要训练一个策略在 50 Hz 下吐出半秒的动作,示范里就必须以 50 Hz 装着那半秒。动作是逐步监督的,所以一段二十五条指令的动作块,需要二十五个按机器人将要运行的频率采到的真值目标。把同一个任务以 10 Hz 采集,就没有 50 Hz 的信号可学:两次采样之间那点精细的纠正从未被记录,任何插值都变不出它。你在部署时想要的控制频率,为你在采集时所需的采集频率定了一个下限。

异步融合又添了一重计时要求。如果数据在一帧相机画面与记在它名下的动作之间带着抖动的、或未知的延迟,策略学到的就是一种被抹糊的对应关系,而实时缝合动作块会把这份模糊放大。蒸馏与量化则添了一重质量要求:一个更小或更低精度的学生,平均掉噪声的余量更少,因而需要更干净、更一致的示范,才能达到同样的可靠度。又快、又紧、计时又好的数据,对实时控制并非锦上添花,而是前提。

说到底,延迟不是模型的一个脚注。它是物理世界强加于模型的纪律。一个离线时光彩夺目的 VLA,若无法在任务允许的时间窗内作答,便一文不值;而每一个为它挣得这扇窗的方法,从分块的时程到蒸馏出的反射,都反过来要求数据被记录得比机器人将要运动的更快、计时得更紧。模型会越来越快。更难、也更少被问出口的问题是:它们所学的那份记录,一开始是否足够快。

vlareal-time-controlinferenceaction-chunkingdeployment

来源