SmolVLA:让机器人更聪明、更便宜的视觉-语言-动作模型

无需昂贵硬件,单张消费级显卡即可训练,部署在CPU也能流畅运行——这就是为普惠机器人而生的SmolVLA。

为什么机器人需要“多模态大脑”?

想象你指挥机器人:“请拿起桌上的红色杯子,倒满水后递给我。” 这对人类很简单,但对机器人却需要同时理解:

  1. 视觉(识别杯子位置)
  2. 语言(解析“倒满水”的含义)
  3. 动作(规划抓取和倾倒的关节运动)

传统方法需分别训练视觉识别、语言理解、动作控制系统,成本高且难以协同。而视觉-语言-动作模型(Vision-Language-Action Models, VLAs) 就像给机器人装上了“多模态大脑”,能端到端处理这类复杂指令。

但现有VLAs(如RT-2-X、OpenVLA)动辄数十亿参数,训练需数百张GPU,部署依赖高端计算卡,严重阻碍普及。SmolVLA的诞生,正是为了解决这个核心矛盾:在保持高性能的同时,实现极致的效率与可及性。


一、SmolVLA是什么?轻量级机器人大脑的三大突破

突破1:瘦身90%的模型架构

设计策略 技术实现 效果
精简视觉编码 单帧仅保留64个视觉Token,禁用图像分块处理 减少80%视觉计算量
层跳过(Layer Skipping) 仅使用VLM前半层输出(如32层中用前16层) 推理速度提升2倍
交错注意力机制 动作专家中交替使用交叉注意力(CA)与自注意力(SA) 成功率↑12%,动作更平滑
压缩动作专家 隐藏层维度降至VLM的0.75倍(d→0.75d) 参数量减少25%

最终成果:仅4.5亿参数(同类模型1/10),训练内存降低6倍,可在RTX 3090单卡完成训练。

突破2:社区众包数据驱动

传统VLAs依赖百万级工业数据集,而SmolVLA创新性地采用开源社区收集的小型数据集

数据集统计:
  来源平台:Hugging Face
  数据集数量:481个
  任务轨迹:22.9K条
  图像帧数:10.6M

这些数据由全球研究者通过低成本机器人(如SO100机械臂)采集,覆盖家庭、实验室等真实场景,包含噪声演示和物体交互,增强了泛化能力。

数据标准化关键技术

  1. VLM自动标注:用qwen2.5-VL模型生成简洁任务描述(如将”Hold”修正为”Pick up the cube”)
  2. 视角统一:将杂乱相机命名(如images.laptop)规范为OBS_IMAGE_1(顶部视角)、OBS_IMAGE_2(腕部视角)等

突破3:异步推理引擎

传统同步推理的瓶颈:执行完整个动作块(如50步)才能处理新观测 → 机器人出现“盲操作期”

SmolVLA的异步方案

graph LR
    A[机器人客户端] -->|发送观测| B[策略服务器]
    B -->|返回动作块| A
    A --> C[执行动作]
    B --> D[预测下个动作块]
    C & D --> E[并行运行]

核心算法控制逻辑

  1. 设置队列阈值 g(建议0.7):当剩余动作占比<30%时触发新预测
  2. 关节空间滤波:丢弃相似度>ε的重复观测
  3. 动作块聚合:重叠部分加权融合,避免抖动

实测优势(Pick-Place任务):

  • 任务耗时:13.75秒(同步)→ 9.7秒(异步)
  • 1分钟内完成次数:9次 → 19次

二、性能实测:小模型如何战胜大块头?

仿真环境测试(LIBERO & Meta-World)

模型 参数量 LIBERO平均成功率 Meta-World平均成功率
Diffusion Policy 72.4% 10.5%
OpenVLA 7B 76.5%
π₀ (Paligemma-3B) 3.3B 71.8% 50.5%
SmolVLA (本文) 0.45B 87.3% 57.3%

关键发现:SmolVLA在未使用机器人专用预训练数据下,性能超越工业级π₀模型。

真实机器人测试(SO100/SO101机械臂)

任务设计

1. 抓放立方体 (Pick-Place) 
   - 得分:0.5(抓取成功)+ 0.5(放入目标盒)
2. 立方体堆叠 (Stacking) 
   - 得分:0.5(抓起顶部立方体)+ 0.5(放置到底部立方体上)
3. 颜色分拣 (Sorting) 
   - 得分:0.25×4(完成两个立方体-盒子匹配)
4. 乐高块抓放 (Pick-Place-Lego) 
   - 挑战透明盒与小物体精准操作

结果对比(SO100多任务训练)

策略 Pick-Place Stacking Sorting 平均
ACT 70% 50% 25% 48.3%
π₀ (3.5B) 100% 40% 45% 61.7%
SmolVLA 75% 90% 70% 78.3%

泛化能力验证(SO101新机器人)

  • 分布内数据:90%成功率(ACT仅70%)
  • 分布外数据:50%成功率(ACT仅40%)

三、技术细节揭秘:为什么SmolVLA如此高效?

核心架构双模块设计

graph TB
    A[输入] --> B[紧凑VLM]
    A -->|语言指令| B
    A -->|RGB图像| B
    A -->|传感器状态| B
    B --> C[动作专家]
    C --> D[输出动作块 a₁...aₙ]

1. 视觉语言模块(VLM)

  • 骨干网络:SmolVLM-2(专为多图像/视频优化)
  • 视觉编码:SigLIP 提取特征 → SmoILM2 语言解码器
  • 状态处理:传感器数据线性投影为单Token

2. 动作专家(Action Expert)

  • 核心:流匹配(Flow Matching) 技术
  • 目标函数:

    ℒᵀ(θ) = 𝔼[||vθ(Aₜᵀ, oₜ) - u(Aₜᵀ|Aₜ)||²]
    其中 Aₜᵀ = τAₜ + (1-τ)ε,  ε~𝒩(0,I)
    
  • 动态:预测噪声动作到真实动作的向量场

关键消融实验结论

设计选择 LIBERO成功率 结论
纯交叉注意力(CA) 79.0% 依赖VLM特征足够有效
纯自注意力(SA) 74.5% 动作连贯性差
CA+SA交错(本文) 85.5% 互补优势↑
双向注意力 67.5% 未来动作泄露降低性能
因果注意力(本文) 74.5% 屏蔽未来信息更鲁棒
回归损失(L1) <80% 不适合多模态动作分布
流匹配损失(本文) >85% 显式建模动作概率流↑

四、快速实践指南:用SmolVLA控制真实机器人

环境搭建(基于LeRobot框架)

# 安装依赖
pip install lerobot torch accelerate

# 加载预训练模型(Hugging Face Hub)
from lerobot.models import SmolVLA
model = SmolVLA.from_pretrained("huggingface/smolvla-base")

# 异步推理配置
config = {
    "chunk_size": 50,     # 动作块长度
    "threshold_g": 0.7,   # 队列触发阈值
    "epsilon": 0.05       # 观测相似度阈值
}

部署优化建议

  1. 硬件选择

    • 训练:RTX 3090 (24GB) 单卡足够
    • 部署:Intel i7 + 32GB RAM(CPU模式)或 Jetson Orin(边缘设备)
  2. 动作块调参经验

    最佳值域验证:
      chunk_size ∈ [10, 50]  # 过小增加延迟,过大降低响应性
      threshold_g = 0.7      # 平衡计算负载与响应速度
    
  3. 多相机配置
    遵循命名规范可即插即用:

    cameras:
      OBS_IMAGE_1: top_view    # 顶部视角
      OBS_IMAGE_2: wrist_view  # 腕部视角
      OBS_IMAGE_3: side_view   # 侧视视角
    

五、局限与未来方向

当前限制

- **数据多样性**:预训练仅用SO100机器人数据,跨平台泛化待提升
- **任务复杂度**:擅长短视界任务(<50步),长链条规划(如“做饭”)需分层策略
- **VLM适配性**:骨干网络预训练侧重OCR,需探索机器人专属预训练

演进路线

  1. 跨机器人联合训练:融合工业机械臂、人形机器人数据
  2. 多模态联合预训练:结合网络图像/视频数据增强场景理解
  3. 强化学习融合:模仿学习+RL解决长视界复杂任务
  4. 3D感知扩展:点云/NeRF替代RGB图像

六、资源开放:立即体验SmolVLA

开源全家桶

  • 代码库:github.com/huggingface/Lerobot
  • 模型权重:huggingface.co/smolvla
  • 数据集:huggingface.co/lerobot/svla_so100_pickplace 等4个真实任务数据集
  • 机器人设计:github.com/TheRobotStudio/SO-ARM100(3D打印文件)

所有实验可完全复现,预训练仅需30K GPU小时(相当于RTX 3090单卡3.4年)。


问答:关于SmolVLA的常见疑问

Q1:消费级GPU具体指什么型号?

A:论文使用RTX 3090(24GB显存)完成所有训练。理论上RTX 4080/4090或A5000等均可满足。

Q2:异步推理是否增加通信延迟?

A:本地部署时延迟可忽略(<1ms)。网络部署需满足:

  通信延迟 < 动作块时长×阈值_g  
  例如:chunk_size=50, Δt=0.033s, g=0.7 → 允许延迟≤1.155s

Q3:如何适配新的机器人?

A:只需提供:

  1. 相机标定参数(内参/外参)
  2. URDF模型文件(描述关节结构)
  3. 50条演示轨迹(支持真实或仿真数据)

Q4:与LLM+视觉描述符方案比有何优势?

A:传统方案分阶段执行(视觉识别→LLM推理→动作规划),错误会累积。SmolVLA端到端联合优化,抗干扰更强(实测噪声场景成功率↑15%)。


在机器人普惠化的浪潮中,SmolVLA用 “小而强”的设计哲学 证明:高性能机器人模型不必依赖天价算力。正如论文作者所言:
“真正的开放性,不仅在于公开代码,更在于让每个人都能负担得起智能机器人的未来。”