BLUE: Toward Better Language Use in Efficient Vision-Language-Action Models for Autonomous Driving

August 22, 2026 Β· View on GitHub

Project Page paper Hugging Face Weights Hugging Face Data Hugging Face Logs

This repository is the official codebase for our EMNLP paper "BLUE: Toward Better Language Use in Efficient Vision-Language-Action Models for Autonomous Driving".

TLDR: Driving VLAs often generate language reasoning that is useless or even harmful to driving. BLUE addresses this by generating language only when it clearly helps, thereby improving driving performance while reducing inference latency.

BLUE uses a 0.11M-parameter gate to decide at each frame whether to predict driving actions with or without intermediate language generation.

πŸŽ‰ News

2026-08 - Our paper was accepted to the EMNLP 2026 Main Conference. πŸŽ‰

2026-06 - We released the Project Page. It includes some demo videos. πŸŽ‰Please check it!

2026-06 - We released the BLUE evaluation code, model checkpoints, and evaluation logs. πŸŽ‰Please try it!

βš™οΈ Environment Setup

Create a Python environment and install the packages listed in requirements.txt.

module load conda
conda create -n blue python=3.8 -y
conda activate blue
python -m pip install -r requirements.txt

Install CARLA 0.9.15 from the official CARLA release page: [CARLA 0.9.15]

After installation, set the CARLA root to the directory that contains:

CarlaUE4.sh
PythonAPI/carla/

πŸ“¦ Weight Download

The BLUE gate checkpoint is already included in this repository at gate/weights/blue_simlingo_gate.pt.

To use the SimLingo backbone, download the official checkpoint from the official SimLingo repository, then pass the local pytorch_model.pt path through --agent-config when running evaluation.

You can verify bundled assets with:

python scripts/verify_assets.py

Model checkpoints and evaluation logs will also be mirrored on Hugging Face: [Weights] | [Data]

πŸš€ Quick Start

Static checks

cd blue
module load conda
conda activate blue

bash -n gate/evaluation/eval_blue_full.sh
python scripts/verify_assets.py
python tests/smoke/test_result_summary.py
python tests/smoke/test_gate_checkpoint.py

One-route closed-loop smoke test

cd blue
module load conda
conda activate blue

bash gate/evaluation/eval_blue_full.sh \
  --route-range 0:1 \
  --agent-config /path/to/pytorch_model.pt \
  --carla-root /path/to/carla \
  --out-dir outputs/blue_eval_smoke

πŸ“ Repository Map

blue/
β”œβ”€β”€ data/
β”‚   β”œβ”€β”€ README.md                         # data release status and layout
β”‚   └── routes/bench2drive_split/         # 220 Bench2Drive route XMLs
β”œβ”€β”€ gate/
β”‚   β”œβ”€β”€ evaluation/eval_blue_full.sh      # closed-loop evaluation entry point
β”‚   β”œβ”€β”€ runtime/                          # decision-log utilities
β”‚   └── weights/                          # BLUE gate checkpoint
β”œβ”€β”€ simlingo_training/models/
β”‚   β”œβ”€β”€ gate.py                           # BLUE gate runtime
β”‚   └── driving_gate.py                   # SimLingo gate integration
β”œβ”€β”€ team_code/agent_simlingo.py           # Bench2Drive agent
β”œβ”€β”€ Bench2Drive/                          # evaluator components
β”œβ”€β”€ evaluation_logs/                      # released evaluation logs
β”œβ”€β”€ configs/                              # asset and evaluation configs
β”œβ”€β”€ docs/                                 # auxiliary notes
β”œβ”€β”€ tests/smoke/                          # smoke tests
└── requirements.txt                      # package snapshot

πŸ“Š Framework and Results

Framework

BLUE framework

Results on Bench2Drive

BLUE main result on Bench2Drive

Results on Longest & Latency Comparison

BLUE longest result and inference efficiency/latency comparison

Results on Fail2Drive

BLUE main result on Fail2Drive

Results on NAVSIM

BLUE main result on NAVSIM

πŸ“‹ Ready-to-Cite Results

Bench2Drive and Fail2Drive results are reported as mean Β± std over three seeds; Longest6 v2 and NAVSIM use a single seed. Feel free to use BLUE as a baseline in your work, and we'd be happy if you cite us!

BLUE on Bench2Drive

SR (%) ↑DS ↑Efficiency (%) ↑Smoothness ↑
76.18 Β± 0.6490.58 Β± 0.12256.63 Β± 2.480.2524 Β± 0.0162
Merge ↑Overtake ↑EmBrake ↑GiveWay ↑TSign ↑Mean ↑
61.44 Β± 1.3380.00 Β± 1.8193.27 Β± 1.3350.00 Β± 0.0084.74 Β± 0.0073.89 Β± 0.14

BLUE on Longest6 v2

Driving Score ↑Route Completion ↑Infraction Score ↑
36.084.00.43

BLUE on Fail2Drive

SplitDS ↑SR (%) ↑HM ↑
In-Distribution85.67 Β± 1.4684.00 Β± 3.2784.81 Β± 2.35
Generalization73.87 Β± 0.3159.00 Β± 1.6365.59 Β± 1.11

BLUE on NAVSIM

EP ↑NC ↑DAC ↑DDC ↑TTC ↑Comfort ↑PDMS ↑
81.3598.5094.7797.8894.8499.9987.00

πŸ“š Citation

If you find BLUE useful, please consider citing our work:

@article{ling2026blue,
  title={BLUE: Toward Better Language Use in Efficient Vision-Language-Action Models for Autonomous Driving},
  author={Ling, George and Yang, Lijin and Yang, Hao and Huang, Zhongzhan},
  journal={arXiv preprint arXiv:2606.08684},
  year={2026}
}