CoolFace
Modelpublic

prehj/GR00T-N1.5-libero-baseline

sourceHugging Faceapache-2.0updated 28d agoView on Hugging Face
0likes50downloads
Model Card

GR00T-N1.5-libero-baseline

GR00T-N1.5 finetuned on LIBERO. This is the reference (baseline, non-MoE) policy for the LIBERO arm of the quantizability gate project.

  • —Benchmark: LIBERO. Closed-loop evaluation in this project runs the libero_10 (LIBERO-Long) suite.
  • —Embodiment: Franka Panda tabletop arm. Embodiment tag in the shipped metadata is libero.
  • —Observations: two 256x256 RGB views — front_view, left_wrist_view — at 10 fps
  • —State: absolute end-effector position (3) + rotation (euler RPY, 3) + gripper state (2)
  • —Actions: delta end-effector position (3) + delta rotation (euler RPY, 3) + absolute gripper close (1), action horizon 16
  • —Checkpoint: step 60,000 = 14.04 epochs over the finetuning set (configured for 15 epochs; 60k steps came first). Final training loss 0.0231, from 1.122 at step 0.

The precise composition of the finetuning demonstration set is not recorded inside the checkpoint — experiment_cfg/metadata.json carries only the libero embodiment schema and its normalisation statistics. The epoch count above (14 epochs into 60k steps at batch 64) implies roughly 273k transitions in the training set.

Architecture

GR00T-N1.5 (model_type: gr00t_n1_5, architectures: ["GR00T_N1_5"]), unchanged from the NVIDIA release:

VLM backboneEagle — NVEagle/eagle_er-qwen3_1_7B-Siglip2_400M_stage1_5_128gpu_er_v7_1mlp_nops
features tapped atselect_layer: 12, backbone embedding dim 2048
backbone tuningtune_llm: false, tune_visual: true (vision tower trained, LLM frozen)
action headflow-matching DiT, 16 layers, 32 heads, head dim 48, cross-attn dim 2048, interleaved self-attention, ada_norm, dropout 0.2
VL self-attention4 layers, 32 heads, head dim 64
action head tuningtune_diffusion_model: true, tune_projector: true
action spaceaction_dim: 32 (padded), max_state_dim: 64
action horizon16
inference denoising steps4
dtypesmodel_dtype: float32, compute_dtype/torch_dtype: bfloat16

Training recipe

Read directly out of this checkpoint's trainer_state.json and the run's training_args.bin:

steps60,000 (this is the final checkpoint; max_steps == global_step)
batch size64 effective — 32 per device x 2 GPUs, no gradient accumulation
learning rate1e-4, cosine schedule, warmup ratio 0.05
weight decay1e-5
precisionbf16
epochs14.04 (60k steps reached first; num_train_epochs: 15)
dataloader workers32
final loss0.0231

How to load and serve

Requires NVIDIA Isaac-GR00T and transformers==4.51.3 (the version this checkpoint was written with).

bash
huggingface-cli download prehj/GR00T-N1.5-libero-baseline --local-dir ./ckpt
python
from gr00t.model.policy import Gr00tPolicy
from gr00t.experiment.data_config import DATA_CONFIG_MAP

data_config = DATA_CONFIG_MAP["libero"]
policy = Gr00tPolicy(
    model_path="./ckpt",
    modality_config=data_config.modality_config(),
    modality_transform=data_config.transform(),
    embodiment_tag="libero",
    device="cuda",
)
action_chunk = policy.get_action(observation)   # 16 steps

Or serve it over the Isaac-GR00T inference service and drive it from the simulator client:

bash
python scripts/inference_service.py --server \
  --model_path ./ckpt --embodiment_tag libero --denoising_steps 4

experiment_cfg/metadata.json ships in this repo and carries the state/action normalisation statistics and the modality schema — the policy will not produce correct actions without it, so keep the directory layout intact.

Files

filewhat it is
model-0000{1,2}-of-00002.safetensors, model.safetensors.index.jsonthe weights (~7.1 GB)
config.jsonGR00T-N1.5 architecture config
experiment_cfg/metadata.jsonembodiment schema + normalisation statistics
trainer_state.jsonfull 60k-step loss history