File size: 2,333 Bytes
eb275c1 5031597 eb275c1 cb9b2d0 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | ---
license: apache-2.0
base_model: robbyant/lingbot-vla-v2-6b
tags: [robotics, vla, lingbot-vla-2, maniguard]
---
# LingBot-VLA 2.0 — ManiGuard datagen-v1 `lid` (joint, 2-cam)
LingBot-VLA 2.0 post-trained on the ManiGuard `lid` family, one of five base models
evaluated on ManiGuard-Bench under identical data, cameras, and controller.
- **Warm start:** [`robbyant/lingbot-vla-v2-6b`]( https://huggingface.co/robbyant/lingbot-vla-v2-6b )
— the **pretrain** release (not the RoboTwin post-trained variant).
- **Data:** `IDEAS-Lab-Northwestern/datagen-lid-v1-joint-5cam` (LeRobot v2.1, consumed directly — no format conversion).
- **Inputs:** 2 cameras (`camera_top` = the `left` overview, `camera_wrist_left` = wrist),
8-D joint state (7 arm + gripper) mapped into the 55-D unified vector.
- **Actions:** **absolute** joint targets (`subtract_state: false` on both features, per
LingBot's own simulation recipe) — apply directly to a JointController, no delta step.
- **Recipe:** upstream post-training config unchanged (MoE + depth/DINO distillation on);
global batch 256 = micro 32 x 8 GPUs, lr 5e-5 cosine, **4 epochs** (16,500 steps — the
initial 2-epoch run resumed with the cosine stretched to the full horizon).
- **Ladder:** checkpoints every 4,125 steps.
## Files needed to serve
Everything a rollout needs is in this repo:
| Path | What it is |
| --- | --- |
| `maniguard/norm_stats.json` | this family's normalization statistics |
| `maniguard/robot_config.yaml` | the feature mapping the policy was trained with; its `norm_stats:` points at the file above |
| `vlm/config.json` | the [`Qwen/Qwen3-VL-4B-Instruct`](https://huggingface.co/Qwen/Qwen3-VL-4B-Instruct) config (Apache-2.0), vendored unchanged — LingBot builds the VLM skeleton from it before loading these weights |
| `tokenizer*.json`, `*preprocessor_config.json`, `merges.txt`, `vocab.json`, `added_tokens.json`, `special_tokens_map.json`, `chat_template.jinja` | the processor / tokenizer, byte-identical to training |
Serve it with ManiGuard's shim, which reads all of the above from the checkpoint directory and
passes the norm statistics explicitly:
```bash
python maniguard/serve/lingbot_native.py \
--checkpoint <this repo, downloaded> --qwen-config <dir holding vlm/config.json> \
--device cuda:0 --port 8000
```
|