跳到正文
原文
Hugging Face Blog·· 2025-06-03精选AI 评分61

Hugging Face 发布 SmolVLA:450M 开源视觉语言动作模型,基于 LeRobot 社区数据训练

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

AI 导读

Hugging Face 发布 SmolVLA,一个 450M 参数、可在消费级硬件运行的开源视觉语言动作(VLA)模型,仅用 lerobot 标签下社区共享的开源数据集预训练,包含 487 个数据集约 1000 万帧。

推荐理由

450M 参数的开源 VLA 只用社区数据就超过更大模型,并给出可复现的训练与部署路径。

正文 · AI 翻译

🧭 TL;DR

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

  • 仅在兼容许可的开源社区共享数据集上预训练,这些数据集位于 lerobot 标签下。
  • SmolVLA-450M 在仿真(LIBERO、Meta-World)和真实世界任务(SO100、SO101)上均优于大得多的 VLA 和强基线如 ACT。
  • 支持异步推理,实现30% 更快的响应和2 倍任务吞吐量。

实用链接:

📚 目录

简介

过去几年,Transformers 推动了 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

尽管使用的训练回合不到 3 万——比其他 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。随后,生成的特征被传递给动作专家。

动作专家:流匹配 Transformer

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

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

我们使用带有 交错注意力块 的 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 Community Datasets,即在 HF Mirror 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 · hf-mirror.com