Picture a robot grasping a piece of bread. What happens next?
You can't tell from a single frame. The robot might be mid-task, about to place the bread on a skillet for cooking — or it might have just finished cooking and is returning the bread to the plate. Both states look identical in the image. But the correct action chunk is completely different.
This is the core problem that IntentVLA solves: observation aliasing, where visually similar frames require different actions depending on short-horizon context. The paper, published by researchers from Huazhong University of Science and Technology, Zhongguancun Academy, and collaborating institutions (arXiv:2605.14712), introduces a history-conditioned VLA framework that fixes this without sacrificing inference speed or memory.
The Problem: Why Do VLA Policies Fail at Multimodal Demonstrations?
Frame-Conditioned Policies Are Structurally Blind to History
Modern VLA policies learn from imitation data: sequences of (observation, action) pairs collected from human demonstrators. At inference time, the policy receives the current observation o_t and language instruction ℓ and generates the next action chunk τ_t.
The standard frame-conditioned formulation models:
p(τ_t | o_t, ℓ)
This is elegant and simple. It's also incomplete. Human demonstrations are inherently multimodal: two demonstrators performing the same task may be in completely different phases when their robot configurations look identical. One is at the start of a sub-task; the other is at the end of the same sub-task on a return pass. The training data contains both, with opposite action labels for the same-looking observation.
The policy trained on this data does the only thing it can: learn an average over the conflicting demonstrations. At inference, it may commit to the wrong intent — and worse, it may switch intents on the next replanning step, creating jerky, inconsistent motion.
Quantifying the Problem
The authors ran a principled analysis: for each frame in their AliasBench benchmark, they extracted visual embeddings using Qwen3-VL-8B and retrieved the top-5 nearest neighbors from the training data. The result: 49.7% of nearest neighbors belonged to a different intent — meaning nearly half of "visually similar" frames actually require opposite actions.
The cosine distance between frames from different intents was indistinguishable from same-intent pairs (gap < 3×10⁻³). No amount of visual encoder tuning can fix this — the information is simply not in the current frame.
Figure 1: The same observation (robot holding bread) appears in two different phases requiring different next actions. Only recent history disambiguates. Source: IntentVLA, arXiv 2605.14712
AliasBench: A Systematic Benchmark for Observation Aliasing
One of the paper's key contributions is AliasBench — 12 tasks on RoboTwin2 specifically designed to isolate and measure observation aliasing. Each task family represents a distinct structural cause of aliasing:
Family 1: Back-and-Forth Ambiguity (4 tasks)
Robot performs repeated sub-routines. Identical physical configurations appear at different phases of the cycle; required actions flip between occurrences.
- Move Block Out and Back (900 steps max)
- Cook Bread and Plate It (1100 steps)
- Use Stapler and Return It (900 steps)
- Store Shoe and Take It Back (900 steps)
Family 2: Crossing-Path Ambiguity (3 tasks)
Robot transports objects between multiple sources and destinations. Midway, paths cross — the robot's intermediate configuration looks identical regardless of origin, but the correct destination depends on where it started.
- Move Block to the Opposite Grid (500 steps)
- Move Block to the Other Grid (500 steps)
- Move Phone Between Stand and Pad (700 steps)
Family 3: Bimanual Ambiguity (2 tasks)
Two arms collaborate to pass an object. The handoff configuration looks symmetric regardless of transfer direction — but which arm receives next depends on which arm originated the pass.
- Hand Over Roller (900 steps)
- Hand Over Pill Bottle (900 steps)
Family 4: Multi-Goal Ambiguity (3 tasks)
Multiple targets coexist. A transient cue (a blinking light, a briefly-visible label) identifies the correct target — but the cue disappears before the robot starts moving.
- Pick Flashed Blocks in Order (1500 steps)
- Pick Flashed Cans in Order (1200 steps)
- Inspect Label and Place Block (700 steps)

IntentVLA Architecture: Compact History, Maximum Signal
IntentVLA's key insight is to condition action generation on recent visual history without the naive approach of concatenating raw frames into the context (which bloats memory and slows inference).
The architecture adds a parallel history encoder branch alongside the existing VLA backbone.
Current Context: Qwen3-VL 4B
The current RGB frame and language instruction pass through Qwen3-VL 4B, producing visual-language context tokens F_t ∈ ℝ^(N×d). This branch handles "what the robot sees right now."
History Encoder: Frozen VGGT-1B
The 16 most recent frames are processed by VGGT-1B — a model pre-trained for 3D geometric understanding. Rather than using all patch tokens (expensive), the method retains only:
- Camera token: encodes viewpoint information, camera-relative geometry
- 4 Register tokens per frame: capture global geometric structure and inter-frame relationships
This is a deliberately minimal selection — just the tokens that encode change between frames, which is exactly the signal needed to distinguish intents. VGGT is kept frozen throughout training, leveraging its pre-trained geometric understanding without re-training costs.
The selected tokens are projected into the action model's hidden space, yielding Ũ_t ∈ ℝ^(M×d) (detailed history tokens) and a pooled summary vector ē_t ∈ ℝ^(d_h).
Gated Cross-Attention Fusion
The current visual-language context queries the history via gated cross-attention:
F'_t = F_t + σ(α) · MHA(Q=LN(F_t), K=Ũ_t, V=Ũ_t)
Where:
αis a learnable scalar gate balancing how much current context vs. history contributesMHAis multi-head attention with current-frame queries, history keys/valuesLNis layer normalization
The gate starts near zero and learns the right balance during training — if a task doesn't benefit from history, the gate can suppress the history contribution entirely.
Intent Representation and Flow-Matching Action Head
The pooled history summary ē_t is reshaped into a single history evidence token e_t^tok ∈ ℝ^(1×d) and appended to the fused context:
C_t = [F'_t; e_t^tok]
C_t is the short-horizon intent representation — a compact encoding of "what the robot has been doing" that conditions action generation.
A DiT-based flow-matching head samples the action chunk from this conditioning:
τ_t = (a_t, a_{t+1}, ..., a_{t+H-1}) ∈ ℝ^(H×d_a)
Training minimizes the conditional flow-matching objective:
L_flow = E[||V̂_θ(X_s, s | C_t) - (τ_t - ε)||²]
Where X_s = (1-s)ε + sτ_t interpolates linearly between Gaussian noise and the target action chunk.
Training Setup
Datasets
| Dataset | Usage |
|---|---|
| AliasBench | Novel benchmark (100 demos per task) |
| SimplerEnv | BridgeDataV2 subset from Open X-Embodiment |
| LIBERO | All 4 suites: Spatial, Object, Goal, Long |
| RoboCasa-GR1 | PhysicalAI Robotics-GR00T-X-Embodiment-Sim subset |
Hyperparameters
| Parameter | Value |
|---|---|
| Training steps | 30,000 |
| Hardware | 16 × NVIDIA H100 |
| Batch size (per GPU) | 16 |
| Optimizer | AdamW |
| Learning rate | 1×10⁻⁵ |
| LR schedule | Cosine annealing |
| Gradient clip | max norm 1.0 |
| Precision | BF16 |
| History window K | 16 frames (~0.53 sec at 30 FPS) |
Getting Started with AliasBench
The GitHub repository (ZGC-EmbodyAI/IntentVLA) currently provides AliasBench benchmark code. Full model training and inference code is marked as coming soon.
To set up AliasBench with RoboTwin2:
# 1. Clone the IntentVLA repo
git clone https://github.com/ZGC-EmbodyAI/IntentVLA.git
# 2. Install RoboTwin2 following their documentation
# (see: github.com/TeleVision-AI/RoboTwin2)
# 3. Copy benchmark task files into RoboTwin2 checkout
cp -r IntentVLA/description/ path/to/RoboTwin2/description/
cp -r IntentVLA/envs/ path/to/RoboTwin2/envs/
cp -r IntentVLA/task_config/ path/to/RoboTwin2/task_config/
When model code releases, inference runs on a single H100 80GB:
# Future inference command (once code releases)
python eval.py \
--model intentvla \
--benchmark alias_bench \
--history_len 16 \
--checkpoint path/to/intentvla_checkpoint
Results: The Numbers
AliasBench — Primary Benchmark
| Method | Back-Forth | Crossing | Bimanual | Multi-Goal | Avg |
|---|---|---|---|---|---|
| Qwen3-VL-GR00T (baseline) | 6.0% | 15.7% | 5.5% | 8.7% | 9.0% |
| +16 raw frames in context | 31.8% | 47.3% | 6.0% | 18.7% | 28.1% |
| MemoryVLA | 13.3% | 22.7% | 4.0% | 16.7% | 14.9% |
| IntentVLA | 49.3% | 74.7% | 17.0% | 31.3% | 45.8% |
IntentVLA exceeds the strongest practical history baseline (raw 16-frame concatenation) by +17.7 points while using less memory. Over the no-history baseline: +36.8 points.
LIBERO
| Method | Spatial | Object | Goal | Long | Avg |
|---|---|---|---|---|---|
| OpenVLA-OFT | 97.6% | 98.4% | 97.9% | 94.5% | 97.1% |
| π0.5 | 98.8% | 98.2% | 98.0% | 92.4% | 96.9% |
| Qwen3-VL-GR00T | 97.8% | 98.8% | 97.4% | 92.0% | 96.5% |
| IntentVLA | 99.3% | 99.7% | 98.1% | 97.4% | 98.6% |
LIBERO-Long — the multi-stage manipulation suite most susceptible to aliasing — shows a +5.4-point gain, the largest among all four LIBERO suites.
SimplerEnv and RoboCasa
- SimplerEnv: 72.9% vs. 65.3% baseline (+7.6 pts), also beating the previous best 3D-Mix at 68.2%
- RoboCasa-GR1 (24 tasks): 57.0% vs. 47.8% baseline (+9.2 pts), best 24-task average
Real-World: Dual-Arm Franka Snack Cleanup

50 trials, 500-step budget each. Task: collect scattered snack packets and place them in a target zone.
| Method | ≥1 placed | ≥2 placed | ≥3 placed | ≥4 placed | E[#] |
|---|---|---|---|---|---|
| Qwen3-VL-GR00T | 70% | 36% | 14% | 0% | 1.20 |
| π0.5 | 82% | 44% | 18% | 0% | 1.44 |
| MemoryVLA | 78% | 52% | 22% | 2% | 1.54 |
| IntentVLA | 86% | 62% | 32% | 6% | 1.86 |
IntentVLA is the only method to achieve ≥4 snacks placed (6%). Expected throughput of 1.86 snacks vs. 1.20–1.54 for baselines. In a real deployment, this difference compounds over time.
Efficiency: Faster and Lighter Than Naive History
| Method | Throughput | Peak VRAM |
|---|---|---|
| Raw 16 frames in context | 6.45 Hz | 20.13 GiB |
| IntentVLA | 7.53 Hz | 14.58 GiB |
Compact history encoding saves 5.55 GiB VRAM and runs 16% faster than the naive concatenation approach, enabling single H100 80GB deployment.
Ablation Study: What Actually Matters?
Component Ablation on SimplerEnv
| Variant | Stack | Carrot | Spoon | Eggplant | Avg |
|---|---|---|---|---|---|
| Frame-only baseline | 18.8% | 59.4% | 83.0% | 100% | 65.3% |
| +VGGT current frame only | 30.2% | 61.5% | 72.5% | 94.8% | 64.8% |
| History fusion, no intent token | 49.0% | 65.6% | 67.7% | 95.8% | 69.5% |
| Full IntentVLA | 54.2% | 66.7% | 70.8% | 100% | 72.9% |
Key takeaways:
- Applying VGGT only to the current frame (no history) barely helps — the encoder isn't the bottleneck; the missing history is.
- History fusion alone improves to 69.5%.
- Adding the compact intent token brings another +3.4 points — the summary provides complementary signal to the cross-attention.
History Window Size
| K (frames) | Window (~sec) | AliasBench Avg |
|---|---|---|
| 8 | ~0.27 sec | 39.9% |
| 16 | ~0.53 sec | 45.8% |
| 24 | ~0.80 sec | 43.7% |
16 frames is the sweet spot. At K=24, performance slightly regresses — extra frames add noise beyond useful context.
History Encoder Comparison
| Encoder | AliasBench Avg |
|---|---|
| V-JEPA 2 (video model) | 38.6% |
| VGGT-1B (geometry model) | 45.8% |
VGGT outperforms V-JEPA 2 by 7.2 points despite not being designed for robot video. Geometric pre-training generalizes better to frame-to-frame state reasoning than video pre-training.
Inter-Chunk Consistency: A New Metric for Stability
The paper introduces Inter-Chunk Consistency (ICC-L2): average L2 distance between the last action of chunk t and the first action of chunk t+1. Lower ICC-L2 means smoother, more consistent motion.
- Baseline: ICC-L2 = 0.219
- IntentVLA: ICC-L2 = 0.181 (17.6% improvement)
- 90th-percentile ICC-L2 (tail inconsistency): drops 21.7%
This metric deserves wider adoption. A policy can have decent task success rates while producing mechanically damaging, jerky motion — ICC-L2 catches this where task success doesn't.
Limitations to Keep in Mind
Bimanual ambiguity remains hard: 17.0% average for this family. Symmetric handoff configurations encode very little directional signal even in 16-frame history. Future work needs motion-based rather than appearance-based representations.
Multi-goal ambiguity needs improvement: 31.3% — when the relevant cue (flash, label) disappears before action begins, even 16 frames of recent history may not capture it. Longer memory or event-triggered encoding could help.
Training code isn't released yet: AliasBench is available; the IntentVLA model code is coming. Check the repo for updates.
H100 compute requirement: 30K steps on 16 × H100 for the full training setup. Academic labs with smaller clusters may need to reduce batch size and steps and verify results hold.
Key Takeaways for Practitioners
1. If your robot jitters between consistent motion phases, check for observation aliasing. The symptom isn't random failure — it's systematic inconsistency at points where the visual state recurs with different task context.
2. Compact history beats raw concatenation. Throwing 16 frames into the context as raw tokens uses more VRAM and runs slower than the compressed representation IntentVLA uses. Encoding is the work, not accumulation.
3. Pre-trained geometric encoders transfer surprisingly well. VGGT was pre-trained on 3D scene reconstruction. When repurposed as a frozen history encoder for robot manipulation, it outperforms a dedicated video model. Pre-training quality matters more than domain specificity when target task data is limited.
4. Add ICC-L2 to your evaluation. Task success rate measures outcomes. ICC-L2 measures execution quality. Both matter for real-world deployment — motors and joints wear faster with high-variance action generation.
5. Observation aliasing is a dataset property, not a model failure. Human demonstration data is inherently multimodal. Any policy trained on such data with a frame-conditioned formulation will exhibit aliasing. IntentVLA's architectural fix is model-side, but the underlying cause is in the data collection process.
Conclusion
IntentVLA addresses a structural gap in how VLA policies are trained and deployed: the implicit assumption that the current observation contains sufficient information to determine the correct action. For many real-world tasks, it doesn't — and the consequences are unstable, contradictory behavior that degrades task success and robot longevity.
The solution — frozen VGGT history encoder, gated cross-attention fusion, compact intent token — is both principled and practical. It improves performance across the board while reducing memory usage relative to naive history approaches, and it works in the real world on a dual-arm Franka platform.
AliasBench fills a gap in the evaluation landscape: a systematic benchmark that isolates exactly this failure mode. Expect it to become a standard test for VLA fine-tuning pipelines over the next year.
Keep an eye on github.com/ZGC-EmbodyAI/IntentVLA for training code.
References:



