EN

X-VLA

X-VLA 引入软提示机制:针对具体本体的可学习嵌入,引导统一的 Transformer 主干进行多领域策略学习。

核验日期

核心信息

以下信息由程序从官方接口读取,不经模型改写。

许可证
Apache-2.0
语言
C++
维护方
2toinf
核验日期

它是什么

X-VLA 引入软提示机制,即针对具体本体的可学习嵌入,引导统一的 Transformer 主干进行有效的多领域策略学习。X-VLA 由 2toINF 维护。X-VLA 已被 ICLR 2026 接收。X-VLA 在 IROS 2025 举办的 AgiBot World Challenge 中获得第 1 名(冠军)。

主要能力

  1. 项目方称,X-VLA-0.9B 架构在六个仿真平台和三个真实机器人上取得了最先进的泛化能力。

  2. X-VLA 采用服务端—客户端架构,将模型环境与仿真或机器人专用依赖分离。

  3. 为保证跨本体的一致性,X-VLA 采用统一的 EE6D(末端执行器 6D)控制空间。

  4. X-VLA 支持通过模块化、可扩展的数据集接口,在新的演示数据上进行微调。

  5. 项目方已发布 LoRA 微调代码,以及检查点和相关的推理代码。

怎么上手

  1. 客户端通过 HTTP POST 通信,以 JSON 负载的形式发送多模态数据(视觉、语言和本体感知)。

  2. 推理服务器启动后,API 端点即可使用。

  3. 负载中的 domain_id 键是当前机器人本体或领域的标识符。

  4. 负载中的 steps 键表示基于流匹配的生成所用的去噪步数(例如 10)。

  5. 在数据准备流程中,每个领域都有一个列出轨迹文件路径的元数据 JSON 文件。

  6. SLURM 与集群部署脚本会自动检测 SLURM 环境变量、启动分布式服务器并写入连接元数据。

摘自 README · bash
# Clone the repository
git clone https://github.com/2toinf/X-VLA.git
cd X-VLA
摘自 README · bash
# Create and activate Conda environment
conda create -n XVLA python=3.10 -y
conda activate XVLA

# Install dependencies
pip install -r requirements.txt
摘自 README · python
from transformers import AutoModel, AutoProcessor
import json_numpy

# Load model and processor
model = AutoModel.from_pretrained("2toINF/X-VLA-WidowX", trust_remote_code=True)
processor = AutoProcessor.from_pretrained("2toINF/X-VLA-WidowX", trust_remote_code=True)

# Start the inference server
print("🚀 Starting X-VLA inference server...")
model.run(processor, host="0.0.0.0", port=8000)
摘自 README
POST http://<server_ip>:8000/act
摘自 README · python
import requests
import numpy as np
import json_numpy

server_url = "http://localhost:8000/act"
timeout = 5

# Prepare inputs
proprio = np.zeros(7, dtype=np.float32)
image = np.zeros((256, 256, 3), dtype=np.uint8)
instruction = "Move the gripper to the target position"

payload = {
    "proprio": json_numpy.dumps(proprio),
    "language_instruction": instruction,
    "image0": json_numpy.dumps(image),
    "domain_id": 0,
    "steps": 10
}

try:
    response = requests.post(server_url, json=payload, timeout=timeout)
    response.raise_for_status()
    result = response.json()
    actions = np.array(result["action"], dtype=np.float32)
    print(f"✅ Received {actions.shape[0]} predicted actions.")
except Exception as e:
    print(f"⚠️ Request failed: {e}")
    actions = np.zeros((30, 20), dtype=np.float32)
摘自 README · bash
python -m deploy --model_path /path/to/your/model

适合谁

在 EE6D 控制空间中,维度是一个 20-D 向量,由 3(末端位置)、6(6D 旋转)、1(夹爪)和 10(填充)组成。在单臂情况下,如果只有一条手臂,则用零填充以保持 20D 向量。每个已发布的模型都包含对应的参考客户端。

项目方强烈建议在连接物理或仿真机器人时,基于这些参考客户端进行改写。每个本体都针对各自的环境进行微调,同时保持跨本体对齐。X-VLA-Pt 模型是在多个机器人领域上训练的基础检查点。

评估脚本遵循标准化格式,以便进行可复现的基准测试。项目方报告称,将其模型转换为 HF 格式后,性能出现轻微下降(不同数据集上约 1%),并表示正在积极调查原因。X-VLA 已原生集成到 LeRobot 平台。

本仓库采用 Apache License 2.0 许可。

来源

本页内容整理自以下官方来源,点击可核对原文。

核验日期 ·

本页由 AI 依据上述官方来源整理,并经自动核对,未经本站实测。 发现错误?告诉我们。