YAML Metadata Warning:empty or missing yaml metadata in repo card
Check out the documentation for more information.
OpenVLA-OFT × V-JEPA Disentangle — LIBERO 4-suite mix + aug + SIGReg(concat) (cumulative step 400000)
LoRA adapter + action_head + pooler checkpoint from Stage 3 disentangle
training on the LIBERO 4-task-suite mix with two extras vs the prior
step200000 release:
- Online domain randomization (
aug_p=0.7, lighting+noise+crop) - SIGReg with
concat([z, y_task, y_dom])replacing the explicitdom_decorr_loss(λ_dom_decorr=0,λ_sigreg=0.126)
Loss objective effectively:
loss = 24.4·L1_act + 2.94·InfoNCE(z_task, y_task) + 0.126·SIGReg([z; y_task; y_dom])
(λ_task_cos = 0 — cos is implicit in InfoNCE; weights chosen so initial
contribution ratio is 10 : 8 : 1.)
This repo contains only the trainable delta on top of openvla/openvla-7b
(LoRA r=32 + heads). Base 7B weights NOT included.
Files
| File | Size | What | params |
|---|---|---|---|
vla/adapter_model.safetensors |
463 MB | PEFT LoRA adapter (r=32) on OpenVLA-7B | 110.8 M |
action_head.pt |
289 MB | ResNetActionHead (MLPResNet 2 blocks, 8192→2048→1600) |
151.1 M |
pooler.pt |
65 MB | DisentanglePooler (mean → 4096→2·4096) |
33.6 M |
vla/{tokenizer,processor,*.json} |
~3 MB | tokenizer + processor configs | — |
dataset_statistics.json |
12 KB | action+proprio q01/q99 normalization stats | — |
| Total trainable | 295.5 M |
Training config
| Base model | openvla/openvla-7b |
| LoRA rank / dropout | 32 / 0.0 |
| Pooler mode | mean |
| V-JEPA target | vit_large, proj_dim=4096, pooler_depth=2, num_queries=4, mlp_proj=False |
| Stage 1 V-JEPA ckpt | vitl.maniskill.256px.16f.4096d.frozen-d2q4.composed.infonce.45-45-10 |
| Dataset | libero_4_task_suites_no_noops (spatial+object+goal+libero-10) |
| Sampling weights | spatial 0.194 / object 0.245 / goal 0.190 / libero-10 0.371 |
| Future frames | 8 (stride 2) |
| Batch size | 16 (single GPU) |
| LR / decay | 5e-5 / step decay at 100k → 5e-6 |
| Cache | V-JEPA targets precomputed (vjepa_cache_oft_vitl_4096d_libero_v2) |
| Online augmentation | aug_p=0.7, lighting + sensor noise + per-edge crop |
| SIGReg input | concat([z, y_task, y_dom]) (sketch_dim=1024) |
| Loss weights | λ_act=24.4, λ_task_nce=2.94, λ_sigreg=0.126, λ_task_cos=0, λ_dom_decorr=0 |
| Trained steps | 400 000 (150K initial + 250K resumed; mid-run hang at ~150K) |
| Train env | single A100 80GB, num_workers=6 |
Provenance / resume
step 0 ── scratch (b16-1gpu-aug07-sigregconcat-400k-nw6-save50k)
step 150K ── ckpt → mid-run hang (data path issue)
step 150K → 400K ── resumed from step150000 with our local dataset mirror
Loss progression (smoothed, last batches of each phase):
| metric | step 50k | step 150k | step 400k |
|---|---|---|---|
| act L1 | 0.13 | 0.11 | 0.090 |
| task (InfoNCE) | 3.70 | 3.61 | 3.63 |
| sig (concat) | 2.74 | 2.59 | 2.31 |
| total | 7.09 | 6.58 | 6.12 |
Usage
# Base + adapter
huggingface-cli download openvla/openvla-7b
huggingface-cli download Ngseo/openvla-oft-libero-4suite-mix-aug07-sigregconcat-step400000
# Resume training (or evaluate)
torchrun --standalone --nproc-per-node 1 \
openvla-oft/vla-scripts/train_stage3_oft_disentangle.py \
--vla_path openvla/openvla-7b \
--vjepa_arch vit_large --vjepa_proj_dim 4096 \
--vjepa_pooler_depth 2 --vjepa_pooler_num_queries 4 \
--pooler_mode mean --lora_rank 32 \
--batch_size 16 --learning_rate 5e-5 \
--dataset_name libero_4_task_suites_no_noops \
--aug_p 0.7 \
--lambda_action 24.4 --lambda_task_cos 0 --lambda_task_nce 2.94 \
--lambda_dom_decorr 0 --lambda_sigreg 0.126 --sigreg_concat_target True \
--resume_from_step_dir /path/to/this/ckpt ...
Sister checkpoints:
Ngseo/openvla-oft-libero-spatial-disentangle-step60000— spatial-only, no aug, dom_decorrNgseo/openvla-oft-libero-4suite-mix-disentangle-step200000— mix, no aug, dom_decorr- this — mix + aug + SIGReg(concat) replacing dom_decorr, 400K
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support