Xiaomi-Robotics-0:开源视觉-语言-动作模型如何突破实时推理瓶颈

核心问题:当机器人需要在毫秒级时间内理解视觉指令并执行复杂动作时,传统模型为何总是”慢半拍”?Xiaomi-Robotics-0 通过怎样的架构设计解决了这一行业难题?

机器人操作实验室场景
图片来源:SINTEF Digital


一、为什么我们需要新一代 VLA 模型?

本段核心问题:现有的视觉-语言-动作模型在真实部署中面临哪些根本性挑战?

机器人技术正在经历一场静默的革命。过去五年,我们见证了大型语言模型(LLM)和视觉-语言模型(VLM)的爆发式增长,但当这些能力被迁移到物理世界——让机器人真正”看懂”环境、”听懂”指令并”做出”动作时,一个尴尬的鸿沟始终存在:模型要么过于庞大导致推理延迟无法接受,要么在跨场景泛化时表现脆弱。

Xiaomi-Robotics-0 的诞生正是为了填补这一空白。这是一个拥有 47 亿参数的视觉-语言-动作(VLA)模型,它并非简单地将现有 VLM 与动作控制模块拼接,而是从架构层面重新思考了”感知-推理-执行”这一链条的协同方式。

关键突破点在于三个维度:

  1. 跨本体泛化能力:模型在预训练阶段接触了多种机器人形态的数据,使其能够适应不同的机械臂构型、传感器配置和任务场景,而非局限于单一硬件平台。
  2. 实时推理保障:通过异步执行架构,模型在生成动作序列的同时,机器人可以并行执行已生成的动作,消除了传统”生成-执行-再生成”的串行等待时间。
  3. 消费级硬件友好:借助 Flash Attention 2 和 bfloat16 精度优化,模型可在普通消费级 GPU 上流畅运行,降低了研究和应用的准入门槛。

反思:在评估机器人模型时,我们往往过度关注静态基准测试的分数,却忽视了”实时性”这一在真实场景中生死攸关的指标。一个准确率 95% 但需要 5 秒才能做出反应的模型,在动态环境中可能远不如准确率 85% 但响应时间在 100 毫秒内的系统实用。Xiaomi-Robotics-0 的设计哲学提醒我们:机器人智能的衡量标准必须包含”时间维度”。


二、模型架构:VLM 与扩散 Transformer 的协同

本段核心问题:Xiaomi-Robotics-0 如何通过两阶段训练策略,既保留视觉-语言能力又获得精准的动作生成能力?

Xiaomi-Robotics-0 的架构设计体现了”分工明确、协同高效”的工程智慧。整个系统由两个核心组件构成:

2.1 基础架构组成

组件 技术选型 功能定位 参数规模
视觉-语言主干 Qwen3-VL-4B-Instruct 处理多视角图像观测和语言指令,生成 KV Cache 40 亿
动作生成模块 Diffusion Transformer (DiT) 基于流匹配(Flow Matching)生成连续动作序列 7 亿
总计 47 亿

这种解耦设计的关键优势在于:VLM 部分可以充分利用预训练的视觉-语言理解能力,而 DiT 部分则专注于学习从高层语义到底层控制信号的映射。

2.2 两阶段预训练策略

第一阶段:赋予 VLM 动作理解能力

模型首先使用”选择策略”(Choice Policies)对 VLM 进行微调。这一方法巧妙地处理了动作轨迹的多模态特性——对于同一任务,存在多种可行的执行路径。通过让模型学习评估不同动作序列的优劣,而非直接模仿单一轨迹,系统获得了对动作空间的深度理解。

在此阶段,训练数据采用视觉-语言数据与机器人轨迹 1:6 的混合比例。这一配比经过精心设计:过少的 VL 数据会导致灾难性遗忘,使模型丧失视觉问答等基础能力;过多的 VL 数据则会稀释动作学习的信号。

第二阶段:训练 DiT 动作生成

当 VLM 具备动作理解能力后,该模块被冻结,成为 DiT 的”多模态条件器”。DiT 从零开始学习流匹配(Flow Matching)目标函数,基于 VLM 输出的视觉-语言特征和机器人本体状态(proprioceptive state),生成精确且平滑的动作块(action chunk)。

反思:这种”先理解、后生成”的分阶段训练策略,实际上模仿了人类学习新技能的过程——我们首先通过观察理解”什么是对的”,然后才练习”如何去做”。在机器人学习领域,这种渐进式训练往往比端到端联合训练更稳定,因为它为每个阶段设定了清晰的学习目标,避免了梯度冲突和优化目标的混乱。


三、数据引擎:规模与多样性的平衡

本段核心问题:训练一个具备强泛化能力的 VLA 模型需要怎样的数据支撑?

数据质量决定了模型能力的上限。Xiaomi-Robotics-0 的训练数据规模令人印象深刻:

数据构成总览:

  • 机器人轨迹数据:约 2 亿个时间步(timesteps)
  • 通用视觉-语言数据:超过 8000 万个样本

机器人数据来源细分:

数据类型 内容描述 规模/时长
开源数据集 公开的跨本体机器人操作数据 大规模混合
乐高拆解(Lego Disassembly) 通过远程操作采集的双手协作任务 338 小时
毛巾折叠(Towel Folding) 柔性物体操作的高难度任务 400 小时

乐高拆解和毛巾折叠这两个任务的选择颇具深意。乐高拆解要求机器人理解复杂装配结构的力学特性,并规划多步拆解序列;毛巾折叠则涉及高度可变形的柔性物体,需要精细的力控制和视觉反馈。这些任务的加入显著提升了模型处理复杂场景的能力。

视觉-语言数据的引入并非锦上添花,而是防止模型遗忘基础视觉理解能力的必要手段。在机器人-centric 的图像上保持强大的视觉理解,对于准确感知操作对象的状态至关重要。

数据分布示意图

四、后训练与部署:破解实时推理难题

本段核心问题:异步执行架构如何解决 VLA 模型的推理延迟瓶颈?

这是 Xiaomi-Robotics-0 最具工程创新性的部分。传统的动作生成模型采用”先生成、后执行”的串行模式:模型生成一个动作序列,机器人执行完毕后再进行下一次推理。这种模式在模型参数量增大后会导致明显的”卡顿”——机器人等待新指令时处于静止状态。

4.1 异步执行的核心机制

Xiaomi-Robotics-0 采用**动作前缀(Action Prefixing)**技术实现真正的并行处理:

  1. 并行流水线:当机器人执行当前动作块的剩余部分时,模型已经开始推理下一个动作块
  2. 时间对齐:通过前缀 Δtc 个已提交的动作来条件化下一次推理,确保连续动作块之间的平滑过渡
  3. 延迟保障:只要 Δtc 大于推理延迟 Δtinf,就能保证机器人始终有可执行的动作,不会出现”空转”

关键约束条件:

Δtc > Δtinf

其中:

  • Δtc:从前一个动作块中保留作为前缀的动作数量对应的时间
  • Δtinf:模型生成一个新动作块所需的推理时间

4.2 应对时间相关性陷阱

动作前缀技术带来了一个潜在风险:时间相关性捷径。由于连续动作往往高度相似,模型可能学会简单地”复制”前缀动作,而非真正基于视觉和语言信号重新推理。这会导致动作反应迟钝,缺乏对环境变化的适应性。

为此,研发团队设计了两项关键技术:

Λ 形注意力掩码(Lambda-Shape Attention Mask)

在 DiT 中,传统的因果注意力掩码被替换为 Λ 形结构:

  • 紧邻前缀的噪声动作token可以访问前缀信息,确保动作连续性
  • 后续时间步的噪声动作token被禁止访问前缀,迫使它们依赖视觉和其他信号,保证反应性

这种设计在”连续性”和”反应性”之间取得了精妙平衡。

自适应损失重加权

系统根据在线预测动作与真实动作之间的 L1 误差动态调整流匹配损失的权重。当模型偏离真实轨迹时,损失权重自动增大,施加更强的矫正信号。

反思:异步执行架构的提出,标志着机器人学习从”算法优先”向”系统优先”的范式转变。过去我们往往假设计算是瞬时的,但在真实机器人系统中,推理延迟是与物理世界交互不可分割的一部分。将延迟显式地纳入架构设计,而非试图通过硬件升级来掩盖它,体现了对问题本质的深刻理解。这种”与延迟共舞”而非”对抗延迟”的思路,对其他实时 AI 系统也具有借鉴意义。


五、性能表现:从仿真到现实的跨越

本段核心问题:Xiaomi-Robotics-0 在标准化基准测试和真实任务中的实际表现如何?

5.1 仿真基准测试

模型在三个主流仿真平台上进行了全面评估:

LIBERO 基准(单臂操作)

  • 在四个 LIBERO 测试套件上微调后,平均成功率达到 98.7%
  • 这一成绩表明模型在桌面级操作任务上已接近饱和性能

CALVIN 基准(长程任务)

  • ABC→D 分割:平均任务完成长度 4.75
  • ABCD→D 分割:平均任务完成长度 4.80
  • 该基准测试模型连续执行多步任务的能力,数值越高表示模型在失败前能完成更多子任务

SimplerEnv 基准(视觉泛化)

  • Google Robot 设置:视觉匹配(VM)85.5%,视觉聚合(VA)74.7%
  • WidowX 设置:79.2%
  • 这些测试评估模型在不同视觉条件下的泛化能力
性能对比图

5.2 真实机器人验证

在真实硬件上的测试更能体现模型的实用价值:

乐高拆解任务
模型能够处理由多达 20 块积木组成的复杂装配体。这要求系统理解:

  • 积木之间的连接拓扑关系
  • 拆解顺序的力学约束
  • 多步操作的长期规划

自适应抓取
当抓取失败时,模型能够自适应地切换抓取策略,而非机械地重复相同动作。这种”试错学习”能力对于非结构化环境至关重要。

毛巾折叠任务
面对高度可变形的柔性物体,模型展现出精细的操作策略:

  • 当毛巾角被遮挡时,学会用单手甩动毛巾以暴露隐藏部分
  • 当意外拿起两条毛巾时,能够识别错误并将多余毛巾放回,再重新开始折叠流程

这些行为并非显式编程,而是从数据中学习到的涌现能力。

VLA 模型示意图
图片来源:Labellerr


六、快速上手:安装与部署指南

本段核心问题:如何在本地环境中快速部署 Xiaomi-Robotics-0 进行推理?

Xiaomi-Robotics-0 基于 HuggingFace Transformers 生态构建,部署流程相对简洁。以下是经过验证的完整安装步骤:

6.1 环境准备

系统要求:

  • Python 3.12
  • CUDA 兼容 GPU(推荐支持 bfloat16 的显卡)
  • 支持 transformers >= 4.57.1

安装步骤:

# 克隆仓库
git clone https://github.com/XiaomiRobotics/Xiaomi-Robotics-0 
cd Xiaomi-Robotics-0

# 创建 Conda 环境
conda create -n mibot python=3.12 -y
conda activate mibot

# 安装 PyTorch 2.8.0(已验证版本)
pip install torch==2.8.0 torchvision==0.23.0 torchaudio==2.8.0 --index-url https://download.pytorch.org/whl/cu128

# 安装 Transformers
pip install transformers==4.57.1

# 安装 Flash Attention 2(关键性能优化)
pip uninstall -y ninja && pip install ninja
pip install flash-attn==2.8.3 --no-build-isolation
# 如遇编译问题,可使用预编译 wheel:
# pip install https://github.com/Dao-AILab/flash-attention/releases/download/v2.8.3/flash_attn-2.8.3+cu12torch2.8cxx11abiTRUE-cp312-cp312-linux_x86_64.whl

# 安装系统依赖(Ubuntu/Debian)
sudo apt-get install -y libegl1 libgl1 libgles2

6.2 模型加载与推理示例

以下代码展示了如何加载模型并执行动作生成:

import torch
from transformers import AutoModel, AutoProcessor

# 1. 加载模型和处理器
model_path = "XiaomiRobotics/Xiaomi-Robotics-0-LIBERO"
model = AutoModel.from_pretrained(
    model_path, 
    trust_remote_code=True, 
    attn_implementation="flash_attention_2", 
    dtype=torch.bfloat16
).cuda().eval()

processor = AutoProcessor.from_pretrained(
    model_path, 
    trust_remote_code=True, 
    use_fast=False
)

# 2. 构建多视角输入提示
language_instruction = "Pick up the red block."
instruction = (
    f"<|im_start|>user\nThe following observations are captured from multiple views.\n"
    f"# Base View\n<|vision_start|><|image_pad|><|vision_end|>\n"
    f"# Left-Wrist View\n<|vision_start|><|image_pad|><|vision_end|>\n"
    f"Generate robot actions for the task:\n{language_instruction} /no_cot<|im_end|>\n"
    f"<|im_start|>assistant\n<cot></cot><|im_end|>\n"
)

# 3. 准备输入数据
# 假设 image_base, image_wrist 和 proprio_state 已加载
inputs = processor(
    text=[instruction],
    images=[image_base, image_wrist],  # [PIL.Image, PIL.Image]
    videos=None,
    padding=True,
    return_tensors="pt",
).to(model.device)

# 添加本体状态信息和动作掩码
robot_type = "libero"
inputs["state"] = torch.from_numpy(proprio_state).to(model.device, model.dtype).view(1, 1, -1)
inputs["action_mask"] = processor.get_action_mask(robot_type).to(model.device, model.dtype)

# 4. 生成动作序列
with torch.no_grad():
    outputs = model(**inputs)

# 解码为可执行的控制指令
action_chunk = processor.decode_action(outputs.actions, robot_type=robot_type)
print(f"Generated Action Chunk Shape: {action_chunk.shape}")

关键配置说明:

  • trust_remote_code=True:允许加载自定义模型架构
  • attn_implementation="flash_attention_2":启用 Flash Attention 加速
  • dtype=torch.bfloat16:使用 bfloat16 精度平衡性能和显存占用
  • /no_cot 标记:禁用思维链生成,降低延迟
  • action_mask:针对不同机器人类型(libero、calvin 等)的特定掩码

6.3 可用模型检查点

模型名称 适用场景 性能指标 HuggingFace 链接
Xiaomi-Robotics-0-LIBERO LIBERO 四个测试套件 98.7% 平均成功率 链接
Xiaomi-Robotics-0-Calvin-ABCD_D CALVIN ABCD→D 分割 4.80 平均长度 链接
Xiaomi-Robotics-0-Calvin-ABC_D CALVIN ABC→D 分割 4.75 平均长度 链接
Xiaomi-Robotics-0-SimplerEnv-Google-Robot SimplerEnv Google Robot VM 85.5%, VA 74.7% 链接
Xiaomi-Robotics-0-SimplerEnv-WidowX SimplerEnv WidowX 79.2% 链接
Xiaomi-Robotics-0 预训练基础模型 通用 VLA 能力 链接

反思:将模型完全开源并提供标准化的 HuggingFace 接口,这一决策极大地降低了研究社区的准入门槛。过去,许多高性能机器人模型要么不开源,要么需要复杂的自定义训练框架。Xiaomi-Robotics-0 选择拥抱 transformers 生态,意味着研究人员可以像调用 BERT 或 GPT 一样轻松地调用机器人模型,这种”去神秘化”的举措对于推动领域发展具有长远价值。


七、应用场景与行业价值

本段核心问题:Xiaomi-Robotics-0 的技术特性适合解决哪些实际业务场景?

基于模型的能力特点,以下几类应用场景将直接受益:

7.1 制造业柔性自动化

传统工业机器人依赖精确编程和固定夹具,难以应对小批量、多品种的生产需求。Xiaomi-Robotics-0 的强泛化能力使其能够通过自然语言指令快速适应新任务,例如:

  • 从混杂的零件堆中识别并抓取特定组件
  • 根据实时视觉反馈调整装配策略
  • 处理轻微变形的工件或非标物料

7.2 物流与仓储分拣

在电商物流场景中,包裹的形状、大小、材质差异极大。模型在 SimplerEnv 上展现的视觉泛化能力,可迁移至仓储环境的包裹分拣、码垛和拆垛任务,减少对 3D 视觉系统和复杂轨迹规划的依赖。

7.3 服务机器人操作

家庭或商用服务机器人需要处理多样化的日常物品。毛巾折叠任务验证的柔性物体操作能力,可扩展至衣物整理、餐具摆放、清洁工具使用等场景。自适应抓取策略对于处理易碎或不规则物品尤为重要。

7.4 科研与快速原型验证

对于机器人研究者,Xiaomi-Robotics-0 提供了一个强大的基线模型。研究者可以在此基础上进行:

  • 特定领域的微调(fine-tuning)
  • 多模态感知融合研究
  • 人机交互策略开发
  • 新型机器人本体的快速适配

八、实用摘要与操作清单

一页速览(One-page Summary)

维度 关键信息
模型定位 47亿参数开源 VLA 模型,支持实时推理
核心创新 异步执行架构、Λ形注意力掩码、两阶段预训练
性能亮点 LIBERO 98.7%、CALVIN 4.80、SimplerEnv 85.5%
硬件要求 消费级 GPU,支持 bfloat16,需 CUDA 环境
部署难度 低,基于 HuggingFace Transformers,提供现成检查点
适用场景 柔性制造、物流分拣、服务机器人、科研原型

快速启动检查清单:

  • [ ] 确认 GPU 支持 CUDA 且显存充足(建议 16GB+)
  • [ ] 安装 Python 3.12 并创建 Conda 环境
  • [ ] 按版本要求安装 PyTorch 2.8.0 和 Transformers 4.57.1
  • [ ] 安装 Flash Attention 2 以获得最佳性能
  • [ ] 从 HuggingFace 下载对应任务的微调模型
  • [ ] 准备多视角相机输入和机器人本体状态数据
  • [ ] 参考示例代码构建推理流程
  • [ ] 根据实际机器人类型配置 action_mask

九、常见问题解答(FAQ)

Q1:Xiaomi-Robotics-0 与 OpenVLA、RT-2 等模型相比有何独特优势?
A:核心差异在于实时推理架构。通过异步执行和动作前缀技术,Xiaomi-Robotics-0 消除了传统模型的推理等待时间,使机器人动作更加流畅连续。同时,47 亿的参数量在性能和硬件要求之间取得了较好平衡。

Q2:是否必须使用 Flash Attention 2?
A:强烈推荐使用。Flash Attention 2 能显著降低显存占用并加速推理,是实现实时性能的关键组件。如果安装遇到困难,可以尝试使用项目提供的预编译 wheel 文件。

Q3:模型支持哪些机器人类型?
A:目前官方提供 LIBERO、CALVIN 和 SimplerEnv(Google Robot、WidowX)的微调检查点。基础模型(Xiaomi-Robotics-0)可用于其他机器人类型的进一步微调。

Q4:如何理解”动作块”(action chunk)的概念?
A:动作块是模型一次性生成的未来动作序列(通常包含多个时间步的控制指令),而非单步动作。这种设计允许模型进行短期规划,并与异步执行架构配合,实现平滑的动作过渡。

Q5:Λ形注意力掩码的作用是什么?
A:它解决了动作前缀可能导致的”时间相关性捷径”问题。通过限制后续时间步对前缀的访问,强制模型基于视觉和语言信号重新推理,确保动作的反应性和适应性。

Q6:是否可以在真实机器人上直接运行,还是仅限于仿真?
A:模型已在真实机器人上验证(乐高拆解、毛巾折叠等任务)。只要您的机器人接口与模型输出的动作格式兼容,即可部署到真实硬件。

Q7:推理延迟大约是多少?
A:具体延迟取决于硬件配置,但通过异步执行架构,只要推理时间小于动作前缀长度(Δtc),就不会出现执行卡顿。使用 Flash Attention 2 和 bfloat16 可在消费级 GPU 上实现毫秒级响应。

Q8:如何针对特定任务进行微调?
A:项目采用标准 HuggingFace 接口,您可以使用 transformers 库的标准训练流程进行微调。建议先加载预训练基础模型,然后在特定任务数据上继续训练。


结语

Xiaomi-Robotics-0 代表了开源机器人学习领域的重要进展。它不仅在标准化基准上取得了领先性能,更通过创新的异步执行架构解决了 VLA 模型从实验室走向真实场景的”最后一公里”问题。对于希望将视觉-语言-动作能力集成到机器人系统的开发者和研究者而言,这是一个值得关注和尝试的基础平台。

随着硬件计算能力的持续提升和训练数据的不断积累,我们有理由期待,这类模型将在未来几年内显著降低机器人自动化的部署门槛,推动柔性制造、智能物流和服务机器人等领域的实质性进步。

机器人仿真环境
图片来源:RoboDK


相关资源: