Views
No views yet
openvla/openvla-7b on the
LIBERO-Spatial suite (libero_spatial_no_noops from openvla/modified_libero_rlds).⚠️ This is a learning-project checkpoint, not a strong model. It was trained for only 2000 steps under a deliberately cost-constrained setup, and evaluates far below the officialopenvla/openvla-7b-finetuned-libero-spatial(~84.7%). It is published for reproducibility of the process, not for use. Numbers and the reasons behind them are stated honestly below.
| Base | openvla/openvla-7b |
| Method | LoRA r=32, dropout 0.0, lr 5e-4 (constant), effective batch 16 (8 × grad-accum 2) |
| Trainable params | 110,828,288 / 7,652,065,472 = 1.45% |
| Hardware | 1× A100-SXM4-80GB, ~40GB VRAM, ~5.5–6.5 s/step |
| Steps | 2000 total = 1000 with image_aug=True, then 1000 continued from the merged step-1000 checkpoint with image_aug=False |
| Checkpoint | LoRA merged into base; includes dataset_statistics.json for action un-normalization |
step1000
holds the intermediate 1000-step (with-aug) checkpoint.experiments/robot/libero/run_libero_eval.py, LIBERO-Spatial, seed 7,
MUJOCO_GL=egl, --center_crop False (matching the no-aug final training stage).| Model | Success rate | Episodes |
|---|---|---|
Official openvla-7b-finetuned-libero-spatial | 84.9% | 62/73 (own reproduction; paper reports 84.7%) |
| This checkpoint (2000 steps) | 8.3% | 2/24 (8 of 10 tasks × 3; stopped early) |
pick up the black bowl on the cookie box, 2/3); the other
seven tasks scored 0/3. LIBERO-Spatial keeps the object fixed and varies its placement, so this looks like
2000 steps memorizing one spatial configuration rather than learning a general locate → grasp → place policy.center_crop setting at eval matches cleanly.image_aug=True throughout (parallelize the data pipeline or use
multiple GPUs to absorb the cost), run one continuous training job without merge-restarts, and train
until the loss genuinely converges rather than stopping at the first plateau.1from transformers import AutoModelForVision2Seq, AutoProcessor
2
3processor = AutoProcessor.from_pretrained("duanxingjuan/openvla-7b-libero-spatial-lora", trust_remote_code=True)
4vla = AutoModelForVision2Seq.from_pretrained(
5 "duanxingjuan/openvla-7b-libero-spatial-lora",
6 torch_dtype="bfloat16", trust_remote_code=True,
7).to("cuda")
8
9action = vla.predict_action(**inputs, unnorm_key="libero_spatial_no_noops", do_sample=False)