SmolVLA:开源机器人AI

一款运行在MacBook上的紧凑型开源模型。社区驱动的数据集正在推动现实世界中的机器人技术。新一代可访问、智能的机器时代已经到来。

SmolVLA:开源机器人AI

今天,我们介绍了SmolVLA,这是一个紧凑(4.5亿参数)、开源的视觉-语言-动作模型,适用于机器人领域,并能在消费级硬件上运行。

  • 仅在具有兼容许可的开源社区共享数据集上进行预训练,这些数据集带有lerobot标签。
  • SmolVLA-450M在模拟环境中(LIBERO、Meta-World)和现实世界任务(SO100、SO101)上的表现优于许多更大的VLA模型和强大的基线模型,如ACT
  • 支持异步推理,可实现30%更快响应两倍任务吞吐量

有用的链接

1、介绍

近年来,Transformers在AI领域推动了显著进步,从能够进行类人推理的语言模型到理解图像和文本的多模态系统。然而,在现实世界的机器人领域,进展却慢得多。机器人仍然难以在多样化的物体、环境和任务中泛化。这种有限的进步源于缺乏高质量、多样化的数据以及无法像人类一样在物理世界中推理和行动的模型

为应对这些挑战,该领域最近转向了视觉-语言-动作(VLA)模型,其目标是在单一架构内统一感知、语言理解和动作预测。VLA通常以原始视觉观察和自然语言指令作为输入,并输出相应的机器人动作。尽管前景广阔,但最近在VLA领域的许多进展仍被锁在专有模型后,这些模型基于大规模私有数据集进行训练,往往需要昂贵的硬件设置和大量的工程资源。 因此,更广泛的机器人研究社区面临显著的复制和构建这些模型的障碍。

SmolVLA通过提供一个开源、紧凑且高效的VLA模型解决了这一差距,该模型可以在消费级硬件上仅使用公开可用的数据集进行训练。通过不仅发布模型权重,还使用非常实惠的开源硬件,SmolVLA旨在民主化访问视觉-语言-动作模型,并加速向通用机器人代理的研究。

图1:SmolVLA在不同任务变化中的比较。从左到右:(1) 异步拾取放置计数立方体,(2) 同步拾取放置计数立方体,(3) 在扰动下拾取放置计数立方体,(4) 在真实世界SO101中对乐高积木进行一般化拾取和放置。

2、认识SmolVLA!

SmolVLA-450M 是我们的开源、紧凑但功能强大的VLA模型。它:

  • 小到可以在CPU上运行,可以在单个消费级GPU或甚至MacBook上训练!
  • 在公共社区共享的机器人数据集上训练
  • 提供完整的训练和推理食谱
  • 可以在非常经济实惠的硬件(SO-100、SO-101、LeKiwi等)上测试和部署。

受大型语言模型(LLM)训练范式的启发,SmolVLA经过了一个在通用操作数据集上的预训练阶段,然后是针对特定任务的后训练。在架构上,它结合了Transformers与流匹配解码器,并针对速度和低延迟推理进行了优化,采用了以下设计选择:

  • 跳过视觉模型的一半层数以加快推理和减小模型大小
  • 交错自注意力和交叉注意力块
  • 使用较少的视觉标记
  • 利用较小的预训练VLM

尽管使用的训练样本不到3万——比其他VLA少了一个数量级——SmolVLA在模拟和现实世界中匹配或超过了性能

为了使实时机器人更容易使用,我们引入了异步推理堆栈。这项技术将机器人执行动作的方式与其感知和理解方式分离。由于这种分离,机器人在快速变化的环境中可以更快地响应。

图2. SmolVLA接收来自多个摄像头的RGB图像序列、机器人的当前传感器运动状态和自然语言指令作为输入。VLM将其编码为上下文特征,这些特征条件化动作专家生成连续的动作序列。

3、如何使用SmolVLA?

SmolVLA的设计易于使用和集成——无论是微调自己的数据还是将其插入现有的机器人堆栈。

3.1 安装

首先,安装所需的依赖项:

git clone https://github.com/huggingface/lerobot.git
cd lerobot
pip install -e ".[smolvla]"

3.2 微调预训练模型

使用smolvla_base,我们的450M预训练模型,配合lerobot训练框架:

python lerobot/scripts/train.py \
  --policy.path=lerobot/smolvla_base \
  --dataset.repo_id=lerobot/svla_so100_stacking \
  --batch_size=64 \
  --steps=200000

3.3 从零开始训练

如果您想从架构(预训练VLM + 动作专家)而不是预训练检查点开始:

python lerobot/scripts/train.py \
  --policy.type=smolvla \
  --dataset.repo_id=lerobot/svla_so100_stacking \
  --batch_size=64 \
  --steps=200000

您也可以直接加载SmolVLAPolicy

policy = SmolVLAPolicy.from_pretrained("lerobot/smolvla_base")

4、方法

SmolVLA不仅是一个轻量但功能强大的模型,也是一种用于训练和评估通用机器人策略的方法。在本节中,我们介绍了SmolVLA背后的主要架构和用于评估的异步推理设置,这些设置已被证明更具适应性和能够更快恢复。

SmolVLA由两个核心组件组成:处理多模态输入的视觉-语言模型(VLM) 和输出机器人控制命令的动作专家。下面,我们分享SmolVLA架构和异步推理的主要组件细节。更多详细信息请参阅我们的技术报告

4.1 效率和鲁棒性的设计选择

虽然结合视觉-语言模型和动作预测模块是最近VLA系统中的常见设计模式——例如Pi0、GR00T、Diffusion Policy——我们识别出几个显著增强稳健性和性能的架构选择。在SmolVLA中,我们应用了三个关键技术:减少视觉标记的数量、跳过VLM的顶层、在动作专家中交错交叉注意力和自注意力层

4.2 视觉标记减少

高分辨率图像可以提高感知能力,但会显著减慢推理速度。为了取得平衡,SmolVLA在训练和推理过程中每帧限制视觉标记的数量为64个。例如,512×512的图像被压缩成仅仅64个标记,而不是1024个,使用PixelShuffle作为一种有效的打乱技术。虽然底层的视觉-语言模型(VLM)最初是通过图像平铺进行预训练的,以获得更广泛的覆盖范围,但在运行时,SmolVLA仅使用全局图像以保持推理轻量化和快速。

4.3 通过层跳过加速推理

与其总是依赖最终层的VLM——这可能既昂贵又有时次优——我们使用中间层的特征。先前的工作表明,早期层通常能提供更好的下游任务表示。 在SmolVLA中,动作专家在训练期间只关注配置层NN之前的VLM特征,设置为总层数的一半。这将VLM和动作专家的计算成本减半,显著加快推理速度,同时性能损失最小。

4.4 交错交叉注意力和自注意力

在动作专家内部,注意力层交替进行:

  • 交叉注意力(CA),其中动作标记关注VLM的特征
  • 自注意力(SA),其中动作标记关注彼此(因果关系——仅过去)

我们发现,这种交错设计既轻量化又更有效,而不是使用完整的注意力块。仅依赖CA或仅依赖SA的模型往往会牺牲平滑性或接地能力。

在SmolVLA中,CA确保动作很好地基于感知和指令,而SA改善了时间平滑性——这对于现实世界的控制尤其重要,因为抖动的预测可能导致不安全或不稳定的行为。

4.5 视觉-语言模型(VLM)

我们使用SmolVLM2作为我们的VLM主干。它针对多图像输入进行了优化,包括SigLIP视觉编码器和SmolLM2语言解码器。

  • 图像标记通过视觉编码器提取
  • 语言指令被标记化并直接馈入解码器。
  • 传感器运动状态通过线性层投影为单个标记,以与语言模型的标记维度对齐。

解码层处理连接的图像、语言和状态标记。生成的特征随后传递给动作专家。

4.6 动作专家:流匹配变换器

SmolVLA的动作专家是一个紧凑的变换器(约1亿参数),根据VLM的输出生成动作块,即未来机器人动作的连续序列。它使用流匹配目标进行训练,教导模型引导噪声样本回到真实轨迹。相比之下,虽然离散动作表示(例如通过标记化)强大,但它们通常需要自回归解码,这在推理时既慢又效率低下。而流匹配允许直接、非自回归地预测连续动作,从而实现高精度的实时控制。

更直观地说,在训练过程中,我们在机器人的实际动作序列中添加随机噪声,并要求模型预测“校正向量”,将其带回到正确的轨迹。这在动作空间中形成一个平滑的向量场,帮助模型学习准确和稳定的控制策略。

我们使用具有交错注意力块的变换器架构来实现这一点(见图2),并将隐藏层大小减少到VLM的75%,以保持模型轻量化以便于部署。

5、异步推理

图3. 异步推理。异步推理堆栈的示意图。注意,策略可以在远程服务器上运行,可能配备GPU

现代视觉运动策略输出动作块——一系列要执行的动作。管理它们有两种方式:

  • 同步(sync): 机器人执行一个块,然后暂停,直到下一个块被计算出来。简单,但会导致机器人在新输入到来时无法反应的延迟。
  • 异步(async): 在执行当前块的同时,机器人已经将最新的观察发送到策略服务器(可能托管在GPU上)以获取下一个块。这种方法避免了空闲时间并提高了响应能力。

我们的异步堆栈将动作执行与块预测解耦,从而实现更高的适应性,并在运行时完全消除执行延迟。它依赖以下关键机制:

  • 1. 提前触发: 当队列长度低于阈值(例如70%)时,我们向策略服务器发送观察结果,请求新的动作块。
  • 2. 解耦线程: 控制循环继续执行→推理在并行中发生(非阻塞)。
  • 3. 块融合: 来自连续块的重叠动作通过简单的合并规则缝合在一起,以避免抖动。

我们非常兴奋地发布异步推理,因为它保证了更高的适应性和性能提升,而无需更改模型。简而言之,异步推理通过重叠执行和远程预测保持机器人响应。

6、社区数据集

虽然视觉和语言模型依赖于像LAION、ImageNet和Common Crawl这样的网络规模数据集蓬勃发展,但机器人领域缺乏类似的资源。没有“机器人互联网”。相反,数据分散在机器人类型、传感器、控制方案和格式之间——形成了孤立的“数据孤岛”。在我们之前的文章中,我们探讨了如何通过开放协作的努力解决这种碎片化问题。正如ImageNet通过提供大规模、多样化的基准推动了计算机视觉突破一样,我们认为社区驱动的机器人数据集可以为通用机器人策略发挥同样的基础作用。

SmolVLA是我们迈向这一愿景的第一步:它在精心策划的公开可用、社区贡献的数据集上进行预训练,旨在反映现实世界的多样性。我们不是单纯优化数据集的规模,而是注重多样性:一系列行为、相机视角和实体,以促进迁移和泛化。

SmolVLA使用的所有训练数据均来自LeRobot社区数据集,这些机器人数据集在Hugging Face Hub上带有lerobot标签共享。这些数据集在实验室到起居室等多样化环境中收集,代表了一种开放、去中心化的努力,以扩大真实世界机器人数据的规模。

图4. 社区数据集的一瞥。特别感谢Ville Kuosmanen创建可视化。 与学术基准不同,社区数据集自然捕捉到混乱的真实交互:不同的照明、次优演示、非传统对象和异构控制方案。这种多样性对于学习稳健的通用表示非常有用。

我们使用由Alexandre ChapinVille Kuosmanen创建的自定义过滤工具根据帧数、视觉质量和任务覆盖率选择数据集。经过仔细的手动审查(特别感谢Marina Barannikov),我们精心挑选了487个高质量数据集,专注于SO100机械臂,标准化为30 FPS。这产生了大约1000万个帧——至少比其他流行的基准数据集小一个数量级,但显著更加多样化。

6.1 改进任务标注

社区数据集中普遍存在嘈杂或缺失的任务描述。许多片段缺乏标注或包含模糊的标签,如“任务描述”、“移动”、“拾取”、“放置”等。为提高质量并标准化跨数据集的文本输入,我们使用Qwen2.5-VL-3B-Instruct生成简洁、面向动作的描述。

给定样本帧和原始标签,模型被提示在30个字符以内重写指令,以动词开头(例如,“拾取”、“放置”、“打开”)。

使用的提示如下:

以下是当前任务描述:{current_task}。生成一个非常短、清晰且完整的描述机器人手臂执行动作的一句话(最多30个字符)。不要包含不必要的词语。
简洁。
这里有一些例子:拾起立方体并放入盒子中,打开抽屉等。
直接以动词开头,如“拾取”、“放置”、“打开”等。
类似于提供的例子,机器人手臂的主要动作是什么?

6.2 标准化相机视图

另一个挑战是不一致的相机命名。一些数据集使用清晰的名称,如顶部或wrist.right,而另一些则使用含糊的标签,如images.laptop,其含义各不相同。 为了解决这个问题,我们手动遍历数据集并将每个相机视图映射到标准化的方案: OBS_IMAGE_1:俯视图 OBS_IMAGE_2:腕部安装视图 OBS_IMAGE_3+:附加视图

我们进一步隔离社区数据集预训练和多任务微调的贡献。在未经社区数据集预训练的情况下,SmolVLA最初在SO100上的成功率为51.7%。经过社区数据集预训练后,性能跃升至78.3%,绝对提升了26.6%。多任务微调进一步提升了性能,展示了即使在低数据场景中也具有强大的任务迁移能力。

表1. 社区数据集预训练和多任务微调的影响。

7、结果

我们在模拟和现实世界的基准测试中评估SmolVLA,以检验其泛化性、效率和鲁棒性。尽管体积小巧,但它始终优于或匹配更大、在更高规模机器人数据上预训练的模型和策略。

表2. SmolVLA在模拟基准测试中的性能。
表3. SmolVLA与现实世界任务(SO100)上的基线对比

在现实世界中,SmolVLA在两个多样化的套件上进行评估:SO100和SO101。这些任务包括拾取放置、堆叠和排序,具有分布内和分布外的对象配置。 在SO101上,SmolVLA在泛化方面也表现出色:

表4. SmolVLA对新实体(SO101)的泛化 vs ACT...

最后,我们在同步和异步推理模式下评估SmolVLA。异步推理将动作执行与模型推理解耦,允许策略在机器人移动时做出反应。

  • 两种模式的平均任务成功率相似(≈78%),但异步推理:
  • 完成任务的速度快30%(9.7秒 vs 13.75秒)
  • 在固定时间内完成的任务数量增加一倍(19个 vs 9个)

这在动态环境中,特别是在物体移动或外部干扰的情况下,实现了更响应和更稳健的现实世界性能。

图4. 异步与同步推理在现实世界任务中的对比。 (a) 任务成功率(%),(b) 平均完成时间(秒),(c) 固定时间内完成的任务数量。

8、结束语

SmolVLA是我们为构建开放、高效且可复现的机器人基础模型所做的贡献。尽管体积小巧,它在各种现实世界和模拟任务中匹配或超越了更大、专有的模型。通过仅依赖社区贡献的数据集和经济实惠的硬件,SmolVLA降低了研究人员、教育工作者和爱好者的入门门槛。 但这只是开始。SmolVLA不仅仅是一个模型——它是向可扩展、协作式机器人发展的开放源代码运动的一部分。


原文链接:SmolVLA: Efficient Vision-Language-Action Model trained on Lerobot Community Data

汇智网翻译整理,转载请标明出处