《VLA 系列》Dexbotic | 一站式 | 具身智能 | VLA 开发工具箱

Dexbotic 是一个基于 PyTorch 构建的开源 VLA 模型工具,面向具身智能领域的研究者和开发者,提供一站式的 VLA 研究服务。

开源地址:https://github.com/Dexmal/dexbotic

本文提供两个实践案例:

  • ⌚️实践1:快速开始,进行SFT监督微调
  • 🐳实践2:基于 SimpleVLA-RL 进行GRPO微调

🏗️ 系统架构,如下图所示:

从数据来源到模型训练、推理,再到仿真与真实世界部署,形成了一个闭环的具身智能开发体系。

核心模块拆解
模块 核心作用 关键组件/特性
Embodiments(具身载体) 提供多源机器人数据输入 支持 UR5、Franka、ALOHA 等主流机械臂及其他机器人平台,产生原始数据(Raw Data)
Data Layer(数据层) 统一数据格式与处理 - Dexdata Format:定义标准化数据结构,兼容多源机器人数据 - Dexdata Process:提供数据清洗、格式转换(如 LeRobot/RLDS → Dexdata)
Modular Framework(模块化框架) 核心模型训练与推理引擎 - Vision Encoder :CLIP、sigLIP、PE 等视觉编码器 - LLM :Qwen、StepFun、PaliGemma 等大语言模型 - Action Expert扩散模型流匹配离散自回归预测 等动作生成策略 - VLA模型 : 支持 π0、π0.5DM0、OFT、CogACT、MemVLA 等主流 VLA 模型 - 微调算法 : SFT监督微调、GRPO
Experiment Layer(实验层) 管理训练与推理全流程 - Experiment Centric:以实验为核心的配置与调度 - Training PPL:分布式训练管线(支持 DeepSpeed 优化) - Inference PPL:实时推理服务(支持 API 调用)
Simulation & Real World(仿真与真实视觉) 模型评估与验证 - 仿真环境:用于快速迭代与基准测试 - 真实世界:验证模型在物理场景中的泛化能力
Infra(基础设施) 提供灵活算力支持 - 云服务:阿里云、火山引擎等大规模云端训练平台 - 消费级 GPU:RTX 4090/5090 等本地训练部署

🌟 1、核心特性

统一的模块化 VLA 框架

  • 围绕 VLA 模型构建,兼容主流大语言模型的开源接口
  • 整合具身操作与导航能力,支持多种领先的具身操作/导航策略
  • 预留全身控制接口,适配未来技术演进

多机器人训练与部署支持

  • 支持 UR5、Franka、ALOHA 等主流机器人平台
  • 提供统一的训练数据格式与通用化部署脚本
  • 持续扩展更多主流机器人平台适配

云/本地灵活训练

  • 支持阿里云、火山引擎等大规模云端训练平台
  • 适配消费级 GPU(如 RTX 4090)的本地训练场景

标准化数据体系

  • 定义统一的 Dexdata 数据格式,兼容多源机器人数据
  • 提供 LeRobot、RLDS(Libero)等数据集的转换脚本

🚀 2、环境搭建

前置条件
  • Ubuntu 20.04 / 22.04
  • NVIDIA GPU(推荐:RTX 4090 / A100 / H100;训练建议 8 卡,部署单卡即可)
  • 已安装 NVIDIA Docker
操作步骤
bash 复制代码
# 克隆仓库
git clone https://github.com/Dexmal/dexbotic.git

# 启动 Docker 容器
docker run -it --rm --gpus all --network host \
  -v /path/to/dexbotic:/dexbotic \
  dexmal/dexbotic \
  bash

# 容器内环境初始化
cd /dexbotic
conda activate dexbotic
pip install -e .

3、基本使用:训练模型与推理

训练运行
bash 复制代码
# 分布式训练(torchrun)
torchrun playground/my_experiment.py

训练过程中,系统会:

  • 加载并预处理数据集
  • 按配置将模型 checkpoint 保存至 output_dir
  • (可选)通过 Weights & Biases 记录训练指标
  • save_steps 配置定期保存模型
推理运行

训练完成后,启动推理服务:

bash 复制代码
# 启动 Flask 推理服务
python playground/my_experiment.py --task inference

推理 API 调用示例:

bash 复制代码
curl -X POST http://localhost:7891/process_frame \
  -F "text=Grab the red object" \
  -F "image=@/path/to/your/image.jpg"

# 响应示例
# {"response": [0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 1.0]}
模型评估

使用 dexbotic-benchmark 进行仿真基准评估:

bash 复制代码
cd dexbotic-benchmark
docker run --gpus all --network host -v $(pwd):/workspace \
  dexmal/dexbotic_benchmark \
  bash /workspace/scripts/env_sh/libero.sh /workspace/evaluation/configs/libero/example_libero.yaml

⌚️4、实践1 :快速开始

运行预训练模型

以 Libero CogACT 模型为例:

bash 复制代码
# 创建权重目录并下载预训练权重
mkdir -p checkpoints/libero
cd checkpoints/libero
git clone https://huggingface.co/Dexmal/libero-db-cogact libero_cogact
下载数据集

在 Hugging Face 提供了预处理的模拟器数据:

数据集目录结构建议:

bash 复制代码
data/
  libero/
    libero_10/{video,jsonl}
    libero_goal/
    libero_object/
    libero_spatial/
启动训练
bash 复制代码
# 8 卡分布式训练示例(Libero 数据集)
torchrun --nproc_per_node=8 playground/benchmarks/libero/libero_cogact.py

# (可选)使用 DeepSpeed 降低显存占用(RTX 4090 8 卡场景)
# 需配合 scripts/deepspeed/zero3_offload.json 配置

🐳5、实践2 :基于 SimpleVLA-RL 进行GRPO微调

我们可以使用Dexbotic 基于SimpleVLA-RLVLA模型进行,实现强化学习(RL)后训练。

前置条件
  • 操作系统:Ubuntu 20.04 或 22.04 (默认使用上面搭建的docker环境就好)
  • 显卡要求:NVIDIA RTX H20(训练推荐8块GPU,部署使用1块GPU即可)
  • 已安装NVIDIA Docker
步骤1:克隆代码仓库
bash 复制代码
git clone git@gitlab.dexmal.com:robotics/dexbotic.git
步骤2:启动Docker容器
bash 复制代码
docker run -it --rm --gpus all \
  -v /path/to/dexbotic:/dexbotic \
  dexmal/dexbotic:rl \
  bash
步骤3:激活Dexbotic环境
bash 复制代码
cd /dexbotic
conda activate dexbotic-rl
pip install -e .
启动强化学习后训练
bash 复制代码
deepspeed playground/benchmarks/libero/libero_simplevla_rl.py \
    --task=train \
    --sft_model_path=/path/to/sft-checkpoint \
    --dataset_name=libero_10

强化学习后训练的轨迹采样过程,需要一定时间收集足够的轨迹数据以完成逐步更新,过程中请耐心等待。

📊 6、数据格式

官网提供的仿真数据已经过处理和格式化,可以直接使用:

Dataset Link
Libero 🤗 Hugging Face
CALVIN 🤗 Hugging Face
Simpler-Env 🤗 Hugging Face
RoboTwin 2.0 🤗 Hugging Face
ManiSkill2 🤗 Hugging Face

按照以下目录结构,组织数据:

bash 复制代码
[Your Code Path]
├── dexbotic
├── docs
├── data
│   ├── libero
│   │   ├── libero_10
│   │   │   ├── video
│   │   │   └── jsonl
│   │   ├── libero_goal
│   │   ├── libero_object
│   │   └── libero_spatial
│   ├── calvin
│   │   └── task_ABC_D
│   │       ├── video
│   │       └── jsonl
│   ├── robotwin
│   │   └── video
│   │   └── jsonl
│   ├── maniskill2
│   │   └── video
│   │   └── jsonl
│   └── simpler
│       ├── video
│       └── jsonl
└── ...

📊 7、自定义数据使用

数据格式要求

Dexbotic 采用统一的 Dexdata 格式存储机器人数据集,单集数据以 .jsonl 文件存储,每行对应一帧数据,格式示例:

json 复制代码
{
    "images_1": {"type": "video", "url": "url1", "frame_idx": 21}, 
    "images_2": {"type": "video", "url": "url2", "frame_idx": 21},
    "images_3": {"type": "video", "url": "url3", "frame_idx": 21},
    "state": [0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 1.0],
    "prompt": "open the door",
    "is_robot": true
}

数据转换

我们提供了主流数据集到 Dexdata 格式的转换脚本:

  • LeRobot 转 Dexdata:script/convert_data/convert_lerobot_to_dexdata.py
  • RLDS(Libero)转 Dexdata:script/convert_data/convert_rlds_to_dexdata.py

⚠️ 注:不同 RLDS 数据集的观测键值存在差异,RLDS 转换脚本仅作为参考,建议根据实际数据集调整。

数据格式参考:https://github.com/dexmal/dexbotic/blob/main/docs/Data.md

分享完成~

相关推荐
YMWM_3 天前
论文阅读“DM0: An Embodied-Native Vision-Language-Action Model towards Physical AI“
论文阅读·人工智能·vla
一颗小树x3 天前
《VLA 系列》π0 与 π0.5 | 强化学习 训练 | VLA
强化学习·训练·vla·π0·π0.5
YMWM_5 天前
论文阅读“OpenVLA: An Open-Source Vision-Language-Action Model“
论文阅读·vla
人工智能培训7 天前
大模型架构演进:从Transformer到MoE
人工智能·深度学习·大模型·transformer·知识图谱·具身智能·人工智能 培训
一颗小树x7 天前
《VLA 系列》π0.5 | 流匹配 | 分层推理 | VLA
vla·流匹配·π0.5·分层推理
藓类少女7 天前
【具身智能】机器人训练流程
机器人·具身智能
s1ckrain7 天前
【论文阅读】Towards Learning a Generalist Model for Embodied Navigation
论文阅读·多模态·具身智能
人工智能培训8 天前
如何防范大模型被用于制造深度伪造和虚假信息?
人工智能·ai大模型·多模态学习·具身智能·企业ai转型·ai数字化转型
网易伏羲8 天前
以数据驱动工程机械智能化,网易灵动入选杭州国家语料库首批高质量数据集榜单
人工智能·具身智能·网易伏羲·网易灵动