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 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 task.
▶️ 演示视频 / 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 alignscross_attention_dimto the loaded VLM'shidden_sizeat 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 model_zoo 上 Qwen3-VL-PI_v3 在 Bridge=69.8 > GR00T head=65.3)。
评测结果 / Evaluation
Strict 20-round(60 oranges total,leaderboard 同条件,8bit eval):
| 指标 / Metric | 值 / Value |
|---|---|
| E(🍊)/ep | 53.3% (32/60) |
| P(3)(单 ep 放满 3 颗) | 35% (7/20) |
| P(≥2) | 45% (9/20) |
| P(1) | 35% (7/20) |
| P(0) | 20% (4/20) |
| avg round | 156s |
| 5-round σ | 3.37 (22.4%) |
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
| 文件 | 说明 |
|---|---|
checkpoints/steps_30000_pytorch_model.pt |
权重(~17.9 GB,冻结的 Qwen3-VL-8B + 训练的 GR00T 动作头) |
config.yaml |
训练/推理重建配置(baseframework.from_pretrained 读取;base_vlm 指向 Qwen/Qwen3-VL-8B-Instruct) |
dataset_statistics.json |
动作反归一化统计 |
modality.json |
6-DOF state/action + 双相机 modality 映射 |
config_so101_qwengr00t.yaml / run_so101_train.sh |
训练入口配方(bs=4, 60k 步, save_interval=6000) |
starvla-8b-pickorange.mp4 |
SO-101 in Isaac Sim 演示(前 60s) |
推理 / 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_cameras
serve + 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 受其各自许可约束)。
- Downloads last month
- 4
Model tree for wsagi/StarVLA-Qwen3-VL-8B-PickOrange
Base model
Qwen/Qwen3-VL-8B-Instruct