BAS-VLA: OpenVLA residual adapter
This release provides a trained text-conditioned residual adapter and matched inputs for the OpenVLA / LIBERO-10 offline action-calibration setting, a selected subset of the settings studied in Beyond Appearance Shifts: Task-Semantic Action Calibration for VLA Models.
Each record pairs a shared observation with clean, task-preserving, and semantics-changing instructions and their frozen-carrier actions. The included cases cover target-object and executability-condition changes. The adapter applies a bounded action correction using the base action and binary bag-of-words instruction features.
Files
| Location | Contents |
|---|---|
adapter/ |
Trained residual weights, vocabulary, and loading/action metadata |
data/triplets.json |
Matched action triplets, expert actions, and demonstration-level train/validation/test assignments |
data/observations.npz |
Source agent-view RGB images aligned with the records |
data/states/ |
Sampled simulator states and source demonstration initial states |
data/scenes/ |
The corresponding LIBERO BDDL scenes |
data/cases.json, data/manifest.json |
Instruction triplets, source references, array alignment, and input preprocessing |
normalization/ |
Action statistics used to construct the frozen OpenVLA actions and their source information |
training_config.json, offline_metrics.json |
Training objective configuration and offline evaluation summaries |
example.py |
CPU example applying the adapter to a supplied record |
Download and use
Install the BAS-VLA code and its dependencies, then download the files:
from huggingface_hub import snapshot_download
snapshot_download("Shuaijun/BAS-VLA", local_dir="artifacts/bas-vla")
Run the included example from the directory containing artifacts/:
python artifacts/bas-vla/example.py
The example loads the adapter on CPU and prints calibrated clean, control, and changed-instruction actions for a held-out record. Use --record-index to select another record.
Action and feature conventions
Use the exact contract in adapter/adapter_metadata.json when supplying new actions. The carrier is openvla/openvla-7b; the cached actions use the bundled libero_10_no_noops statistics from moojink/openvla-7b-oft-finetuned-libero-10, followed by the documented gripper transform. Instructions use the supplied binary bag-of-words vocabulary.
The checkpoint's action-space identifier is openvla_libero10_unnormalized_sign_gripper_offline. The code repository's OpenPI and OpenVLA-OFT rollout runners require adapters matched to their own carrier and action conventions. Load this checkpoint through the supplied example or the ResidualAdapter class with the recorded convention.
data/manifest.json explains how RGB arrays, simulator states, scene files, and demonstration frames align. LIBERO supplies the scene assets and simulator. Base VLA weights are obtained separately from their upstream model repositories.
Sources and license
BAS-VLA contributions are released under the MIT License. The included LIBERO-derived data and OpenVLA-OFT normalization statistics retain their upstream MIT notices. See NOTICE.md and licenses/ for the source links and notices.
Citation
@inproceedings{liu2026basvla,
title = {Beyond Appearance Shifts: Task-Semantic Action Calibration for VLA Models},
author = {Liu, Shuaijun and You, Feiyang and Wu, Chengyu and Hao, Shuyang and Zhang, Chenglong and Cai, Jingyao and Chen, Xingwei and Sun, Li and Su, Ningxin},
booktitle = {Advances in Neural Information Processing Systems},
year = {2026},
url = {https://arxiv.org/abs/2609.23650}
}
Model tree for Shuaijun/BAS-VLA
Base model
openvla/openvla-7b