--- language: en license: mit base_model: openvla/openvla-7b base_model_relation: adapter tags: - robotics - vision-language-action - residual-adapter - bas-vla - arxiv:2609.23650 --- # BAS-VLA: OpenVLA residual adapter [Paper](https://arxiv.org/abs/2609.23650) · [Project](https://nebulis-lab.com/BAS-VLA/) · [Code](https://github.com/NEBULIS-Lab/BAS-VLA) 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](https://github.com/NEBULIS-Lab/BAS-VLA) and its dependencies, then download the files: ```python 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/`: ```bash 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](NOTICE.md) and `licenses/` for the source links and notices. ## Citation ```bibtex @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} } ```