Qwen-VLA LIBERO-Spatial
joint-файнтюн с 99% успеха
Это vision-language-action политика от jiankimr: к Qwen3.5-4B добавлен новый 16-слойный action DiT, а обучение идёт flow-matching behaviour cloning на демонстрациях LIBERO-Spatial. В варианте A обновляются vision encoder, языковой бэкбон и DiT; чекпоинт — шаг 10 000.
🔍 Ключевые особенности
- 🖥 База — Qwen3.5-4B (hidden size 2560) с линейной проекцией контекста 2560 → 1536.
- ⚙ Action expert — 16-блочный DiT: hidden 1536, 12 голов × 128, SwiGLU FFN 10240, joint bidirectional attention и timestep AdaLN.
- 🕹 На выходе 16 действий по 64 измерения; реально используются 7: 6 delta end-effector и gripper, остальные маскируются.
- 📊 Цель — flow matching с masked MSE; на инференсе 10 шагов Euler из гауссова шума.
- 🔥 Обучение joint: Qwen vision encoder, language backbone и DiT; LR 1e-5 для Qwen и 1e-4 для DiT.
💻 Пример
from pathlib import Path
from huggingface_hub import snapshot_download
from qwen_vla.libero_eval import LiberoPolicy
root = Path(snapshot_download("jiankimr/qwen35-vla-libero-spatial-jointA"))
policy = LiberoPolicy(root / "checkpoints/step_00010000", device="cuda", num_steps=10)
actions = policy({"agentview_image": front_rgb, "robot0_eye_in_hand_image": wrist_rgb}, instruction) # (16, 7)
Подробнее
📊 LIBERO-Spatial: 495/500 = 0.99 на 500 официальных эпизодах (50 стартов × 10 задач).🖥 Обучение: 2×A100 80GB, 10 000 шагов (~12 эпох), batch 64, FSDP2 + bf16.
⚠ Ограничение: политика обучена и проверена только на десяти задачах и распределении начальных состояний LIBERO-Spatial; после файнтюна языковое поведение отличается от базовой Qwen3.5-4B.








Комментарии