SmolVLA 450M · LIBERO 87.3% · 打赢 π₀ 3.3B
HuggingFace × Sorbonne · 单 GPU 训 · 消费级 GPU/CPU 部署 · Async 推理栈 · SO-100 / SO-101 消费级机械臂
SmolVLA(arXiv 2506.01844)是 HuggingFace 官方 VLA 项目组的答卷 —— 做一个能装进 lerobot、跑在消费级硬件、社区数据能训、性能还不塌的小 VLA。450M 参数量(100M action expert),单 GPU 就能训。
关键突破:不但比 π₀(3.3B)小 7×,在 LIBERO 上 87.3% vs π₀ 86.0%(同为 multi-task setting);Meta-World 上 57.3% vs π₀ 47.9%;真机 SO-100 上 78.3% vs π₀ 61.7%。同时用了异步推理栈把感知/动作预测和动作执行解耦,实际部署下 30% 更快、单位时间完成更多任务。
关键数字(论文 Table 2-3 口径)
| Benchmark | SmolVLA 0.45B | π₀ 3.3B | π₀ Paligemma | OpenVLA 7B |
|---|---|---|---|---|
| LIBERO-Spatial | 90 | 90 | 87 | 84.7 |
| LIBERO-Object | 96 | 86 | 63 | 88.4 |
| LIBERO-Goal | 92 | 95 | 89 | 79.2 |
| LIBERO-Long | 71 | 73 | 48 | 53.7 |
| LIBERO avg | 87.3 | 86.0 | 71.8 | 76.5 |
| Meta-World avg(50 任务) | 57.3 | 47.9 | 50.5 | — |
| Meta-World Very Hard | 60 | 30 | 44 | — |
| Real SO-100 Pick-Place / Stack / Sort avg | 78.3 | 61.7 | — | — |
SmolVLA 0.24B / 0.45B / 2.25B 三种变体:0.24B 就已经打过 OpenVLA 7B,0.45B 是 sweet spot,2.25B 天花板更高但从 lerobot 部署考虑 0.45B 是官方推荐。
架构与训练配方
- VLM Backbone:SmolVLM-2,只用前 16 层 LLM(不是全部 L 层)—— 论文 Table 8 证明只用前 N < L 层比缩小整个 VLM 好
- Action Expert:约 100M 参数,用 flow matching 输出 chunk size n = 50 的 action
- Attention 结构:interleaved CA + SA(VLM 特征做 keys/values 给 action tokens 做 cross-attention;action tokens 之间做 causal self-attention)—— 单独 CA / SA 都不如 CA+SA
- 训练:只训 action expert,VLM 冻结 · 200K steps · global batch 256 · cosine lr 1e-4→2.5e-6 · AdamW β₁=0.9 β₂=0.95 · bfloat16 + torch.compile · 图像 resize 512×512
- 推理:flow matching 10 步 · 支持 sync / async 两种模式
- 算力预算:全项目训练累计 ~30k GPU hours · 单 GPU 也能训(作者用了 4 GPU 只是为了大 batch)
Async 推理:30% 更快、更多完成
Sync 模式:预测完整个 chunk 再执行;执行时不 sample。
Async 模式:动作执行和下一次预测并行,结果:
| 指标 | Sync | Async |
|---|---|---|
| Pick-Place 平均耗时(秒) | 13.75 | 9.70 (-30%) |
| 60 秒时限内 pick-place 完成数 | 9 | 19 (2.1×) |
| Sorting 任务 SR(%) | 70 | 50 |
Async 在低复杂度反应快速任务(Pick-Place)显著好,但在需要精确规划的 Sorting 反而拖累 SR —— 这是 async 的 tradeoff。作者建议按任务性质选。
Ablation 深挖(论文 §4.7)
| 设计选择 | LIBERO avg |
|---|---|
| Cross-Attention 单用 | 79.0 |
| Self-Attention 单用 | 74.5 |
| CA + SA interleaved(default) | 85.5 |
| Bidirectional attention on action tokens | 67.5 |
| Causal self-attention on action tokens | 74.5 |
| VLM 全部 32 层 | 80.3 |
| 只用前 16 层(default) | 78.5 |
| Skip 每 2 层 | 75.5 |
| Flow Matching | 80.25 |
| Regression(L1) | 75.25 |
| Action Chunk Size 1 | 50.0 |
| Chunk 10 | 84.0 |
| Chunk 50(default) | 80.3 |
| Chunk 100 | 74.5 |
几个反直觉发现:(1) chunk size 10-50 是 sweet spot(100 反降);(2) 用 前 N < L 层比"平均 skip"或"缩小 VLM"都好;(3) Flow matching 明确胜过 L1 regression(+5 points)。
预训练与多任务对比
| Policy | VLA Pretrain | Real SO-100 Avg |
|---|---|---|
| SmolVLA (single-task 训练) | No | 40.0 |
| SmolVLA (multi-task, no pretrain) | No | 51.7 |
| SmolVLA (multi-task + community pretrain) | Yes | 78.3 |
在 community-collected 数据上预训 → 提升 27 point;multi-task 训练 → 再提升 12 point。lerobot 社区数据集是 SmolVLA 能落地的先决条件。
硬件适配(消费级机械臂)
- SO-100 / SO-101:3D 可打印低成本机械臂 · 6 DoF · 舵机 · 官方 open source · SmolVLA 官方数据集就在 SO-100 上采
- Franka Panda:7 DoF · LIBERO 用的
- Sawyer:4 DoF · Meta-World 用的
SmolVLA 完全部署在 lerobot 生态里 —— 未来做端侧 VLA 的团队直接 pip install lerobot 就能用。
差异化定位
SmolVLA 是端侧 VLA分类的官方标杆:
- 参数量:0.45B —— 比 π₀ 小 7×,比 OpenVLA 小 15×
- 训练成本:单 GPU 可训(作者用 4 GPU 只是为了 batch size)
- 部署:消费级 GPU、甚至 CPU 可跑;async 推理让实时性大幅提升
- 开源程度:代码 / 权重 / 数据 / 全部社区可用 · 完全嵌入 lerobot
它证明了一件事:你不需要 3B+ VLA 才能刷 LIBERO SOTA;架构设计和预训练配方比堆参数更关键。