godnpeter's picture
Citation: TBD until camera-ready
dbc15ed verified
|
Raw History Blame Contribute Delete
5.68 kB
---
license: mit
library_name: pointmapvla
pipeline_tag: robotics
tags:
- robotics
- vision-language-action
- pointmap
- qwen3.5
- flow-matching
---
# PointmapVLA-Pretrained
The pretrained PointmapVLA model: the initialisation for every fine-tuned PointmapVLA
checkpoint. Code, fine-tuning recipes and the evaluation harness are in the
[PointmapVLA repository](https://github.com/DAVIAN-Robotics/PointmapVLA).
## What it is
PointmapVLA is a vision-language-action model built on the Qwen3.5-4B vision-language
backbone with two additions:
* a **pointmap encoder**, a copy of the vision tower that consumes raw metric XYZ pointmaps
in the robot-base frame (built from depth and camera parameters) and whose features are
added patch-wise to the RGB tokens, and
* a **32-layer layer-wise flow-matching DiT action expert** that reads the backbone's
hidden states at every layer through per-layer projections and predicts a chunk of
normalised actions (4 Euler steps at inference).
6.08 B parameters, bf16. This checkpoint has a generic 32-D action head (17 real
dimensions: end-effector position 3, rotation as 6-D (first two rows of the rotation
matrix) 6, gripper 1, joints 7, then padding) and a 17-D state head. It is **not meant to
be run as is**: fine-tune it on your target robot and action layout.
## Provenance
Two pretraining stages on 76.3 M pointmap-enriched robot frames and 10.7 M
pointmap-paired 3D spatial VQA samples, global batch 368:
1. **Stage 1**, 50,000 steps: next-token prediction on the VQA data and discrete
(tokenised) action prediction on the robot data.
2. **Stage 2**, 50,000 steps: flow-matching action prediction with the DiT expert,
co-trained with the VQA data.
The pretraining data and code are not part of this release. The configuration stored in
`config.yaml` records the architecture and the data recipe (prompt template, pointmap
options, 256 x 320 pointmaps); the benchmark fine-tuning configs override the head
dimensions and pointmap size.
## Files
```
config.yaml architecture and data recipe (release schema)
dataset_statistics.json pretraining action/state statistics (informational)
base_vlm/ Qwen3.5-4B config, tokenizer and processor only; no weights
checkpoints/
model-00001-of-00003.safetensors
model-00002-of-00003.safetensors
model-00003-of-00003.safetensors ~11 GB in total, bf16
model.safetensors.index.json
```
State-dict key groups: `qwen_vl_interface.model.*` (backbone), `pointmap_encoder.*`,
`action_model.*` (DiT expert), `project_layers.*` (per-layer projections). The language
model head is tied to the token embedding and stored once; the index records it under
`metadata.tied_weights` and the loader re-ties it.
## How to load
```python
from starVLA.model.framework.VLM4A.PointmapVLA import PointmapVLA
model = PointmapVLA.from_pretrained("DAVIAN-Robotics/PointmapVLA-Pretrained")
```
`from_pretrained` also accepts a local directory or a weight file inside its
`checkpoints/`. For fine-tuning, set `trainer.pretrained_checkpoint` in a training config
to this repo id (the shipped configs already do) and run
```bash
scripts/train.sh examples/simBenchmarks/Robocasa_kitchen/train_files/pointmapvla_robocasa_kitchen.yaml
scripts/train.sh examples/simBenchmarks/LIBERO/train_files/pointmapvla_libero.yaml
```
On load into a fine-tuning config, the four action-head tensors whose shape depends on
the action/state layout (state encoder input, action encoder input, action decoder output
weight and bias) are remapped: the slots shared by both layouts (end-effector position,
r6 rotation, gripper) are copied, the rest are freshly initialised. Everything else
transfers unchanged. Four GPUs is the minimum for fine-tuning; see `docs/training.md` in
the repository.
## Evaluation
This checkpoint is not evaluated directly. The fine-tuned checkpoints derived from it:
| Fine-tune | Benchmark | Paper | Our reproduction |
|---|---|---|---|
| [`PointmapVLA-RoboCasa`](https://huggingface.co/DAVIAN-Robotics/PointmapVLA-RoboCasa) | RoboCasa kitchen-24 | 78.2 | 77.8 ± 0.6 |
| [`PointmapVLA-LIBERO`](https://huggingface.co/DAVIAN-Robotics/PointmapVLA-LIBERO) | LIBERO (4 suites) | 99.0 | 99.1 ± 0.1 |
| [`PointmapVLA-LIBERO`](https://huggingface.co/DAVIAN-Robotics/PointmapVLA-LIBERO) | LIBERO-Plus | 92.4 | 92.4 ± 0.3 |
## Intended use and limitations
* Research on 3D-aware vision-language-action models; initialisation for fine-tuning.
* Inputs: RGB views, a language instruction, a proprioceptive state and metric pointmaps
in the robot-base frame (depth + intrinsics + camera-to-world extrinsics + base pose).
Without depth there is no pointmap; the model was trained with pointmaps present.
* The 32-D / 17-D head layout is a pretraining convenience. Fine-tune before use on any
robot; the released fine-tunes target simulation benchmarks only.
* This checkpoint is **not a servable policy**: the evaluation server needs the
fine-tuning data registry to un-normalise actions, and the pretraining embodiments
(`interndata_m1`, `droid` in `dataset_statistics.json`) are not part of this release.
Use it only as `trainer.pretrained_checkpoint`.
* Not validated on physical robots in this release. Actions are predicted in normalised
space and must be un-normalised with statistics of the fine-tuning data.
## License
MIT (code and weights of this release). Weights are derived from Qwen3.5-4B, distributed
under the Apache License 2.0. See `NOTICE` in the repository.
## Citation
TBD. The paper is under double-blind review; the BibTeX entry and author list will be
added at camera-ready.