| --- |
| 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 |
| ``` |
|
|