跳到正文
北京时间
原文
Hugging Face:Blog·· 2025-06-03精选AI 评分64

Hugging Face 开源 450M 视觉-语言-动作模型 SmolVLA,可在消费级硬件运行

SmolVLA: Efficient Vision-Language-Action Model trained on Lerobot Community Data

AI 导读

Hugging Face 发布开源、紧凑的 450M 视觉-语言-动作模型 SmolVLA,仅用 lerobot 标签下的社区开源数据预训练,在 LIBERO、Meta-World 仿真和 SO100/SO101 真实任务上超过更大 VLA 及 ACT 等基线。

推荐理由

官方完整披露了 450M 开源机器人 VLA 的架构、社区数据训练与实测结果,读者可据此评估在消费级硬件上复现或微调的可行性。

正文 · AI 翻译

🧭 简要总结

今天,我们推出 SmolVLA,这是一个紧凑型(450M)、开源的机器人视觉-语言-动作模型,可在消费级硬件上运行。

  • 仅使用兼容许可、开源社区共享的 lerobot 标签下的数据集进行预训练。
  • SmolVLA-450M 在仿真(LIBERO、Meta-World)和真实世界任务(SO100、SO101)上均优于更大的 VLA 模型以及 ACT 等强基线。
  • 支持异步推理,实现响应速度提升 30%和任务吞吐量提升 2 倍。

实用链接:

📚 目录

引言

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

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

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

Comparison of SmolVLA across task variations.
图 1:SmolVLA 在不同任务变体上的比较。从左到右:(1) 异步拾取-放置方块计数,(2) 同步拾取-放置方块计数,(3) 扰动下的拾取-放置方块计数,以及 (4) 在真实世界 SO101 上对乐高积木拾取-放置的泛化。

认识 SmolVLA!

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

  • 小到可以在 CPU 上运行,在单个消费级 GPU 甚至 MacBook 上训练!
  • 在公开、社区共享的机器人数据上训练
  • 发布时附带完整的训练和推理配方
  • 可以在非常实惠的硬件(SO-100、SO-101、LeKiwi 等)上测试和部署

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

  • 跳过视觉模型一半的层,以实现更快的推理和更小的尺寸
  • 交错自注意力块和交叉注意力块
  • 使用更少的视觉 token
  • 利用更小的预训练 VLM

尽管使用的训练回合少于 30k——比其他 VLA 少一个数量级——SmolVLA 在仿真和真实世界中都 匹配或超越 了更大模型的性能。

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

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

🚀 如何使用 SmolVLA?

SmolVLA 设计得易于使用和集成——无论你是在自己的数据上进行微调,还是将其接入现有的机器人栈。

安装

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

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

微调预训练模型

使用 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=20000  # 10% of training budget

从头开始训练

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

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

你也可以直接加载 SmolVLAPolicy:

from lerobot.common.policies.smolvla.modeling_smolvla import SmolVLAPolicy
policy = SmolVLAPolicy.from_pretrained("lerobot/smolvla_base")

方法

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

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

主要架构

视觉-语言模型(VLM)

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

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

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

动作专家:流匹配 Transformer

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

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

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

效率与鲁棒性的设计选择

虽然将视觉语言模型与动作预测模块结合是近期 VLA 系统(如 Pi0、GR00T、Diffusion Policy)中常见的设计模式,但我们发现了几项能显著增强鲁棒性和性能的架构选择。在 SmolVLA 中,我们应用了三项关键技术:减少视觉 token 数量、跳过 VLM 的上层,以及 在动作专家中交错使用交叉注意力和自注意力层。

视觉 Token 缩减

高分辨率图像能改善感知,但会显著拖慢推理速度。为了取得平衡,SmolVLA 在训练和推理期间都将每帧的视觉 token 数量限制为 64 个。例如,一张 512×512 的图像被压缩为仅 64 个 token,而不是 1024 个,使用 PixelShuffle 作为一种高效的打乱技术。虽然底层的视觉语言模型(VLM)最初是使用图像分块进行预训练以获得更广的覆盖范围,但 SmolVLA 在运行时仅使用全局图像,以保持推理轻量且快速。

通过跳层实现更快推理

我们不再总是依赖 VLM 的最后一层——这可能代价高昂,有时也并非最优——而是使用中间层的特征。先前的工作表明,较早的层往往能为下游任务提供更好的表示。 在 SmolVLA 中,动作专家在训练期间只关注 VLM 中可配置层 NN 之前的特征,该层被设置为总层数的一半。这使 VLM 和动作专家的计算成本都减半,在性能损失极小的情况下显著加快了推理速度。

交错的交叉注意力与自注意力

在动作专家内部,注意力层在以下两者之间交替:

  • 交叉注意力(CA),其中动作 token 关注 VLM 的特征
  • 自注意力(SA),其中动作 token 相互关注(因果式——只关注过去)

我们发现这种交错设计比使用完整的注意力块既更轻量也更有效。仅依赖 CA 或仅依赖 SA 的模型往往会牺牲平滑性或基础性。

在 SmolVLA 中,CA 确保动作以感知和指令为良好条件,而 SA 则改善时间平滑性——这对于真实世界控制尤为关键,因为抖动的预测可能导致不安全或不稳定的行为。

异步推理

Asynchronous inference

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

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

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

我们的异步栈将动作执行与块预测解耦,从而带来更高的适应性,并且在运行时完全没有执行滞后。它依赖于以下关键机制:

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

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

社区数据集

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

SmolVLA 是我们朝着这一愿景迈出的第一步:它在一个精心策划的混合数据集上进行预训练,这些数据集来自公开可用的、社区贡献的数据,旨在反映现实世界的多样性。我们不仅仅优化数据集大小,而是关注多样性:一系列行为、相机视角和具身形态,以促进迁移和泛化。

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

A glimpse of the community dataset.
图 4. 社区数据集一瞥。特别感谢 Ville Kuosmanen 创建了此可视化。 与学术基准不同,社区数据集自然地捕捉了杂乱、真实的交互:多变的光照、次优的演示、非常规的物体以及异构的控制方案。这种多样性对于学习鲁棒、通用的表示非常有用。

我们使用了由 Alexandre Chapin 和 Ville Kuosmanen 创建的自定义过滤工具,根据帧数、视觉质量和任务覆盖范围来选择数据集。经过细致的人工审核(特别感谢 Marina Barannikov),我们整理了一个包含 487 个高质量数据集的集合,专注于 SO100 机械臂,统一为 30 FPS。这产生了约 1000 万帧——至少比其他流行的基准数据集小一个数量级,但多样性却显著更高。

改进任务标注

社区数据集中的一个常见问题是任务描述嘈杂或缺失。许多片段缺少标注,或包含“任务描述”或“移动”、“拾取”等模糊标签。为了提高质量并统一跨数据集的文本输入,我们使用 Qwen2.5-VL-3B-Instruct 生成简洁、面向动作的描述。

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

使用的提示是:

Here is a current task description: {current_task}. Generate a very short, clear, and complete one-sentence describing the action performed by the robot arm (max 30 characters). Do not include unnecessary words.
Be concise.
Here are some examples: Pick up the cube and place it in the box, open the drawer and so on.
Start directly with an action verb like “Pick”, “Place”, “Open”, etc.
Similar to the provided examples, what is the main action done by the robot arm?

标准化相机视角

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

我们进一步分离了社区数据集预训练和多任务微调的贡献。在没有对 LeRobot 社区数据集进行预训练的情况下,SmolVLA 最初在 SO100 上达到 51.7% 的成功率。在社区收集的数据上进行预训练后,性能跃升至 78.3%,实现了 +26.6% 的绝对提升。多任务微调进一步提升了性能,即使在低数据量情况下也展现出强大的任务迁移能力。

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

结果

我们在仿真和真实世界基准上评估 SmolVLA,以测试其泛化能力、效率和鲁棒性。尽管体积小巧,它始终优于或匹敌在更大规模机器人数据上预训练的显著更大的模型和策略。

SmolVLA Performance on Simulation Benchmarks.

表 2. SmolVLA 在仿真基准上的性能。

SmolVLA vs Baselines on Real-World Tasks (SO100).

表 3. SmolVLA 与基线在真实世界任务(SO100)上的对比。

在真实世界环境中,SmolVLA 在两个多样化的套件上进行评估:SO100 和 SO101。这些任务包括拾取放置、堆叠和分拣,涵盖分布内和分布外的物体配置。 在 SO101 上,SmolVLA 在泛化方面也表现出色:

Generalization of SmolVLA to New Embodiment (SO101) vs ACT..

表 4. SmolVLA 对新具身(SO101)的泛化能力与 ACT 的对比。

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

  • Both modes achieve similar task success (≈78%), but async inference:
    • 完成任务速度快约 30%(9.7 秒 vs. 13.75 秒)
    • 在固定时间设置下实现2 倍的完成次数(19 个 vs. 9 个方块)

这带来了更灵敏、更鲁棒的真实世界性能,尤其是在物体移动或存在外部干扰的动态环境中。

Asynchronous vs. Synchronous Inference in Real-World Tasks.

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

结论

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

行动号召:

  • 🔧 试试看!在你自己的数据上微调 SmolVLA,将其部署到经济实惠的硬件上,或将其与您当前的方案进行基准测试,并在 twitter/linkedin 上分享。
  • 🤖 上传数据集!有机器人吗?使用 lerobot 格式收集并分享你的数据。帮助扩展驱动 SmolVLA 的社区数据集。
  • 💬 加入博客讨论。在下方讨论区留下你的问题、想法或反馈。我们很乐意帮助进行集成、训练或部署。
  • 📊 做出贡献。改进数据集、报告问题、提出新想法。每一份贡献都有帮助。
  • 🌍 传播出去。与对高效、实时机器人策略感兴趣的研究人员、开发者或教育工作者分享 SmolVLA。
  • 📫 保持联系:关注 LeRobot 组织和 Discord 服务器,获取更新、教程和新版本发布。

携手共进,我们可以让现实世界的机器人更强大、更实惠、更开放。✨

来源:Hugging Face:Blog · huggingface.co