--- license: other license_name: nvidia-license base_model: nvidia/GR00T-N1.5-3B tags: - vla - vision-language-action - robotics - gguf - vla.cpp - llama.cpp - libero - gr00t - gr00t-n1.5 pipeline_tag: robotics library_name: vla.cpp --- # GR00T-N1.5 — LIBERO object (GGUF for vla.cpp) GGUF conversion of a LIBERO-`object` finetune of [`nvidia/GR00T-N1.5-3B`](https://huggingface.co/nvidia/GR00T-N1.5-3B) for inference with [**vla.cpp**](https://github.com/VinRobotics/vla.cpp), a lightweight C++ inference engine for Vision-Language-Action models built on top of [`llama.cpp`](https://github.com/ggml-org/llama.cpp). GR00T-N1.5 pairs an **Eagle-2** vision-language backbone with a **flow-matching (DiT) action head**, replayed in 16-step action chunks with min/max normalisation. The vision tower is baked into the combined GGUF, so **no separate mmproj file is needed**. The text tokenizer ([`lerobot/eagle2hg-processor-groot-n1p5`](https://huggingface.co/lerobot/eagle2hg-processor-groot-n1p5)) is pulled from the Hub by the client, so it is **not bundled** in this repo. ## Files | File | Size | Description | |---|---:|---| | `gr00tn1d5-libero-object.gguf` | 6.46 GiB | Combined VLA model — Eagle-2 backbone + flow-matching action head + arch config, BF16 | | `dataset_statistics.json` | — | Action/state normalisation stats (required by the client) | ## Usage ```bash # Terminal 1 — serve (use the CUDA build for inference). No mmproj argument. VLA_GR00T_BF16_WEIGHTS=1 VLA_GR00T_EMBODIMENT=new_embodiment \ ./build-cuda/vla-server --bind tcp://*:5566 \ gr00tn1d5-libero-object.gguf # Terminal 2 — drive a LIBERO episode (inside the LIBERO uv venv) python eval/client/run_sim_client_direct.py \ --arch gr00t_n1_5 \ --task libero_object --task-id 0 --n-episodes 10 \ --stats-json dataset_statistics.json \ --vla-addr tcp://localhost:5566 ``` Notes: - Set `VLA_GR00T_EMBODIMENT=new_embodiment` and `VLA_GR00T_BF16_WEIGHTS=1` (the latter is needed to fit an 8 GB card). - The client auto-downloads the `lerobot/eagle2hg-processor-groot-n1p5` tokenizer from the Hub (`trust_remote_code`); no `--tokenizer` is needed. - Pass `--stats-json dataset_statistics.json` (action/state un-normalisation). - The client uses `--n-action-steps 16` for this checkpoint. ## Benchmark Full `libero_object` sweep (10 tasks × 20 episodes = 200 episodes): | Hardware | n_act | Success rate | client/step | client/call | Peak mem | |---|---:|---:|---:|---:|---:| | RTX 3060 (sm_86) | 16 | 96.0% | 14.17 ms | 227 ms | 4866 MiB VRAM | | Jetson AGX Orin (sm_87) | 16 | 97.5% | 28.78 ms | 461 ms | 1331 MiB RAM | | Jetson Orin Nano 8 GB (sm_87) | 16 | 96.0% | 84.76 ms | 1356 ms | 4399 MiB sys-Δ | > Unlike GR00T-N1.6 / N1.7, N1.5's footprint **fits the Jetson Orin Nano 8 GB**. > The Nano row was run **split** (server on the Nano, LIBERO client on a separate > host); `sys-Δ` is the system-used-RAM rise, the faithful unified-memory figure > on Tegra. ## License Weights follow the upstream license of [`nvidia/GR00T-N1.5-3B`](https://huggingface.co/nvidia/GR00T-N1.5-3B) (NVIDIA license — review and accept it before use). The vla.cpp conversion tooling and inference engine are Apache-2.0-licensed.