SmolVLA:在 Lerobot 社区数据上训练的高效视觉-语言-动作模型
Hugging Face 已发布 SmolVLA,这是一款紧凑的 450M 参数开源视觉-语言-动作(VLA)模型,专为机器人设计。SmolVLA 能在消费级硬件上实现高性能机器人控制,在模拟环境(LIBERO、Meta-World)和使用经济型硬件(如 SO100 和 SO101 机械臂)的真实任务中,均优于更大的 VLA 模型和 ACT 等基线。
模型架构与设计
SmolVLA 采用模块化架构,将用于感知的视觉-语言模型(VLM)与用于控制的专用动作专家相结合。
视觉-语言模型(VLM)骨干
SmolVLA 使用 SmolVLM2 作为其骨干,由 SigLIP 视觉编码器和 SmolLM2 语言解码器组成。模型按如下方式处理多模态输入:
- Images: 通过视觉编码器提取。
- Language Instructions: 进行分词后输入解码器。
- Sensorimotor States: 通过线性层投射为单个 token,以匹配语言模型的维度。
动作专家:流匹配 Transformer
动作专家是一个紧凑的 transformer(约 100M 参数),用于生成未来机器人动作的序列(动作块)。它通过 flow matching objective 进行训练,预测一个“校正向量”,将噪声样本引导回真实轨迹。该方法实现了对连续动作的直接、非自回归预测,确保实时控制和高精度,避免了自回归解码带来的延迟。
效率优化
为保持低延迟和小体积,SmolVLA 实施了三项特定的架构选择:
- Visual Token Reduction: 将图像(例如 512×512)使用 PixelShuffle 压缩为 64 个 token,而非 1024 个,从而显著降低推理时间。
- Layer Skipping: 动作专家仅关注 VLM 特征的前半层。这将 VLM 和动作专家的计算成本减半,且性能损失极小。
- Interleaved Attention: 动作专家在交叉注意力(基于感知和指令对动作进行条件化)和自注意力(确保时间平滑、降低抖动)之间交替进行。
异步推理栈
SmolVLA 引入了异步推理栈,以将动作执行与块预测解耦,消除执行延迟。
在 synchronous(同步)设置中,机器人在执行当前块后会暂停以计算下一个动作块。而在 asynchronous(异步)设置中,机器人在执行当前块的同时,将最新观测发送给策略服务器(可能托管在 GPU 上)。
关键机制包括:
- Early Trigger: 当队列长度低于阈值(例如 70%)时,将新观测发送至服务器。
- Decoupled Threads: 推理与控制循环并行进行。
- Chunk Fusion: 将连续块的重叠动作合并,以防止抖动。
该系统相较于同步推理,使任务完成速度提升 30%(9.7 秒 对 13.75 秒),任务吞吐量提升 2 倍(在固定时间窗口内完成 19 立方体 对 9 立方体),且成功率保持相近(约 78%)。
在社区数据集上的训练
SmolVLA 在 Hugging Face Hub 上的 LeRobot 社区中精选的 487 个高质量数据集 上进行预训练,总计约 1000 万帧。这比典型基准数据集小一个数量级,但在行为、摄像机视角和形态上提供了更大的多样性。
数据标准化
为处理社区数据的碎片化,Hugging Face 采用了两项标准化流程:
- Task Annotation Improvement: 使用 Qwen2.5-VL-3B-Instruct,将模糊标签(例如 “Move”)改写为以动词开头、30 字符以内的简洁动作描述(例如 “Pick up the cube”)。
- Camera View Standardization: 将不一致的摄像机标签映射为统一方案:
OBS_IMAGE_1(俯视),OBS_IMAGE_2(腕部安装),以及OBS_IMAGE_3+(其他视角)。
预训练的影响
在社区数据上进行预训练显著提升了性能。在 SO100 机械臂上,成功率从 51.7%(未预训练)提升至 78.3%(预训练后),相当于 +26.6% 的绝对提升。
性能结果
SmolVLA 在多个基准上展示了强大的泛化能力和效率:
- Simulation: 在 LIBERO 和 Meta-World 上超越更大的 VLA 和基线。
- Real-World (SO100): 在抓取-放置、堆叠和分类任务中匹配或超越基线。
- Generalization (SO101): 相较于 ACT 基线,展示了对新形态的更强泛化能力。
- Hardware Accessibility: 该模型足够小,可在 CPU、MacBook 或单个消费级 GPU 上运行。