zuoxingdong/evo1_libero

Model

0

stars

2

commits

2

repos using this model

2

linked in READMEs

Jul 20, 2026

updated

evo1
imitation-learning
lerobot
libero
robotics
safetensors
vision-language-action

README

EVO1 · LIBERO (Stage 2, 70k)

This is an EVO1 vision-language-action checkpoint trained on all four LIBERO suites with the two-stage LeRobot recipe: 5k steps of action-head-only training followed by joint VLM and action-head finetuning. This checkpoint was saved at step 70,000 of the 80k Stage-2 schedule and had the best overall result among the evaluated 10k, 40k, 60k, and 70k checkpoints.

Results

LeRobot LIBERO evaluation with seed 1000, 50 episodes per task, 10 tasks per suite, 14-action replanning, 448×448 observations, and 2,000 episodes overall:

SuiteSuccessful episodesEpisodesSuccess rate
LIBERO Spatial48550097.0%
LIBERO Object49650099.2%
LIBERO Goal48350096.6%
LIBERO-1046950093.8%
Overall1,9332,00096.65%

These are single-seed results, not a multi-seed mean or confidence estimate.

Evaluation

Install LeRobot with the EVO1 and LIBERO dependencies:

pip install "lerobot[evo1,libero] @ git+https://github.com/huggingface/lerobot.git@e40b58a8dfa9e7b86918c374791599d070518d11"

The following evaluates task 0 of LIBERO Spatial. Run task IDs 0–9 to reproduce the suite result.

export MUJOCO_GL=egl
export PYOPENGL_PLATFORM=egl

lerobot-eval \
  --policy.path=zuoxingdong/evo1_libero \
  --policy.vlm_model_name=OpenGVLab/InternVL3-1B-hf \
  --policy.device=cuda \
  --policy.use_amp=true \
  --policy.vlm_dtype=bfloat16 \
  --policy.use_flash_attn=false \
  --policy.enable_gradient_checkpointing=false \
  --policy.n_action_steps=14 \
  --policy.num_inference_timesteps=32 \
  --policy.postprocess_action_dim=7 \
  --policy.binarize_gripper=true \
  --policy.gripper_threshold=0.0 \
  --policy.gripper_below_threshold_value=-1.0 \
  --policy.gripper_above_threshold_value=1.0 \
  --env.type=libero \
  --env.task=libero_spatial \
  --env.task_ids='[0]' \
  --env.camera_name=agentview_image,robot0_eye_in_hand_image \
  --env.camera_name_mapping='{agentview_image: image, robot0_eye_in_hand_image: image2}' \
  --env.control_mode=relative \
  --env.obs_type=pixels_agent_pos \
  --env.observation_width=448 \
  --env.observation_height=448 \
  --env.init_states=true \
  --env.episode_length=280 \
  --env.render_mode=rgb_array \
  --env.max_parallel_tasks=1 \
  --eval.n_episodes=50 \
  --eval.batch_size=1 \
  --eval.use_async_envs=false \
  --eval.recording=false \
  --seed=1000 \
  --output_dir=eval/evo1_libero/spatial-task-0

Use episode lengths 280 for libero_spatial and libero_object, 300 for libero_goal, and 520 for libero_10.

Training details

  • Dataset: all four suites from lerobot/libero, revision a1aaacb7f6cd6ee5fb43120f673cebb0cfea7dd4, with the standard enabled LeRobot image transforms.
  • Stage 1: randomly initialized action expert only, 5k steps.
  • Stage 2: VLM and action expert finetuning, 80k-step cosine schedule; this release is step 70k.
  • Both stages: global batch 128, learning rate 1e-5, warmup 1,000, weight decay 1e-3, dropout 0.2, gradient clipping 1.0, chunk size 50, image size 448, and padded state/action dimensions 24.
  • Measured topology: two DDP processes with batch 64 per process on two H100 GPUs using bf16 AMP.
  • Base VLM source revision: 014c0583a0d4bedf29fbe2dbff4f865eb998e171.
  • Model weight SHA-256: c6ae0c7350d1810a064d16080137fdbc42d6dac5c6cf2cfb3874907efd959318.

Limitations

  • Evaluation was run with one seed (1000).
  • The reported behavior depends on 14-action replanning and the documented LIBERO gripper postprocessing.
  • Loading the policy also downloads OpenGVLab/InternVL3-1B-hf unless it is already cached.

License

The EVO1 code is MIT-licensed. InternVL3 is released under MIT, while its Qwen language component is covered by the Qwen License. This model is therefore published with license: other and Qwen attribution. The lerobot/libero dataset is Apache-2.0.

Contributors

zuoxingdong

2 commits

zuoxingdong/evo1_libero

Model

0

stars

2

commits

2

repos using this model

2

linked in READMEs

Jul 20, 2026

updated

evo1
imitation-learning
lerobot
libero
robotics
safetensors
vision-language-action

README

EVO1 · LIBERO (Stage 2, 70k)

This is an EVO1 vision-language-action checkpoint trained on all four LIBERO suites with the two-stage LeRobot recipe: 5k steps of action-head-only training followed by joint VLM and action-head finetuning. This checkpoint was saved at step 70,000 of the 80k Stage-2 schedule and had the best overall result among the evaluated 10k, 40k, 60k, and 70k checkpoints.

Results

LeRobot LIBERO evaluation with seed 1000, 50 episodes per task, 10 tasks per suite, 14-action replanning, 448×448 observations, and 2,000 episodes overall:

SuiteSuccessful episodesEpisodesSuccess rate
LIBERO Spatial48550097.0%
LIBERO Object49650099.2%
LIBERO Goal48350096.6%
LIBERO-1046950093.8%
Overall1,9332,00096.65%

These are single-seed results, not a multi-seed mean or confidence estimate.

Evaluation

Install LeRobot with the EVO1 and LIBERO dependencies:

pip install "lerobot[evo1,libero] @ git+https://github.com/huggingface/lerobot.git@e40b58a8dfa9e7b86918c374791599d070518d11"

The following evaluates task 0 of LIBERO Spatial. Run task IDs 0–9 to reproduce the suite result.

export MUJOCO_GL=egl
export PYOPENGL_PLATFORM=egl

lerobot-eval \
  --policy.path=zuoxingdong/evo1_libero \
  --policy.vlm_model_name=OpenGVLab/InternVL3-1B-hf \
  --policy.device=cuda \
  --policy.use_amp=true \
  --policy.vlm_dtype=bfloat16 \
  --policy.use_flash_attn=false \
  --policy.enable_gradient_checkpointing=false \
  --policy.n_action_steps=14 \
  --policy.num_inference_timesteps=32 \
  --policy.postprocess_action_dim=7 \
  --policy.binarize_gripper=true \
  --policy.gripper_threshold=0.0 \
  --policy.gripper_below_threshold_value=-1.0 \
  --policy.gripper_above_threshold_value=1.0 \
  --env.type=libero \
  --env.task=libero_spatial \
  --env.task_ids='[0]' \
  --env.camera_name=agentview_image,robot0_eye_in_hand_image \
  --env.camera_name_mapping='{agentview_image: image, robot0_eye_in_hand_image: image2}' \
  --env.control_mode=relative \
  --env.obs_type=pixels_agent_pos \
  --env.observation_width=448 \
  --env.observation_height=448 \
  --env.init_states=true \
  --env.episode_length=280 \
  --env.render_mode=rgb_array \
  --env.max_parallel_tasks=1 \
  --eval.n_episodes=50 \
  --eval.batch_size=1 \
  --eval.use_async_envs=false \
  --eval.recording=false \
  --seed=1000 \
  --output_dir=eval/evo1_libero/spatial-task-0

Use episode lengths 280 for libero_spatial and libero_object, 300 for libero_goal, and 520 for libero_10.

Training details

  • Dataset: all four suites from lerobot/libero, revision a1aaacb7f6cd6ee5fb43120f673cebb0cfea7dd4, with the standard enabled LeRobot image transforms.
  • Stage 1: randomly initialized action expert only, 5k steps.
  • Stage 2: VLM and action expert finetuning, 80k-step cosine schedule; this release is step 70k.
  • Both stages: global batch 128, learning rate 1e-5, warmup 1,000, weight decay 1e-3, dropout 0.2, gradient clipping 1.0, chunk size 50, image size 448, and padded state/action dimensions 24.
  • Measured topology: two DDP processes with batch 64 per process on two H100 GPUs using bf16 AMP.
  • Base VLM source revision: 014c0583a0d4bedf29fbe2dbff4f865eb998e171.
  • Model weight SHA-256: c6ae0c7350d1810a064d16080137fdbc42d6dac5c6cf2cfb3874907efd959318.

Limitations

  • Evaluation was run with one seed (1000).
  • The reported behavior depends on 14-action replanning and the documented LIBERO gripper postprocessing.
  • Loading the policy also downloads OpenGVLab/InternVL3-1B-hf unless it is already cached.

License

The EVO1 code is MIT-licensed. InternVL3 is released under MIT, while its Qwen language component is covered by the Qwen License. This model is therefore published with license: other and Qwen attribution. The lerobot/libero dataset is Apache-2.0.

Contributors

zuoxingdong

2 commits