Skip to content

Latest commit

Β 

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

TurboVLA: Real-Time Vision-Language-Action Model at 32 Hz on an RTX 4090 with <1 GB VRAM

Paper Homepage Code License

Hengyi Xie1*, Chenfei Yao1*, Xianjin Wu1, Xuanyang Xi2, Yiping Tang2, Di Xu2, Yingying Zhu1, Dingkang Liang1†, Xiang Bai1, Han Ding1

1 Huazhong University of Science and Technology, China
2 Huawei Technologies Co. Ltd, China
* Equal contribution, listed alphabetically by surname. † Project Lead.

This repository contains the official implementation of TurboVLA for the paper TurboVLA: Real-Time Vision-Language-Action Model at 32 Hz on an RTX 4090 with <1 GB VRAM.

πŸ”¬ Independent reproduction

The architecture-level efficiency reproduction is partially reproduced on NVIDIA RTX PRO 6000 Blackwell GPUs. It verifies the model's real-time throughput and memory scale; learned-policy task success and the paper's exact RTX 4090 result remain outside the available evidence.

TurboVLA real-world tasks with synchronous inference
Real-world tasks with synchronous policy inference.

πŸ“£ News

  • 2026.07.30: Released the paper, training and evaluation code.

πŸ“„ Abstract

Vision-language-action (VLA) models commonly adopt an LLM-centric V β†’ L β†’ A pathway, where visual observations are projected into the representation space of a large language model before being decoded into robot actions. Although effective, this design incurs substantial computation and memory overhead at every policy invocation.

In this work, we introduce TurboVLA, a new VLA paradigm that reformulates the conventional V β†’ L β†’ A pathway as a direct V + L β†’ A mapping. Instead of using a large language model as the central interface between perception and action, TurboVLA independently encodes visual observations and language instructions, directly exchanges information between them through lightweight bidirectional vision-language interaction, and predicts continuous action chunks with a compact decoder. This simple design constructs task-conditioned representations directly from visual and linguistic features, significantly reducing the computational and memory costs of VLA inference. On LIBERO, TurboVLA achieves 97.7% average success with only 0.2B parameters, 31.2 ms inference latency, and 0.9 GB inference VRAM on a consumer-grade RTX 4090, matching or outperforming substantially larger VLA policies. These results establish TurboVLA as a simple and effective alternative to the prevailing LLM-centric VLA paradigm, offering a new perspective on how vision, language, and action can be connected for efficient robotic manipulation.


πŸ” Overview


πŸ“ˆ Performance


βš™οΈ Installation

Clone the repository:

git clone https://github.com/H-EmbodVis/TurboVLA.git
cd TurboVLA

LIBERO and RoboTwin use different simulator and data stacks. We recommend separate Python 3.10 environments.

LIBERO Environment

conda create -n turbovla-libero python=3.10 -y
conda activate turbovla-libero

# Install the CUDA-compatible PyTorch build for your system first.
pip install torch==2.3.1 torchvision==0.18.1 --index-url https://download.pytorch.org/whl/cu121
pip install -e ".[libero]"

Install LIBERO separately in the same environment.

RoboTwin Environment

conda create -n turbovla-robotwin python=3.10 -y
conda activate turbovla-robotwin

# Install a CUDA-compatible PyTorch build before the project dependencies.
pip install -e ".[robotwin]"
pip install flash-attn==2.7.4.post1 --no-build-isolation

Install the RoboTwin 2.0 simulator in a separate evaluation environment when required by your setup.


πŸ“¦ Dataset and Model Preparation

Model weights and benchmark datasets are external assets and are not committed to this repository.

Required Models

Asset Source Used by
DINOv3 ViT-B facebookresearch/dinov3 LIBERO
DINOv3 ViT-L facebookresearch/dinov3 RoboTwin
BERT base uncased google-research/bert Both
GroundingDINO Swin-T OGC IDEA-Research/GroundingDINO Both

LIBERO Data

TurboVLA expects the four modified no-noops suites in TFDS/RLDS format:

data/libero/
|-- libero_10_no_noops/1.0.0/
|-- libero_goal_no_noops/1.0.0/
|-- libero_object_no_noops/1.0.0/
`-- libero_spatial_no_noops/1.0.0/

The repository provides the no-op removal, mixed-suite statistics, and BERT text-cache utilities:

python scripts/libero/regenerate_libero_no_noops.py --help
python scripts/libero/compute_mixed_stats.py --help
python scripts/libero/build_text_cache.py --help

Released normalization statistics are stored in experiments/libero/configs/libero_all4_stats.json. See experiments/libero/README.md for the expected conversion and cache layout.

RoboTwin Data

Download the clean LeRobot dataset and create the expected local link:

bash scripts/robotwin/prepare_data.sh /path/to/storage
export ROBOTWIN_DATA_ROOT="$PWD/playground/Datasets/RoboTwin"

The default downloader uses StarVLA/RoboTwin-Clean. The training registry expects all 50 datasets under Clean/<task_name>.


πŸ‹οΈ Training and Evaluation

LIBERO Training

The paper recipe uses DINOv3 ViT-B, two camera views, 7-D actions, a 12-step action chunk, 80k optimizer steps, 10k warmup steps, and global batch size 256 on four GPUs.

torchrun --nproc_per_node=4 experiments/libero/train.py \
  --dataset_dir data/libero/libero_10_no_noops/1.0.0 \
  --dataset_dirs "data/libero/libero_10_no_noops/1.0.0,data/libero/libero_goal_no_noops/1.0.0,data/libero/libero_object_no_noops/1.0.0,data/libero/libero_spatial_no_noops/1.0.0" \
  --stats_path experiments/libero/configs/libero_all4_stats.json \
  --stats_key libero_all4_no_noops \
  --dinov3_path facebook/dinov3-vitb16-pretrain-lvd1689m \
  --allow_hf_download \
  --text_cache_path data/libero_all4_bert_text_cache.pt \
  --pretrained_gdino_ckpt /path/to/groundingdino_swint_ogc.pth \
  --checkpoint_dir outputs/libero

LIBERO Evaluation

One command evaluates one checkpoint on one suite.

python experiments/libero/evaluate.py \
  --ckpt_path outputs/libero/turbovla_step_80000.pth \
  --dinov3_path /path/to/dinov3-vitb \
  --text_cache_path data/libero_all4_bert_text_cache.pt \
  --stats_path experiments/libero/configs/libero_all4_stats.json \
  --stats_key libero_all4_no_noops \
  --task_suite_name libero_object \
  --num_trials_per_task 50 \
  --chunk_size 12 \
  --num_open_loop_steps 12 \
  --precision bf16 \
  --result_json_path outputs/evaluation/libero_object.json

Valid suite names are libero_spatial, libero_object, libero_goal, and libero_10.

RoboTwin Training

The paper recipe uses DINOv3 ViT-L, three camera views, 14-D absolute joint-position actions, a 50-step ACT head, global batch size 192, and 55k optimizer steps on four GPUs.

export ROBOTWIN_DATA_ROOT="$PWD/playground/Datasets/RoboTwin"
export GROUNDINGDINO_BERT_PATH=/path/to/bert-base-uncased
export GROUNDINGDINO_CKPT=/path/to/groundingdino_swint_ogc.pth
export DINOV3_MODEL_PATH=/path/to/dinov3-vitl
export CUDA_VISIBLE_DEVICES=0,1,2,3

MAX_TRAIN_STEPS=55000 \
RUN_ID=turbovla_robotwin_clean50_55k \
bash scripts/robotwin/train.sh

RoboTwin Evaluation

The policy server and RoboTwin simulator can run in separate Python environments:

export ROBOTWIN_PATH=/path/to/RoboTwin
export STARVLA_PYTHON=/path/to/policy-env/bin/python
export ROBOTWIN_PYTHON=/path/to/robotwin-env/bin/python
export CUDA_VISIBLE_DEVICES=0,1,2,3

ROBOTWIN_TEST_NUM=100 \
bash scripts/robotwin/evaluate.sh outputs/robotwin/model_step_55000.pt

Append task names to the evaluation command to run a subset. Omitting them evaluates all 50 clean tasks.


πŸ‘ Acknowledgement

TurboVLA builds upon the following projects and resources:

  • DINOv3 for visual representations.
  • GroundingDINO for bidirectional vision-language interaction components and initialization.
  • VLA-Adapter for the LIBERO task and episode rollout protocol.
  • StarVLA for the RoboTwin-compatible training and evaluation runtime.
  • LIBERO and RoboTwin 2.0 for simulation benchmarks.

πŸ“– Citation

If TurboVLA is useful in your research, please consider citing the paper:

@article{xie2026turbovla,
  title  = {TurboVLA: Real-Time Vision-Language-Action Model at
            32 Hz on an RTX 4090 with <1 GB VRAM},
  author = {Xie, Hengyi and Yao, Chenfei and Wu, Xianjin and
            Xi, Xuanyang and Tang, Yiping and Xu, Di and
            Zhu, Yingying and Liang, Dingkang and Bai, Xiang and
            Ding, Han},
  journal = {arXiv preprint arXiv:2607.27205},
  year   = {2026}
}

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages