GR00T-N1.5-LIBERO-4suite-combined
GR00T N1.5 (3B) finetuned on the four LIBERO suites jointly — spatial, object,
goal and long (libero_10) — as a single combined training set, so one checkpoint
serves all four rather than one checkpoint per suite.
Companion to twanghcmut/GR00T-N1.7-LIBERO-4suite-combined,
trained with the same data recipe so the two GR00T generations can be compared
under one protocol.
Model details
| Base | nvidia/GR00T-N1.5-3B |
| Architecture | SigLIP-400M vision tower + Qwen3-1.7B (LLM trimmed at select_layer=12), 16-layer DiT action head with the future-vision token bank |
| Embodiment tag | new_embodiment |
| Action horizon | 16 |
| Denoising steps | 4 |
| State / action | 8-dim state, 7-dim action (LIBERO Panda) |
| Training | 20,000 steps (9.36 epochs), final train loss 0.0305 |
| Precision | bfloat16 |
Evaluation
Closed-loop LIBERO, 1 episode per task over 4 suites × 10 tasks = 40 episodes,
MAX_STEPS=520, N_ACTION_STEPS=8, on an H100 MIG slice.
| Runtime | SR |
|---|---|
| PyTorch (bf16, reference) | 23/40 = 0.575 |
| TensorRT bf16 | 26/40 = 0.650 |
At n=40 the noise floor is roughly ±2 episodes (±5 pp), so the two rows are the same within noise. These are honest single-run numbers on a 40-episode protocol, not a tuned best-of; they are lower than the per-suite specialist checkpoints commonly reported for LIBERO, which is the expected cost of training one checkpoint across all four suites.
The checkpoint was trained for quantization research — it is the reference model behind a low-bit deployment study (INT8 per-row, W4A4 with rotation + SmoothQuant folding, GPTQ-rounded INT4 LLM), where what matters is a stable float baseline to measure quantized runtimes against.
Usage
Load with the Isaac-GR00T stack (or any runtime that reads the GR00T N1.5
layout). The repo ships the model weights plus experiment_cfg/metadata.json,
which carries the embodiment statistics N1.5 needs at inference.
from gr00t.model.policy import Gr00tPolicy
policy = Gr00tPolicy(
model_path="twanghcmut/GR00T-N1.5-LIBERO-4suite-combined",
embodiment_tag="new_embodiment",
denoising_steps=4,
)
Note for N1.5 specifically: the embodiment ID table is N1.5's own
(new_embodiment: 31), not N1.6's, and image tiling must be pinned off at
inference (min_dynamic_tiles=1, max_dynamic_tiles=1, use_thumbnail=False)
to match how the checkpoint was trained.
Contents
Model weights only — the intermediate training checkpoints and TensorBoard runs are not published.
config.json
model-00001-of-00002.safetensors
model-00002-of-00002.safetensors
model.safetensors.index.json
experiment_cfg/metadata.json
trainer_state.json
training_args.bin