README.md

July 16, 2026 · View on GitHub

Global Prior Meets Local Consistency: Dual-Memory Augmented
Vision-Language-Action Model for Efficient Robotic Manipulation
CVPR 2026

1Harbin Institute of Technology, Shenzhen    2PengCheng Laboratory, Shenzhen   
3Shenzhen Loop Area Institute    4Huawei Noah's Ark Lab   
✉ Corresponding author  

:new: Updates

  • [07/2026] :fire: We propose BehaviorVLA, a follow-up to OptimusVLA on memory-driven VLA models.
  • [05/2026] :fire: We release the Inference Code and Checkpoints on LIBERO.
  • [02/2026] :fire: OptimusVLA is accepted to CVPR 2026!
  • [02/2026] :fire: Project page released.
  • [02/2026] :fire: Arxiv paper released.

:balloon: OptimusVLA Framework

Overview of OptimusVLA framework. Given a task and the current observation, the Vision–Language backbone first encodes the inputs into a multimodal representation. GPM then retrieves a task-level prior based on this representation, while LBM dynamically encodes the historical action sequence to produce a consistency constraint. Finally, the flow policy denoises the initialization with an adaptive NFEs schedule to generate the action chunk.

:rocket: How to Run

OptimusVLA is built on the openpi framework. Therefore, please first download and configure the openpi environment, and then download the pi_05 model weights.

Install openpi

  1. Clone the official OpenPI repository
git clone --recurse-submodules git@github.com:Physical-Intelligence/openpi.git
cd openpi
  1. Create the main OpenPI environment:
GIT_LFS_SKIP_SMUDGE=1 uv sync
GIT_LFS_SKIP_SMUDGE=1 uv pip install -e .
  1. PyTorch Support
cp -r ./src/openpi/models_pytorch/transformers_replace/* .venv/lib/python3.11/site-packages/transformers/
  1. Download pi05_libero model checkpoints and convert it to pytorch version

OptimusVLA does not release the pi0.5 policy checkpoint. Prepare a PyTorch pi05_libero checkpoint yourself. The policy directory must contain:

model.safetensors
assets/physical-intelligence/libero/norm_stats.json

If you start from a JAX OpenPI checkpoint, convert it with the upstream OpenPI converter:

cd "${OPENPI_ROOT}"
uv run examples/convert_jax_model_to_pytorch.py \
  --checkpoint-dir /path/to/pi05_libero_jax_checkpoint \
  --config-name pi05_libero \
  --output-path /path/to/pi05_libero_pytorch

Set the policy path:

export POLICY_DIR=/path/to/pi05_libero_pytorch
  1. Install the extra OptimusVLA inference dependency:
uv pip install faiss-cpu
uv pip install mamba-ssm
  1. Create the LIBERO Client Environment

Create the LIBERO example environment using the official OpenPI instructions:

cd "${OPENPI_ROOT}"
uv venv --python 3.8 examples/libero/.venv
source examples/libero/.venv/bin/activate
uv pip sync examples/libero/requirements.txt third_party/libero/requirements.txt \
  --extra-index-url https://download.pytorch.org/whl/cu113 \
  --index-strategy=unsafe-best-match
uv pip install -e packages/openpi-client
uv pip install -e third_party/libero
deactivate

Use this environment only for the LIBERO client in examples/libero/main.py. Run the policy server from the OpenPI server environment created in step 2.

Apply the OptimusVLA Code

Clone or download the GitHub repository that contains this code/ folder, then copy the overlay files from code/ into an already configured OpenPI checkout:

git clone https://github.com/iLearn-Lab/CVPR26-OptimusVLA.git
cd CVPR26-OptimusVLA
export OPENPI_ROOT=/path/to/openpi
rsync -av \
  code/ "${OPENPI_ROOT}/"

This step only copies the source overlay. Download checkpoints/ and memory/ separately from the Hugging Face asset repository in the next step.

Download OptimusVLA Assets

Download the asset directories from the OptimusVLA_Memory. They must end up under the OpenPI root exactly as follows:

${OPENPI_ROOT}/checkpoints/gpm_task_head.pt
${OPENPI_ROOT}/checkpoints/lcm.pt
${OPENPI_ROOT}/memory/gpm_memory_meta.pt
${OPENPI_ROOT}/memory/gpm_memory.index
${OPENPI_ROOT}/memory/gpm_memory_actions.npz

Run LIBERO Evaluation

cd "${OPENPI_ROOT}"
POLICY_DIR=/path/to/pi05_libero_pytorch bash scripts/run_libero_eval.sh

By default, the script runs libero_spatial, libero_object, libero_goal, and libero_10. Logs are written to a timestamped directory under logs/, and the final summary is saved as results.txt in that directory. The summary contains the exit code, episode count, success count, and success rate for each suite.

Default model and server settings:

ParameterDefaultMeaning
POLICY_CONFIGpi05_liberoOpenPI policy config used for the base pi0.5 checkpoint.
POLICY_DIRRequiredLocal PyTorch pi0.5 checkpoint directory. This release does not include it.
ACTION_NORM_STATS_PATH${POLICY_DIR}/assets/physical-intelligence/libero/norm_stats.jsonAction normalization stats used by GPM memory actions.
HOST / PORT127.0.0.1 / 8000Client connection target and server port.
SERVER_CUDA_VISIBLE_DEVICES${CUDA_VISIBLE_DEVICES} or 0GPU used by the policy server.
CLIENT_CUDA_VISIBLE_DEVICES${CUDA_VISIBLE_DEVICES} or 0GPU visible to the LIBERO clients.
OPENPI_TORCH_COMPILE0Disables Torch compile by default for easier first-run debugging.

Default GPM settings:

ParameterDefaultMeaning
GPM memoryEnabledThe helper always passes --use-memory.
GPM assetscheckpoints/gpm_task_head.pt, memory/gpm_memory_meta.pt, memory/gpm_memory.index, memory/gpm_memory_actions.npzDefault task head, metadata, FAISS index, and packed action memory paths.
--action-use-quantile-normEnabledUses LIBERO action quantile statistics for memory action normalization.
MEMORY_TOP_K8Number of retrieved memory candidates per query.
MEMORY_REFRESH_EVERY1Refreshes memory retrieval every replan request.
ALIGN_MODEhybridTime alignment mode for the retrieved memory trajectory.
MIXTURE_MODEgaussianBuilds a Gaussian action prior from retrieved memories.
TEMPERATURE10.0Softmax temperature used when weighting retrieved memories.
SIGMA_MIN0.05Lower bound for the Gaussian prior standard deviation.
NOISE_MIN / NOISE_MAX0.20 / 1.00Noise schedule range used by the memory-guided sampler.
NFE_MIN / NFE_MAX1 / 10Sampling step range selected from memory confidence.

Default LCM settings:

ParameterDefaultMeaning
USE_LCM1Enables LCM refinement after GPM. Set USE_LCM=0 for GPM-only inference.
LCM_SCALE0.10Strength of the LCM correction applied to the action chunk.
LCM checkpointcheckpoints/lcm.ptDefault LCM checkpoint path.
LCM architecture fallbackhidden 256, layers 1, heads 4, dropout 0.0, mamba_impl=autoUsed only when these fields are absent from checkpoint metadata.

Default evaluation and logging settings:

ParameterDefaultMeaning
Suiteslibero_spatial, libero_object, libero_goal, libero_10Four standard LIBERO suites run in parallel.
NUM_TRIALS_PER_TASK50Episodes evaluated per task.
REPLAN_STEPS10Number of actions executed before requesting a new chunk.
NUM_STEPS_WAIT10Initial dummy steps before policy control begins.
SEED7LIBERO environment seed.
RESIZE_SIZE224Image size sent to the policy client.
MUJOCO_GLeglHeadless MuJoCo rendering backend.
LOG_DIRlogs/libero_eval_<timestamp>Directory for server logs, client stdout logs, JSONL records, and results.txt.
RESULTS_TXT${LOG_DIR}/results.txtFinal text summary with per-suite and overall success rates.

Experimental Results Note

Our repeated experiments show that performance on LIBERO is affected by the GPU and randomness. Below, we provide the experimental results obtained on L40 and A800 GPUs using the default parameter settings for reference.

MethodSpatialObjectGoalLongAverage
pi_0598.898.298.092.496.9
OptimusVLA (L40)99.499.298.895.698.3
98.699.897.894.697.7
97.899.698.692.897.2
98.499.098.095.297.7
98.699.498.094.697.7
98.898.897.295.297.5
98.499.897.494.097.4
98.499.497.695.097.6
OptimusVLA (A800)97.699.496.895.697.4
97.899.498.295.297.7
99.699.299.094.498.1
98.499.697.894.897.7
99.099.697.094.297.5
99.299.297.494.097.5
98.699.898.896.498.4
99.299.298.494.097.7
OptimusVLA (Paper)99.699.898.496.498.6

:smile_cat: Evaluation results on Real World

We evaluate OptimusVLA on Generalization Tasks and Long-horizon Tasks via GALAXEA R1 Lite robot.

:hugs: Citation

If you find this work useful for your research, please kindly cite our paper:

@article{li2026optimusvla,
  title={Global Prior Meets Local Consistency: Dual-Memory Augmented Vision-Language-Action Model for Efficient Robotic Manipulation},
  author={Zaijing Li, Bing Hu, Rui Shao, Gongwei Chen, Dongmei Jiang, Pengwei Xie, Jianye Hao, Liqiang Nie},
  journal={arXiv preprint arXiv:2602.20200},
  year={2026}
}