YAML Metadata Warning:empty or missing yaml metadata in repo card
Check out the documentation for more information.
LingBot-VLA v2 (6B) E5 + C3 augmentation β 8ΓH200, global batch 1024, 20000 steps (training code)
This repo holds the code and actual configs for the formal 8ΓH200 training run on ACRC: Slurm job 170648, output directory runs/formal8_170648, finished 2026-10-25.
It does not contain weights, data or the full upstream lingbot-vla-v2.
- Weights:
Adam-YAN/lingbot-vla-v2-6b-e5c3aug-8h200-gbs1024-s20000. Step 20000 is incheckpoints/step_20000/, step 12000 incheckpoints/step_12000/, and validation records invalidation/. - Initialization: the official base model
robbyant/lingbot-vla-v2-6bat revision11c703bf6a5c1f45b3b69168482da11fdbba53d7, trained fresh (not continued from an earlier E5 checkpoint).
Results
Full validation: 54500 clean windows, augmentation off, task-macro L1_fm.
| step | L1 |
|---|---|
| 4000 | 0.03161 |
| 8000 | 0.03068 |
| 12000 | 0.02995 |
| 20000 | 0.03006 |
The run took 47 h 51 min of wall time at about 7.8 s per step. Each full validation took about 31 min.
Actual training configuration (run_config/attempt_04_lingbotvla_cli.yaml)
| Item | Value |
|---|---|
| Hardware | 8 Γ H200, single node 7GS9B74, FSDP2 full shard, BF16 mixed |
| Batch | micro 64 Γ GA 2 Γ 8 GPU = global 1024 |
| Steps | max_steps 20000 (about 41 epochs; the user knowingly chose this over 2 epochs) |
| LR | 1e-4 β 5e-5 cosine, no warmup, Muon (match_rms_adamw) |
| Saving | save_steps 2000, keeping the latest 2 checkpoints |
| Validation | at steps 4000 / 8000 / 12000 / 20000, run after the training process exits |
| Data loading | 12 workers per GPU, visual_steps 1000000 (image logging off) |
| Augmentation | C3 recipe v2 (configs/augmentation/c3_recipe_v2.json), with SegFormer background masks served from a precomputed cache |
Relative to the package's frozen plan (8 GPU, micro 8, global 64, 2 epochs), the user made these changes, all recorded in the run config:
- micro128 Γ GA1 became micro64 Γ GA2, because micro96 hung in rank-0 visualization. Global batch stayed at 1024.
- Image logging was turned off (
config_update_visual_off.json). This does not change the training math. - Loader workers were set to 12 per GPU (
config_update_workers12.json).
Directory layout
deployment/acrc8/β the ACRC 8-GPU controller.aug8_train.pyis the chained controller. It runs, in order, the mask-cache check (live vs cache), the 8-rank smoke, and the formal run in the same allocation. The cost model decides whether there is enough time, and exit code 3 means a clean stop on budget.acrc8_rank_entry.pyis the per-rank entry.mask_cache.pybuilds and verifies the mask cache, with themask_*.sbatchjobs. The cache is keyed on the 256Γ256 input frame. A cache built on AMD CPUs never matches on Intel, which is why the*_intelscripts exist.run4.sbatch/smoke8.sbatchare the Slurm entry points.config_update_*.jsonare the parameter overrides listed above.
deployment/finetune/β the package's generic E5 training orchestration, i.e. the modules this run actually imports.e5_train.pylaunchesthird_party/lingbot-vla-v2/tasks/vla/train_lingbotvla.pythroughe5_rank_entry.py/e5_8gpu_rank_entry.py.scripts/β augmented data (aug_data.py), augmentation validation, CPU preflight, cost measurement, offline/parallel validation.configs/β the 8-GPU (acrc8_β¦_s20000.yaml) and 4-GPU fallback (acrc4_β¦_s40000.yaml) configs, the augmentation recipe, validation definitions, and robot config.third_party/lingbot-vla-v2/β only the 5 files involved in C3 augmentation, plus the original Apache-2.0 LICENSE:c3_augmentation.pyandc3_recipe_v2.py(the augmentation implementation);base_dataset.py,utils.pyandarguments.py(where C3 hooks into the upstream code).- The rest of lingbot-vla-v2 is not redistributed. Use the version frozen by the package: source archive sha256
d640da3b6c9a5a21624bd140a00aa8a3fedc6399680c87f8d86b1fef6fd42151(seepackage_meta/source_manifest.json).
environment/β the package's environment definition (Dockerfile, install.sh, requirements, source-freeze).setup/βbootstrap.pyandinstall_env.shas used on ACRC. Gaps found on ACRC and filled:utils3dinstalled from GitHub commit 3fab839f;lingbotvlaexposed to the venv as a source tree via.pth;- flash-attn from the official 2.8.3 cu12 / torch 2.8 wheel.
run_config/β thelingbotvla_cli.yamlactually in effect for each of the 4 attempts. attempt_04 is the one that finished.package_meta/β the original package's README, AGENT_TASK, experiment.json (design-stage plan), dependencies.json (pinned revisions of the base model, tokenizer Qwen3-VL-4B and MoGe), and source_manifest.json.
Reproduction notes
- The source package is HF dataset
ar-mine/e5-c3-evaluation-deployment, directorytraining/e5-c3-augmentation-2epoch-20261021/(payload commit90fb43d3β¦, manifest sha2563dbc745cβ¦). Download and verify it withsetup/bootstrap.py. Data: 50 tasks, 2250 / 250 trajectories, 495287 / 54500 frames, splitphase4_split_s7. - Put
torch.compile's inductor/triton cache andTMPDIRon node-local/tmp, not on a shared file system such as WekaFS. Concurrent tmp+rename on a shared file system makes ranks see FileNotFoundError transiently. - A DCP resume requires the same number of loader workers as when the checkpoint was saved (torchdata assertion).
- Each full checkpoint is about 73 GiB (the FP32
hf_ckptalone is 24 GiB). Plan disk space accordingly.
All of these files are copied byte-for-byte from the cluster package. Per-file sha256 values are in FILE_SHA256.txt.