LeRobot 中的 WALL-OSS:基于 Qwen2.5-VL 与 Flow Matching 的跨具身 VLA 策略集成指南
发布时间:2026/9/10 21:18:09来源:尧图网络
LeRobot 中的 WALL-OSS基于 Qwen2.5-VL 与 Flow Matching 的跨具身 VLA 策略集成指南【免费下载链接】lerobot LeRobot: Making AI for Robotics more accessible with end-to-end learning项目地址: https://gitcode.com/GitHub_Trending/le/lerobotWALL-OSS 是由 XSquare Robot 团队于 2025 年提出的开源具身智能基础模型现已以wall_x策略的形式完整集成进 Hugging Face LeRobot 生态。本文以 policy_walloss_README.md 与 walloss.mdx 为骨架结合仓库内策略源码与测试系统讲解 WALL-OSS 的模型架构、两种动作预测模式、安装方法、微调训练命令及全部核心参数并深入到WallXConfig、ActionHead、MoE 路由等实现细节。读完本文你将能够在 LeRobot 中独立完成 WALL-OSS 的安装、后训练post-train、评估与部署。模型概述WALL-OSS 是一个用于跨具身cross-embodiment机器人控制的视觉-语言-动作Vision-Language-Action, VLA模型。它捕获并压缩连续、高保真的物理交互数据流通过在模型决策与实体“体感经验”之间建立直接反馈回路驱动具备真正泛化能力的智能体产生——模型不仅要理解世界如何运作还要知道如何在该世界中有效行动。特性说明基础模型Qwen2.5-VL视觉-语言模型动作预测Flow Matching扩散式或 FAST离散 token 式架构混合专家Mixture of Experts, MoE带动作专用路由多模态输入视觉图像/视频、语言、本体感觉ProprioceptionLeRobot 中的实现由官方 WallX对应策略注册名为wall_x见 modeling_wall_x.py 与WallXConfig的PreTrainedConfig.register_subclass(wall_x)装饰器。核心技术路线WALL-OSS 提出了一种紧耦合多模态架构tightly-coupled MoE structure将离散与连续两类动作建模策略统一在一个可微框架中并通过两阶段训练Inspiration → Integration逐步统一语义推理与高频动作生成。其核心创新点包括具身感知增强的多模态预训练在统一的视觉-语言-动作大规模数据上训练强化空间、因果与操作理解能力。统一跨层级思维链Uni-CoT单一可微框架统一高层指令推理、子任务分解与细粒度动作合成形成从“理解”到“执行”的连续链路。MoE 动作头根据任务阶段动态激活专家在离散或连续空间中建模动作保持稳定的 VLM 先验。两阶段训练范式Inspiration 阶段注入离散动作先验强化空间理解与语义-动作对齐Integration 阶段使用 Flow Matching 实现高频连续控制。在源码层面这两类动作建模分别对应WallXConfig.prediction_mode的diffusion与fast两种取值具体实现位于 modeling_wall_x.py 的predict()方法中见下文“两种动作预测模式”小节。环境安装按 安装指南 安装 LeRobot 本体安装 WallX 额外依赖pip install -e .[wallx]wallx依赖组在 pyproject.toml 中定义包含transformers、peft、scipy、torchdiffeq0.2.4,0.3.0与qwen-vl-utils。其中torchdiffeq用于 diffusion 模式下动作采样的 ODE常微分方程积分peft用于可选的 LoRA 低秩微调qwen-vl-utils提供smart_resize等 Qwen2.5-VL 视觉预处理工具。在代码中启用 WallX 策略只需指定策略类型policy.typewall_x策略工厂会在make_policy_config中依据该值实例化WallXConfig参见 tests/policies/wall_x/test_wallx.py 中的集成验证方式。使用 LeRobot 训练 WALL-OSS训练 WALL-OSS 可直接使用 LeRobot 标准训练脚本与对应配置lerobot-train \ --dataset.repo_idyour_dataset \ --policy.typewall_x \ --output_dir./outputs/wallx_training \ --job_namewallx_training \ --policy.repo_idyour_repo_id \ --policy.pretrained_name_or_pathx-square-robot/wall-oss-flow \ --policy.prediction_modediffusion \ --policy.attn_implementationeager \ --steps3000 \ --policy.devicecuda \ --batch_size32训练参数说明参数说明--dataset.repo_id训练数据集的 Hugging Face Hub 仓库 ID例如lerobot/aloha_sim_insertion_human--policy.type指定使用 WallX 策略架构--output_dir训练 checkpoint 与日志的本地保存目录--job_name本次训练运行的名称标识用于日志/追踪--policy.repo_id训练完成后模型将被推送的 Hugging Face Hub 仓库 ID--policy.pretrained_name_or_path用于初始化的预训练 WallX 权重路径官方 WALL-OSS checkpoint默认x-square-robot/wall-oss-flow--policy.prediction_mode动作预测策略diffusion使用迭代去噪生成动作fast使用下一 token 预测--policy.attn_implementation注意力实现后端——eager使用标准 PyTorch 注意力WallX 目前仅支持eager--steps训练总步数--policy.device训练设备cuda为 GPUcpu为 CPU--batch_size每批训练样本数几点需要澄清的细节依据源码文档参数表中的--policy.pretrained_path在实现中对应配置字段为pretrained_name_or_path其默认值为x-square-robot/wall-oss-flow见 configuration_wall_x.py。训练脚本中--steps与--batch_size是lerobot-train顶层参数而--policy.*前缀下的才是策略配置字段。--policy.attn_implementation当前强制为eagerWallX 的双向动作 token“孤岛”需要显式注意力掩码若配置为其他值会在WallXConfig.__post_init__中直接抛出ValueError见 configuration_wall_x.py。这与文档表格中提及的flash_attention_2/sdpa备选项存在差异应以源码校验为准。WallXConfig核心配置字段深度解析WallXConfigconfiguration_wall_x.py继承自PreTrainedConfig是 WallX 策略的配置中枢。其关键字段与默认值如下输入 / 输出结构字段默认值说明n_obs_steps1观察步数chunk_size32动作块长度对应 wall-x 中的action_horizon即每次模型调用预测的动作长度n_action_steps32每次实际执行的动作步数必须满足n_action_steps chunk_sizemax_action_dim20最大动作维度WallX 采用 20 维统一动作表示真实维度不足时补零max_state_dim20本体感觉状态最大维度配置校验__post_init__会拦截以下非法组合n_action_steps chunk_size、prediction_mode不在[diffusion, fast]内、attn_implementation ! eager、vision_attn_implementation不在{auto, sdpa, varlen}内。动作预测相关字段默认值说明pretrained_name_or_pathx-square-robot/wall-oss-flow预训练权重来源action_tokenizer_pathlerobot/fast-action-tokenizer动作 tokenizer 路径仅 FAST 模式使用prediction_modediffusiondiffusion或fastattn_implementationeager文本/动作 token 注意力后端固定eagervision_attn_implementationauto视觉注意力后端auto在运行时支持时使用 PyTorch 打包变长注意力否则回退到原生 SDPA__post_init__会根据prediction_mode自动设置use_fast_tokenizerfast模式置Truediffusion模式置False并将action_tokenizer_path置为Nonediffusion 模式不需要离散动作 tokenizer。优化器与调度器预设字段默认值optimizer_lr2e-5optimizer_betas(0.9, 0.95)optimizer_eps1e-8optimizer_weight_decay0.01optimizer_grad_clip_norm1.0scheduler_warmup_steps1000scheduler_decay_steps100000scheduler_decay_lr1e-6它们分别通过get_optimizer_preset()生成AdamWConfig、通过get_scheduler_preset()生成CosineDecayWithWarmupSchedulerConfig保证开箱即用的稳定训练配置。特征校验与统一表示validate_features()要求输入特征中至少有一个FeatureType.VISUAL视觉特征若缺少observation.state或输出中缺少action会按max_state_dim/max_action_dim自动补齐对应的PolicyFeature同时校验真实状态/动作维度不超过上限。这一机制正是 WALL-OSS跨具身能力的体现——不同机器人自由度不同通过统一维度填充padding与 DOF 掩码同一套模型权重可以适配多种机械结构。两种动作预测模式diffusion 与 fastWallXPolicy依据config.prediction_mode在predict_action_chunk中分派不同的推理路径见 modeling_wall_x.pydiffusion默认以max_action_dim作为action_dim、chunk_size作为pred_horizon走流匹配flow matching路径。推理时从随机噪声出发经torchdiffeq.odeint以euler方法沿num_inference_timesteps默认 10步时间网格积分 ODE 得到动作轨迹见predict()中 diffusion 分支。fast以真实动作维度作为action_dim通过自回归生成离散动作 token再经action_processor.decode(time_horizonpred_horizon, action_dimaction_dim)解码为连续动作。ActionHeadFlow Matching 动作头实现ActionHeadmodeling_wall_x.py是 continuous/flow 路径的核心模块关键设计包括Beta 分布噪声调度beta_alpha1.5、beta_beta1.0、s0.999训练时从 Beta 分布采样时间步t (1 - sample) * s并在 float32 下完成加噪noisy_action (1-t) * noise t * action与流目标flow action - noise的计算保证数值稳定性。正弦时间嵌入SinusoidalPosEmb为每个时间步生成位置编码与动作嵌入拼接后经三层线性投影SiLU 激活得到动作隐藏状态。流匹配损失flow_loss在 float32 下计算动作预测与流目标间的 MSE并支持用dof_mask掩蔽未激活的自由度通道避免填充维度参与损失计算。推理去噪step()实现单步去噪供odeint反复调用每一步将当前去噪动作嵌入替换到输入序列的|action|token 位置后过一遍 Transformer取动作 token 位置的隐藏状态投影回动作空间。FAST 模式离散动作 tokenfast模式下模型将动作量化为一组特殊 token|action_token_i|define_action_token_id()依据 tokenizer 的action_token_vocab_size构建 token ID 集合同时维护|action|与|propri|两个特殊 token ID见 modeling_wall_x.py。生成阶段使用max_new_tokens100的自回归生成随后过滤出动作 token 并解码为动作序列当re_generateTrue时使用temperature0.7的采样以提高多样性。多模态输入处理与 MoE 路由图像预处理常量定义于 constant.py目标分辨率RESOLUTION 256先等比缩放至长边 256再经smart_resize按IMAGE_FACTOR28、MAX_PIXELS 16384*28*28、MIN_PIXELS 4*28*28量化到 Qwen2.5-VL 的 patch 网格。TOKENIZER_MAX_LENGTH 768限制 tokenizer 输入长度。preprocess_inputs中对每路相机以 BCHW 批量张量在设备上完成双阶段 bicubic 缩放见_resize_wall_x_image_batch避免经 PIL 的 CPU 往返。语言指令与 grounding 点get_wallx_normal_text依据任务指令、chunk_size与frame_index构造模型输入文本模板PRIORITY_ORDER默认None与GENERATE_SUBTASK_RATIO默认0.0分别控制相机优先级与子任务生成比例。process_grounding_points将 grounding 坐标从原始分辨率映射到缩放后分辨率。WallXTaskProcessorprocessor_wall_x.py保证任务描述以句号结尾缺省时使用默认指令Execute the robot action.。本体感觉与动作的统一填充preprocess_inputsmodeling_wall_x.py中本体感觉agent_pos与动作action中的 NaN 被置零同时用~torch.isnan(...)构造agent_pos_mask/dof_mask维度不足时按max_state_dim/max_action_dim补零mask 也同步补零维度超限则报错moe_token_types由|action|token 位置生成用于 MoE 层的 token 级路由。MoE 语言模型src/lerobot/policies/wall_x/qwen_model/ 目录下包含移植的Qwen2_5_VLMoEModelqwen2_5_vl_moe.py与 vision_attention.py。训练前向train_step_forward将视觉、本体感觉、加噪动作三类嵌入分别masked_scatter到对应 token 位置再统一过 MoE Transformer最终总损失 语言建模交叉熵 flow_loss_weight * flow_loss。to_bfloat16_for_selected_params将模型转 bf16 同时保留 LayerNorm 与action_preprocessor参数为 float32 以保数值稳定。LoRA 微调支持模型内置add_lora()默认r8, lora_alpha32, lora_dropout0.1目标模块q_proj/v_proj当配置中use_loraTrue时自动应用适合低资源场景下的参数高效微调。处理器流水线与推理循环make_wall_x_pre_post_processorsprocessor_wall_x.py构建标准前后处理流水线预处理rename_observations→add_batch_dim→WallXTaskProcessor→normalize→to_device后处理unnormalize→to_cpu。推理时WallXPolicy维护动作队列deque(maxlenn_action_steps)predict_action_chunk一次性预测chunk_size步动作select_action每次弹出单步动作执行实现平滑的滚动窗口控制见 modeling_wall_x.py。仓库中的集成测试 tests/policies/wall_x/test_wallx.py 覆盖了 MoE 模型隐藏状态/注意力输出契约test_moe_model_captures_requested_hidden_states_and_attentions并在 CUDA HF token 环境下验证策略实例化与完整数据流可作为二次开发时的参考基线。引用与许可证如果使用本工作请引用article{zhai2025igniting, title {Igniting VLMs Toward the Embodied Space}, author {Zhai, Andy and Liu, Brae and Fang, Bruno and Cai, Chalse and Ma, Ellie and Yin, Ethan and Wang, Hao and Zhou, Hugo and Wang, James and Shi, Lights and Liang, Lucy and Wang, Make and Wang, Qian and Gan, Roy and Yu, Ryan and Li, Shalfun and Liu, Starrick and Chen, Sylas and Chen, Vincent and Xu, Zach}, journal {arXiv preprint arXiv:2509.11766}, year {2025} }WALL-OSS 采用Apache 2.0 许可证与原 WallX 仓库保持一致。论文与官方代码等外部资源入口见 policy_walloss_README.md 的 Additional Resources 一节。【免费下载链接】lerobot LeRobot: Making AI for Robotics more accessible with end-to-end learning项目地址: https://gitcode.com/GitHub_Trending/le/lerobot创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
网站建设高端定制企业官网