SpatialVLA

GitHub
681 47 简单 1 次阅读 4天前图像
AI 解读 由 AI 自动生成,仅供参考

SpatialVLA 是一款专为机器人操作设计的空间增强型视觉 - 语言 - 动作模型,已在 RSS 2025 会议上获得认可。它基于 110 万段真实机器人操作数据训练而成,旨在解决传统机器人在理解复杂三维空间关系及执行精细物理任务时的难题。通过深度融合视觉感知、自然语言指令与机械臂动作控制,SpatialVLA 能够更精准地理解“在哪里”以及“如何操作”,从而在多样化的评估中展现出业界领先的性能。

该工具特别适合机器人领域的研究人员、算法工程师及开发者使用。无论是希望快速复现前沿成果,还是打算利用自定义数据集进行微调以适配特定场景,用户都能从中受益。SpatialVLA 的技术亮点在于其高效的空间表征能力,它不仅大幅提升了推理速度,还显著减少了生成每个动作所需的计算令牌数量,降低了硬件门槛(仅需约 8.5GB 显存即可运行)。此外,项目完全基于 HuggingFace Transformers 构建,代码简洁且易于部署,甚至提供了基于 LeRobot 的进阶版本以支持多视角输入和更流畅的数据加载流程,是探索具身智能理想的开源基座。

使用场景

某智能仓储团队正致力于部署自主移动机器人,以执行复杂的“根据自然语言指令在杂乱货架间抓取并搬运特定货物”任务。

没有 SpatialVLA 时

  • 空间感知能力弱:传统视觉 - 语言模型难以精准理解物体间的三维相对位置,导致机械臂在密集货架中频繁发生碰撞或抓空。
  • 数据训练成本高:缺乏大规模真实机器人交互数据支撑,团队需耗费数月采集和标注自有数据,且模型泛化性差,换个仓库布局就失效。
  • 推理延迟严重:现有方案生成动作序列时需要大量 Token,导致决策速度慢,无法满足物流分拣对实时性的严苛要求。
  • 部署门槛极高:代码库依赖复杂、环境配置繁琐,算法工程师将大量时间浪费在解决依赖冲突而非优化业务逻辑上。

使用 SpatialVLA 后

  • 空间定位精准:SpatialVLA 内置的空间增强表示让机器人能精确判断货物深度与遮挡关系,在杂乱环境中抓取成功率显著提升。
  • 开箱即用的泛化力:直接加载基于 110 万条真实机器人片段预训练的模型,无需从头训练即可适应新场景,大幅缩短项目落地周期。
  • 高效实时决策:凭借更少的 Token 生成每个动作,SpatialVLA 实现了更快的推理速度,确保机器人在高速流转的生产线上反应敏捷。
  • 极简集成体验:仅依赖 HuggingFace Transformers 即可运行,简洁的代码结构让团队能在数小时内完成从模型加载到真机部署的全流程。

SpatialVLA 通过融合大规模真实空间数据与高效的架构设计,彻底解决了具身智能机器人在复杂物理世界中“看不清、动不准、跑得慢”的核心难题。

运行环境要求

操作系统
  • Linux
GPU
  • 必需 NVIDIA GPU
  • 推理需 8.5GB 显存(支持 bfloat16)
  • 预训练建议使用 64 张 A100 GPU
  • 微调建议使用 4 或 8 张 A100 GPU
内存

未说明(建议充足以缓存大量数据,可选安装 tcmalloc 优化内存管理)

依赖
notes1. 模型骨干为 PaLiGemma2,强制要求 transformers 版本 >= 4.47.0。 2. 运行时会在 CPU 缓存大量数据,推荐安装 google-perftools (libtcmalloc) 以优化内存分配(非强制但建议)。 3. 使用了自定义版本的 dlimp 库以支持随机种子复现,若自动安装失败需手动从指定仓库安装。 4. 预训练需准备 Open X-Embodiment 和 RH20T 数据集并转换为 RLDS 格式。 5. 代码主要基于 HuggingFace Transformers,部署相对简单。
python3.10+
torch
transformers>=4.47.0
PIL
dlimp (custom version)
SpatialVLA hero image

快速开始

SpatialVLA: 探索视觉-语言-动作模型的空间表征(RSS 2025)

一个基于110万次真实机器人演示训练的空间增强型视觉-语言-动作模型。🤗 完全基于Hugging Face,代码简洁且性能高效。

Delin Qu*1,2, HaomingSong*1,3, Qizhi Chen*1,4, Dong Wang†1, Yuanqi Yao1, X. Ye1, Y. Ding1, Z. Wang1, Jiayuan Gu5, Bin Zhao†1, Xuelong Li1,6 上海人工智能实验室1, 复旦大学2, 上海交通大学3, 浙江大学4, 上海科技大学5, TeleAI6

[📄论文] [🔥项目页] [📖 文档] [🚀 快速入门] [🤗 模型库] [✅ 性能] [🙋 常见问题]

[🔥 预训练] [🚀 微调] [🎄 自定义数据集]

perform

新闻 🚀🚀🚀

  • 2025/01/29: 我们发布了SpatialVLA 1.0。SpatialVLA在多种评估中均达到最先进水平,并且以更少的动作令牌实现了显著更快的推理速度。
  • 2025/02/06: 我们发布了用于SpatialVLA的SimplerEnv评估代码。请参考DelinQu/SimplerEnv-OpenVLA,并确保transformers >= 4.47.0
  • 2025/03/16: 简化了代码结构,并修复了#19中的依赖冲突问题。

[!NOTE] 🔥 SpatialVLA的高级版本正在开发中!它利用lerobot来简化和加速数据加载,支持多视角和状态输入,并具有更加精简的代码结构和更强的性能!请查看lerobot分支

文档

🚀 快速入门

[!TIP] 在运行过程中,大量数据会被缓存在CPU内存中。为了更好地管理和分配内存,我们已将内存管理工具库替换为tcmalloc

对于拥有sudo权限的用户,可以使用sudo apt-get install google-perftools安装tcmalloc,并在/usr/lib/x86_64-linux-gnu/usr/lib中找到libtcmalloc.so.4库文件。

对于没有sudo权限的用户,可以从官方仓库下载适合您操作系统的版本,并手动安装。

此步骤并非必需,您可以根据个人内存需求选择是否执行。

SpatialVLA完全依赖于Hugging Face Transformers 🤗,部署极其简便。如果您的环境支持transformers >= 4.47.0,可以直接使用以下代码加载模型并进行推理。(需要8.5GB显存)。

import torch
from PIL import Image
from transformers import AutoModel, AutoProcessor

model_name_or_path="IPEC-COMMUNITY/spatialvla-4b-224-pt"
processor = AutoProcessor.from_pretrained(model_name_or_path, trust_remote_code=True)
model = AutoModel.from_pretrained(model_name_or_path, trust_remote_code=True, torch_dtype=torch.bfloat16).eval().cuda()

image = Image.open("example.png").convert("RGB")
prompt = "机器人应该采取什么行动来拿起杯子?"
inputs = processor(images=[image], text=prompt, return_tensors="pt")
generation_outputs = model.predict_action(inputs)

actions = processor.decode_actions(generation_outputs, unnorm_key="bridge_orig/1.0.0")
print(actions)

如果您想对模型进行微调或预训练,需要安装必要的包并从Hugging Face模型库下载模型。SpatialVLA的VLM骨干是PaLiGemma2,要求transformers >= 4.47.0。因此,请创建一个Python >= 3.10的环境。

git clone git@github.com:SpatialVLA/SpatialVLA.git --depth 1
conda create -n spatialvla python=3.10
conda activate spatialvla

requirements.txt文件中安装所需包。请注意,我们使用自定义的dlimp来支持种子设置,以提高实验的可重复性。如果遇到任何问题,请手动从dlimp_custom下载并安装dlimp

pip install -r requirements.txt

🌟 从头开始预训练

SpatialVLA使用来自OXE和RH20T数据集的110万次真实机器人演示,在由64块A100 GPU组成的集群上进行了约10天的预训练,批次大小为2048。您可以使用以下命令从头开始预训练模型。在运行脚本之前,请下载Open X-Embodiment数据集和RH20T数据集(可选)。此外,请按照moojink/rlds_dataset_builderspatialvla/rh20t中的说明对数据集进行过滤或转换为RLDS格式。

# 下载paligemma2和zoe深度
bash scripts/hf_download.sh

# torchrun
bash scripts/spatialvla_4b_pretrain/torchrun_pretrain.sh

# 或者在slurm集群上
bash scripts/spatialvla_4b_pretrain/slurm_pretrain.sh

🌟 从SpatialVLA微调

我们的大多数微调实验都是在4或8块A100 GPU上使用LoRA进行的。您可以使用以下脚本进行全参数或LoRA微调。对于使用小数据集的真实世界实验,我们更倾向于使用LoRA进行微调。

# 全参数微调
bash scripts/spatialvla_4b_finetune/finetune_full.sh

# LoRA微调
bash scripts/spatialvla_4b_finetune/finetune_lora.sh

🌟 SimplerEnv 基准测试

我们基于 DelinQu/SimplerEnv-OpenVLA 发布了 SpatialVLA 的 SimplerEnv 评估代码。请按照 DelinQu/SimplerEnv-OpenVLA 的说明安装 simpler_env 环境,并确保 transformers >= 4.47.0。有关模型和数据集的设置,请参阅 模型库。在安装完所有依赖项后,您可以通过以下命令进行评估:

# 在 SimplerEnv-OpenVLA 项目目录下
bash scripts/run_spatialvla.sh

注意:与大多数论文(例如 HPT 和 TraceVLA)类似,我们在评估中省略了 打开顶抽屉并放置苹果 这一任务,因为绝大多数策略在此任务上的得分接近于零。

🎄 使用自定义数据集

若要使用不属于 OXE 的自定义数据集进行训练,我们建议将其转换为 RLDS 格式,因为该格式与我们的框架直接兼容。

数据集转换完成后,您需要修改以下文件:

  • data/oxe/mixtures.py:在 OXE_NAMED_MIXTURES 字典中为您的数据集定义一个新的混合配置。
  • data/oxe/configs.py:在 OXE_DATASET_CONFIGS 字典中添加一个新配置,指定您数据集的观测空间和动作空间。
  • data/oxe/transforms.py:为您的数据集定义一个新的数据集转换函数,并将其添加到文件底部的 OXE_STANDARDIZATION_TRANSFORMS 注册表中。

🤗 模型库

模型名称 骨干网络 VLA 模型 备注
SpatialVLA-4B-224-pt google/paligemma2-3b-pt-224 spatialvla-4b-224-pt 在 openx 和 rh20t 上预训练,表 I 和 II 零样本,图 5 和 7
SpatialVLA-4B-mix-224-pt spatialvla-4b-224-pt spatialvla-4b-mix-224-pt 在 fractal 和 bridge 混合数据集上微调,图 5 和 7
spatialvla-4b-224-sft-bridge spatialvla-4b-224-pt spatialvla-4b-224-sft-bridge 在 bridge 数据集上微调,于 simple-env widowx-robot 上测试,表 I 微调
spatialvla-4b-224-sft-fractal spatialvla-4b-224-pt spatialvla-4b-224-sft-fractal 在 fractal 数据集上微调,于 simple-env google-robot 上测试,表 II 微调

✅ 模拟与真实环境中的性能

[!NOTE] SimplerEnv 在 Google Robot 任务上的评估结果。

模型 视觉匹配 变体聚合
拿起可乐罐 靠近移动 打开/关闭抽屉 #平均 拿起可乐罐 靠近移动 打开/关闭抽屉 #平均
RT-1 (初始) 2.7% 5.0% 13.9% 6.8% 2.2% 4.0% 6.9% 4.2%
RT-1 (15%) 71.0% 35.4% 56.5% 60.2% 81.3% 44.6% 26.7% 56.2%
RT-1 (收敛) 85.7% 44.2% 73.0% 74.6% 89.8% 50.0% 32.3% 63.3%
HPT 56.0% 60.0% 24.0% 46.0% -- -- 31.0% 45.0%
TraceVLA 28.0% 53.7% 57.0% 42.0% 60.0% 56.4% 29.4% 39.6%
RT-1-X 56.7% 31.7% 59.7% 53.4% 49.0% 32.3% 35.3% 64.3%
RT-2-X 78.7% 77.9% 25.0% 60.7% 82.3% 79.2% -- --
Octo-Base 17.0% 4.2% 22.7% 16.8% 0.6% 3.1% 1.1% 1.1%
OpenVLA 16.3% 46.2% 35.6% 27.7% 54.5% 47.7% 17.7% 39.8%
RoboVLM (零样本) 72.7% 66.3% 26.8% 56.3% 68.3% 56.0% 8.5% 46.3%
RoboVLM (微调) 77.3% 61.7% 43.5% 63.4% 75.6% 60.0% 10.6% 51.3%
SpatialVLA (零样本) 81.0% 69.6% 59.3% 71.9% 89.5% 71.7% 36.2% 68.8%
SpatialVLA (微调) 86.0% 77.9% 57.4% 75.1% 88.0% 72.7% 41.8% 70.7%

[!NOTE] SimplerEnv 在 WidowX Robot 任务上的评估结果。

模型 把勺子放在毛巾上 把胡萝卜放在盘子上 把绿色积木叠在黄色积木上 把茄子放入黄色篮子 #总体平均
抓取勺子 成功 抓取胡萝卜 成功 抓取绿色积木 成功 抓取茄子 成功
RT-1-X 16.7% 0.0% 20.8% 4.2% 8.3% 0.0% 0.0% 0.0% 1.1%
Octo-Base 34.7% 12.5% 52.8% 8.3% 31.9% 0.0% 66.7% 43.1% 16.0%
Octo-Small 77.8% 47.2% 27.8% 9.7% 40.3% 4.2% 87.5% 56.9% 30.0%
OpenVLA 4.1% 0.0% 33.3% 0.0% 12.5% 0.0% 8.3% 4.1% 1.0%
RoboVLM(零样本) 37.5% 20.8% 33.3% 25.0% 8.3% 8.3% 0.0% 0.0% 13.5%
RoboVLM(微调) 54.2% 29.2% 25.0% 25.0% 45.8% 12.5% 58.3% 58.3% 31.3%
SpatialVLA(零样本) 25.0% 20.8% 41.7% 20.8% 58.3% 25.0% 79.2% 70.8% 34.4%
SpatialVLA(微调) 20.8% 16.7% 29.2% 25.0% 62.5% 29.2% 100.0% 100.0% 42.7%

[!NOTE] LIBERO 模拟基准测试结果。

模型 LIBERO-Spatial LIBERO-Object LIBERO-Goal LIBERO-Long 平均
SR(↑) 排名(↓) SR(↑) 排名(↓) SR(↑) 排名(↓) SR(↑) 排名(↓) SR(↑) 排名(↓)
从头开始的扩散策略 78.3 ± 1.1% 5 92.5 ± 0.7% 1 68.3 ± 1.2% 5 50.5 ± 1.3% 5 72.4 ± 0.7% 5
经过微调的 Octo 78.9 ± 1.0% 4 85.7 ± 0.9% 4 84.6 ± 0.9% 1 51.1 ± 1.3% 4 75.1 ± 0.6% 3
经过微调的 OpenVLA 84.7 ± 0.9% 2 88.4 ± 0.8% 3 79.2 ± 1.0% 2 53.7 ± 1.3% 3 76.5 ± 0.6% 2
经过微调的 TraceVLA 84.6 ± 0.2% 3 85.2 ± 0.4% 5 75.1 ± 0.3% 4 54.1 ± 1.0% 2 74.8 ± 0.5% 4
经过微调的 SpatialVLA 88.2 ± 0.5% 1 89.9 ± 0.7% 2 78.6 ± 0.6% 3 55.5 ± 1.0% 1 78.1 ± 0.7% 1

[!NOTE] 零样本机器人控制在真实世界 WidowX 机器人上的评估。

perform

[!NOTE] 空间理解能力评估。

perform

[!NOTE] 在 Franka 机器人上适应新的机器人设置。

perform

待办事项

  • 发布 SpatialVLA 系列的预训练/微调代码。
  • 发布 SpatialVLA 的代码、模型和自定义数据。
  • 发布 SpatialVLA 系列的 SimplerENV 评估代码。
  • 发布 SpatialVLA2

🤗 常见问题解答

如果您遇到任何问题,请随时在 GitHub 上提交问题或通过讨论区联系我们。我们非常感谢您的反馈和贡献!🚀

许可证

本项目采用 MIT 许可证发布。本项目的部分内容包含来自其他来源的代码和模型,这些内容受其各自许可证的约束。

引用

如果您在研究中发现本项目有用,请考虑引用:

@article{qu2025spatialvla,
  title={SpatialVLA: 探索视觉-语言-动作模型的空间表征},
  author={Qu, Delin 和 Song, Haoming 和 Chen, Qizhi 和 Yao, Yuanqi 和 Ye, Xinyi 和 Ding, Yan 和 Wang, Zhigang 和 Gu, JiaYuan 和 Zhao, Bin 和 Wang, Dong 等},
  journal={arXiv 预印本 arXiv:2501.15830},
  year={2025}
}

致谢

SpatialVLA 的构建参考了以下项目的代码:InternVLGoogle Paligemma2TransformersOpenVLAZoeDepth。感谢他们的出色工作!

常见问题

相似工具推荐

openclaw

OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你

349.3k|★★★☆☆|2周前
Agent开发框架图像

n8n

n8n 是一款面向技术团队的公平代码(fair-code)工作流自动化平台,旨在让用户在享受低代码快速构建便利的同时,保留编写自定义代码的灵活性。它主要解决了传统自动化工具要么过于封闭难以扩展、要么完全依赖手写代码效率低下的痛点,帮助用户轻松连接 400 多种应用与服务,实现复杂业务流程的自动化。 n8n 特别适合开发者、工程师以及具备一定技术背景的业务人员使用。其核心亮点在于“按需编码”:既可以通过直观的可视化界面拖拽节点搭建流程,也能随时插入 JavaScript 或 Python 代码、调用 npm 包来处理复杂逻辑。此外,n8n 原生集成了基于 LangChain 的 AI 能力,支持用户利用自有数据和模型构建智能体工作流。在部署方面,n8n 提供极高的自由度,支持完全自托管以保障数据隐私和控制权,也提供云端服务选项。凭借活跃的社区生态和数百个现成模板,n8n 让构建强大且可控的自动化系统变得简单高效。

184.7k|★★☆☆☆|今天
数据工具开发框架Agent

AutoGPT

AutoGPT 是一个旨在让每个人都能轻松使用和构建 AI 的强大平台,核心功能是帮助用户创建、部署和管理能够自动执行复杂任务的连续型 AI 智能体。它解决了传统 AI 应用中需要频繁人工干预、难以自动化长流程工作的痛点,让用户只需设定目标,AI 即可自主规划步骤、调用工具并持续运行直至完成任务。 无论是开发者、研究人员,还是希望提升工作效率的普通用户,都能从 AutoGPT 中受益。开发者可利用其低代码界面快速定制专属智能体;研究人员能基于开源架构探索多智能体协作机制;而非技术背景用户也可直接选用预置的智能体模板,立即投入实际工作场景。 AutoGPT 的技术亮点在于其模块化“积木式”工作流设计——用户通过连接功能块即可构建复杂逻辑,每个块负责单一动作,灵活且易于调试。同时,平台支持本地自托管与云端部署两种模式,兼顾数据隐私与使用便捷性。配合完善的文档和一键安装脚本,即使是初次接触的用户也能在几分钟内启动自己的第一个 AI 智能体。AutoGPT 正致力于降低 AI 应用门槛,让人人都能成为 AI 的创造者与受益者。

183.6k|★★★☆☆|今天
Agent语言模型插件

stable-diffusion-webui

stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。

162.1k|★★★☆☆|2周前
开发框架图像Agent

ComfyUI

ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。

109.2k|★★☆☆☆|2天前
开发框架图像Agent

gemini-cli

gemini-cli 是一款由谷歌推出的开源 AI 命令行工具,它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言,它提供了一条从输入提示词到获取模型响应的最短路径,无需切换窗口即可享受智能辅助。 这款工具主要解决了开发过程中频繁上下文切换的痛点,让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用,还是执行复杂的 Git 操作,gemini-cli 都能通过自然语言指令高效处理。 它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口,具备出色的逻辑推理能力;内置 Google 搜索、文件操作及 Shell 命令执行等实用工具;更独特的是,它支持 MCP(模型上下文协议),允许用户灵活扩展自定义集成,连接如图像生成等外部能力。此外,个人谷歌账号即可享受免费的额度支持,且项目基于 Apache 2.0 协议完全开源,是提升终端工作效率的理想助手。

100.8k|★★☆☆☆|1周前
插件Agent图像