wsagi/StarVLA-Qwen3-VL-8B-PickOrange
StarVLA-Qwen3-VL-8B-PickOrange (QwenGR00T, freeze-VLM)
针对 LeIsaac SO-101 PickOrange 任务训练的 StarVLA QwenGR00T 策略:Qwen3-VL-8B 视觉语言骨干(冻结)+ GR00T N1.5 flow-matching DiT 动作头(仅训此头,~0.47B)。 A [StarVLA](https://github.com/starVLA/starVLA) **QwenGR00T** policy (Qwen3-VL-8B VLM backbone, **frozen** + **GR00T N1.5 flow-matching DiT action head**, ~0.47B trainable) for the [LeIsaac SO-101 PickOrange](https://github.com/LightwheelAI/leisaac) task.
<video controls width="640" src="https://huggingface.co/wsagi/StarVLA-Qwen3-VL-8B-PickOrange/resolve/main/starvla-8b-pickorange.mp4"></video>
▶️ 演示视频 / Demo(若上方未渲染,直接打开):https://huggingface.co/wsagi/StarVLA-Qwen3-VL-8B-PickOrange/resolve/main/starvla-8b-pickorange.mp4
🔗 项目仓库 / Project repos:
- vitorcen/isaaclab-experience — Isaac Lab + LeIsaac 多策略横评(parent project)
- vitorcen/LeIsaac-Training — LeIsaac fork(训练脚本 + 设计文档 / training scripts + design docs)
TL;DR
- 任务 / Task:
Grab orange and place into plate— SO-101 单臂依次夹起 3 颗橙子并放盘子。 Single-arm SO-101 picks 3 oranges sequentially and places each into a plate. - 数据集 / Dataset:`LightwheelAI/leisaac-pick-orange` — 60 episode 遥操示范。
- 架构 / Architecture:StarVLA QwenGR00T = Qwen3-VL-8B(冻结,
freeze_modules: qwen_vl_interface)+ GR00T N1.5 flow-matching DiT-B 动作头(action_horizon=16, 6-DOF)。双相机 @ 448×448(橙子只占 10-40px,224 是 vision death zone)。 - 训练 / Training:冻 VLM 只训动作头 / batch=4 / 60k 步 / cosine lr(head 1e-4)/ bf16 / DeepSpeed ZeRO-2 / 云端 RTX 4090-48G。step-30000 是过拟合峰值前的最优 ckpt。
- 评测 / Eval(strict 20-round,与 leaderboard 同口径:120s sim × 180s wall_cap × stuck 30s/0.05rad;本机 24G 用 8bit (int8) VLM eval,int8≈bf16 实锤):E(🍊)/ep=53.3% (32/60 oranges),P(3)=35% (7/20),P(≥2)=45%,avg 156s。
- 🚀 vision dividend 实打实:相比同架构 4B 版(35.0% / P(3)=10%),仅把骨干 4B→8B、零源码改动,橙子率 +18 点、完整成功率 3.5×。对 10-40px 小橙子,更大 VLM 的视觉特征显著更强。
关键发现 / Key findings
- 换骨干零源码改动:QwenGR00T 在运行时把
cross_attention_dim对齐到所加载 VLM 的hidden_size(4B=2560 / 8B=4096),所以从 4B 升 8B 只改一个 config 的base_vlm+run_id(+ batch)。vl_hidden_dim对 QwenGR00T 是死字段。 Swapping the VLM backbone needs zero source change: QwenGR00T aligns `crossattentiondim` to the loaded VLM's `hiddensize` at runtime. 4B→8B = one config edit._ - vision dividend:橙子在 448 帧里仅 10-40px,是这个任务的瓶颈。8B backbone 的视觉特征把 E(🍊)/ep 从 35.0%→53.3%、P(3) 从 10%→35%,直接登上横评 leaderboard rank 4(超过自训 GR00T-N1.6 48.3% 与 ACT 43.3%)。
- 倒 U 过拟合曲线(样本数驱动):云端 sweep 显示峰在 step-30000、>36k 悬崖式塌陷(手臂晃动悬停)。峰值由样本数 ~120k 决定而非模型大小(4B 15k步×bs8、8B 30k步×bs4,两者峰值同样本量)。 Inverted-U overfit curve peaks at step-30000 then collapses; the peak is sample-count driven (~120k samples), not model-size driven.
- 8bit ≈ bf16 实锤:8B bf16 权重 ~16G + Isaac Sim ~7G 在本机 24G 卡必 OOM;int8 量化 VLM(DiT 头保 bf16)降到 serve+Isaac 共占 18 GB。同协议对照 int8 与 bf16 橙子率一致。
- 提分杠杆 / Levers:① 解冻 VLM 顶层 N 层;② 加 demo(60 → 100+);③ 换 PI_v3 动作头(StarVLA modelzoo 上 Qwen3-VL-PIv3 在 Bridge=69.8 > GR00T head=65.3)。
评测结果 / Evaluation
Strict 20-round(60 oranges total,leaderboard 同条件,8bit eval):
20-ep raw oranges:[1,3,2,3,1,1,2,3,0,3,3,1,3,0,3,0,0,1,1,1]。
完整横评榜单见父项目 README leaderboard:53.3% 排在 rank 4,介于 N1.5 LightwheelAI (58.3%) 与自训 GR00T-N1.6 (48.3%) 之间。 ⚠️ 务必 ≥20-round:本 ckpt 同样的 3-round 快筛会因 n=3 巨大方差给出误导值(实测 1/9 ≈ 11%,而 strict 真值 53.3%)。所有对外数必须 strict 20-round。
文件 / Files
推理 / Inference
StarVLA 的 PolicyServerWrapper(ckpt_path).from_pretrained 从 config.yaml(+dataset_statistics.json)重建框架并加载权重。本项目用一个 openpi msgpack-numpy websocket 适配器把它接进 LeIsaac Isaac Sim(stateless 双相机 @ 448)。本机 24G 卡需 8bit eval(STARVLA_VLM_8BIT=1,VLM int8、DiT 头 bf16,serve+Isaac 共占 18 GB):
# serve(starvla_eval 环境,8bit VLM)
STARVLA_VLM_8BIT=1 python LeIsaac/scripts/evaluation/serve_starvla.py \
--ckpt checkpoints/steps_30000_pytorch_model.pt \
--base /path/to/Qwen3-VL-8B-Instruct --port 8013 --img_size 448
# Isaac Sim 客户端 eval(与 leaderboard 同参)
python LeIsaac/scripts/evaluation/policy_inference.py \
--task=LeIsaac-SO101-PickOrange-v0 --policy_type=starvla \
--eval_rounds=20 --episode_length_s=120 --max_round_wall_s=180 \
--step_hz=30 --policy_action_horizon=16 --policy_port=8013 --enable_camerasserve + client 实现见 `serve_starvla.py` 与 StarVLAServicePolicyClient。
限制 / Limitations
- 峰值靠采样兜住:过拟合峰是 ~3k 步宽的悬崖,>36k 即塌陷到 0;step-30000 是 sweep 采到的最优。
- 慢:部分轮次撞 180s 墙钟没放完 3 颗(avg 156s),策略认真抓放但不够果断高效。
- 8bit eval:leaderboard 数为 int8 VLM(≈bf16);全精度 bf16 需 >24G 显存或多卡。
- 小样本置信:20-round (60 ep) CI ≈ ±10%(单 ep 级 Bernoulli noise)。
引用 / Citations
- StarVLA: _StarVLA: A Lego-like Codebase for Vision-Language-Action Model Developing_, HKUST, 2026 · github.com/starVLA/starVLA.
- GR00T action head: NVIDIA Isaac GR00T N1.5(flow-matching DiT action expert)。
- Qwen3-VL: Qwen/Qwen3-VL-8B-Instruct.
- LeIsaac SO-101 PickOrange: LightwheelAI/leisaac.
License
MIT,与 StarVLA 一致(base VLM Qwen3-VL-8B 受其各自许可约束)。
