❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发感兴趣,我会每日分享大模型与 AI 领域的开源项目和应用,提供运行实例和实用教程,帮助你快速上手AI技术!
🥦 AI 在线答疑 -> 智能检索历史文章和开源项目 -> 尽在微信公众号 -> 搜一搜:蚝油菜花 🥦
🎯 “机器人新革命!SpatialVLA 让 AI 轻松掌控 3D 空间,零样本泛化能力惊艳全场!”
大家好,我是蚝油菜花。你是否也遇到过——
- 👉 机器人在复杂环境中难以精准操作,任务失败率高?
- 👉 不同机器人平台需要重新训练模型,耗时耗力?
- 👉 3D 空间理解能力不足,导致抓取、放置等任务难以完成?
今天揭秘的 SpatialVLA,用 AI 彻底颠覆机器人操作方式!这个由上海 AI Lab、中国电信人工智能研究院和上海科技大学等机构联合推出的新型空间具身通用操作模型,基于百万真实数据预训练,赋予机器人强大的 3D 空间理解能力,支持跨平台泛化控制。无论是工业制造、物流仓储,还是医疗辅助,SpatialVLA 都能轻松应对复杂环境和多任务场景。接下来,我们将深入解析它的核心功能和技术原理,带你一探究竟!
🚀 快速阅读
SpatialVLA 是一款基于百万真实数据预训练的空间具身通用操作模型。
- 核心功能:支持零样本泛化控制、高效适应新场景、强大的空间理解能力、跨机器人平台的通用性以及快速推理与高效动作生成。
- 技术原理:采用 Ego3D 位置编码、自适应动作网格、空间嵌入适应等技术,实现跨平台的泛化控制和高效微调。
SpatialVLA 是什么

SpatialVLA 是上海 AI Lab、中国电信人工智能研究院和上海科技大学等机构共同推出的新型空间具身通用操作模型。它基于百万真实数据预训练,为机器人赋予通用的 3D 空间理解能力,支持跨平台的泛化控制。
SpatialVLA 通过 Ego3D 位置编码将 3D 空间信息与语义特征融合,用自适应动作网格将连续动作离散化,实现跨机器人平台的泛化控制。该模型在大规模真实机器人数据上预训练,展现出强大的零样本泛化能力和空间理解能力,在复杂环境和多任务场景中表现突出。
SpatialVLA 的主要功能
- 零样本泛化控制:在未见过的机器人任务和环境中直接执行操作,无需额外训练。
- 高效适应新场景:用少量数据微调,快速适应新的机器人平台或任务。
- 强大的空间理解能力:理解复杂的 3D 空间布局,执行精准的操作任务,如物体定位、抓取和放置。
- 跨机器人平台的通用性:支持多种机器人形态和配置,实现通用的操作策略。
- 快速推理与高效动作生成:基于离散化动作空间,提高模型推理速度,适合实时机器人控制。
SpatialVLA 的技术原理
- Ego3D 位置编码:将深度信息与 2D 语义特征结合,构建以机器人为中心的 3D 坐标系。消除对特定机器人-相机校准的需求,让模型感知 3D 场景结构适应不同机器人平台。
- 自适应动作网格:将连续的机器人动作离散化为自适应网格,基于数据分布划分动作空间。不同机器人的动作用网格对齐,实现跨平台的动作泛化和迁移。
- 空间嵌入适应:在微调阶段,根据新机器人的动作分布重新划分网格,调整空间嵌入。提供灵活且高效的机器人特定后训练方法,加速模型适应新环境。
- 预训练与微调:在大规模真实机器人数据上进行预训练,学习通用的操作策略。在新任务或机器人平台上进行微调,进一步优化模型性能。
如何运行 SpatialVLA
🚀 Quick Start
SpatialVLA 依赖于 HuggingFace Transformers,部署非常简单。如果你的环境支持 transformers >= 4.47.0,可以直接使用以下代码加载模型并进行推理(需要 8.5GB 的 GPU 内存)。
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 = "What action should the robot take to pick the cup?"
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)
🌟 预训练与微调
预训练
SpatialVLA 在 64 个 A100 GPU 上使用 110 万条真实机器人数据进行了约 10 天的预训练,批量大小为 2048。你可以使用以下命令从头开始预训练模型:
# torchrun
bash scripts/spatialvla_4b_pretrain/torchrun_pretrain.sh
# 或在 slurm 集群中
bash scripts/spatialvla_4b_pretrain/slurm_pretrain.sh
微调
大多数微调实验使用 LoRA 在 4 或 8 个 A100 GPU 上进行。你可以使用以下脚本进行全参数或 LoRA 微调:
# 全参数微调
bash scripts/spatialvla_4b_finetune/finetune_full.sh
# LoRA 微调
bash scripts/spatialvla_4b_finetune/finetune_lora.sh
资源
❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发感兴趣,我会每日分享大模型与 AI 领域的开源项目和应用,提供运行实例和实用教程,帮助你快速上手AI技术!
🥦 AI 在线答疑 -> 智能检索历史文章和开源项目 -> 尽在微信公众号 -> 搜一搜:蚝油菜花 🥦