VnRoboVnRobo
AboutPricingBlogContact
🇻🇳VISign InStart Free Trial
🇻🇳VI
VnRobo logoVnRobo logo

AI infrastructure for next-generation industrial robots.

Product

  • Features
  • Pricing
  • Knowledge Base
  • Services

Company

  • About Us
  • Blog
  • Contact

Legal

  • Privacy Policy
  • Terms of Service

© 2026 VnRobo. All rights reserved.

Made with♥in Vietnam
VnRoboVnRobo
AboutPricingBlogContact
🇻🇳VISign InStart Free Trial
🇻🇳VI
  1. Home
  2. Blog
  3. μVLA: Memory Tokens Double Success Rate from 42% to 84%
wholebody-vlavlarecurrent-memoryopenvlamanipulationrobot-learningpartial-observabilitywholebody-vlatransformer

μVLA: Memory Tokens Double Success Rate from 42% to 84%

μVLA adds learnable recurrent memory tokens to OpenVLA-OFT to tackle partial observability, doubling manipulation success from 42% to 84% on MIKASA-Robo.

Nguyễn Anh TuấnAugust 25, 202610 min read
μVLA: Memory Tokens Double Success Rate from 42% to 84%

Picture trying to assemble a puzzle where each glance only reveals a tiny, shifting corner of the image. That is exactly the challenge robots face with partial observability — the camera doesn't see the whole scene, objects get occluded behind the arm, and targets slide out of frame. Traditional VLA models have no working memory: each timestep they get a fresh view and nothing else, no record of what they saw a moment ago.

Researchers at AIRI (Artificial Intelligence Research Institute, Moscow) tackled this with μVLA (arXiv 2606.12497) — a surprisingly elegant fix: append a small set of learnable recurrent memory tokens to the transformer backbone and carry them across timesteps. The result: success rate on MIKASA-Robo jumps from 42% to 84% with no auxiliary losses, no new datasets, no architectural redesign.

The Problem: Memoryless VLA Policies

Current VLA models like OpenVLA-OFT treat each observation independently — a Markovian policy. This works when the camera sees everything, but fails when:

  • Objects become occluded: the target box is now hidden behind the gripper, but the robot still needs its location
  • Targets leave the camera's field of view: the target moves, the camera doesn't track it
  • Tasks require remembering earlier state: "pick the cube whose color you saw at the start" — by pickup time, the cue is gone from the frame

MIKASA-Robo was designed specifically to stress-test this weakness: 32 manipulation tasks across 12 groups, with deliberate partial observability. Baseline OpenVLA-OFT without memory achieves only 0.42 average success rate on 5 training tasks — and just 0.07 on held-out tasks.

The Core Idea: Memory Tokens Inside Self-Attention

The solution is deceptively simple. Instead of redesigning the architecture, the authors do one small thing: insert m learnable tokens into the attention layer's input sequence and carry those tokens across timesteps within the same episode.

The input sequence with memory looks like:

code
[BOS] [VIS] [PROPRIO] [M_t] [TEXT] [ACT] [STOP]

where M_t ∈ ℝ^{m×d} is the memory state at timestep t (m tokens of dimension d, matching the backbone's hidden size). Each attention layer processes the full sequence, and after the forward pass:

  • Memory token outputs become M_{t+1} — passed to the next step
  • Observation and action tokens are processed normally for action prediction

A single forward pass simultaneously reads memory from t-1 and writes the recurrent state for t. No separate pass, no extra module.

Tool recommendations

VLA train/deploy stack

Train on cloud/workstation, then deploy optimized models to Jetson or the robot computer.

Cloud GPU for VLA / policy training Use for imitation learning, diffusion policies, RL, and robotics model fine-tuning. View cloud GPU → NVIDIA Jetson Orin NX / Orin Nano Edge deployment hardware for perception, logging, and optimized inference. View Jetson → Hugging Face / robotics dataset hosting Host datasets, checkpoints, and model cards for cleaner LeRobot/VLA workflows. View platform →

Memory-Action Guard: Preventing Shortcut Learning

A key insight: if memory tokens can attend to previous action tokens, the model may learn to simply copy actions rather than encoding meaningful scene information — what the authors call action leakage.

The fix is a memory-action guard: an attention mask that blocks memory tokens from attending to action tokens. Memory can attend to: observations, proprioception, language, and prior memory state. This forces M_{t+1} to encode task-relevant scene information rather than taking the easy shortcut.

Attention mask diagram in μVLA — source: avanturist322.github.io/mu-vla
Attention mask diagram in μVLA — source: avanturist322.github.io/mu-vla

Architecture in Detail

μVLA method overview — source: avanturist322.github.io/mu-vla
μVLA method overview — source: avanturist322.github.io/mu-vla

μVLA instantiates on top of OpenVLA-OFT — the speed-optimized fine-tuned version of OpenVLA, built on a LLaMA2 7B backbone and DINO + SigLIP vision encoders. Three parameters define a μVLA variant:

Parameter Symbol Values tested Meaning
Memory width m 1, 64 Number of memory tokens
TBPTT length K 1, 2, 8 Steps of backprop through time
Update rule — TBPTT / EMA How gradients flow through time

Two update rules:

TBPTT (Truncated Backpropagation Through Time): Gradients flow directly through K steps. Memory receives explicit learning signal — more expressive but uses more VRAM.

EMA (Exponential Moving Average): Memory is updated as M_in[t+1] = α × M_out[t] + (1-α) × M_in[t]. No backprop through time; lighter on VRAM but weaker gradient signal.

Initialization: M_0 (at episode start) is a shared learnable parameter — not zeros, not random noise. The model learns a good "starting state" for memory.

Installation

μVLA requires a custom transformers fork to support the memory-augmented backbone. This is pinned in pyproject.toml.

Hardware requirements:

  • Inference: 1 GPU with ~16 GB VRAM
  • Training: 1-8 GPUs with 40-80 GB VRAM (bfloat16); single 80GB GPU: --batch_size 4 --use_gradient_checkpointing True
bash
git clone https://github.com/CognitiveAISystems/muVLA.git
cd muVLA
uv sync --python 3.10

After setup, follow the benchmark-specific docs:

  • MIKASA-Robo: SETUP.md then MIKASA.md (sections 2, 3, 4)
  • LIBERO: SETUP.md then LIBERO.md (sections 1, 2, 3, 4)

Pre-trained Checkpoints

Four checkpoints are available on Hugging Face (mu-vla org), all with merged LoRA weights (~16GB each):

python
from huggingface_hub import snapshot_download

# Best checkpoint for memory tasks: m=64, K=2, TBPTT
snapshot_download(
    "mu-vla/mu-vla-openvla-oft-mikasa-robo-5-tasks-m64-k2-tbptt",
    local_dir="./checkpoints/mu-vla-k2"
)

Full checkpoint list:

Checkpoint Benchmark Memory K Best result
...mikasa-robo-5-tasks-m64-k2-tbptt MIKASA-Robo 64 2 0.84 on training tasks
...mikasa-robo-5-tasks-m64-k8-tbptt MIKASA-Robo 64 8 0.57 on training tasks
...libero-4-tasks-m64-k8-tbptt LIBERO 64 8 96.2% avg across 4 suites
...mikasa-robo-5-tasks-no-memory MIKASA-Robo 0 — 0.42 (memoryless baseline)

Training μVLA from Scratch

μVLA is trained end-to-end on task-specific data with LoRA rank 32 on top of OpenVLA-OFT. Memory tokens are randomly initialized and learned jointly with fine-tuning — no separate pretraining stage.

bash
# Best configuration: m=64, K=2, TBPTT, cosine LR
uv run python train.py \
  --base_model openvla/openvla-7b \
  --dataset mikasa_robo \
  --memory_tokens 64 \
  --tbptt_length 2 \
  --use_lora true \
  --lr_schedule cosine \
  --batch_size 4

# Memoryless ablation baseline
uv run python train.py \
  --base_model openvla/openvla-7b \
  --dataset mikasa_robo \
  --use_memory false \
  --use_lora true

Key training notes:

  • Cosine LR schedule consistently outperforms constant schedule — treat as required
  • Round-robin episodic dataloader is essential to maintain temporal order within episodes
  • Memory tokens are volatile in early epochs — run at least 3 seeds, report the average

Experimental Results

MIKASA-Robo: Partial Observability Benchmark

MIKASA-Robo's flagship task is RememberColor — the robot sees a colored cube at the start of the episode, then must manipulate based on that color after the cue is no longer visible. Five training task variants are used for primary evaluation; additional tasks assess held-out generalization.

Model 5 Training Tasks Held-out (matched memory) Held-out (novel memory)
OpenVLA-OFT (no memory) 0.42 0.07 0.01
μVLA m=64, K=1, TBPTT 0.61 0.11 0.04
μVLA m=64, K=8, TBPTT 0.57 0.09 0.06
μVLA m=64, K=2, TBPTT 0.84 0.23 0.16
μVLA m=64, K=2, EMA 0.71 0.18 0.09

Why K=2 beats K=8 — a non-obvious finding:

Longer TBPTT windows (K=8) let gradients flow farther back in time, but they also create a harder credit assignment problem: the model struggles to identify which past observation caused the current action outcome. K=2 hits a sweet spot — enough temporal lookahead to learn cue-recall, not so much that gradient signal gets diluted.

On RememberColor5 (the hardest variant): μVLA K=2 achieves 0.93 vs baseline 0.35–0.40.

LIBERO: No Regression on Fully Observable Tasks

On the fully observable LIBERO benchmark (4 suites), μVLA m=64, K=8 achieves 96.2% average success — matching or exceeding memoryless OpenVLA-OFT. Memory tokens don't hurt when they're not needed; the model effectively learns to ignore them in Markovian settings.

Causal Analysis: Proving Memory Is Functionally Used

Two experiments verify memory is causally necessary, not decorative:

Noise Injection Test: Inject random noise into M_t at inference time, nothing else changed. RememberColor5 drops from 0.94 → 0.09 under K=2. Corrupt memory → robot forgets the cue → task fails completely.

Freeze-First Test: Lock memory to M_1 (first frame) for the entire episode. Cue-recall tasks (where the cue is front-loaded) remain stable; tasks requiring continuous scene tracking collapse. Memory encodes exactly the type of information each task class needs.

Cosine distance between memory states across timesteps — source: avanturist322.github.io/mu-vla
Cosine distance between memory states across timesteps — source: avanturist322.github.io/mu-vla

The cosine distance plot shows memory changing sharply at task-phase transitions (when an object disappears, when the task moves to a new stage) and stabilizing when the scene is static — meaningful behavior, not noise.

A Critical Inference Detail

Receding-horizon control is mandatory for cue-recall tasks: query the model at every environment step and execute only the first action from the predicted chunk. Running action chunking (chunk ≥ 2) causes recall performance to collapse.

The reason: memory must be updated from every observed frame. If you execute several actions before querying again, the memory representation goes stale.

python
# CORRECT: query every step
for step in range(episode_length):
    action_chunk = model.predict(obs, memory_state)
    memory_state = action_chunk.memory_output   # update memory
    env.step(action_chunk[0])                   # execute only first action

# WRONG: execute the full chunk before re-querying
action_chunk = model.predict(obs, memory_state)
for action in action_chunk:
    env.step(action)  # memory is stale for 7 of these 8 steps

Comparison with Other Memory Approaches

μVLA is not the only way to add memory to VLA models:

Approach Example Pros Cons
In-backbone recurrent tokens μVLA Simple, end-to-end, no auxiliary loss K-step memory horizon
External memory bank + retrieval MemoryVLA++ Longer history; richer encoding More complex; requires retrieval module
Force/contact memory token FM-VLA Domain-optimal for contact tasks Doesn't generalize outside contact
History in context window Extended action chunking No architecture change Hard-limited by context length

μVLA sits at the sweet spot of simplicity and effectiveness: no retrieval, no auxiliary loss, no new dataset — just add tokens and fine-tune on existing task data.

When to Use μVLA

Good fit:

  • Tasks with clear partial observability — narrow field-of-view cameras, occlusion-prone setups
  • Manipulation requiring state memory across multiple steps (RememberColor-style tasks)
  • You're already using OpenVLA-OFT and want a quick, principled improvement

Not the right tool:

  • Fully observable tasks (LIBERO-style): memory gain is near zero
  • Inference with large action chunks (chunk ≥ 2): conflicts with the receding-horizon requirement
  • Very tight VRAM budgets: TBPTT K=2 adds ~15-20% memory overhead at training time

Expert Takeaway

What makes μVLA stand out is not the number 84% by itself — it's the scientific rigor behind it. Each variable is ablated cleanly (m, K, update rule), causal mechanism is verified with intervention experiments, and limitations are disclosed honestly (K=2 loses ~75% recall beyond training horizon; novel memory structures transfer poorly). This is the kind of paper you can trust to deploy from, not just cite.

The paper's deepest contribution may actually be MIKASA-Robo + μVLA as a template for how to properly benchmark and ablate memory mechanisms in VLA research. Other papers claiming "our model has memory" now have a rigorous baseline to beat.

Related Posts

  • OpenVLA-OFT: Fine-Tuning VLA for Fast Robot Manipulation
  • MemoryVLA++: Dual Memory and World Models for Robotic Manipulation
  • FM-VLA: Force Memory Token for Contact-Rich Manipulation
NT

Nguyễn Anh Tuấn

Robotics & AI Engineer. Building VnRobo — sharing knowledge about robot learning, VLA models, and automation.

Explore VnRobo

Fleet MonitoringROS 2 IntegrationAMR Solutions
← Previous
Fine-tune MolmoAct2 on SO-101 with LeRobot v0.6

Related Posts

Research
FORCE: 79% Success Rate Boost for VLA RL Fine-Tuning
vlareinforcement-learningfine-tuning
wholebody-vla

FORCE: 79% Success Rate Boost for VLA RL Fine-Tuning

FORCE tackles two core failures in VLA RL fine-tuning — unstable Q-function and low-quality exploration — through Value-Calibrated Warm-Up and Self-Distillation, achieving a 79% absolute success rate improvement without any human intervention.

7/3/202611 min read
NT
Research
TGRPO: Fine-tuning VLA with Trajectory GRPO and LLM Dense Reward
vlagrporeinforcement-learning
wholebody-vla

TGRPO: Fine-tuning VLA with Trajectory GRPO and LLM Dense Reward

TGRPO combines LLM-generated dense rewards with dual-level advantage estimation (step + trajectory) to fine-tune OpenVLA-7B on LIBERO, reaching 91% success rate — beating SFT by 4.6%.

7/1/202610 min read
NT
Research
InSight: How VLAs Learn New Manipulation Skills Without Human Demos
vlamanipulationskill-acquisition
wholebody-vla

InSight: How VLAs Learn New Manipulation Skills Without Human Demos

Stanford's InSight framework enables VLA models to autonomously acquire new manipulation skills by decomposing primitives, identifying skill gaps, and running a VLM-guided data flywheel — no human demonstrations required.

6/26/20269 min read
NT
VnRobo logoVnRobo logo

AI infrastructure for next-generation industrial robots.

Product

  • Features
  • Pricing
  • Knowledge Base
  • Services

Company

  • About Us
  • Blog
  • Contact

Legal

  • Privacy Policy
  • Terms of Service

© 2026 VnRobo. All rights reserved.

Made with♥in Vietnam