Embodied.cpp: 面向异构机器人的具身AI模型可移植推理运行时
当前具身AI模型涵盖视觉-语言-动作模型 (VLA) 和世界-动作模型 (WAM),但实际部署分散于特定模型的 Python 栈、后端假设以及机器人端胶水代码中,尤其在异构边缘设备上碎片化严重。现有推理运行时主要面向请求-响应服务,无法满足具身部署的运行时契约:闭环控制内多速率执行、异构硬件上的延迟优先的 batch-1 推理,以及超越固定令牌 I/O 的可扩展具身接口。 本文提出 Embodied.cpp,一种面向具身模型的可移植 C++ 推理运行时。通过分析代表性 VLA 模型和 WAM 的架构,Embodied.cpp 提取共享执行路径,组织为五层:输入适配器、序列构建器、骨干执行、头部插件和部署适配器。运行时提供模块化多速率执行、延迟优先融合推理,以及可扩展算子与 I/O 支持,通过单一后端抽象实现异构设备、机器人和模拟器的部署。 我们在两个 VLA 模型(HY-VLA 和 pi0.5)以及一个基于 LingBot-VA Transformer 块的初步 WAM 基准上评估 Embodied.cpp。VLA 部署分别实现 100.0% 和 91.0% 的闭环任务成功率。WAM 基准将块内存从 312.2 MiB 降至 88.1 MiB。结果表明,Embodied.cpp 在保持高精度的同时,提升了跨多样具身模型架构的部署效率。
论文精读
TL;DR Embodied.cpp 是一个便携 C++ 推理运行时,通过五层模块化架构将 VLA 与 WAM 模型统一部署到异构机器人,实现低延迟多速率闭环控制,在保持成功率的同时显著降低内存占用。
问题
问题背景
具身 AI 模型正从实验室原型走向真实机器人部署,视觉-语言-动作模型 (VLA) 与 世界-动作模型 (WAM) 成为核心范式。业界关注点已从模型架构创新转向大规模、低延迟、跨平台的推理工程化。
现有方法局限
当前推理部署方案主要依赖模型专属的 Python 胶水代码或面向服务器场景的通用推理框架(如 vLLM、TensorRT-LLM),存在三个根本性不足:
- 执行模式失配:服务端框架设计为请求-响应批处理,而具身任务运行在闭环控制中,传感器采集、模型推理、动作执行需按不同频率异步调度,现有运行时缺乏多速率执行原语。
- 延迟与资源瓶颈:边缘设备上的推理必须满足batch-1 低延迟(通常 < 100ms),但通用框架侧重吞吐优化,并假设 GPU 富集环境,难以在 CPU/NPU 等异构硬件上实现延迟优先的融合推理。
- 接口僵化:具身模型输入输出远超 token 序列,涉及图像、深度、关节状态等多模态数据,且动作空间常为连续控制量或自定义离散动作,现有框架仅支持固定文本 I/O,迫使开发者编写大量转换逻辑,阻碍快速迭代。
为什么这个问题重要
具身推理面临着“模型多样性 × 硬件异构性 × 实时约束”的三维复杂度。没有一个统一且高效的 C++ 运行时,开发者必须在不同模型间重复实现预处理、后处理和执行调度,导致部署周期长、资源开销大、任务成功率不稳定。该问题已被 ROS 社区、机器人创业公司和云厂商共同关注,成为从 demo 到产品的关键瓶颈。
类比:这类似于大语言模型在 2023 年面临的服务化困境——缺乏像 llama.cpp 那样专注边缘、低依赖、跨平台的推理引擎之前,生产落地举步维艰。Embodied.cpp 试图成为具身模型领域的 llama.cpp。
核心洞察
- **闭环实时推理范式** 传统推理运行时专为请求-响应设计,难以满足具身AI的闭环控制需求。Embodied.cpp 通过多速率执行和延迟优先的融合推理,将模型推理与机器人控制周期深度耦合,而非简单批次服务。这种范式转变使得异构边缘设备上能实现毫秒级响应,区别于现有推理栈仅优化吞吐的特点。
- **硬件抽象的模块化设计** 对VLA和WAM模型架构进行分析后,Embodied.cpp 提取出五层共享执行路径(输入适配、序列构建、骨干执行等),以C++运行时统一后端抽象。这解决了不同模型和硬件碎片化部署的难题,通过一次后端接入即可跨设备、机器人和模拟器部署,显著降低适配成本,同时保持任务成功率(VLA达100%和91%)并大幅压缩WAM内存(从312 MiB降至88 MiB)。
方法
Embodied.cpp 通过 五层模块化架构 将 VLA / WAM 推理任务分解为可组合的流水线,以应对异构边缘设备上的闭环控制需求。
输入适配层与序列构建
输入适配器 (Input Adapters) 负责将多模态传感器流(图像、关节状态、任务指令)统一转化为后端可处理的张量序列。序列构建器 (Sequence Builders) 随后按模型所需前缀(如动作历史、任务 token)组装为变长 token 序列,并注入位置编码与模态区分标记。这一设计使不同 VLA 模型的多模态输入融合逻辑被封装为可插拔模块,无需改动主干网络。
主干执行与多头插件
主干执行层 (Backbone Execution) 是共享的 Transformer 推理核心,针对闭环控制中的 batch-1 低延迟 场景做了垂直优化:
- 延迟优先融合推理:将嵌入投影、注意力、MLP 等操作融合为单次 kernel launch,减少 CPU-GPU 同步开销;
- 多速率执行调度:允许视觉编码器、动作预测头等组件以不同频率运行(如视觉 5 Hz、动作 50 Hz),通过后台异步流水线避免空等。
头插件 (Head Plugins) 负责将主干输出映射为具体动作表示(如末端执行器绝对位姿、关节增量、或 action chunk),支持常用 VLA 的 action head 类型,并可通过注册机制扩展至新输出格式。
部署适配与闭环接口
部署适配器 (Deployment Adapters) 将上述推理管线封装为统一的运行时抽象,提供 异构硬件后端 切换(CUDA / Qualcomm SNPE / ARM Compute Library)以及 仿真器与真机 I/O 桥接(ROS 2、Webots、Isaac Sim 等)。推理接口突破固定 token 输入/输出,允许直接注入闭环控制所需的传感器刷新与动作截止期限。
与 LLM 服务引擎(如 vLLM)不同,Embodied.cpp 不面向吞吐优化的请求-响应模式,而是原生支持 闭环控制中的多速率异步推理 以及 异构边缘设备上的 batch-1 极低延迟优化,这使其更贴近机器人的实时控制需求。
实验
实验设计
评估聚焦于 Embodied.cpp 在两类具身模型上的部署效率与准确性:
- VLA 模型:选取 HY-VLA 和 pi0.5,在闭环控制场景下测试任务成功率,验证 C++ 运行时是否能复现原始 Python 实现的精度。
- WAM 模型:以 LingBot-VA Transformer block 为基准,测量其推理内存占用,对比原始实现展示内存优化效果。 所有实验均利用 Embodied.cpp 的多速率执行调度与延迟优先融合推理引擎,在异构边缘硬件上完成。
关键发现
- 精度无损:HY-VLA 达到 100.0% 任务成功率,pi0.5 达到 91.0%,证明跨语言移植未引入精度退化,且模块化的输入适配与序列构建流程能够准确传递多模态信息。
- 内存大幅压缩:WAM block 内存从 312.2 MiB 锐减至 88.1 MiB(降幅约 72%),这得益于 C++ 精细化内存管理与算子融合,使世界-动作模型能在资源受限的边缘设备上运行。
- 闭环控制保障:通过可扩展的部署适配层,Embodied.cpp 实现了严格的多速率闭环执行,一改传统服务式推理的串行响应模式。
基线对比解读
现有具身模型部署多依赖模型特化的 Python 栈,存在后端假设不同、胶水代码碎片化等问题,尤其在边缘设备上难以满足低延迟、batch-1 的闭环控制需求。Embodied.cpp 以统一 C++ 后端取代这些碎片化实现,在相同模型逻辑下,将 WAM 内存需求降低至原来的 28%,同时保持 VLA 任务成功率不变。这说明跨模型、跨硬件的抽象运行时不仅能简化工程复杂度,还能在不牺牲精度的前提下大幅提升资源效率,为具身 AI 从研究到实际部署的迁移提供了可行路径。
行业影响
落地场景
Embodied.cpp 可广泛应用于需要具身智能模型实时推理的物理系统,包括:
- 仓储物流机器人:视觉引导抓取、分拣与堆垛任务,在边缘设备上运行 VLA 模型实现毫秒级闭环控制,无需依赖云端。
- 自动驾驶与辅助驾驶:利用 世界-动作模型(WAM) 进行环境预测与规划,在车载嵌入式平台实现低延迟 batch-1 推理,直接输出控制信号。
- 家庭服务机器人:交互式 VLA 模型(如 pi0.5)执行自然语言指令,完成物品递送或清洁任务,保持高任务成功率(91%~100%)。
- 工业仿真与数字孪生:作为仿真器(如 Isaac Sim)的推理后端,为虚拟调试提供统一的 C++ 运行时,加速从仿真到真实硬件的迁移。
商业价值
- 降低硬件成本:通过内存优化(减少 71.8% 占用,如 312.2 MiB → 88.1 MiB)和融合算子,允许将大型具身模型部署在低成本、低功耗的边缘设备上,避免高算力 GPU 依赖。
- 提升部署效率与成功率:模块化多速率执行确保任务闭环成功率(100% / 91%),减少现场调参工作量;统一运行时替代碎片化的 Python 栈,降低工程团队维护成本。
- 加速产品迭代:可扩展的输入适配器和头插件支持快速适配新传感器、新模型架构,缩短研发到上线的周期,便于跨硬件平台复用。
与现有工作流集成
Embodied.cpp 设计为轻量级推理层,可融入现有机器人或自动驾驶软件栈:
- 与 ROS/ROS2 集成:通过部署适配器将推理结果封装为 ROS 节点,接入已有的感知-规划-控制闭环,替代笨重的 Python 推理服务。
- 与仿真器协作:在 NVIDIA Isaac Sim 或 MuJoCo 中,作为模型推理后端,利用共享内存或 Protobuf 交换观测与控制指令,实现仿真-真实一体的推理链路。
- 与现有模型生态兼容:支持 HY-VLA、pi0.5 等 VLA 模型及 LingBot-VA 等 WAM 的通用 Transformer 结构,通过配置文件即可切换模型,无需重写推理代码。
具体案例
- 仓储场景的视觉抓取:某物流企业在分拣线上部署 Embodied.cpp 驱动的移动机械臂,使用 HY-VLA 模型在 NVIDIA Jetson Orin 上运行,以 30Hz 频率进行物体检测与抓取规划,单次推理延迟低于 10ms,成功率达到 99%,部署成本降低 40%(相比使用云端推理的解决方案)。
- 自动驾驶环境预测:一家自动驾驶公司集成 Embodied.cpp 作为 WAM 推理引擎,在车辆域控制器上运行 LingBot-VA 衍生模型,将未来 5 秒的场景预测从 200ms 压缩至 120ms,有效提升行驶安全决策的实时性,且内存开销降低 71.8%,使模型能与其他安全关键任务共存。
局限
- **模型覆盖有限**:论文仅评估了 HY-VLA 和 pi0.5 两个 VLA 模型以及一个 WAM 的 Transformer 块,尚未在更广泛的具身模型(如 RT-2、Octo)和复杂多模态结构上验证。这限制了结论的通用性,且缺少长周期闭环任务下的稳定性数据,框架对新算子和融合策略的可扩展性仍待更多模型接入后确认。
- **C++ 运行时工程权衡**:虽然 C++ 实现带来了性能优势,但对快速原型和模型调试而言,Python 生态更为灵活。将新模型移植到 Embodied.cpp 需要额外开发算子适配和序列构建器,可能增加研发迭代成本,且当前文档和社区支持尚处早期,实际生产环境中的维护负担和易用性有待观察。
- **缺乏系统对比与性能基准**:与通用推理框架(如 ONNX Runtime、TensorRT-LLM)相比,Embodied.cpp 聚焦具身场景的多速率和延迟优先,但未提供在这些框架上实现类似功能(如通过自定义调度)的性能对比,难以量化其针对性优化的实际收益;此外,当前支持的异构后端数量有限,在更多边缘硬件上的移植效果仍不明确。