LeRobot documentation

WALL-OSS

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v0.6.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

WALL-OSS

WALL-OSS 是一个用于具身智能的开源基础模型,由 XSquare Robot 团队于 2025 年提出。LeRobot 的实现改编自其开源的 WallX 仓库。

X Square Robot 的 WALL-OSS 现已集成到 Hugging Face 的 LeRobot 生态系统中。这是 LeRobot 团队与 X Square Robot 团队之间一项令人兴奋的协作项目。现在,您可以直接通过 LeRobot 对 WALL-OSS 进行后训练、评估和部署。借此,我们旨在让开源机器人社区能够更轻松地定制和部署 WALL-OSS 基础模型。阅读并探索 WALL-OSS 的 论文 和 代码。

模型概览

WALL-OSS 团队正在构建具身基础模型,以捕获并压缩世界上最有价值的数据:连续、高保真的物理交互流。通过在模型的决策与身体的实际体验之间建立直接的反馈回路,使得真正可泛化的智能得以涌现——这种智能不仅理解世界如何运作,还知道如何在其中有效行动。

An overview of WALL-OSS

从技术层面来看,WALL-OSS 引入了一种紧密耦合的多模态架构(紧密耦合的 MoE 结构),该架构融合了离散和连续的动作建模策略。通过两阶段训练流程(Inspiration → Integration),模型逐步统一了语义推理和高频动作生成。其核心创新包括:

  • 具身感知增强的多模态预训练:在统一的视觉-语言-动作数据上进行大规模训练,以增强空间、因果和操作理解能力。
  • 统一跨层级思维链(Uni-CoT):一个可微分的统一框架,整合了高层指令推理、子任务分解和细粒度动作合成,形成从“理解”到“执行”的连续链条。
  • 混合专家(MoE)动作头:根据任务阶段动态激活专家,并在离散或连续空间中建模动作,以维持稳定的 VLM 先验。
  • Two-stage training paradigm:
    • 灵感阶段:注入离散动作先验,以增强空间理解并实现语义与动作的对齐。
    • 集成阶段:使用 flow matching 实现高频连续控制。

安装要求

  1. 按照我们的安装指南安装 LeRobot。

  2. 运行以下命令安装 WallX 依赖项:

    pip install -e ".[wallx]"

用法

要在 LeRobot 中使用 WallX,请将策略类型指定为:

policy.type=wall_x

文本生成与交互式控制

WALL-OSS 通过 Bring your own policy 中的策略契约暴露原生文本生成功能。 在运行 WALL-OSS 的常规输入流水线之前,运行时提供 query_kind 和由调用方拥有的 query_text:

request = {
    **observation,
    "query_kind": "vqa",
    "query_text": "Which object is closest to the right gripper?",
}
processed_batch = preprocessor(request)
answer = policy.generate_text(processed_batch)

vqa 将问题保留为用户负载。next_subtask 在 ${subtask} 之前应用检查点配方。WALL-X 直接覆盖其 Qwen 视觉语言专家的公开 generate_text(processed_batch) API,并通过 supports_text_generation() 报告该能力。

交互式语言运行时可以生成一个子任务,然后基于该子任务对 WALL-OSS 的动作预测进行条件化:

lerobot-rollout \
  --strategy.type=base \
  --policy.path=your-org/your-wall-oss-checkpoint \
  --robot.type=your_robot_type \
  --robot.port=/dev/your_robot_port \
  --task="clear the table" \
  --interactive=true

在 /start 之后,使用 /vqa <question> 进行基于图像的 VQA,或使用 /autosteer <goal> 进行基于配方的下一子任务生成。/subtask <text> 会跳过生成过程,直接将指令发送到动作推理。

训练

要训练 WallX,您可以使用标准的 LeRobot 训练脚本并配置相应的参数:

lerobot-train \
    --dataset.repo_id=your_dataset \
    --policy.type=wall_x \
    --output_dir=./outputs/wallx_training \
    --job_name=wallx_training \
    --policy.repo_id=your_repo_id \
    --policy.pretrained_name_or_path=x-square-robot/wall-oss-flow \
    --policy.prediction_mode=diffusion \
    --policy.attn_implementation=eager \
    --steps=3000 \
    --policy.device=cuda \
    --batch_size=32

使用语言注释进行训练

WALL-X 使用其内置的配方从 LeRobot 的可选语言列进行训练。仅在需要替换该配方时,才设置 recipe_path:

lerobot-train \
  --dataset.repo_id=your_org/your_language_annotated_dataset \
  --policy.type=wall_x \
  --policy.pretrained_name_or_path=x-square-robot/wall-oss-flow \
  --policy.text_loss_weight=0.01 \
  --policy.flow_loss_weight=1.0 \
  --policy.device=cuda \
  --batch_size=1 \
  --steps=20000

定向的助手轮次接收下一词元交叉熵,而 low_level 配方流接收连续流动作监督。一行可以接收任一目标或两者兼有。用户提示、图像、本体感觉、动作查询词元以及填充均不计入文本损失。将 policy.recipe=null 设置为空值,即可使用 WALL-OSS 的原始仅动作训练路径。

有关注释模式和可用配方,请参阅 语言列和配方。

训练参数

参数描述
--dataset.repo_id您的训练数据集的 Hugging Face Hub 仓库 ID(例如,lerobot/aloha_sim_insertion_human)
--policy.type指定使用 WallX 策略架构
--output_dir用于保存训练检查点和日志的本地目录
--job_name此训练运行的名称标识符(用于日志记录/跟踪)
--policy.repo_id用于推送训练后模型的 Hugging Face Hub 仓库 ID
--policy.pretrained_name_or_path用于初始化的预训练 WallX 权重路径(官方 WALL-OSS 检查点)
--policy.prediction_mode动作预测策略:diffusion 或 fast - diffusion 使用迭代去噪来生成动作,fast 则使用下一个 token 预测
--policy.attn_implementation注意力实现后端 - eager 使用标准 PyTorch 注意力(其他选项包括 flash_attention_2 或 sdpa)
--steps要运行的训练总步数
--policy.device用于训练的设备(cuda 表示 GPU,cpu 表示 CPU)
--batch_size每个训练批次的样本数

语言训练使用 policy.text_loss_weight(默认值为 0.01)、policy.flow_loss_weight(默认值为 1.0)以及 policy.tokenizer_max_length(默认值为 768)。policy.recipe_path 可选地用于替换内置的 recipe。

许可证

该模型遵循 Apache 2.0 许可证,与原始的 WallX 仓库 保持一致。

Update on GitHub