FlashVLA: Streaming Action Decoding for Fast and Asynchronous VLA Inference

Zekai Li, Jiaming Tang, Zhijian Liu

Vision-Language-Action (VLA) models are becoming practical robot policies, but real robots do not get to pause while the model thinks. Flow-matching VLAs such as π0.5\pi_{0.5} generate actions through iterative denoising, and in our profile this action decoder takes about 60%-80% of per-step inference time, depending on the number of camera views.

This bottleneck creates a dilemma for VLA deployment. Synchronous inference keeps observations and actions temporally aligned, but stalls the robot at every chunk boundary while the next chunk is decoded. Asynchronous inference overlaps prediction with execution, but predicts from a stale observation; the actions arrive at a robot state the model never saw, and the longer the lookahead, the larger the temporal mismatch.

The Bottleneck Is Chunk Isolation

Prior work treats these as separate problems. Efficient-inference methods make each forward pass cheaper with lightweight architectures, compression, or token pruning, but the decoding loop still blocks. Asynchronous methods condition on future states or planned actions, but still require lookahead, which re-amplifies mismatch.

Our observation is that two issues share the same cause: chunk isolation. A flow-matching VLA decodes each action chunk from pure noise, conditioned only on the current observation and decoupled from chunks already in flight. Isolation concentrates all denoising steps inside one chunk decode, creating latency, and leaves each new chunk uninformed about the trajectory it is about to join, creating mismatch.

Synchronous decoding stalls; asynchronous decoding predicts from stale observations.
Synchronous decoding stalls; asynchronous decoding predicts from stale observations.
Streaming action decoding significantly improves efficiency.
Streaming action decoding significantly improves efficiency.

FlashVLA: Streaming Action Decoding

FlashVLA keeps a rolling buffer of N action chunks. Earlier slots are closer to execution and cleaner; later slots are farther in the future and noisier. Each forward pass advances the whole buffer by one denoising step. After warm-up, the cleanest chunk is emitted, the buffer shifts, and a fresh noisy chunk enters the tail.

This single formulation gives FlashVLA three advantages:

  • Amortized denoising. Each chunk still traverses the full denoising path, but the passes are spread across streaming steps. The robot gets one executable chunk per step instead of waiting for a full blocking decode.
  • Implicit asynchronous conditioning. Future chunks attend to cleaner near-execution chunks, so the decoder is already conditioned on the trajectory the robot is following. No future-state predictor is needed.
  • Chunk-level memory. Each noisier chunk attends to all earlier chunks in the buffer, giving the action expert a short structured history of recently refined actions. This is especially useful on long-horizon tasks.
noisy → clean executed
π₀.₅ 0 / – steps
decoding one chunk executed
+ FlashVLA 0 / – steps
streaming buffer executed
loading traces…
Left: the decoding schedule — noise enters the buffer on the left, denoises as it advances, and crosses the divider when emitted. Right: the same LIBERO episode (same task, same seed, both runs successful), replayed step by step; execution frames advance at the same rate in both rows. Hover any chunk to see what it is conditioned on.

Training

We adopt multi-buffer joint fine-tuning. For each observation, we pack all valid buffer states into one training sample: cold-start states with padding chunks, and the full steady-streaming state. These packed buffers share the same visual-language context, while an attention mask prevents interaction across buffer states. The objective is still the standard flow-matching loss, just summed over the packed buffer states.

One training sample packs every valid buffer state for the same observation; an attention mask keeps the states from interacting.
One training sample packs every valid buffer state for the same observation; an attention mask keeps the states from interacting.

Inference

FlashVLA runs in two phases. During cold start, the buffer is gradually populated while the robot executes a safe no-op action and remains stationary. This overhead is paid once at the beginning of an episode. During steady streaming, each forward pass advances every chunk by one denoising step, emits the cleanest chunk, shifts the buffer, and appends a fresh noisy chunk at the tail. Each chunk still traverses the full denoising path before execution, but the work is amortized across time.

Simulated Evaluation

Asynchronous Execution

On LIBERO with asynchronous deployment, FlashVLA is the only method that improves both axes. At one-step delay, it raises average success from 96.9% to 97.8% while reducing time per step from 53.8 ms to 22.1 ms, a 2.43x speedup. VLASH provides only a 1.15x speedup at comparable success, while StreamingVLA reaches 1.70x but loses 2.0 success points.

MethodSpatialObjectGoalLongAvg.StepsTimeTime / stepSpeedup
π0.5\pi_{0.5} sync98.898.298.092.496.9156.08.4 s53.8 ms1.00x
VLASH (d=1)98.899.296.794.497.2153.97.2 s46.8 ms1.15x
VLASH (d=4)92.596.993.389.693.1176.75.8 s32.8 ms1.64x
StreamingVLA (d=1)96.696.695.491.094.9n/an/a31.6 ms1.70x
FlashVLA (d=1)98.899.697.695.497.8158.03.5 s22.1 ms2.43x
LIBERO asynchronous performance at one-step delay unless noted. Steps and time are averaged per episode; time / step is the end-to-end deployment metric.

RoboTwin 2.0 shows the same pattern in the harder bimanual setting. At one-step delay, FlashVLA reaches 90.6% success, compared with 86.0% for synchronous π0.5\pi_{0.5} and 86.9% for VLASH, while reducing time per step from 47.4 ms to 43.8 ms. VLASH and FlashVLA use the same π0.5\pi_{0.5} backbone and the same clean-plus-randomized 50-task training data.

The advantage remains as the asynchronous delay grows. Across d=1-4, FlashVLA maintains 97.5%-98.3% success on LIBERO and 89.8%-90.6% on RoboTwin 2.0, staying above the synchronous baseline throughout. On RoboTwin, it outperforms VLASH by 3.7-4.7 points while sustaining a 1.08x-1.10x end-to-end speedup (the smaller speedup is simulator-dominated: policy inference occupies only 8.1 of 47.4 ms per step, while rendering and communication take the rest).

LIBERO
π₀.₅ sync VLASH FlashVLA
Success Rate (%)92949698100123496.997.297.194.693.197.898.397.997.5
Above synchronous π₀.₅ at every delay.
RoboTwin 2.0
π₀.₅ sync VLASH FlashVLA
Success Rate (%)8486889092123486.086.986.485.985.190.690.690.489.8
3.7-4.7 points above VLASH at every delay.
Time / Step (ms)1525.7536.5047.25581234Asynchronous Delay d53.846.840.634.132.822.120.620.720.6
2.43x-2.62x end-to-end speedup.
Time / Step (ms)404346491234Asynchronous Delay d47.447.146.946.546.243.843.543.342.9
1.08x-1.10x end-to-end speedup.

Inference Latency

We isolate decoding latency by comparing against Realtime-VLA, which accelerates each pass while retaining the original decoding loop. FlashVLA is faster in every hardware and camera setting, reaching 20.3 ms per policy invocation on an RTX 5090 with two views. Its advantage grows with the number of camera views as each forward pass becomes more expensive.

Inference Latency Across Hardware
π₀.₅ Realtime-VLA FlashVLA
Latency (ms)
FlashVLA is fastest in every measured GPU / camera configuration.

Cross-Architecture Generalization

FlashVLA is a plug-and-play decoding method for flow-matching VLAs. On SmolVLA, synchronous FlashVLA preserves average success at 80.1%; at one-step asynchronous delay, it reaches 79.5% while reducing time per step by 1.44x. On LingBot-VLA, it raises success from 85.2% to 88.6% synchronously and 89.3% asynchronously, with 1.15x and 1.22x time-per-step speedups. Inference latency falls by 1.95x on SmolVLA and 2.81x on LingBot-VLA.

BackboneMethodAvg. SR (%)Time / StepInference Latency
SmolVLABaseline80.141.2 ms19.7 ms
SmolVLA+ FlashVLA (d=0)80.1 (+0.0)29.7 ms (1.39x)10.1 ms (1.95x)
SmolVLA+ FlashVLA (d=1)79.5 (-0.6)28.7 ms (1.44x)-
LingBot-VLABaseline85.256.7 ms70.6 ms
LingBot-VLA+ FlashVLA (d=0)88.6 (+3.4)49.5 ms (1.15x)25.1 ms (2.81x)
LingBot-VLA+ FlashVLA (d=1)89.3 (+4.1)46.6 ms (1.22x)-
Cross-architecture performance. d=0 denotes synchronous FlashVLA and d=1 denotes one-step asynchronous FlashVLA; delay-independent inference latency is reported at d=0.

These results show that streaming action decoding generalizes across distinct flow-matching VLA architectures under both synchronous and asynchronous execution, with no or only minimal additional parameters.

Real-World Experiment

We deploy FlashVLA on a 7-DoF Franka arm with a consumer-grade RTX A4000 and ask whether the simulated latency and asynchronous-continuity benefits transfer to a real robot at 30 Hz. The tasks span short, medium, and long horizons: pick-and-place, whiteboard wiping, and table cleaning. We compare π0.5\pi_{0.5} synchronous, naive asynchronous π0.5\pi_{0.5}, RTC, and FlashVLA; all asynchronous methods use a two-step delay.

Real-World Score
π₀.₅ Naive Async RTC FlashVLA
Score (%)
FlashVLA achieves the best score on all three real-world Franka tasks.
Real-World Completion Time
π₀.₅ Naive Async RTC FlashVLA
Time (s)
Lower is better. FlashVLA also completes every task fastest.

FlashVLA exceeds all three π0.5\pi_{0.5} configurations on every task, improving the cross-task average score from 80.0% for synchronous π0.5\pi_{0.5} and RTC (75.6% for naive asynchronous execution) to 84.4%. Completion time is measured only over successful trials, so the 1.3x speedup over synchronous execution and 1.2x over RTC cannot come from failed rollouts ending early. The joint gain in score and speed shows that streaming removes chunk-boundary stalls while preserving asynchronous continuity. Relative to synchronous execution, the absolute time saved grows from 3.1 s on pick-and-place to 10.2 s on table cleaning.

On the RTX A4000, FlashVLA has an inference latency of 67.3 ms, approximately two 30 Hz control periods. A two-step asynchronous delay overlaps this latency with action execution, enabling real-time 30 Hz control on a consumer-grade GPU.

Conclusion

FlashVLA shows that VLA action decoding does not have to be a blocking loop. A streaming buffer of action chunks at staggered noise levels collapses the latency cost and the asynchronous-mismatch cost into one design. It cuts per-step action-decoding latency by up to 20x while keeping every action chunk on a full denoising trajectory.

The same mechanism fixes asynchronous mismatch. Cleaner near-execution chunks become context for noisier future chunks, so the next action is conditioned on the motion already underway. Fast inference and smooth execution come from the same design.

Citation

@article{flashvla2026,
  title = {{FlashVLA: Streaming Action Decoding for Fast and Asynchronous VLA Inference}},
  author = {Li, Zekai and Tang, Jiaming and Liu, Zhijian},
  year = {2026}
}