SmolVLA:让机器人更聪明、更便宜的视觉-语言-动作模型
无需昂贵硬件,单张消费级显卡即可训练,部署在CPU也能流畅运行——这就是为普惠机器人而生的SmolVLA。
为什么机器人需要“多模态大脑”?
想象你指挥机器人:“请拿起桌上的红色杯子,倒满水后递给我。” 这对人类很简单,但对机器人却需要同时理解:
-
视觉(识别杯子位置) -
语言(解析“倒满水”的含义) -
动作(规划抓取和倾倒的关节运动)
传统方法需分别训练视觉识别、语言理解、动作控制系统,成本高且难以协同。而视觉-语言-动作模型(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机械臂)采集,覆盖家庭、实验室等真实场景,包含噪声演示和物体交互,增强了泛化能力。
数据标准化关键技术:
-
VLM自动标注:用qwen2.5-VL模型生成简洁任务描述(如将”Hold”修正为”Pick up the cube”) -
视角统一:将杂乱相机命名(如 images.laptop
)规范为OBS_IMAGE_1
(顶部视角)、OBS_IMAGE_2
(腕部视角)等
突破3:异步推理引擎
传统同步推理的瓶颈:执行完整个动作块(如50步)才能处理新观测 → 机器人出现“盲操作期”。
SmolVLA的异步方案:
graph LR
A[机器人客户端] -->|发送观测| B[策略服务器]
B -->|返回动作块| A
A --> C[执行动作]
B --> D[预测下个动作块]
C & D --> E[并行运行]
核心算法控制逻辑:
-
设置队列阈值 g
(建议0.7):当剩余动作占比<30%时触发新预测 -
关节空间滤波:丢弃相似度>ε的重复观测 -
动作块聚合:重叠部分加权融合,避免抖动
实测优势(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 # 观测相似度阈值
}
部署优化建议
-
硬件选择
-
训练:RTX 3090 (24GB) 单卡足够 -
部署:Intel i7 + 32GB RAM(CPU模式)或 Jetson Orin(边缘设备)
-
-
动作块调参经验
最佳值域验证: chunk_size ∈ [10, 50] # 过小增加延迟,过大降低响应性 threshold_g = 0.7 # 平衡计算负载与响应速度
-
多相机配置
遵循命名规范可即插即用:cameras: OBS_IMAGE_1: top_view # 顶部视角 OBS_IMAGE_2: wrist_view # 腕部视角 OBS_IMAGE_3: side_view # 侧视视角
五、局限与未来方向
当前限制
- **数据多样性**:预训练仅用SO100机器人数据,跨平台泛化待提升
- **任务复杂度**:擅长短视界任务(<50步),长链条规划(如“做饭”)需分层策略
- **VLM适配性**:骨干网络预训练侧重OCR,需探索机器人专属预训练
演进路线
-
跨机器人联合训练:融合工业机械臂、人形机器人数据 -
多模态联合预训练:结合网络图像/视频数据增强场景理解 -
强化学习融合:模仿学习+RL解决长视界复杂任务 -
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:只需提供:
-
相机标定参数(内参/外参) -
URDF模型文件(描述关节结构) -
50条演示轨迹(支持真实或仿真数据)
Q4:与LLM+视觉描述符方案比有何优势?
A:传统方案分阶段执行(视觉识别→LLM推理→动作规划),错误会累积。SmolVLA端到端联合优化,抗干扰更强(实测噪声场景成功率↑15%)。
在机器人普惠化的浪潮中,SmolVLA用 “小而强”的设计哲学 证明:高性能机器人模型不必依赖天价算力。正如论文作者所言:
“真正的开放性,不仅在于公开代码,更在于让每个人都能负担得起智能机器人的未来。”