khanhnd61's picture
Upload README.md with huggingface_hub
c335d02 verified
|
Raw
History Blame Contribute Delete
3.26 kB
---
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.