← sakibchowdhury131.github.io

OpenVLA vs OpenVLA‑OFT: A Local Benchmark on LIBERO‑Spatial and Robosuite

Sakib Chowdhury
Stevens Institute of Technology

Same 7B vision-language-action backbone, two very different ways of turning a camera frame into a robot command — run and recorded on this machine. OpenVLA is a 7-billion-parameter VLA trained across ~970k robot episodes from Open X-Embodiment; it acts by autoregressively generating discretized action tokens, one at a time, the same way an LLM writes text. OpenVLA-OFT ("Optimized Fine-Tuning") keeps that same backbone but replaces the output head: it predicts a whole chunk of continuous actions in one parallel forward pass instead of seven sequential ones.

Sim date 2026-04-18 GPU 2× NVIDIA RTX A6000 (48GB) Sim engines MuJoCo / robosuite, LIBERO Robot Franka Emika Panda
Both models are the work of their original authors. OpenVLA: Kim, Pertsch, Karamcheti et al. (2024). OpenVLA-OFT: Kim, Finn, Karamcheti et al., "Fine-Tuning Vision-Language-Action Models: Optimizing Speed and Success" (2025). This page reports the results of running their public checkpoints locally, not a new method.
Code (GitHub) See the results ↓
01 · How OpenVLA Works

How OpenVLA Turns a Picture Into a Motion

OpenVLA is built on a Prismatic vision-language backbone: a frame from the robot's camera is encoded by two fused vision towers, DINOv2 and SigLIP, and projected into the token stream of a 7B-parameter Llama 2 language model alongside the tokenized instruction — e.g. "In: what action should the robot take to pick up the red cube?"

The model was never trained to output text back. Instead, its 7-dimensional continuous action — delta position (x, y, z), delta rotation (roll, pitch, yaw), and gripper open/close — is discretized into 256 bins per dimension, and each bin is mapped onto one of the least-used tokens in the LLM's existing vocabulary. Producing an action means generating 7 of these tokens the same way the model would generate 7 words: one forward pass through the full 7B network per token, each token conditioned on the ones before it.

That autoregressive loop is what makes OpenVLA a strong generalist — it inherits the flexibility of an LLM decoder — and also what makes it slow: 7 sequential 7B forward passes for a single timestep of control, then the whole thing repeats for the next camera frame.

02 · What OFT Changes

Parallel Decoding Instead of Seven Sequential Passes

OpenVLA-OFT is not a new pretrained model — it's a fine-tuning recipe applied to the same OpenVLA backbone, aimed squarely at the two things that make the original hard to deploy: it's slow, and discretizing continuous motion into 256 bins throws away precision the base model never gets back.

OPENVLA — AUTOREGRESSIVE, ONE TOKEN AT A TIME CAMERA + INSTRUCTION PRISMATIC VLM + LLAMA-2 7B ACTION TOKEN 1 TIMESTEP OF ACTION (7-DOF) ×7 tokens each token fed back as the next input — 7 forward passes total OPENVLA‑OFT — PARALLEL, ONE CHUNK AT A TIME CAMERA + INSTRUCTION SAME BACKBONE + FILM CONDITIONING CONTINUOUS HEAD ACTION CHUNK (K TIMESTEPS) one pass, no feedback executed open-loop for K steps before the next camera query
The mechanism that changes between the two: OpenVLA feeds each predicted action token back in as input for the next, seven times per timestep; OFT reads the same image once and writes out several timesteps of continuous action in a single pass.
PropertyOpenVLAOpenVLA-OFT
Action decodingAutoregressive — 7 tokens, sequentiallyParallel — one non-causal forward pass
Action representation256-bin discretized tokensContinuous, via L1 regression (or diffusion) head
Actions per query1 timestepA chunk of several future timesteps at once
Language groundingToken-level cross-attention only+ FiLM conditioning injected into vision features
Ships zero-shot?Yes — generalist across many robotsNo — needs fine-tuning per robot/task setup
Typical control rateRoughly a few HzReported ~25× higher throughput; real-time on real arms
LIBERO avg. success*Autoregressive fine-tune, mid-70s%~97% across all four LIBERO suites

* Figures as reported in the OpenVLA and OpenVLA-OFT papers, for context — not this run. This run's own numbers are in the Results section below.

03 · Setup

What Actually Ran, Here

Two separate setups on this machine, evaluating the two ends of the table above:

OpenVLA (zero-shot)OpenVLA-OFT (fine-tuned)
Checkpointopenvla/openvla-7bmoojink/openvla-7b-oft-finetuned-libero-spatial
Sim / taskrobosuite — Lift (pick up the red cube)LIBERO-Spatial — 10 pick-and-place tasks
Action un-normalizationbridge_orig stats (nearest available match — not sim-specific)Trained specifically for this suite
Episodes run4 (this reel)30 (all 10 tasks × 3)
ProjectagenticVLA/demo.pyopenvla-oft / run_libero_eval.py
Not an apples-to-apples benchmark

These are two different simulators, two different task families, and OpenVLA never saw LIBERO or robosuite during training — it's improvising with the closest action statistics available (BridgeV2). The comparison below is honest about that: it's "generalist zero-shot" vs. "specialist fine-tuned," which is exactly the trade-off Section 2 describes, not a controlled ablation on one task.

04 · Results

Three Points on the Same Curve

0/4
RANDOM POLICY · LIFT
0/4
OPENVLA ZERO-SHOT · LIFT
29/30
OPENVLA-OFT · LIBERO-SPATIAL
96.7%
OFT OVERALL SUCCESS RATE

No policy, a generalist policy outside its depth, and a policy fine-tuned for exactly this task:

baseline
Random actions — sanity-check of the sim pipeline, no model. Franka arm flails; cube untouched.
stalls
OpenVLA-7b, zero-shot — frontview / sideview / agentview, stitched. Trained on real BridgeV2/RT-X footage, not this sim; reaches, doesn't close the loop.
succeeds
OpenVLA-OFT, fine-tuned — compiled reel from the LIBERO-Spatial eval below. 96.7% success over 30 episodes.
Five render angles of the robosuite Lift task: agentview, two over-shoulder views, a top-down view, and a low profile view, showing a Franka Panda arm over a table with a small red cube.
What the simulator actually looks like: five render angles of the robosuite Lift environment used for the OpenVLA zero-shot runs above. Only agentview is fed to the model; the rest are recorded for human inspection.

OpenVLA-OFT Across the LIBERO-Spatial Task Set

Four individual episodes pulled from the full 30-episode run, including the one failure recorded — nothing cherry-picked out.

success
Ep. 1 — bowl between plate & ramekin
success
Ep. 7 — bowl from table center
success
Ep. 13 — bowl in top drawer of cabinet
fail
Ep. 16 — bowl on the ramekin, the one miss
05 · Reading the Result Correctly

What This Does and Doesn't Show