File size: 2,365 Bytes
8a1304b c76eb35 8a1304b c76eb35 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 | ---
license: apache-2.0
base_model: MINT-SJTU/Evo1_LIBERO
tags:
- vla
- vision-language-action
- robotics
- gguf
- vla.cpp
- llama.cpp
- libero
- evo1
pipeline_tag: robotics
library_name: vla.cpp
---
# Evo-1 — LIBERO (GGUF for vla.cpp)
GGUF conversion of [`MINT-SJTU/Evo1_LIBERO`](https://huggingface.co/MINT-SJTU/Evo1_LIBERO)
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).
Evo-1 couples an **InternVL3-1B** vision-language backbone with a
**cross-attention DiT** flow-matching action head. Its vision tower is baked into
the combined GGUF, so **no separate mmproj file is needed**.
## Files
| File | Size | Description |
|---|---:|---|
| `evo1-libero.gguf` | 1.45 GiB | Combined VLA model — InternVL3 LM + vision tower + cross-attn DiT action head + dataset stats + arch config, BF16 |
## Usage
```bash
# Terminal 1 — serve (use the CUDA build for inference). No mmproj argument.
./build-cuda/vla-server --bind tcp://*:5566 \
evo1-libero.gguf
# Terminal 2 — drive a LIBERO episode (inside the LIBERO uv venv)
python eval/client/run_sim_client_direct.py \
--arch evo1 \
--task libero_object --task-id 0 --n-episodes 10 \
--vla-addr tcp://localhost:5566
```
## 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) | 8 | 94.5% | 63.60 ms | 509 ms | 1564 MiB VRAM |
| Jetson AGX Orin (sm_87) | 8 | 95.5% | 131.01 ms | 1048 ms | 638 MiB RAM |
| Jetson Orin Nano 8 GB (sm_87) | 8 | 97.5% | 458.84 ms | 3671 ms | 2135 MiB RAM |
## Implementation note
Evo-1 exposed a Qwen2 + flash-attention-2 masking subtlety: HF's FA2 path zeroes
the attention output of masked queries, while a naïve softmax computes real
attention for them — contaminating the LM context at image-context positions.
vla.cpp mirrors HF exactly with a per-query mask, which is what takes this
checkpoint from 0/5 to passing on LIBERO.
## License
Weights follow the upstream license of
[`MINT-SJTU/Evo1_LIBERO`](https://huggingface.co/MINT-SJTU/Evo1_LIBERO). The
vla.cpp conversion tooling and inference engine are MIT-licensed.
|