rlx-vlash weights (Οβ / Οβ.β )
RLX-native repackaging of the VLASH
Οβ and Οβ.β
Vision-Language-Action robot policies, ready to load with the
rlx-vlash crate. The tensors are the
published lerobot/pi0_base / lerobot/pi05_base checkpoints, remapped to
rlx-vlash's canonical key names and re-encoded into GGUF / RLX-package formats
(no fine-tuning β same weights, different container + naming).
Both policies pair a PaliGemma backbone (SigLIP-So400m/14 @224 vision tower + Gemma-2B text) with a Gemma-300M action expert running through 18 joint transformer layers that share one attention, and generate action chunks by flow matching (a 10-step Euler integration of a learned velocity field).
- Οβ β state is a suffix token, time is fused into the action embeddings, standard Gemma RMSNorm.
- Οβ.β
β action-only suffix; time drives adaptive RMSNorm in the action
expert (
state_cond=falsefor the base checkpoint).
Contents
Each variant ships in four precisions, in both GGUF and RLX-package containers:
pi0/ model.gguf model-q8_0.gguf model-q4_k.gguf model-f32.gguf
model.rlxp model-q8_0.rlxp model-q4_k.rlxp model-f32.rlxp config.json
pi05/ (same)
| file | format | precision | approx size |
|---|---|---|---|
model.gguf / model.rlxp |
GGUF / RLX pkg | f16 (primary) | β 6.4 GB |
model-q8_0.gguf / model-q8_0.rlxp |
GGUF / RLX pkg | q8_0 (8-bit) | β 3.4 GB |
model-q4_k.gguf / model-q4_k.rlxp |
GGUF / RLX pkg | q4_K (4-bit) | β 1.9 GB |
model-f32.gguf / model-f32.rlxp |
GGUF / RLX pkg | f32 (lossless) | β 13 GB |
Pick whichever fits: f16 is the recommended default (reproduces the action trajectory exactly), q8_0 / q4_K trade precision for size (norms/biases stay f16 in the quantized variants), f32 is bit-exact to source.
Quantization quality (important). Measured vs the original VLASH
implementation on pi05_base: per-step model outputs stay near-perfect at every
precision (image features & single-step velocity cosine β₯ 0.999 even at q4_K β
the quant/dequant is exact), but the 10-step flow-matching rollout amplifies
small weight errors into the final action chunk:
| precision | image features | 1-step velocity | 50-action chunk |
|---|---|---|---|
| f16 | 1.0000 | 1.0000 | 1.0000 |
| q8_0 | 0.99998 | 0.99999 | 0.973 |
| q4_K | 0.9976 | 0.99946 | 0.807 |
(cosine vs reference.) This is the known sensitivity of iterative flow/diffusion
samplers, not a quantization bug. For faithful robot control use f16; treat
q8_0 / q4_K as size-first options where some action drift is acceptable.
GGUF stores dims in the standard
GGML (llama.cpp) order and loads through rlx-vlash or any GGUF-aware runtime; the
.rlxp is the RLX flat-mmap package. All keep rlx-vlash's canonical key names, so
no remap happens at load.
Usage (rlx-vlash)
Put one variant's files in a directory (the runner prefers model.gguf), then:
use rlx_vlash::{VlashRunner, VlashVariant};
use rlx_runtime::Device;
let mut runner = VlashRunner::builder(VlashVariant::Pi05)
.device(Device::Cpu)
.num_images(1)
.prompt_tokens(200)
.model_dir("path/to/pi05") // dir containing model.gguf (+ tokenizer.json)
.build()?;
let actions = runner.predict_action_chunk(&[image_nchw], &state, "pick up the cube", None)?;
The language tokenizer is not included (PaliGemma's is gated): fetch
google/paligemma-3b-pt-224's tokenizer.json and place it alongside the
weights, or supply token ids directly.
Parity
rlx-vlash reproduces the original VLASH implementation on these checkpoints at cosine = 1.000000 across every stage β SigLIP vision features, the image+text prefix, a single flow-matching denoise step (joint attention + adaRMS / state-token path), and the full 10-step action chunk β for both Οβ and Οβ.β (max |Ξ| β€ 1.1e-3, attributable to MPS-f32 reference vs CPU-f32 rlx).
License & attribution
Apache-2.0, inherited from the upstream VLASH
project and the lerobot/pi0_base / lerobot/pi05_base base checkpoints. These
files are a format/naming repackaging of those weights; please cite VLASH and
LeRobot. The rlx-vlash inference crate itself is GPL-3.0-only.
- Downloads last month
- 64
Model tree for eugenehp/rlx-vlash
Base model
lerobot/pi05_base