Jocasta-diff-VLA / README.md
RobotLearningLab's picture
Release eight-task Jocasta-diff-VLA checkpoint
98753c0 verified
|
Raw History Blame Contribute Delete
6.86 kB
---
language:
- en
license: apache-2.0
library_name: pytorch
pipeline_tag: robotics
base_model: Dream-org/Dream-VLA-7B
base_model_relation: adapter
tags:
- vision-language-action
- robotics
- robosuite
- lora
- flow-matching
- diffusion-language-model
- simulation
---
# Jocasta-diff-VLA
**Code and loader:** [alanrbtx/Diffusion-VLA-tuning](https://github.com/alanrbtx/Diffusion-VLA-tuning)
Jocasta-diff-VLA is a Dream-VLA-7B adaptation to eight simulated Panda manipulation task families in robosuite. It uses the Dream-VLX authors' continuous Flow Matching action head and a diffusion language-model backbone. One jointly trained policy achieved **332/512 sustained successes (64.8%)** on the fixed development evaluation.
This repository contains an **inference checkpoint**, not just a LoRA language adapter: the LoRA weights, trained action head, noisy-action projector, proprioception projector, dataset normalization, processor files and training configuration are included. The pinned original Dream-VLA base weights are required separately. The public loader downloads both when needed. No optimizer or training-resume state is distributed.
## Load
Use the accompanying repository with its pinned submodules and patch:
```bash
git clone --recurse-submodules https://github.com/alanrbtx/Diffusion-VLA-tuning.git
cd Diffusion-VLA-tuning
git -C third_party/Dream-VLX apply ../../patches/dream-vlx-panda.patch
python -m pip install -r requirements.lock -r requirements-multitask.txt
```
Run inference on one visible CUDA GPU:
```python
from load_policy import load_policy, predict_action
policy, processor, cfg = load_policy('RobotLearningLab/Jocasta-diff-VLA')
# primary and wrist: uint8 RGB arrays, each (224,224,3)
# proprio: float32 (8,), xyz + axis-angle orientation + two gripper joints
actions = predict_action(policy, processor, cfg, primary, wrist, proprio,
'pick up the red cube', seed=84907)
# actions.shape == (8,7)
```
For reproducibility, pass the desired Hub commit with `revision=...`. The base is fixed to `Dream-org/Dream-VLA-7B@0cd0e25c1771c5b468c74585b5cf35c4a4aa315c`; `base_model_path=...` reuses a local copy. This is a custom VLA package; `AutoModel.from_pretrained` or loading only the adapter will not reconstruct the trained action policy.
Action columns are world-frame translation deltas in metres, extrinsic XYZ Euler deltas in radians, and gripper openness. They require the documented conversion to normalized Panda OSC commands; see `panda_adapter.py`. Proprioception uses the recorded quaternion-to-axis-angle convention in `robot_state.py`. In simulation, keep CUDA inference and EGL rendering on separate physical GPUs. Model inference itself creates no EGL context.
## Training
| Setting | Value |
|---|---|
| Base | Dream-VLA-7B, pinned revision above |
| Upstream code | DreamLM/Dream-VLX `a72fa4106eae97a923b531342fb692742809782f` |
| Objective | Author Flow Matching velocity MSE |
| Optimizer | AdamW, learning rate1e-4 |
| Updates |100,000; fixed final checkpoint |
| Global batch |64 (4 GPUs × microbatch8 × accumulation2) |
| LoRA |rank32, alpha16, dropout0, all linear layers |
| Training/sampling seeds |84907 /190019 |
| Inputs |two224RGB cameras,8D proprioception, instruction |
| Inference |4 Flow Matching steps; action chunk8 |
| Training data |8,140 successful trajectories;4,841,083 timesteps |
| Task/language diversity |8 families,30 goals,510 train instruction strings |
The model was initialized from the original Dream-VLA base with fresh action modules, not from the earlier single-task Lift model. Training used family/goal balancing and the author's image augmentation. A separate120-string held-out-language development bank was excluded from training; the results below use canonical instructions and do not constitute a held-out-language evaluation. Raw demonstration data are not included; the code documents the exact cache schema.
## Evaluation
64 fixed development scenes per family, seeds30000–30063, original physical scene configuration and horizons,10 settling steps, `hard_reset=False`. Success requires the original task predicate to hold for10 consecutive physical steps. All512 episodes were independently audited, including45,254 policy calls and365,450 physical steps. One training seed; no reserved test scenes, checkpoint selection or metric-driven reruns.
| Task | Successes | Rate |
|---|---:|---:|
| Lift |64/64|100.0%|
| PickPlace |40/64|62.5%|
| Stack |43/64|67.2%|
| Door |34/64|53.1%|
| NutAssembly |32/64|50.0%|
| ToolHang |9/64|14.1%|
| Push |61/64|95.3%|
| Drawer |49/64|76.6%|
| Total |332/512|64.8%|
Original pretrained Dream-VLA achieved **0/64** on the same PickPlace scenes; Jocasta-diff-VLA achieved **40/64**. The original policy used one image, one action,4 discrete-diffusion steps and native Bridge statistics. The adapted policy uses two images/proprio,8 actions,4 Flow Matching steps and Panda statistics. This is a comparison of complete transferred policies, not an isolated backbone or diffusion-mechanism effect. No baseline result is claimed for the other seven tasks. See `evaluation-results.json` for counts and per-family Wilson intervals.
## Scope and limitations
These are development results on our robosuite/Panda task definitions, not official LIBERO scores. ToolHang is weak (9/64). Other robots, unseen task families, real hardware and the reserved test split have not been validated. This release implements manipulation skills, not autonomous replication or learned mission-memory inheritance.
The release loader is checked against the original checkpoint on saved observations from all eight task families. `validation.json` records the outcome. `release.json` records file hashes; the original adapter and action-component weight bytes are retained unchanged. Reference inference environment: Python3.10.18, PyTorch2.5.1+cu124, Transformers4.51.3, BF16/SDPA on H200. No task evaluation was rerun for packaging.
## Attribution
Architecture, Flow Matching loss/sampler, action heads and projectors originate from Dream-VLX, with upstream OpenVLA/OpenVLA-OFT attribution retained in the code. Panda adaptations and release: RobotLearningLab. Upstream code and model terms remain applicable; this adaptation is released under Apache-2.0.
```bibtex
@article{ye2025dreamvla,
title={Dream-VL & Dream-VLA: Open Vision-Language and Vision-Language-Action Models with Diffusion Language Model Backbone},
author={Ye, Jiacheng and Gong, Shansan and Gao, Jiahui and Fan, Junming and Wu, Shuang and Bi, Wei and Bai, Haoli and Shang, Lifeng and Kong, Lingpeng},
journal={arXiv preprint arXiv:2512.22615},
year={2025}
}
```
Validated code revision: [c21ef87ef2d749b1eb2d06f7eb91e4c2b843bcd6](https://github.com/alanrbtx/Diffusion-VLA-tuning/tree/c21ef87ef2d749b1eb2d06f7eb91e4c2b843bcd6).