Gaussian Actor LIBERO Spatial task-0 step-100 baseline

This is an intentionally undertrained, weak-but-nonzero baseline for the first canonical LIBERO Spatial task. It is intended for measuring improvement from additional SFT, reinforcement learning, or human-in-the-loop methods such as HIL-SERL. It is not a production-ready robot policy.

Benchmark task

  • Suite: LIBERO Spatial
  • Canonical task ID: 0
  • Instruction: "Pick up the black bowl between the plate and the ramekin and place it on the plate."
  • Robot: LIBERO Franka/Panda
  • Observation: agent-view RGB image, wrist RGB image, and 8-dimensional robot state
  • Output: one 7-dimensional continuous action

Sources and lineage

The policy architecture is the native LeRobot Gaussian Actor from modeling_gaussian_actor.py at LeRobot commit 22bd7a2f489b367d8df42de803b1e8c4ca63a3f9. The checkpoint was trained and exported in native Hugging Face/LeRobot format through verl-vla.

Training used Miical/libero_spatial_image_task0, a 45-episode, 4,487-frame single-task subset derived from lerobot/libero_spatial_image. The subset selects episodes by the exact instruction above. The source dataset stores this instruction at local task_index=4; this repository and LIBERO use the canonical simulator task_id=0.

Training

Setting Value
Optimizer steps 100
Global batch size 32
Mini-batch size 32
Micro-batch size 16
Learning rate 1e-4
Distributed backend FSDP2, one GPU
Action horizon 1
Objective MSE over all seven normalized action dimensions
Step-100 SFT loss 0.08649

The visual encoder was initialized from scratch and trained rather than frozen. The Gaussian standard-deviation head remained fixed during this minimal SFT run.

Evaluation

The uploaded weights were evaluated on all 50 official reset states for task 0.

Metric Value
Successful trajectories 2 / 50
Failed trajectories 48 / 50
Success rate 4%
Average return 0.04
Average successful trajectory length 94 steps
Maximum episode length 256 steps

Evaluation used two model GPUs, two EGL environment GPUs, 64 concurrent environments, and 100 interactions per environment loop.

Loading

Use the Gaussian Actor implementation from the LeRobot source revision above, or the compatible integration in verl-vla:

from verl_vla.models.gaussian_actor.modeling import GaussianActorPolicy

policy = GaussianActorPolicy.from_pretrained(
    "Miical/gaussian-actor-libero-spatial-task0-step100-baseline"
)

The repository contains the native model configuration, model.safetensors, and the LeRobot preprocessing and postprocessing artifacts required for image, state, and action normalization.

Intended use and limitations

  • Use this checkpoint as a fixed weak baseline for closed-loop improvement experiments.
  • The policy is specialized to one task and receives neither language nor a task ID; do not use it as a multi-task policy.
  • A 4% success rate is intentionally poor. Do not deploy this checkpoint on a physical robot or treat it as a capable imitation-learning policy.
  • Different fresh training runs showed substantial variation at the same step count. Use these exact weights when comparing algorithms; "100 SFT steps" alone does not uniquely reproduce this baseline.
Downloads last month
7
Safetensors
Model size
552k params
Tensor type
F32
·
Video Preview
loading

Dataset used to train Miical/gaussian-actor-libero-spatial-task0-step100-baseline