Explicit ECoT — MiniVLA-1B on LIBERO-90

Explicit embodied chain-of-thought VLA policy (reproduction of the ECoT-Lite "Full ECoT" recipe, arXiv:2505.08243): generates a structured reasoning chain (PLAN / VISIBLE OBJECTS / SUBTASK REASONING / SUBTASK / MOVE REASONING / MOVE / GRIPPER POSITION, ~250 tokens, ~3 s/decision) before emitting VQ action tokens.

  • Base: MiniVLA-1B (Qwen2.5-0.5B + DINOv2/SigLIP 224px), VQ action chunking (10 steps -> 7 codes)
  • Trained on LIBERO-90 with the Embodied-CoT reasoning annotations (batch 128, lr 2e-5)

Checkpoints

File Steps LIBERO-90 (90 tasks x 10 trials)
checkpoints/step-100000-epoch-22-loss=0.0261.pt 100k 87.0% (783/900) -- best
checkpoints/step-140000-epoch-31-loss=0.0289.pt 140k (from scratch) 85.2% (767/900) -- matched-step vs. latent

References: no-CoT Standard-VLA baseline 82.0% and Full ECoT 90.8% (200k steps, 50 trials/task) as reported in ECoT-Lite Table 1. Companion latent-CoT model (89.1% at 140k, ~9x faster): see the latent-ecot-coconut-libero90 repo.

Usage

Requires the latent-ecot codebase. Place the vq/ folder from this repo at the working directory root, then:

from prismatic.models import load_vla
vla = load_vla("<repo_dir>/checkpoints/step-100000-epoch-22-loss=0.0261.pt",
               hf_token="", load_for_training=False)
action_chunk, info = vla.predict_action(
    image, instruction, unnorm_key="libero_lm_90",
    use_ecot=True, return_action_chunk=True, return_info=True)  # info["reasoning_text"]

Citation

Please cite ECoT-Lite (arXiv:2505.08243), ECoT (arXiv:2407.08693), MiniVLA, and LIBERO alongside this artifact.

Downloads last month
27
Video Preview
loading

Papers for RHYu2233/ecot-libero90