AutoLab-SAI-SJTU/GSR-ParaVLA

The official implementation of Grounded Semantic Re-Binding & ParaVLA

Python

21

10 commits

updated Aug 4, 2026

See the code

README

Grounded Semantic Re-Binding

Robust Instruction Generalization in Vision-Language-Action Models

arXiv Hugging Face GitHub License

Zhaokai Yin1,2   ·   Zhipeng Zhang1,†

1AutoLab, School of Artificial Intelligence, Shanghai Jiao Tong University
2Research Lab, Anyverse Dynamics
†Corresponding author

Architecture-aware semantic grounding for reliable language-to-action binding.

If this repository is useful for your research, please consider giving it a ⭐.


📘 Contents


📰 News and Roadmap

  • Release complete training and LIBERO-Para evaluation pipelines.
  • Provide portable training and evaluation recipes.
  • Release pretrained checkpoints on Hugging Face.
  • Release the paper and BibTeX entry on arXiv.

📦 Models and Resources

GSR checkpoints

All released checkpoints are available in the AutoLab-SJTU/GSR collection.

CheckpointArchitectureTraining recipe
ParaVLADINOv2-Large + T5-Large + action experttrain_paravla.sh
VLA-Adapter GSRQwen VLM + T5-Large + fresh MLP headtrain_vla_adapter_gsr.sh
SmolVLA GSRSmolVLM + T5-Large + fresh flow experttrain_smolvla_gsr.sh
π₀.₅ GSRPaliGemma + T5-Large + fresh flow experttrain_pi05_gsr.sh

Required pretrained models

ResourceHugging FaceUsed byConfiguration
T5-Largegoogle-t5/t5-largeAll stable-language routesT5_MODEL; use a local copy for VLA_ADAPTER_T5_MODEL
DINOv2-Largefacebook/dinov2-largeParaVLA visual backboneSelected by the ParaVLA recipe
SmolVLA LIBEROHuggingFaceVLA/smolvla_liberoSmolVLA initializationSMOLVLA_BASE
π₀.₅ LIBEROlerobot/pi05_libero_finetuned_v044π₀.₅ initializationDownload locally and set PI05_BASE
VLA-Adapter Goal-ProVLA-Adapter/LIBERO-Goal-ProVLA-Adapter initializationDownload locally and set VLA_ADAPTER_BASE
PaliGemma tokenizer assetsgoogle/paligemma-3b-pt-224π₀.₅ tokenizationPALIGEMMA_TOKENIZER; access approval may be required

Datasets and benchmarks

ResourceLocationPurposeConfiguration
LIBERO in LeRobot formatHuggingFaceVLA/liberoParaVLA, SmolVLA, and π₀.₅ trainingLEROBOT_LIBERO_ROOT
Modified LIBERO RLDSopenvla/modified_libero_rldsVLA-Adapter trainingVLA_ADAPTER_RLDS_ROOT
LIBERO-ParaHAI-Lab/LIBERO-ParaFull 4,092-episode OOD evaluationLIBERO_PARA_ROOT and its BDDL/init directories

The simulator and benchmark implementations are maintained in Lifelong-Robot-Learning/LIBERO and cau-hai-lab/LIBERO-Para.

Download pretrained models and datasets

Install the Hugging Face CLI and authenticate before downloading gated assets:

python -m pip install -U huggingface_hub
hf auth login

export MODEL_ROOT=/path/to/models
export DATA_ROOT=/path/to/data
mkdir -p "${MODEL_ROOT}" "${DATA_ROOT}"

Download the pretrained models:

hf download google-t5/t5-large \
  --local-dir "${MODEL_ROOT}/t5-large"

hf download facebook/dinov2-large \
  --local-dir "${MODEL_ROOT}/dinov2-large"

hf download HuggingFaceVLA/smolvla_libero \
  --local-dir "${MODEL_ROOT}/smolvla_libero"

hf download lerobot/pi05_libero_finetuned_v044 \
  --local-dir "${MODEL_ROOT}/pi05_libero_finetuned_v044"

hf download VLA-Adapter/LIBERO-Goal-Pro \
  --local-dir "${MODEL_ROOT}/VLA-Adapter-LIBERO-Goal-Pro"

hf download google/paligemma-3b-pt-224 \
  --local-dir "${MODEL_ROOT}/paligemma-3b-pt-224"

Download the training datasets:

hf download HuggingFaceVLA/libero \
  --repo-type dataset \
  --local-dir "${DATA_ROOT}/libero"

hf download openvla/modified_libero_rlds \
  --repo-type dataset \
  --local-dir "${DATA_ROOT}/modified_libero_rlds"

Clone LIBERO-Para for the full benchmark implementation and its 4,092 BDDL tasks:

git clone https://github.com/cau-hai-lab/LIBERO-Para.git \
  "${DATA_ROOT}/LIBERO-Para"

⚡ Quick Start

git clone https://github.com/AutoLab-SAI-SJTU/GSR-ParaVLA.git
cd GSR-ParaVLA

bash scripts/create_envs.sh
cp configs/paths.env.example configs/paths.env

After configuring local model, dataset, and output paths in configs/paths.env, run the smoke checks:

conda activate gsr-lerobot
python scripts/smoke_imports.py

make smoke
make audit

🛠️ Installation

1. Create the environments

Separate environments are used because the LeRobot and VLA-Adapter stacks have different dependency constraints.

bash scripts/create_envs.sh
cp configs/paths.env.example configs/paths.env
EnvironmentComponents
gsr-lerobotParaVLA, SmolVLA, π₀.₅, and LeRobot LIBERO evaluation
gsr-vla-adapterVLA-Adapter training and evaluation

2. Install LIBERO-Para

Install the cloned benchmark in the LeRobot environment:

conda run -n gsr-lerobot python -m pip install \
  -e "${DATA_ROOT}/LIBERO-Para"

3. Verify imports

conda activate gsr-lerobot
python scripts/smoke_imports.py

⚙️ Configuration

Copy configs/paths.env.example to configs/paths.env and replace every /path/to/... value. All recipes load this file automatically.

The LIBERO-Para paths should resolve to:

LIBERO_PARA_ROOT=/path/to/LIBERO-Para
LIBERO_PARA_BDDL_DIR=/path/to/LIBERO-Para/libero/libero/bddl_files/libero_para
LIBERO_PARA_INIT_DIR=/path/to/LIBERO-Para/libero/libero/init_files/libero_para
LIBERO_GOAL_BDDL_DIR=/path/to/LIBERO-Para/libero/libero/bddl_files/libero_goal

Configuration notes:

  • LeRobot recipes accept either a Hugging Face model ID or a local path through T5_MODEL.
  • For VLA-Adapter, download T5-Large first and set VLA_ADAPTER_T5_MODEL to that local directory.
  • Set PI05_BASE and VLA_ADAPTER_BASE to the corresponding downloaded checkpoint directories.
  • Dataset, cache, output, and log locations can be customized in configs/paths.env.

🚀 Training

Every long-run recipe supports a short smoke stage. Run each recipe from its matching environment.

The default full-run settings reproduce the architecture-specific schedules used for the released checkpoints:

ModelGPUsBatch/GPUGrad. accum.StepsPeak LR
ParaVLA864150,0001e-4
VLA-Adapter GSR88150,0005e-4
SmolVLA GSR816125,0002e-4
π₀.₅ GSR832212,5001e-4

BATCH_SIZE, GRAD_ACCUMULATION_STEPS, STEPS, and SAVE_FREQ remain explicit overrides. Larger batches or longer schedules can help within the tested range, but changing them is a new training configuration rather than an exact checkpoint reproduction.

ParaVLA

ParaVLA trains on all four LIBERO suites using DINOv2-Large, frozen T5-Large, two visual cameras, and a decoupled text-to-action pathway.

conda activate gsr-lerobot

STAGE=smoke bash recipes/train_paravla.sh
bash recipes/train_paravla.sh

VLA-Adapter GSR

The gsr variant gives Qwen the fixed instruction perform the task, routes the real instruction through frozen T5, and trains a fresh MLP action head. The native_control variant is the matched fresh-head Qwen control.

conda activate gsr-vla-adapter

STEPS=10 VARIANT=gsr bash recipes/train_vla_adapter_gsr.sh
VARIANT=gsr bash recipes/train_vla_adapter_gsr.sh
VARIANT=native_control bash recipes/train_vla_adapter_gsr.sh

SmolVLA GSR

The default arm neutralizes the native task prompt while retaining SmolVLM's visual scene computation. Set PRESERVE_NATIVE_LANGUAGE=true for the matched dual-language arm.

conda activate gsr-lerobot

STAGE=smoke bash recipes/train_smolvla_gsr.sh
bash recipes/train_smolvla_gsr.sh
PRESERVE_NATIVE_LANGUAGE=true bash recipes/train_smolvla_gsr.sh

π₀.₅ GSR

The default π₀.₅ recipe preserves the real PaliGemma instruction, grounds frozen T5 features into native task slots, and trains a fresh flow expert on canonical LIBERO-Goal demonstrations.

conda activate gsr-lerobot

STAGE=smoke bash recipes/train_pi05_gsr.sh
bash recipes/train_pi05_gsr.sh

📊 LIBERO-Goal Evaluation

ParaVLA, SmolVLA, or π₀.₅

conda activate gsr-lerobot

POLICY_PATH=/path/to/pretrained_model \
MODEL_TAG=my_policy \
EVAL_GPUS=0 \
bash recipes/eval_lerobot_libero_goal.sh

Set GOAL_MODE=manual to evaluate the manual paraphrase split.

VLA-Adapter

conda activate gsr-vla-adapter

GSR_ACTION_HEAD_CHECKPOINT=/path/to/action_head_checkpoint \
MODEL_TAG=vla_adapter_gsr \
EVAL_GPUS=0,1,2,3,4,5,6,7 \
bash recipes/eval_vla_adapter_libero_goal.sh

🧪 LIBERO-Para Evaluation

The evaluation launchers shard the ten official partitions over the selected GPUs, retain per-episode outputs, verify exactly 4,092 unique episodes, and merge overall and per-type metrics.

ParaVLA, SmolVLA, or π₀.₅

conda activate gsr-lerobot

POLICY_PATH=/path/to/pretrained_model \
MODEL_TAG=my_policy \
EVAL_GPUS=0,1,2,3,4,5,6,7 \
bash recipes/eval_lerobot_libero_para.sh

VLA-Adapter

conda activate gsr-vla-adapter

GSR_ACTION_HEAD_CHECKPOINT=/path/to/checkpoint-050000 \
MODEL_TAG=vla_adapter_gsr \
EVAL_GPUS=0,1,2,3,4,5,6,7 \
bash recipes/eval_vla_adapter_libero_para.sh

Evaluation produces per-shard logs and per-episode records, followed by a merged summary under GSR_OUTPUT_ROOT.


🗂️ Repository Layout

GSR-ParaVLA/
├── lerobot_backend/       # ParaVLA, SmolVLA, π₀.₅, and LeRobot runtime
├── vla_adapter_backend/   # VLA-Adapter model and GSR trainer
├── recipes/               # Portable training and evaluation launchers
├── configs/               # Machine-local path templates
├── environments/          # Conda environment definitions
├── scripts/               # Setup, smoke, coverage, and release checks
├── assets/                # Public manual-paraphrase evaluation assets
└── licenses/              # Upstream license copies

📝 Citation

@misc{gsr,
  title={Grounded Semantic Re-Binding for Robust Instruction Generalization in Vision-Language-Action Models},
  author={Zhaokai Yin and Zhipeng Zhang},
  year={2026},
  eprint={2608.02497},
  archivePrefix={arXiv},
  primaryClass={cs.RO},
  url={https://arxiv.org/abs/2608.02497},
}

🙏 Acknowledgements

This release builds on LeRobot, LIBERO, LIBERO-Para, VLA-Adapter, DINOv2, and the T5 model family. We thank their authors and maintainers for releasing code, models, datasets, and evaluation infrastructure.


⚖️ License

Original GSR integration code is released under the MIT License. The vendored LeRobot subtree remains Apache-2.0, and the VLA-Adapter subtree remains MIT. See THIRD_PARTY_NOTICES and licenses/ for details.

Released checkpoints and all upstream models, datasets, and benchmark assets remain subject to their applicable licenses and terms.

AutoLab-SAI-SJTU/GSR-ParaVLA

The official implementation of Grounded Semantic Re-Binding & ParaVLA

Python

21

10 commits

updated Aug 4, 2026

See the code

README

Grounded Semantic Re-Binding

Robust Instruction Generalization in Vision-Language-Action Models

arXiv Hugging Face GitHub License

Zhaokai Yin1,2   ·   Zhipeng Zhang1,†

1AutoLab, School of Artificial Intelligence, Shanghai Jiao Tong University
2Research Lab, Anyverse Dynamics
†Corresponding author

Architecture-aware semantic grounding for reliable language-to-action binding.

If this repository is useful for your research, please consider giving it a ⭐.


📘 Contents


📰 News and Roadmap

  • Release complete training and LIBERO-Para evaluation pipelines.
  • Provide portable training and evaluation recipes.
  • Release pretrained checkpoints on Hugging Face.
  • Release the paper and BibTeX entry on arXiv.

📦 Models and Resources

GSR checkpoints

All released checkpoints are available in the AutoLab-SJTU/GSR collection.

CheckpointArchitectureTraining recipe
ParaVLADINOv2-Large + T5-Large + action experttrain_paravla.sh
VLA-Adapter GSRQwen VLM + T5-Large + fresh MLP headtrain_vla_adapter_gsr.sh
SmolVLA GSRSmolVLM + T5-Large + fresh flow experttrain_smolvla_gsr.sh
π₀.₅ GSRPaliGemma + T5-Large + fresh flow experttrain_pi05_gsr.sh

Required pretrained models

ResourceHugging FaceUsed byConfiguration
T5-Largegoogle-t5/t5-largeAll stable-language routesT5_MODEL; use a local copy for VLA_ADAPTER_T5_MODEL
DINOv2-Largefacebook/dinov2-largeParaVLA visual backboneSelected by the ParaVLA recipe
SmolVLA LIBEROHuggingFaceVLA/smolvla_liberoSmolVLA initializationSMOLVLA_BASE
π₀.₅ LIBEROlerobot/pi05_libero_finetuned_v044π₀.₅ initializationDownload locally and set PI05_BASE
VLA-Adapter Goal-ProVLA-Adapter/LIBERO-Goal-ProVLA-Adapter initializationDownload locally and set VLA_ADAPTER_BASE
PaliGemma tokenizer assetsgoogle/paligemma-3b-pt-224π₀.₅ tokenizationPALIGEMMA_TOKENIZER; access approval may be required

Datasets and benchmarks

ResourceLocationPurposeConfiguration
LIBERO in LeRobot formatHuggingFaceVLA/liberoParaVLA, SmolVLA, and π₀.₅ trainingLEROBOT_LIBERO_ROOT
Modified LIBERO RLDSopenvla/modified_libero_rldsVLA-Adapter trainingVLA_ADAPTER_RLDS_ROOT
LIBERO-ParaHAI-Lab/LIBERO-ParaFull 4,092-episode OOD evaluationLIBERO_PARA_ROOT and its BDDL/init directories

The simulator and benchmark implementations are maintained in Lifelong-Robot-Learning/LIBERO and cau-hai-lab/LIBERO-Para.

Download pretrained models and datasets

Install the Hugging Face CLI and authenticate before downloading gated assets:

python -m pip install -U huggingface_hub
hf auth login

export MODEL_ROOT=/path/to/models
export DATA_ROOT=/path/to/data
mkdir -p "${MODEL_ROOT}" "${DATA_ROOT}"

Download the pretrained models:

hf download google-t5/t5-large \
  --local-dir "${MODEL_ROOT}/t5-large"

hf download facebook/dinov2-large \
  --local-dir "${MODEL_ROOT}/dinov2-large"

hf download HuggingFaceVLA/smolvla_libero \
  --local-dir "${MODEL_ROOT}/smolvla_libero"

hf download lerobot/pi05_libero_finetuned_v044 \
  --local-dir "${MODEL_ROOT}/pi05_libero_finetuned_v044"

hf download VLA-Adapter/LIBERO-Goal-Pro \
  --local-dir "${MODEL_ROOT}/VLA-Adapter-LIBERO-Goal-Pro"

hf download google/paligemma-3b-pt-224 \
  --local-dir "${MODEL_ROOT}/paligemma-3b-pt-224"

Download the training datasets:

hf download HuggingFaceVLA/libero \
  --repo-type dataset \
  --local-dir "${DATA_ROOT}/libero"

hf download openvla/modified_libero_rlds \
  --repo-type dataset \
  --local-dir "${DATA_ROOT}/modified_libero_rlds"

Clone LIBERO-Para for the full benchmark implementation and its 4,092 BDDL tasks:

git clone https://github.com/cau-hai-lab/LIBERO-Para.git \
  "${DATA_ROOT}/LIBERO-Para"

⚡ Quick Start

git clone https://github.com/AutoLab-SAI-SJTU/GSR-ParaVLA.git
cd GSR-ParaVLA

bash scripts/create_envs.sh
cp configs/paths.env.example configs/paths.env

After configuring local model, dataset, and output paths in configs/paths.env, run the smoke checks:

conda activate gsr-lerobot
python scripts/smoke_imports.py

make smoke
make audit

🛠️ Installation

1. Create the environments

Separate environments are used because the LeRobot and VLA-Adapter stacks have different dependency constraints.

bash scripts/create_envs.sh
cp configs/paths.env.example configs/paths.env
EnvironmentComponents
gsr-lerobotParaVLA, SmolVLA, π₀.₅, and LeRobot LIBERO evaluation
gsr-vla-adapterVLA-Adapter training and evaluation

2. Install LIBERO-Para

Install the cloned benchmark in the LeRobot environment:

conda run -n gsr-lerobot python -m pip install \
  -e "${DATA_ROOT}/LIBERO-Para"

3. Verify imports

conda activate gsr-lerobot
python scripts/smoke_imports.py

⚙️ Configuration

Copy configs/paths.env.example to configs/paths.env and replace every /path/to/... value. All recipes load this file automatically.

The LIBERO-Para paths should resolve to:

LIBERO_PARA_ROOT=/path/to/LIBERO-Para
LIBERO_PARA_BDDL_DIR=/path/to/LIBERO-Para/libero/libero/bddl_files/libero_para
LIBERO_PARA_INIT_DIR=/path/to/LIBERO-Para/libero/libero/init_files/libero_para
LIBERO_GOAL_BDDL_DIR=/path/to/LIBERO-Para/libero/libero/bddl_files/libero_goal

Configuration notes:

  • LeRobot recipes accept either a Hugging Face model ID or a local path through T5_MODEL.
  • For VLA-Adapter, download T5-Large first and set VLA_ADAPTER_T5_MODEL to that local directory.
  • Set PI05_BASE and VLA_ADAPTER_BASE to the corresponding downloaded checkpoint directories.
  • Dataset, cache, output, and log locations can be customized in configs/paths.env.

🚀 Training

Every long-run recipe supports a short smoke stage. Run each recipe from its matching environment.

The default full-run settings reproduce the architecture-specific schedules used for the released checkpoints:

ModelGPUsBatch/GPUGrad. accum.StepsPeak LR
ParaVLA864150,0001e-4
VLA-Adapter GSR88150,0005e-4
SmolVLA GSR816125,0002e-4
π₀.₅ GSR832212,5001e-4

BATCH_SIZE, GRAD_ACCUMULATION_STEPS, STEPS, and SAVE_FREQ remain explicit overrides. Larger batches or longer schedules can help within the tested range, but changing them is a new training configuration rather than an exact checkpoint reproduction.

ParaVLA

ParaVLA trains on all four LIBERO suites using DINOv2-Large, frozen T5-Large, two visual cameras, and a decoupled text-to-action pathway.

conda activate gsr-lerobot

STAGE=smoke bash recipes/train_paravla.sh
bash recipes/train_paravla.sh

VLA-Adapter GSR

The gsr variant gives Qwen the fixed instruction perform the task, routes the real instruction through frozen T5, and trains a fresh MLP action head. The native_control variant is the matched fresh-head Qwen control.

conda activate gsr-vla-adapter

STEPS=10 VARIANT=gsr bash recipes/train_vla_adapter_gsr.sh
VARIANT=gsr bash recipes/train_vla_adapter_gsr.sh
VARIANT=native_control bash recipes/train_vla_adapter_gsr.sh

SmolVLA GSR

The default arm neutralizes the native task prompt while retaining SmolVLM's visual scene computation. Set PRESERVE_NATIVE_LANGUAGE=true for the matched dual-language arm.

conda activate gsr-lerobot

STAGE=smoke bash recipes/train_smolvla_gsr.sh
bash recipes/train_smolvla_gsr.sh
PRESERVE_NATIVE_LANGUAGE=true bash recipes/train_smolvla_gsr.sh

π₀.₅ GSR

The default π₀.₅ recipe preserves the real PaliGemma instruction, grounds frozen T5 features into native task slots, and trains a fresh flow expert on canonical LIBERO-Goal demonstrations.

conda activate gsr-lerobot

STAGE=smoke bash recipes/train_pi05_gsr.sh
bash recipes/train_pi05_gsr.sh

📊 LIBERO-Goal Evaluation

ParaVLA, SmolVLA, or π₀.₅

conda activate gsr-lerobot

POLICY_PATH=/path/to/pretrained_model \
MODEL_TAG=my_policy \
EVAL_GPUS=0 \
bash recipes/eval_lerobot_libero_goal.sh

Set GOAL_MODE=manual to evaluate the manual paraphrase split.

VLA-Adapter

conda activate gsr-vla-adapter

GSR_ACTION_HEAD_CHECKPOINT=/path/to/action_head_checkpoint \
MODEL_TAG=vla_adapter_gsr \
EVAL_GPUS=0,1,2,3,4,5,6,7 \
bash recipes/eval_vla_adapter_libero_goal.sh

🧪 LIBERO-Para Evaluation

The evaluation launchers shard the ten official partitions over the selected GPUs, retain per-episode outputs, verify exactly 4,092 unique episodes, and merge overall and per-type metrics.

ParaVLA, SmolVLA, or π₀.₅

conda activate gsr-lerobot

POLICY_PATH=/path/to/pretrained_model \
MODEL_TAG=my_policy \
EVAL_GPUS=0,1,2,3,4,5,6,7 \
bash recipes/eval_lerobot_libero_para.sh

VLA-Adapter

conda activate gsr-vla-adapter

GSR_ACTION_HEAD_CHECKPOINT=/path/to/checkpoint-050000 \
MODEL_TAG=vla_adapter_gsr \
EVAL_GPUS=0,1,2,3,4,5,6,7 \
bash recipes/eval_vla_adapter_libero_para.sh

Evaluation produces per-shard logs and per-episode records, followed by a merged summary under GSR_OUTPUT_ROOT.


🗂️ Repository Layout

GSR-ParaVLA/
├── lerobot_backend/       # ParaVLA, SmolVLA, π₀.₅, and LeRobot runtime
├── vla_adapter_backend/   # VLA-Adapter model and GSR trainer
├── recipes/               # Portable training and evaluation launchers
├── configs/               # Machine-local path templates
├── environments/          # Conda environment definitions
├── scripts/               # Setup, smoke, coverage, and release checks
├── assets/                # Public manual-paraphrase evaluation assets
└── licenses/              # Upstream license copies

📝 Citation

@misc{gsr,
  title={Grounded Semantic Re-Binding for Robust Instruction Generalization in Vision-Language-Action Models},
  author={Zhaokai Yin and Zhipeng Zhang},
  year={2026},
  eprint={2608.02497},
  archivePrefix={arXiv},
  primaryClass={cs.RO},
  url={https://arxiv.org/abs/2608.02497},
}

🙏 Acknowledgements

This release builds on LeRobot, LIBERO, LIBERO-Para, VLA-Adapter, DINOv2, and the T5 model family. We thank their authors and maintainers for releasing code, models, datasets, and evaluation infrastructure.


⚖️ License

Original GSR integration code is released under the MIT License. The vendored LeRobot subtree remains Apache-2.0, and the VLA-Adapter subtree remains MIT. See THIRD_PARTY_NOTICES and licenses/ for details.

Released checkpoints and all upstream models, datasets, and benchmark assets remain subject to their applicable licenses and terms.