这篇论文是 Hugging Face 出品的一个 VLA 领域论文,其核心在于提出了一个能在消费级 GPU(文章中只说用了4块,以及 30K小时的GPU时,但没有提用的是哪款GPU)上训练的模型、一个异步推理机制、一台低成本机械臂上达到了和 Pi0 同等的效果。虽然作者在简单任务上验证了他们的模型,但在复杂任务上的实验并没有展开,我貌似也没有看见双臂的实验,因此后续的人可以从这里入手使用他们的方式构建模型。


写在最前面

为了方便你的阅读,以下几点的注意事项请务必了解:

  • 该系列文章每个字都是我理解后自行翻译并写上去的,可能会存在笔误与理解错误,如果发现了希望读者能够在评论区指正,我会在第一时间修正错误。
  • 阅读这个系列需要你有基本的 VLA 相关基础知识,有时候我会直接使用英文名词,因为这些词汇实在不容易找到符合语境的翻译。
  • 原文可能因为版面限制存在图像表格与段落不同步的问题,为了更方便阅读,我会在博文中重新对图像表格进行排版,并做到引用图表的文字下方就能看到被引用的图表。因此可能会出现一张图片在博客中多处位置重复出现的情况。
  • 对于原文中的图像,我会在必要时对图像描述进行翻译并附上我自己的理解,但如果图像描述不值得翻译我也不会强行写上去。

Basic Information

【Note】:作者将 smolvla 直接嵌入到 Lerobot 仓库中。


Abstract

在大规模多模态数据集上预训练的视觉-语言模型 (VLM) 能够编码丰富的视觉和语言知识,使其成为机器人技术的坚实基础。近期的方法并非从零开始训练机器人策略,而是将 VLM 调整为视觉-语言-动作 (VLA) 模型,从而实现自然语言驱动的感知和控制。然而,现有的 VLA 通常规模,通常包含数十亿个参数,导致训练成本高昂,且在实际应用中受限。此外,它们依赖于学术和工业数据集,而忽略了来自价格合理的机器人平台的社区数据日益普及这一事实。本研究提出了 SmolVLA,一种小型、高效且由社区驱动的 VLA,它能够大幅降低训练和推理成本,同时保持竞争性的性能。SmolVLA 旨在在单个 GPU 上进行训练,并部署在消费级 GPU 甚至 CPU 上。为了进一步提升响应速度,引入了一个 异步推理堆栈,将感知和动作预测与动作执行解耦,从而通过分块动作生成实现更高的控制速率。尽管 SmolVLA 体积小巧,但它的性能却可与体积大 10 倍的 VLA 相媲美。在一系列模拟和现实世界的机器人基准测试中对 SmolVLA 进行了评估,并发布了所有代码、预训练模型和训练数据。

在这里插入图片描述


1. Introduction

近年来该领域已转向开发基础模型,即能够执行广泛任务的通用模型。这一趋势的一个突出例子是大型语言模型 (LLM),它们在理解和生成自然语言、复杂主题推理和知识锚定方面表现出与普通人类相当的性能;基于文本的模型的成功已扩展到其他模态,并激发了人们对多模态视觉语言模型 (VLM) 和音频语言模型 (ALM) 的兴趣。虽然在模态方面相互补充,但开发多模态基础模型的这些进展源于 (i) 采用可扩展架构,例如 Transformer 和 (ii) 互联网规模的训练数据集。

尽管基础模型在数字世界中取得了显著成就,但在现实世界中的应用,尤其是在机器人领域仍然有限。机器人策略在跨物体类型、位置、环境、任务的泛化方面仍然面临挑战。机器人应该能够适应新的环境和新的物体,这需要强大的技能和对世界的常识性理解。然而,这方面的进展似乎常常受到高质量和多样化数据可用性的限制。

为了突破这一局限性,越来越多的研究开始探索以 VLA 模型形式构建的机器人基础模型。VLA 旨在将抽象推理、世界知识和决策技能融入预先训练的大型语言和视觉-语言模型中。这些模型接受多模态输入(例如视觉观察和自然语言指令),并预测相应的机器人动作。早期结果表明,VLA 的泛化能力有望提升。

VLA 模型仍处于早期开发阶段,尚未像 LLM 和 VLM 那样成熟或被广泛采用。许多具有影响力的 VLA 进展仍处于专有阶段,许多模型仅共享权重,而未提供完整的训练细节和必要的方法论组件。虽然 VLA 模型在应对学术基准测试方面卓有成效,但作者认为,要使机器人技术达到人类水平,需要更加致力于开源工作。透明、可重复的开源模型和训练方案对于加速机器人研究领域的进步和促进更广泛的参与至关重要。作者提倡开发价格合理、高效且可供更广泛社区使用的模型。虽然像 OpenVLA 和 RT-2-X 这样的项目证明了开放式 VLA 系统的可行性,但它们仍然规模庞大、资源密集,并且依赖于昂贵的机器人平台,阻碍了其普及。

本研究引入了 SmolVLA,一个开源项目,核心是一个紧凑但功能强大的 VLA 模型,并发布了可重复且高效的训练和推理方案。本文的贡献如下:

  • Lightweight architecture:提出了 SmolVLA,一款紧凑高效的视觉语言代理,专为在消费级 GPU 上训练和在 CPU 上部署而优化。关键设计选择包括:(i) 跳过 VLM 中的层;(ii) 使用最少量的视觉 token;(iii) 利用小型预训练 VLM;(iv) 将自注意力层与更轻量的交叉注意力层交织在一起
  • Pretraining on community-driven datasets:SmolVLA 的端到端训练基于少于 3 万个完全来自公开可用的社区贡献数据集的场景,在比现有技术少一个数量级的数据量下展现出强大的性能;
  • Asynchronous inference:引入了一个优化的异步推理堆栈,将动作执行与观察处理和动作预测分离,从而减少延迟并实现快速、资源高效的推理;

在模拟环境和真实场景下对 SmolVLA 进行了多项任务评估。尽管 SmolVLA 的规模明显较小,但它的 性能却匹敌甚至超越了规模更大的 VLA 模型


2. Related Work

Vision-language models (VLMs)

视觉语言模型 (VLM) 旨在处理视觉和文本模态,最常见的做法是将图像和文本作为输入,并根据视觉上下文生成文本。VLM 的最新进展受到 LLM 的成功推动,许多方法都建立在预训练的 LLM 之上,并采用类似的训练范式。通常 VLM 是通过将预训练的视觉编码器与预训练的 LLM 集成而构建的。训练随后分多个多模态阶段进行,首先在图像-字幕数据集和交叉视觉-语言语料库上进行大规模预训练,然后是在指令调整数据集上进行监督微调阶段;部分研究展示了不依赖预训练视觉编码器的优势;一些研究则致力于开发更统一的架构,将图像和文本表示为离散的 token,从而使单个模型能够处理多模态 token 序列;效率也已成为 VLM 研究的核心关注点,一些研究旨在通过使用更小、更多样化的数据集 ,训练更小规模的模型,或通过仅调整一小部分参数来调整预训练的单峰模型来降低训练成本。虽然大多数 VLM 研究集中在图像和文本模态上,但最近的研究表明,类似的技术可以扩展到整合其他模态,例如视频和音频。

Vision-language-action models (VLAs)

机器人研究中一个日益受到关注的领域是开发通用策略,即 能够执行广泛任务、泛化至不同环境和机器人具体实例的模型。该方向的一个突出策略是利用 VLA(视觉语言模型),这些模型能够处理 (i) 自然语言给出的任务指令、(ii) 视觉观察(例如,来自摄像头流的图像)以及 (iii) 本体感受输入并输出控制动作。早期的研究成果,例如 Octo 和 RT-1,在大规模机器人演示数据集上从头开始训练基于 Transformer 的模型;为了 提升性能和泛化能力,RT-2 利用预训练的视觉语言模型 (VLM),并在机器人特定数据上对其进行进一步训练;为了 提高开放性和可重复性,OpenVLA 发布了基于公开数据训练的 7B 参数 VLA 模型,用于生成离散动作标记。由于动作 token 化对连续控制的限制, π 0 \pi_0 π0 和 DexVLA 提出使用基于扩散的解码器进行连续动作生成;Black 和 Wen 均建议改进预训练的 VLM RDT-1B,引入一个大型扩散组件(称为动作专家),该组件直接通过机器人演示进行训练;Pertsch 提出了一种完全自回归方法,使用一种新颖的动作 tokenizer,改进了传统的分箱方法,但仍然存在(自回归)推理速度慢的问题;为了 提高效率,TinyVLA在多模态数据上从头训练了一个轻量级的 sub-1B 模型,然后在机器人数据集上对其进行了微调,尽管缺乏对机器人数据的大规模预训练,这阻碍了其更广泛的泛化能力。SmolVLA 与大多数此类研究有着相似的目标,旨在开发和发布在训练和推理方面均性能卓越且高效的开源模型


3. SmolVLA: small, efficient and capable

Overview

SmolVLA 是一个轻量级 VLA,由一个 紧凑的预训练 VLM 和一个 经过流匹配训练的动作专家 组成。给定多幅图像和一条描述任务的语言指令,该模型会输出一组动作。它首先使用模仿学习在社区收集的数据集上进行预训练,然后在现实世界和模拟环境中进行评估。预训练数据旨在涵盖各种任务和行为,使模型能够学习可跨环境迁移的通用身体技能。在推理阶段,引入了一个 异步执行堆栈,将动作执行与感知和预测分离,从而实现更快、更灵敏的控制。

3.1 Model architecture

SmolVLA 由两个主要组件组成:(i) 一个预训练的 VLM,负责感知;(ii) 一个经过训练的行动专家。这两个组件相互关联,因为 VLM 处理状态输入以生成特征,这些特征用于指导行动专家,而行动专家则生成动作,进而改变输入到 VLM 的状态。VLM 处理感觉运动状态,包括来自多个 RGB 摄像头的图像,以及描述任务的语言指令。反过来,VLM 输出直接输入给行动专家的特征,行动专家则输出最终结果

Vision-language model (VLM)

利用预训练的视觉语言模型 (VLM) 作为感知机器人环境的主干。VLM 经过多种多模态数据的预训练,能够捕捉丰富的世界知识。为了保证效率和可访问性,选择了 SmolVLM-2,一个针对多图像和视频输入进行优化的高效模型。SmolVLM-2 依赖 SigLIP 为 SmolLM2 语言解码器编码视觉特征。在 SmolVLA 中,VLM 组件使用视觉编码器处理图像序列,并通过标记重排技术减少标记数量以提高效率。语言指令被标记为文本标记。感觉运动状态通过线性层投影为单个标记,以匹配语言模型的标记维度。最后,视觉、语言和状态标记被连接并传递给语言解码器。然后使用通过解码器层获得的结果来调节动作专家。

State, action, and feature projectors

在 SmolVLA 内部的各个点使用了线性投影层:(i) 投影状态以匹配 VLM 维度;(ii) 投影动作以匹配动作专家维度;(iii) 调整 VLM 特征以与动作专家维度保持一致

Visual tokens reduction

虽然高分辨率图像已被证明对 VLM 性能至关重要,但它会增加推理成本。为了保证效率,SmolVLM-2 采用图像平铺进行训练,除了全局图像外,还涉及处理同一图像的多个裁剪图像。为了加快推理速度,作者的模型 不使用平铺。仅使用全局图像,并进行像素重排操作,将视觉 tokens 数量限制为每帧 64 个。

Faster inference through layer skipping

为了加快推理速度,跳过了可变层模型 (VLM) 中的计算。先前的研究证明了 在预训练模型中跳过层数而不会导致性能显著下降的可能性。最近的研究表明,下游任务的最佳特征不一定来自 VLM 的最后一层。因此,动作专家可以使用指定层数 N 之前的所有特征,而不是最后一层的特征。在实践中,将 N 设置为总层数的一半 (N = L/2) 可以提供良好的速度和性能之间取得良好的平衡,有效地将 LLM 和动作专家的计算成本减半。

Flow matching action expert

动作专家 v θ v_{\theta} vθ 被训练用于根据 VLM 特征预测动作块 A t = ( a t , … , a t + n ) A_{t}=(a_{t},\dots,a_{t+n}) At=(at,,at+n)。与先前的研究一致,对 v θ v_{\theta} vθ 的实现依赖于 Transformer 架构。但与先前的 VLA 架构不同,这里交织了交叉注意力层和自注意力层,因此使用条件流匹配 Transformer 作为 v θ v_{\theta} vθ。动作专家的训练目标如下:

L τ ( θ ) = E p ( A t ∣ o t ) , q ( A t τ ∣ A t ) [ ∥ v θ ( A t τ , o t ) − u ( A t τ ∣ A t ) ∥ ] 2 \mathcal{L}^{\tau}(\theta)=\mathbb{E}_{p(A_{t}|o_{t}),q(A^{\tau}_{t}|A_{t})} [\|v_{\theta}(A^{\tau}_{t},o_{t})-u(A_{t}^{\tau}|A_{t})\|]^{2} Lτ(θ)=Ep(Atot),q(AtτAt)[vθ(Atτ,ot)u(AtτAt)]2

其中 o t o_{t} ot 表示从第 N 个 VLM 层的观测 o t o_t ot 中提取的 VLM 特征 A t τ = τ A t + ( 1 − τ ) ϵ , ϵ ∈ N ( 0 , I ) A^{\tau}_{t}=\tau A_{t}+(1-\tau)\epsilon, \epsilon\in N(0,I) Atτ=τAt+(1τ)ϵ,ϵN(0,I);具 v θ v_{\theta} vθ 被训练为从 VLM 特征和噪声动作 A t τ A^{\tau}_{t} Atτ 输出矢量场 u ( A t τ ∣ A t ) = ϵ − A t u(A^{\tau}_{t}|A_{t})=\epsilon-A_{t} u(AtτAt)=ϵAt。与 Black 等人 (2024) 的研究一致,从 Beta 分布中采样 τ \tau τ;为了提高推理效率,对 v θ v_{\theta} vθ 使用减小的隐藏层大小 0.75 × d 0.75 \times d 0.75×d,其中 d d d 是 VLM 的隐藏层维度。

Interleaved cross and causal self-attention layers

动作专家 v θ v_{\theta} vθ 会根据 VLM 特征生成动作块,在 SmolVLA 中,VLM 与动作专家之间的交互由注意力机制促进。与以往仅依赖自注意力 (SA) 或交叉注意力 (CA) 的研究不同,作者采用交错方法,每个块包含一个 CA 层或一个 SA 层。这种设计选择也不同于标准的 VLM 架构,在标准的 VLM 架构中,每个解码器块通常同时包含 SA 层和 CA 层。在动作专家的前向传递中,动作与 VLM 特征之间的交互通过注意力机制进行,将 token 投射到 query, key, value。在作者的设置中,CA 层交叉关注 VLM 的键和值,而 SA 层允许 $v_{\theta} 中的动作 token 相互关注;为 SA 层使用了因果注意力掩码,确保每个动作 token 只能关注块中过去的 token,从而避免未来动作的依赖性。经验表明,CA 层和 SA 层交错使用可以提高成功率并缩短推理时间,自注意力机制有助于使动作块 A 更加流畅,这在实际机器人上进行评估时尤为明显。

3.2 Pre-training data collected by the community

在机器人技术领域,可用于大规模预训练的数据量仍然比推动视觉和语言领域近期突破的数据量小几个数量级。例如,虽然自然语言基础模型可以受益于独特的文本界面和海量互联网数据,但由于 (i) 数据集之间的差异以及 (ii) 数据收集依赖于人类专家的远程操作,机器人数据集的集成和扩展显得十分复杂。此外,机器人形态、传感器、驱动模式、控制频率和数据格式的高度异构性导致了 “data islands” 的出现,这些分散的机器人数据集的集成极具挑战性。

在此背景下,低端机器人平台和标准化机器人库的出现直接缓解了数据异质性,为从业者提供了进入机器人领域的独特切入点。此外,个体从业者收集的开源数据贡献,为更大的机器人社区提供了社区数据集,这些数据集收集自各种现实环境,从学术实验室到家庭,这是通过开源技术实现机器人学习去中心化和规模化的更大努力的一部分。与遵循标准化协议的学术数据集不同,社区数据集自然涵盖了各种机器人实例、控制方案、摄像机视角和任务。社区数据集通过嘈杂的演示、异构环境、多样化的对象交互反映了现实世界的复杂性,可提供宝贵的预训练数据。本研究选择了来自 Hugging Face 的 481 个社区数据集的子集,并根据实例类型、事件计数、整体数据质量和帧覆盖率进行筛选 Table.1

在这里插入图片描述

Task annotation with VLM

依赖社区贡献的数据集会带来标准化挑战,任务注释(即用自然语言描述机器人在特定数据集中的预期行为)中观察到大量噪声。关键在于各种数据集包含模棱两可的占位符(例如 “task desc” ),过于模糊的命令(例如 “Hold” 或 “Up” ),或者完全缺乏指令。为了提高注释质量,使用了现成的 VLM (Qwen2.5-VL-3B-Instruct) 来自动生成简洁的任务描述。对于每个数据集,采样了具有代表性的帧,并将它们与原始指令一起提供。模型被要求生成一个简短的、以行动为导向的句子来总结该行为。完整的提示可在附录 A.1 中找到。

Camera viewpoint normalization

使用社区数据集的另一个挑战在于所使用的相机命名约定的高度可变性。笔记本电脑可能指的是顶视图、侧视图或腕戴式视图,具体取决于具体情况。作者发现这种不一致性在预训练过程中非常不利,而一致的相机排序对于在这种数据环境下进行训练非常有益。为了解决这一标准化挑战,作者 手动将每个相机映射到一个标准化的视图类型:优先考虑顶视图、腕戴式、侧视图,并分别将它们重命名为 OBS_IMAGE_1OBS_IMAGE_2OBS_IMAGE_3。对于包含其他视图的数据集,保留了顺序,但在训练期间删除了未使用的视图。未来的努力可能会使用 VLM 自动化此过程,或者提出/采用标准化的数据收集指南。

3.3 Asynchronous inference

现代视觉运动策略输出动作块序列 π ( o t ) = A t \pi(o_{t})=A_{t} π(ot)=At,其中 A t = ( a t , a t + 1 , … , a t + n ) A_{t}=(a_{t},a_{t+1},\dots,a_{t+n}) At=(at,at+1,,at+n) 是入队于动作队列的 n n n 个(远大于 1)低级命令序列,这些命令源自环境观测 o t o_{t} ot。通常机器人会执行整个动作块 A t A_{t} At,然后将新的观测 o t + n o_{t+n} ot+n 传递给策略 π \pi π 以预测下一个动作块。这会导致在每 n n n 个时间步捕获的观测值之间进行 开环推理。相关研究包括采用了一种不同的策略,机器人控制器交错执行块预测 A t ← π ( o t ) A_t←\pi(o_t) Atπ(ot) 和块消耗 a t ← P o p F r o n t ( A t ) a_t←PopFront(A_t) atPopFront(At)在每个时间步 t t t 计算一个新的动作块,并在重叠部分聚合预测的块。虽然自适应方法,每个时间步 o t o_t ot 的每个观测值都会被处理,但这种方法依赖于持续运行推理,这在资源受限的场景(例如边缘部署)中可能是难以承受的。

一种资源密集度较低的方法是 在预测新的动作块之前完全耗尽块 A A A,作者将这种策略称为 同步推理。同步推理可以高效地分配每个时间步的计算量,从而降低控制时的平均计算负担,但本质上会阻碍机器人系统的响应能力,由于机器人在计算 A 时处于空闲状态,从而引入盲滞。

在这里插入图片描述

作者通过将动作块预测 A A A ← P o p F r o n t ( A t ) ← PopFront(A_t) PopFront(At) 处的动作执行解耦,开发一个异步推理堆栈 Algorithm. 1,直接评估机器人系统由于动作开环而缺乏自适应性以及运行时的滞后问题。RobotClient 向 PolicyServer 发送一个观察值 o t o_t ot,并在推理完成后立即接收一个动作块 A t A_t At Fig.2,此过程中 控制循环仍在使用先前可用的队列时触发块预测,并在新队列可用时将其与新队列聚合,从而避免执行滞后;反过来,异步推理通过 增加处理观察值进行块预测的频率,收紧了动作预测和动作执行之间的循环。至关重要的是,将动作预测与动作执行解耦还可以直接在远程策略服务器上分配更多计算资源,并通过网络将动作发送给机器人客户端,这在资源受限的场景(例如低功耗机器人)中可能非常有效。

在这里插入图片描述

Implementation details

异步推理 (i) 通过更频繁地捕获观察结果来收紧控制回路,直接消除运行时的空闲间隙;(ii) 直接允许在比自主机器人平台上通常可用的计算资源更强大的计算资源上运行推理。

从算法上讲,在 RobotClient 端通过执行现有队列中的操作,直到队列中剩余操作数量的阈值条件 ( ∣ A t ∣ / n < g ) (∣A_t∣/n < g) (At/n<g) 满足时,捕获新的环境观测值并将其发送到 PolicyServer。为了避免冗余的服务器调用和运行时的不稳定行为,会在关节空间中比较观测值,并丢弃近似重复的观测值。如果两个观测值在关节空间中的距离小于预定阈值 ϵ ∈ R + ϵ\in\mathbb{R}_{+} ϵR+,则它们被视为近似重复。重要的是,当机器人客户端可用的队列最终为空时,无论相似性如何,都会处理最新的观测值。

异步推理的行为可以通过分析研究。首先,令 ℓ ℓ 为一个随机变量,用于模拟发送观测值 o o o 后接收动作块A所需的时间,即 (i). 在RobotClient 和 PolicyServer 之间发送观测值 o o o 的时间 t C → S t_{C→S} tCS;(ii). PolicyServer 上的推理延迟 ℓ S ℓ_S S;(iii). 在 PolicyServer 和 RobotClient 之间发送 A A A 的时间 t S → C t_{S→C} tSC 之和。假设相互独立, E [ ℓ ] = E [ t C → S ] + E [ ℓ S ] + E [ t S → C ] \mathbb{E}[ℓ] = \mathbb{E}[t_{C→S}] + \mathbb{E}[ℓ_S] + \mathbb{E}[t_{S→C}] E[]=E[tCS]+E[S]+E[tSC],可进一步简化为 E [ ℓ ] ≃ E [ ℓ S ] \mathbb{E}[ℓ] ≃ \mathbb{E}[ℓ_S] E[]E[S],假设通信时间 (i). 在两个方向上相等、(ii).相对于推理延迟可忽略不计,令 Δ t \Delta t Δt 为环境的控制周期。实际帧率为每秒 30 帧, Δ t = 33 \Delta t = 33 Δt=33 毫秒,当 g ≥ E [ l s ] / Δ t n g ≥ \frac{\mathbb{E}[l_s]/\Delta t}{n} gnE[ls]t时,可以避免运行时队列耗尽(即空闲等待新数据块),队列阈值 g g g 相对于 RobotClient 的操作可用性起着重要作用。

Fig.3 展示了在三个具有代表性的 g g g 值下,动作块 ∣ A t ∣ ∣A_t∣ At 的大小如何随时间演变,详细说明了以下关键场景:

在这里插入图片描述

  • Sequential limit ( g = 0 g=0 g=0):客户端在将新的观测转发到服务器之前耗尽整个块。在计算下一个数据块所需的往返延迟期间,队列为空,导致机器人无法执行任何操作。这重现了完全顺序部署的行为,平均空闲时间为 E [ ℓ S ] \mathbb{E}[ℓ_S] E[S] 秒;
  • Asynchronous inference ( g = 0.7 g=0.7 g=0.7):允许客户端在触发新动作队列 At 的推理之前消耗队列 A t − 1 A_{t-1} At1 中大约 1 − g = 0.3 1−g=0.3 1g=0.3 的一小部分,从而摊销计算量,同时防止队列清空。连续块之间的重叠提供了缓冲避免了建模错误,而无需承担 g = 1 g = 1 g=1 机制的全部成本。更新后的队列 A t A_t At 是通过在 A t − 1 A_{t-1} At1 和传入的 A ˉ t \bar{A}_t Aˉt 之间的重叠时间步上聚合队列获得;
  • ***Compute-intensive limit *** ( g = 1 g=1 g=1):作为一种极端情况,每个时间步都会发送一个观察值,队列几乎总是满的,只有由于 Δ t / E [ ℓ s ] < 1 \Delta t/\mathbb{E}[ℓ_s] < 1 Δt/E[s]<1 而出现的轻微锯齿状波动。虽然这种设置具有最高的响应速度,但它会导致每个控制周期进行一次前向传递,并且在有限的硬件上可能会非常昂贵。重要的是,由于客户端在服务器计算下一个块时正在处理操作,因此可用队列永远不会再次被填满;

Fig,3 (A) 强调了 g g g 所决定的权衡:较小的值会导致空闲时段,而 g ≈ 1 g ≈ 1 g1 则假设模型精度较高,并需要付出相当大的计算代价;选择 g ∈ ( 0 , 1 ) g\in(0,1) g(0,1) 可以在响应性和资源预算之间取得平衡。如果没有前面提到的相似性过滤器,机器人客户端平均每 ( 1 − g ) n ⋅ Δ t (1-g)n⋅\Delta t (1g)nΔt 秒就会发送一次观察值进行处理,平均每 ( 1 − g ) n ⋅ Δ t + E [ ℓ S ] (1-g)n⋅\Delta t+\mathbb{E}[ℓ_S] (1g)nΔt+E[S] 接收一个新的动作块。观察相似性过滤器的存在延长了处理时间,并有助于避免机器人因队列不断与传入的几乎相同的动作块集成而停滞。具体而言,Fig.3 (B) 会导致队列中充满传入的动作,除非从处理流水线中过滤掉近似重复的观察值。为了清晰起见,Fig.3 (B)中的红色箭头突出显示了绕过观察相似性机制的时间步,当队列结果为空时,强制处理(几乎相同的)观察。


4. Experiments

4.1 Experimental setup

在模拟和现实世界的机器人操作任务上评估了模型。为了在模拟环境中评估 SmolVLA,为 MetaWorld 收集了一个新数据集,其中包含 50 个任务中每个任务的 50 个演示;为了进行现实世界评估,收集了三个使用 SO-100 机械臂的数据集,以及一个使用 SO-101 机械臂的数据集,每个数据集对应一个不同的操作任务。每个数据集包含与一项任务相关的演示,5 个不同的起始位置各有 10 条轨迹,因此每个数据集总共包含 50 个演示。除非另有说明,SmolVLA 始终在多任务设置下进行训练。

Evaluation metrics

将成功率 (SR) 作为所有基准测试的主要指标。对于基于模拟的评估,SR 是二进制的,如果任务成功完成,则设置为 1,否则设置为 0。对于真实世界的评估,采用更细粒度的评分方法,将每个任务分解为子任务。例如,在拾取和放置任务中,为成功拾取魔方分配 0.5 分,为正确将其放入目标容器中额外分配 0.5 分。

Simulated environments

在两个成熟的多任务模拟基准测试中评估了 SmolVLA:LIBERO 和 Meta-World。LIBERO 评估四类(Spatial, Object, Goal, Long)的各种视觉运动技能,每类 10 个任务(共 40 个)。使用一个包含 1,693 个回合(涵盖所有任务)的数据集对每个任务进行 10 次试验,并根据二元完成标准报告平均成功率。Meta-World 评估了 50 个不同难度任务的泛化能力:easy, medium, hard, very hard 。使用包含 2,500 个情节(每个任务 50 个样本)的数据集,并参考了 LIBERO 的评估协议:每个任务进行 10 次试验,只有当任务完全完成时,试验才计为 1 分。

Real-world tasks

在真实环境中的 4 个数据集上对 SmolVLA 进行了评估,这些数据集已在 HuggingFace 上开源 Fig.4,针对 SO-100 机器人的 placing capabilities, stacking capabilities, sorting capabilities 以及 SO-101 平台的 pick and placing capabilities 进行了基准测试。SmolVLA 并未针对 SO101 的任何数据集进行预训练。

在这里插入图片描述

  • pick and place task:SmolVLA 被指示拾取魔方并将其放入盒子中。盒子体积小且位置固定,而魔方的起始位置在 5 种不同的起始条件下会发生变化。用精细的分数来评估任务的完成情况,成功抓取魔方得 0.5 分,成功将其放入盒子得 0.5 分;
  • stacking task:SmolVLA 需要将一个立方体叠放在另一个立方体之上。指示机器人拾取红色立方体并将其放在蓝色立方体之上。两个立方体的初始位置在不同场景中会有所不同。用精细的评分来评估任务完成情况,成功抓取顶部立方体得 0.5 分,成功将其放在底部立方体之上得 0.5 分;
  • sorting task:其视野更长,SmolVLA 必须根据颜色对立方体进行排序,按照指令将红色立方体放入右侧盒子,将蓝色立方体放入左侧盒子。立方体被放置在 5 个不同的位置。为了引入变化,立方体的颜色被翻转,每种颜色配置有 5 个场景,每个位置有 10 个演示。盒子的位置在所有演示中保持不变。用细粒度的分数来评估任务的完成情况,成功抓取任一立方体得 0.25 分,成功完成一次立方体-盒子匹配得 0.25 分,任务完成后得分为 0.25 × 4。Fig.4 (A) 展示了所有任务成功场景的初始帧和最终帧,以及 Hugging Face 上对应的数据集;

为了评估 SmolVLA 的泛化能力,作者还在不同的机器人实例和任务 8 上评估了模型。该任务类似于 “pick-place”,但使用的是小块而不是立方体。在这个任务中,机器人被指示将粉色乐高积木放入透明盒子中。这项任务需要更高的精度,尤其是在抓取小乐高积木时,同时考虑到盒子的透明度,还需要更先进的视觉能力。

4.2 Robots

在模拟和现实环境中,使用的机器人平台如下:

  • SO100 and SO101:标准开放式 SO-100 是一款低成本、可 3D 打印的机械臂,旨在提升机器人技术和机器人学习研究的可及性。SO-100 及其升级版 SO-101 均为用于基本操作任务的开源平台。每个机械臂具有六个自由度,并使用由位置指令控制的低成本伺服电机。SO101 拥有更优化的机械臂设计,可加快组装速度,并配备不同的电机,使其运动更流畅,更适合需要更高精度的任务;
  • Panda:Franka Emika Panda 是一款单臂 7 自由度扭矩控制机械臂,专为安全精准的操作而设计。其高分辨率关节传感和柔顺控制使其非常适合在模拟和现实环境中执行基于学习的操作任务。该机器人已在 LIBERO 模拟器中使用;
  • Swayer:是一款专为操作任务而设计的单四自由度控制机械臂。它用于 Meta-World 模拟器,其策略控制着机械手的位置和状态;

4.3 Implementation details

使用 LeRobot 进行实验,一个基于 PyTorch 的现实世界机器人框架。预训练期间,在所有社区数据集上训练 200,000 步;全局 batch_size 为 256;在 100 步预热后,使用余弦学习率策略,初始学习率为 1e-4,衰减至最低 2.5e-6;使用 AdamW 优化器, β 1 = 0.9 β_1 = 0.9 β1=0.9 β 2 = 0.95 β_2 = 0.95 β2=0.95;训练前,将图像尺寸调整为 512×512,以与 VLM 输入大小保持一致;使用 SmolVLM-2 作为 VLM 的主干模型;动作专家使用流匹配进行训练,输出 n = 50 n = 50 n=50 个动作的块。

评估阶段执行同步推理:模型仅在执行完整动作后才采样新的观测值。在模拟中通过采样新的观测值并在每次执行动作后预测新的动作来进行推理;

推理过程中 flow matching 固定为 10 步;仅训练动作专家模块,并保持 VLM 冻结。主模型包含 4.5 亿个参数,其中约 1 亿个参数专用于动作专家;仅使用 VLM 中大型语言模型 (LLM) 的前 16 层。为了在模拟基准上进行微调,训练了 100,000 步,批处理大小为 64;而对于实际任务,微调了 200,000 步。在实践中观察到该模型可以在不显著牺牲性能水平的情况下,以更少的步数进行训练。

除了保持紧凑的模型和减少的token数量外,还采用了多项优化措施来提升训练效率。利用 bfloat16 精度和 torch.compile(),JIT 将 PyTorch 代码编译成优化的内核;为了确保与这些优化兼容,保持固定的序列长度和 batch_size,丢弃 episode 中任何不符合完整批处理的多余帧;对于多GPU和多节点训练,利用Hugging Face的 Accelerate 库和混合精度,提供可扩展且内存高效的训练设置;为了适应大 batch_size,使用了4块GPU进行预训练,但由于模型规模较小因此可以轻松地在单块GPU上进行训练。总体而言,该项目消耗了大约 3万个GPU小时

4.4 Baselines

将模型与两个流行且强大的基线进行了比较,这两个基线均在 LeRobot 库中可用。

  • π 0 \pi_{0} π0:一个 VLA,它利用 VLM 和流匹配进行动作块预测。它的模型总大小为 33 亿个参数,并基于 10,000 小时的跨实体机器人数据进行了预训练。该模型架构基于 Paligemma,接收三幅 RGB 图像、感觉运动状态和一条语言指令作为输入;
  • ACT:是一个条件变分自编码器 (CVAE) 策略模型,其编码器-解码器 Transformer 架构包含约 8000 万个参数。ACT 使用在 ImageNet 上预训练的 ResNet 视觉编码器,而 CVAE 则从头开始训练。该模型生成动作块,并使用回归目标进行优化,直接预测连续动作。该模型接受一系列 RGB 图像和感觉运动状态;

4.5 Main results

本节将展示 SmolVLA 在真实世界和模拟环境中的主要结果。为了进行真实世界的评估,SmolVLA 在社区收集的数据集上进行了预训练。 π 0 \pi_{0} π0 在相应的目标数据集上进行了微调,而 ACT 则在每个数据集上从头开始训练。

Simulation Evaluation

Table.2 中,使用多任务训练设置在两个主要的模拟基准测试集 LIBERO 和 Meta-World 上进一步评估了 SmolVLA。SmolVLA 的表现优于其他基于 VLA 的方法,例如 Octo 和 OpenVLA (Kim et al., 2024),以及 LIBERO 和 Meta-World 上的扩散策略基线;还与 π 0 \pi_{0} π0 的两个变体进行了比较:一个变体由视觉语言模型 Paligemma-3B 初始化,另一个变体在机器人数据集上进行了进一步预训练(使用作者发布的权重初始化)。尽管 SmolVLA 未在机器人数据上进行预训练,但它的表现始终优于使用 VLM 初始化的 π 0 \pi_0 π0,并且与机器人预训练版本不相上下。需要注意的是,与 π 0 \pi_0 π0 相比,SmolVLA 的训练速度提高了约 40%,内存消耗减少了 6 倍

在这里插入图片描述

Real-World Evaluation

Table.3中在四项实际任务上评估了 SmolVLA。在 SO101 基准测试中,该模型基于三个数据集的组合进行训练,并报告了每个任务的成功率以及平均成功率。SmolVLA 的表现优于 ACT(后者在每个任务上都进行单独训练)和 π 0 \pi_0 π0(一个参数数量明显更大的模型,约为 7 倍)。同样,在 SO101 基准测试中 Table.4,SmolVLA 在分布内和分布外 (OOD) 设置中均优于 ACT。在 OOD 评估中,乐高物体被放置在训练过程中从未遇到过的新位置。

在这里插入图片描述

Effect of pretraining and multitask learning

Table.5中进一步评估了预训练 SmolVLA 在社区数据集上对实际性能的影响,并探讨了多任务微调是否能为 SmolVLA 带来额外的优势。结果表明,在社区数据集上进行预训练可显著提升性能(从 51.7 提升至 78.3)。此外,多任务微调也带来了进一步的提升,这凸显了跨任务知识迁移的重要性。

在这里插入图片描述

4.6 Asynchronous inference

在两种推理模式下评估了 SmolVLA:同步异步。同步模式反映了机器人技术中的一种标准评估设置,即策略预测一组动作,这些动作在下一个预测周期开始之前已完全执行。相比之下,异步模式将动作执行与策略推理解耦,从而允许预测和控制并行运行。

Results

对于两种推理模式,都报告了成功率和策略速度 Fig.5。为了评估速度,设计了两个使用拾取-放置任务的实验。在第一个实验中,测量了 10 次试验和 5 种不同魔方位置完成任务所需的时间;在第二个实验中,设定一个时间限制(例如 60 秒),并计算从不同位置成功拾取并放入盒子的魔方数量。计时从机器人开始移动时开始。如Fig.5 (a) 所示,两种推理模式在三个实际任务中都取得了相当的成功率。然而,异步推理表现出显著的速度优势 Fig.5 (b)。它平均在 9.7 秒内完成任务,而同步设置下则需要 13.75 秒(大约快 30%)。此外,在固定时间评估下,异步模式允许机器人完成 19 次成功的拾取-放置循环,而同步设置下只有 9 次 Fig.5 (c)。从定性角度来看,观察到异步推理能够实现更快的反应速度和更强的环境变化适应性。机器人对物体位置变化和外部干扰表现出更强的鲁棒性,并且由于避免了预测滞后,总体而言,能够显著提高相同任务的解决次数 Fig.5

在这里插入图片描述

4.7 Ablation Study

作者进行了全面的消融研究,以评估最终 SmolVLA 模型背后的关键设计选择。所有消融均在 LIBERO 基准上进行。除非另有说明,否则模型均从头开始训练,无需使用机器人数据进行任何预训练。VLM 主干模型被冻结,只有动作专家模型从头开始训练。

Cross-attention (CA) vs. self-attention (SA) between VLM and v θ v_θ vθ

比较了 VLM 特征与行动专家的交互方式,比较了因果自注意力 (SA)、交叉注意力 (CA) 以及作者提出的交错式 SA+CA 设置。在 SA 设置中,动作标记使用因果掩码相互关注;而在 CA 设置中,VLM 特征在 v θ v_θ vθ 中充当注意力的键和值。如 Table.6 所示,交叉注意力的表现显著优于自注意力。两者交错使用可获得最佳效果,凸显了它们的互补优势。

在这里插入图片描述

Causal vs. bidirectional attention on action tokens within v θ v_θ vθ

接下来的研究在行动专家 v θ v_θ vθ 中,行动 token 应如何相互关注。比较了以下几种情况:(i) 行动标记之间无交互(纯 CA);(ii) 因果自注意力;以及 (iii) 双向自注意力。Table.7 显示,因果自注意力表现最佳,而双向交互则损害了性能;无交互(仅 CA)的设置表现相当出色,这表明仅对 VLM 特征进行条件反射即可取得良好的效果。

在这里插入图片描述

Using early LLM layers in the VLM

VLM 主干由一个视觉编码器和一个 LLM 组成。为了提高 SmolVLA 的效率,研究了仅使用前 N < L N < L N<L 层的特征,而不是所有可用的 L 个 LLM 层或所有特征。在开始训练之前,丢弃了 VLM 的前 L − N L - N LN 层。如 Table.8 所示,仅使用 VLM 层的前半部分可以在性能和计算能力之间取得良好的平衡;还测试了一个每隔一层采样一次 VLM 层的变体(Skip % 2),将深度减半,同时保留了完整的模型容量。Table.8 表明,每隔一层跳过一次 VLM 层的性能优于训练一个较小的 VLM,但不如直接使用前 N < L N < L N<L 层。

在这里插入图片描述

Action Expert Capacity

受效率论证的启发,研究了改变行动专家的隐藏层维度,以探索模型容量对性能的影响。给定 VLM 维度 d d dTable.9 显示,将专家的隐藏层大小降低至 0.75 × d 0.75×d 0.75×d,可以在性能和效率之间取得良好的平衡。

在这里插入图片描述

Regression vs. Flow Matching training objectives

比较了训练动作专家 v θ v_θ vθ 的两个学习目标:流匹配以及基于预测动作块与真实动作块的标准回归 L 1 L1 L1 损失。Table.10 显示,流匹配的表现显著优于回归,这表明流匹配在建模复杂的多模态动作分布时提供了更好的归纳偏差。

在这里插入图片描述

States to the VLM or Action Expert?

比较了两种变体:(i) 将感觉运动状态输入 VLM(通过将它们投影到 token 空间);(ii) 将它们直接传递给动作专家。Table.11 表明,在 VLM 中加入状态信息可显著提高 CA 和 SA 变体的性能。

在这里插入图片描述

Action chunk size n n n

模型预测动作块,每个块由 n n n 个时间步组成。研究了改变 n n n 对整体性能的影响。较大的 n n n 允许机器人在推理时执行更多动作,然后才需要处理新的观测值并预测下一个块;Table.12 显示,非常小和非常大的 n n n 值都会降低性能。10~50 之间的块大小在机器人的反应性和效率之间取得了良好的平衡。

在这里插入图片描述

Number of executed actions before updating observations

为了在实际部署中提高推理速度,机器人可以在处理新的观测值之前,从预测的块中执行多个动作,从而在当前块耗尽之前将其覆盖。尽管执行整个块可以加快推理速度,但也会降低机器人对环境变化的响应能力。Table.13 表明,更频繁地更新观测值可以显著提高成功率,突显了推理速度和控制精度之间的权衡。

在这里插入图片描述


5. Discussion

作者推出了一款紧凑、高效、轻量级的 VLA 模型 SmolVLA。该模型可在消费级硬件上运行,可控制低成本机器人,并可与体型更大的 VLA 相媲美。SmolVLA 的架构旨在实现高效的训练和推理,同时不影响成功率。此外,还提出了一种异步推理栈,以便在实际操作任务中实现更快的适应和响应速度。该推理策略与模型无关,可与任何输出动作块的策略集成。对所提架构进行了深入的分析和探讨,为成果提供了支持,这些分析可以指导从业者和研究人员进一步改进模型架构。最后,开源了模型、代码库、训练数据集、机器人硬件,并提供了详细的说明,以促进模型的完全复现。

5.1 Limitations

本文还存在一些局限性:

  • Dataset diversity and cross-embodiment training:预训练目前使用从单一机器人类型 SO100 收集的数据集。尽管已证明该模型可以针对不同的机器人进行微调 Table.4,并且其性能优于现有基线模型,但作者认为,整合来自多个机器人实例的训练数据,可能对提升模型泛化到新机器人平台的能力至关重要;
  • Dataset size and scalability:用于训练的数据集包含约 2.3 万条轨迹,比典型的 VLA 训练方案中使用的数据集小得多。例如,OpenVLA 使用约 100 万条轨迹。扩大数据集规模可以显著提升模型的性能,并提升其在更广泛的任务和环境中的泛化能力;
  • Model size and hardware efficiency:SmolVLA 的参数数量不到 5 亿,能够在消费级硬件上进行快速推理。虽然这种效率是有益的,但探索在不牺牲速度或可访问性的情况下进一步扩展这些架构的方法是未来研究的一个重要方向;
  • Choice of VLM backbone:依赖于现成的 VLM 主干网络,该主干网络主要针对文档阅读和 OCR 任务进行预训练。然而,目前尚不清楚这些 VLM 是否适合现实世界的机器人交互场景。未来的工作可以探索其他或更专业的预训练策略,以使 VLM 主干网络更好地适应机器人环境的特殊需求;
  • Multimodal and robotics data joint training:将机器人专用数据和更广泛的多模态数据集的共享训练相结合,有可能提升泛化能力和指令执行能力。这种联合训练可以带来更稳健、适应性更强的 VLA;
  • Task complexity and longer horizon:虽然 SmolVLA 在相对简单和短期任务上表现出色,但将其扩展到解决长期问题仍然是一个重大挑战。引入分层策略或多级规划机制可能有助于解决这种复杂性;
  • Learning paradigms: Imitation vs. Reinforcement Learning:目前的方法主要依赖于模仿学习。然而,探索用于 VLA 的强化学习技术,尤其是在处理复杂或长期任务方面,可以带来显著的性能提升和更灵活的策略适应;
Logo

立足具身智能前沿赛道,致力于搭建全球化、开源化、全栈式技术交流与实践共创平台。

更多推荐