| --- |
| 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. |
|
|