OpenVLA read-along

OpenVLA: An Open-Source Vision-Language-Action Model. Kim, Pertsch, Karamcheti, Xiao, Balakrishna, Nair and others, CoRL 2024.

In short

Summary

OpenVLA is a 7B-parameter vision-language-action model: the Prismatic-7B VLM (DINOv2 and SigLIP image features fed to Llama 2 7B), fine-tuned on 970k Open X-Embodiment episodes to output each robot action as 7 discrete tokens.

Out of the box, on two robots from its training mix, it beats the closed 55B RT-2-X by 16.5 points of absolute success over 29 tasks; RT-2-X leads only in the Bridge semantic-generalization category, though it wins some single tasks elsewhere.

Fine-tuned on 10–150 demonstrations of new Franka tasks, it has the highest average success, 20.4 points above Diffusion Policy. Separate tests of a smaller SigLIP-only variant found LoRA comparable to full fine-tuning on two Franka tasks, and 4-bit inference comparable to bfloat16 on eight Bridge tasks.

Sketchnote

One-page summary

Hand-drawn summary of OpenVLA: OpenVLA is a 7B-parameter vision-language-action model: the Prismatic-7B VLM (DINOv2 and SigLIP image features fed to Llama 2 7B), fine-tuned on 970k Open X-Embodiment episodes to output each robot action as 7 discrete tokens. Out of the box, on two robots from its training mix, it beats the closed 55B RT-2-X by 16.5 points of absolute success over 29 tasks; RT-2-X leads only in the Bridge semantic-generalization category, though it wins some single tasks elsewhere. Fine-tuned on 10–150 demonstrations of new Franka tasks, it has the highest average success, 20.4 points above Diffusion Policy. Separate tests of a smaller SigLIP-only variant found LoRA comparable to full fine-tuning on two Franka tasks, and 4-bit inference comparable to bfloat16 on eight Bridge tasks.
A one-page summary in sketchnote style. Download the PDF (page 1 the sketchnote, page 2 the listening sheet) to annotate it in Concepts or GoodNotes.

Listen for

In class

Keep these in mind while the presenter talks. Tick them on page 2 of the PDF as they come up.

  1. What is borrowed (Prismatic VLM, Llama 2, RT-2's action bins, Octo's data mix) and what is new
  2. How one continuous robot action becomes 7 tokens, and how the tokens become an action again
  3. Which robots the out-of-the-box tests use, and whether they are in the training data
  4. Where RT-2-X and Diffusion Policy still win, and the reasons the authors give
  5. Which model, tasks and GPUs the LoRA and 4-bit claims rest on

Questions worth asking

  1. OpenVLA uses one image and predicts one action per step; the paper reports about 6 Hz in bfloat16 on an RTX 4090. Which high-frequency tasks would this setup struggle with, and could action chunking or a different action tokenization help without losing the language grounding?
  2. RT-2-X keeps Internet data in its fine-tuning mix and wins on semantic generalization; OpenVLA trains on robot data only. Is that gap worth the cost of co-training, and how would you test it?
  3. Part of the BridgeData V2 gain is credited to data cleaning, and RT-2-X had to be queried for its second-best action. How should open and closed policies be compared fairly?

In class, on an iPad

  1. Before: watch or listen to the read-along (the chapters are below) and skim the questions below.
  2. Open the sketchnote PDF in Concepts or another note app. Page 1 is the summary drawing, with room to annotate. Page 2 is the listening sheet.
  3. During the talk: tick each "listen for" item as it comes up, and write one line in each box of the sheet.
  4. After: mark the one answer below that the talk changed for you, and ask your question.

Common questions and misunderstandings

FAQ

"Beats RT-2-X by 16.5%": absolute or relative, and on what?

Absolute: 16.5 percentage points of the paper's success score, over 29 tasks on two robots; some Bridge tasks give half credit. On the 17 BridgeData V2 WidowX tasks (170 rollouts per policy) the means are 70.6% vs 50.6%; on the 12 Google robot tasks (60 rollouts) they are 85.0% vs 78.3%, with overlapping error bars, which the paper calls comparable. Pooling all 230 rollouts of Tables 4 and 6 gives 74.3% vs 57.8%, which matches the 16.5 points (our arithmetic; the paper does not show the calculation). (Abstract, Sec. 5.1, Figs. 3–4, Tables 4 and 6, Appendix B.1.1)

Is OpenVLA better than RT-2-X on every kind of task?

No. RT-2-X is better at semantic generalization (unseen objects, instructions and Internet concepts): 15.5 vs 14.5 points out of 40 trials on the four Bridge semantic tasks, counting half credit. The authors explain this by RT-2-X's larger Internet pretraining and its co-fine-tuning on Internet data, while OpenVLA is fine-tuned on robot data only. In every other category OpenVLA is comparable or better on average, though RT-2-X wins some single tasks, such as Put {Eggplant, Red Bottle} into Pot (8.5 vs 7.5). (Sec. 5.1, Fig. 3, Table 4, Appendix B.1.1)

Is the RT-2-X comparison like for like?

Not fully. RT-2-X is closed and was reached through an API; trained on Bridge data that still has all-zero (no-op) actions, it often predicts the zero action and freezes, so the authors always take its second-most-likely action, as the Open X-Embodiment team did. OpenVLA's training drops the no-op first step of every Bridge demonstration. The authors credit part of OpenVLA's Bridge gain to this cleaning, besides more data (970k vs 350k trajectories) and the fused vision encoder. (Sec. 5.1, Appendix C)

What in OpenVLA is new, and what is borrowed?

Most parts are borrowed. The backbone is the Prismatic-7B VLM (a 600M-parameter DINOv2 + SigLIP encoder, a 2-layer MLP projector and Llama 2 7B), the action tokens follow RT-2, and the data-mixture weights follow Octo. New are bin edges at the 1st and 99th percentile instead of min–max, the design choices tested in Sec. 3.4, the study of fine-tuning, LoRA and quantization, and an open release of the weights, code and training data. (Sec. 2, Secs. 3.1–3.4, footnote 1)

How does a language model output a continuous robot action?

Each of the 7 action dimensions is cut into 256 bins between its 1st and 99th percentile in the training data, and each bin is one token. The Llama tokenizer reserves only 100 special tokens, so the 256 least-used tokens (the last 256 of the vocabulary) are overwritten. The model predicts the 7 tokens with ordinary next-token cross-entropy on the action tokens only, and a de-tokenizer maps them back to position change, rotation change and gripper. (Sec. 3.2, Fig. 2)

What does OpenVLA see at each step?

One third-person camera image at 224 × 224 px and the language instruction. It has no wrist camera, no robot state and no observation history, and it predicts one action per step, with no action chunking. The authors list single-image input as the first limitation; the full Diffusion Policy baseline uses two steps of images and robot state, which is why a "matched" version is also tested. (Sec. 3.4, Sec. 5.2 (footnote 3), Sec. 6, Appendix E.1)

Are the out-of-the-box test robots new to OpenVLA?

No. The WidowX (BridgeData V2, 13.3%) and the Google robot (Fractal, the RT-1 data, 12.7%) are among the largest parts of the training mix. The Bridge tests add shifts in scene, objects, lighting and start pose; the Google robot tests have 5 in-distribution tasks and 7 out-of-distribution tasks with unseen objects, backgrounds, instructions or concepts. The Franka arm is tested only after fine-tuning, and DROID's Franka data was in the pretraining mix (at 10%) for the first two thirds of training. (Sec. 3.3, Secs. 5.1–5.2, Appendix A (Table 3), Appendices B.1.2 and B.2.1)

Does fine-tuned OpenVLA beat Diffusion Policy everywhere?

No. Diffusion Policy trained from scratch matches or beats it on narrow single-instruction tasks such as Put Carrot in Bowl and Pour Corn into Pot, and it moves more smoothly and precisely. OpenVLA wins on the multi-instruction tasks with several objects and has the best averages: 67.2% vs 48.5% on Franka-Tabletop and 58.3% vs 35.0% on Franka-DROID. The abstract's 20.4% is the gap between the aggregate bars in Fig. 5 (63.8% vs 43.4%); these scores include partial credit, and Wipe Table gives up to 2 points per trial. (Abstract, Sec. 5.2, Fig. 5, Table 7, Appendix B.3.1)

Does LoRA really match full fine-tuning?

On the tasks tested, yes, on average: 68.2% vs 69.7% success. Rank 32 trains 97.6M parameters, about 1.4% of the 7,188.1M-parameter model, and rank 64 trains 195.2M (about 2.7%); both average 68.2%, with different per-task results. The test is small: 33 rollouts per method on two Franka-Tabletop tasks (Put Carrot in Bowl, Move <object> onto Plate). It also uses a different OpenVLA, with a SigLIP-only encoder and pretrained on Octo's smaller data mix, not the main model. (Sec. 5.3 (footnote 4), Table 1, Table 8)

Can you fine-tune OpenVLA on a consumer GPU?

The paper says so but reports no such run. The LoRA run in Table 1 needs 59.7 GB of GPU memory at batch size 16, and the reported time is 10–15 hours on one A100, 8x less compute than full fine-tuning on 8 A100s. Consumer GPUs appear only for inference: about 6 Hz in bfloat16 on an RTX 4090 (Sec. 3.5) and the speed comparison in Fig. 6. (Abstract, Sec. 3.5, Sec. 5.3, Table 1, Fig. 6)

Does 4-bit inference cost success, and how much memory does OpenVLA need?

Not on average: on 8 Bridge tasks (80 rollouts per method), the SigLIP-only variant scored 71.9 ± 4.7% in int4 (7.0 GB) and 71.3 ± 4.8% in bfloat16 (16.8 GB), though single tasks varied (Lift AAA Battery: 3 vs 7 of 10). int8 drops to 58.1% because it runs at only 1.2 Hz on the A5000 against a 5 Hz controller; with blocking control all three are comparable. The paper does not reconcile its memory figures: 15 GB for the final model in bfloat16 (Sec. 3.5), 16.8 GB for the variant (Table 2), and 16 GB GPUs as enough (Sec. 5.4). (Sec. 3.5; Secs. 5.3–5.4 (footnote 4); Tables 2 and 5; Appendix D.4 (Table 11))

What did the design ablations show?

On 8 Bridge tasks, dropping the Open X mix cost far more than dropping DINOv2. Trained on BridgeData V2 alone, the model falls from 76.3% to 45.6% (about 30 points); removing DINOv2 as well costs another 5 points (40.6%). In separate early tests with a different setup, fine-tuning the vision encoder, unlike common VLM practice, gave 80.0% vs 46.7% with it frozen; the paper says these results are not directly comparable to its other ones. Going from 224 to 384 px gave no gain and tripled training time. (Sec. 3.4, Appendix D.1–D.3, Tables 9–10)

Chapters

Video

  1. 0:00Abstract
  2. 2:321. Introduction
  3. 7:572. Related Work
  4. 13:193. The OpenVLA Model
  5. 28:044. The OpenVLA Codebase
  6. 28:585. Experiments
  7. 52:246. Discussion and Limitations
  8. 54:40Appendix A. Data Mixture Details
  9. 55:03Appendix B. Evaluation Tasks and Detailed Results
  10. 1:30:42Appendix C. RT-2-X versus OpenVLA in BridgeData V2 Evaluations
  11. 1:34:18Appendix D. Additional Experiments and Ablations
  12. 1:46:51Appendix E. LIBERO Simulation Experiments

Key terms

Glossary

VLA
Vision-language-action model: a pretrained vision-language model fine-tuned to output robot actions as tokens.
Prismatic-7B
The base VLM: DINOv2 + SigLIP image encoder, 2-layer MLP projector, Llama 2 7B.
DINOv2 / SigLIP
Two pretrained image encoders, concatenated per patch; DINOv2 adds spatial detail, SigLIP semantics.
Action bin
One of 256 equal slices of an action dimension between its 1st and 99th percentile; one token each.
Out of the box
Run with no fine-tuning, on robots that are in the training mix.
LoRA
Low-rank adaptation: train small low-rank updates to every linear layer; rank 32 trains about 1.4% as many parameters as full fine-tuning here.
Quantization
Loading the weights at 8 or 4 bits instead of 16 to cut GPU memory.
Non-blocking control
The robot keeps moving while the next action is computed, so slow inference changes the dynamics.
Action chunking
Predicting several future actions at once; Diffusion Policy does it, OpenVLA does not.