---
title: VLASH
link: https://arxiv.org/abs/2512.01031
doi: arXiv:2512.01031
status: "已阅读"
doc_type: paper
tags: [实时VLA, 异步控制, Future State Awareness, Action Chunking, Offset Fine-tuning, Action Quantization]
date: 20260704
---

# VLASH: Real-Time VLAs via Future-State-Aware Asynchronous Inference (Arxiv 2025)

[Paper](https://arxiv.org/pdf/2512.01031)

---

## Motivation
VLA 的真实部署通常比视频里看起来慢很多：同步推理需要先生成 action chunk，再执行动作，推理期间机器人停住；如果直接改成异步推理，在执行当前 chunk 的同时生成下一个 chunk，又会出现 prediction-execution misalignment。

核心问题是：模型在时间 $t$ 看到的是当前 observation 和 state，并预测 $[t,t+K)$ 的动作；但由于推理延迟 $\Delta$，这些动作真正开始执行时已经到了 $t+\Delta$，机器人和环境都发生了变化。因此 naive async 虽然消除了停顿，但新 chunk 是基于 stale state 生成的，容易出现动作不稳定、滞后和 chunk 切换不连续。

## Contribution
![alt text](asserts/VLASH/figure-01.png)

提出 VLASH（Vision-Language-Action State Handoff），用 Future-State-Aware Asynchronous Inference 解决异步推理中的状态错位问题：

- **Future State Awareness**：推理开始时，不再只把当前机器人状态 $s_t$ 输入给 VLA，而是用上一段已经生成的 action chunk 将机器人状态 roll forward 到 $s_{t+\Delta}$，让模型为真正执行时的状态生成动作。
- **Offset Fine-tuning**：训练时随机采样时间偏移 $\delta$，固定视觉 observation $o_t$，但输入未来状态 $s_{t+\delta}$ 并预测未来 action chunk $a_{t+\delta:t+\delta+H-1}$，强迫模型学会利用 proprioceptive state，而不是只依赖图像。
- **Shared Observation Efficient Fine-tuning**：同一个 observation 对应多个 offset branch，通过 block-sparse attention 共享 observation tokens，减少重复视觉编码。

    ![alt text](asserts/VLASH/figure-02.png)

- **Action Quantization**：将多个 fine-grained delta action 合并为 macro-action，在异步推理已经隐藏模型延迟后，进一步提高机器人实际运动速度。

整体上 VLASH 不需要额外 inference-time optimization，也不需要改 VLA 主体结构；主要改的是 fine-tuning sample 构造和 deployment 时的状态输入。

## Limitation
VLASH 只能 roll forward **机器人本体状态**，不能准确预测未来环境 observation。也就是说，如果外界物体、人手、球等目标在推理延迟内发生快速变化，输入图像仍然是 $o_t$，模型只能基于旧视觉信息做反应。

另外，VLASH 依赖模型真的能利用 state input。论文也观察到现有 VLA 可能更依赖视觉而低估机器人状态，因此必须通过 offset fine-tuning 让 state 变成有效条件。对于把数值 state 文本化输入的架构，state 的数值结构会被 tokenizer 破坏，可能需要额外的 state projection 才能更稳定。

---

## Architecture

### Background
设 action chunking policy 为：

$$
\pi_\theta(A_t|o_t,s_t),\quad A_t=(a_t,a_{t+1},...,a_{t+H-1})
$$

其中 $H$ 是 prediction horizon，实际每次只执行前 $K$ 个动作，$K$ 是 execution horizon。

同步推理中，机器人等待模型生成 chunk 后再执行，因此会有 stop-and-go 的停顿。异步推理中，模型在后台生成 $A_t$，机器人继续执行上一段 chunk。设推理延迟为 $\Delta$ 个控制步，则：

$$
I_t^{pred}=[t,t+K) \\
I_t^{exec}=[t+\Delta,t+\Delta+K)
$$

naive async 的问题是 $A_t$ 是基于 $(o_t,s_t)$ 预测的，但真正执行时状态已经是 $s_{t+\Delta}$。

### Future State Awareness
VLASH 的核心是将输入状态从当前状态替换为执行时状态：

$$
\pi_\theta(A_t|o_t,s_{t+\Delta})
$$

虽然 $o_{t+\Delta}$ 不可知，但 $s_{t+\Delta}$ 可以由当前状态和推理延迟期间将要执行的动作估计出来：

$$
s_{t+\Delta}=\mathrm{RollForward}(s_t,a_t,a_{t+1},...,a_{t+\Delta-1})
$$

如果动作是 delta action，可以近似理解为：

$$
s_{t+\Delta}=s_t+\sum_{i=0}^{\Delta-1}a_{t+i}
$$

这样模型在生成新 chunk 时，用的视觉仍然是当前图像 $o_t$，但机器人本体状态已经对齐到新 chunk 开始执行的时刻。相比 REMAC/RTC 这类在 chunk 生成或采样时处理 prefix/mask 的方法，VLASH 更像是把错位问题转化为输入条件对齐问题。

### Offset Fine-tuning
仅在 test time 把未来状态喂给模型通常不够，因为很多 VLA 在训练中没有学会认真使用 state input。

VLASH 的训练构造是：给定轨迹 $\{(o_t,s_t,a_t)\}$，随机采样 offset：

$$
\delta\sim\{0,1,...,\Delta_{max}\}
$$

然后训练模型从固定 observation 和 offset state 预测对应未来 action chunk：

$$
(o_t,s_{t+\delta})\to a_{t+\delta:t+\delta+H-1}
$$

关键是固定 $o_t$：同一张图像可以对应多个不同 offset 的 state-action pair。为了拟合这些样本，模型必须区分 $s_{t+\delta}$，从而学会将 robot state 当作有效条件。

这个设计也让同一个模型适配不同硬件推理延迟：$\delta=0$ 对应同步推理，$\delta>0$ 对应不同程度的异步延迟。

### Shared Observation Fine-tuning
naive offset fine-tuning 会把每个 $\delta$ 都当作独立样本，导致同一个 observation 被重复编码。

VLASH 将一个共享 observation 和多个 offset branch pack 到同一个序列里：

$$
[o_t,\ (s_{t+\delta_1},A_{t+\delta_1}),\ (s_{t+\delta_2},A_{t+\delta_2}),...]
$$

attention mask 的规则是：

- observation tokens 之间可以互相 attention；
- 每个 offset branch 可以 attend 到 observation tokens 和自己 branch 内的 state/action tokens；
- 不同 offset branch 之间不能互相 attention。

这样等价于用同一张图像训练多个 offset 样本，但视觉 tokens 只编码一次。

### Action Quantization
异步推理隐藏了模型推理时间后，系统速度瓶颈会转移到机器人实际运动速度。VLASH 进一步将连续的细粒度动作合并为 macro-action：

$$
\hat a_j=\sum_{i=jq}^{(j+1)q-1}a_i
$$

其中 $q$ 是 quantization factor。对于 delta action，这相当于跳过部分中间 waypoint，直接移动到更远的状态。$q$ 越大，运动越快，但控制粒度更粗，存在 speed-accuracy trade-off。

---

## Experiments

### Setup
- **模型**：$\pi_{0.5}$、SmolVLA-450M。
- **仿真环境**：Kinetix、LIBERO。
- **真实机器人**：Galaxea R1 Lite 双臂机器人、LeRobot SO-101。
- **真实任务**：Pick and Place、Stacking、Sorting，以及高动态任务 Ping-pong、Whack-a-mole。
- **硬件**：真实实验主要报告 laptop RTX 4090；reaction speed 还测试了 RTX 5090、4090、5070。

### Results
Kinetix 动态任务中，VLASH 在不同 execution horizon 和 inference delay 下都接近同步上界。delay 为 4 steps 时，VLASH 成功率为 81.7%，naive async 为 51.2%，提升 30.5%。

LIBERO 上，$\pi_{0.5}$ 使用 VLASH async 在 delay 为 1/2/3 时保持接近同步推理的成功率，同时分别取得约 1.17x、1.31x、1.47x speedup。delay 过大时准确率开始下降，但仍保持可用。

真实机器人任务中，VLASH 相比同步推理保持更好或相近的任务得分，同时显著降低完成时间。加入 action quantization 后，最高报告到 2.03x speedup，并基本保持原有准确率。

reaction latency 上，同步推理的最大反应延迟约等于 execution duration + inference latency；异步推理约等于 inference latency。论文在 50Hz、500ms execution duration 设置下报告：

| GPU | Inference Latency | Sync Reaction | Async Reaction | Speedup |
| --- | --- | --- | --- | --- |
| RTX 5090 | 30.4ms | 530.4ms | 30.4ms | 17.4x |
| RTX 4090 | 36.1ms | 536.1ms | 36.1ms | 14.9x |
| RTX 5070 | 64.1ms | 564.1ms | 64.1ms | 8.8x |

shared observation fine-tuning 在 4x H100 上单步训练耗时从 420.99ms 降到 129.29ms，约 3.26x speedup；早期收敛更慢，但 30K steps 时接近标准 fine-tuning 成绩。

---

## My Takeaways

### 和 REMAC 区别
REMAC 主要关注 action chunk 内哪些 prefix 已经错过、哪些 suffix 还能被执行，并通过 mask / self-conditioning / prefix-preserved sampling 让模型适配 delay。

VLASH 则把核心矛盾放在 state alignment ，把 state 从 $s_t$ 对齐到 $s_{t+\Delta}$，模型就能为执行时刻生成更合理的动作。

### 如果环境变化错位？
VLASH 解决的是机器人 proprioceptive state 的错位，不是完整 world state 的错位。对于静态或慢变化操控任务，这个近似足够；但对于乒乓球、打地鼠这类高速变化任务，视觉 stale 仍然是瓶颈。

论文能在这些任务上跑起来，说明 VLA 在一定程度上可以用旧视觉 + 未来本体状态做反应。但如果目标物运动高度不确定，可能还需要显式预测未来视觉状态、目标轨迹。

### State input 的训练方式
论文里一个观察是：有些 VLA 去掉 state input 反而更强，说明 state 并不天然会被利用。Offset fine-tuning 通过“同图像、多未来状态、多动作目标”构造了一个强约束，让模型不能只靠视觉背答案。

如果想让 VLA 利用某个条件变量，就要在训练数据里制造“其他输入相同、该变量不同、输出也不同”的对照关系。