Realtime-VLA V2——从让π0实时抓取下落的钢笔到让 VLA 运行得更快、更平滑且更精确
前言今天在朋友圈刷到一则新闻称《开普勒机器人被A股公司收购前任CEO已离职创业》我仔细看了全文还是多有感慨其实对双足3-5家今年可继续卷跳舞 跑步 打拳及比赛/陪练(乒乓球/网球/羽毛球等)而3-5家之外的双足得另寻他路比如展厅讲解及接待至于双足落地工厂的话不好说毕竟按照我们过去一年平均一月去3个工厂的经验这一两年 双足在工厂还难以大规模智能落地得先靠机械臂和轮式且之前说让工厂从自动化升级到智能化然我司做深了会发现先不要急着代替已经成熟十年的自动化而是让智能化先做好补充做纯工业自动化做不了的事情总之现在各种吹的太多了务实更好正因为以上种种使得我对基于机械臂和轮式的paper比去年更关注了比如本文介绍的Realtime-VLA第一部分 以实时速度运行VLA在本第一部分中作者展示了如何仅使用一块消费级GPU以 30Hz 的帧率和最高 480Hz 的轨迹频率运行 π0 级别的多视角 VLA。这使得此前被认为大型 VLA 模型无法实现的动态、实时任务成为可能为此作者提出了一系列策略用于消除模型推理中的各种开销。真实环境实验表明采用作者策略“Running VLAs at Real-time Speed”的 π0 策略在抓取下落钢笔任务中达到了100% 的成功率基于上述结果作者进一步提出了一个用于实时机器人控制的 VLA 全流式推理框架1.1 引言与π0 级别模型预备知识1.1.1 引言基于学习的机器人控制算法正日益盛行尤其是拥有数十亿参数的VLA 模型[2, 3, 16, 18]。尽管它们具有令人印象深刻的泛化能力这些模型仍面临时延问题。许多现实世界任务如抓取移动物体往往需要快速反应时间然而VLA 模型的一次前向传播通常需要数百毫秒阻碍了人们对动态机器人所期望的快速反应。而运行时间少于 33 毫秒(约 1/30 秒)是实现实时操作的转折点——这意味着每秒 30 帧的 RGB 视频流的所有帧都能被完全处理即使达到了 34 ms在连续运行过程中作者也必须时不时丢弃一些帧。如果需要检测的事件恰好发生在被丢弃的那一帧上那么整体延迟就会增加整整一个帧周期在本文中作者作出了一个关键观察VLAs 实际上完全可以在单张消费级 RTX 4090 GPU 上实现实时运行。经过作者的优化在输入两个视角的情况下推理延迟仅为 27.3 毫秒比 openpi[2] 项目提供的“官方”推理速度显著更快见表 1这一性能提升主要得益于作者对推理流水线的工程优化首先采用 CUDA 图CUDA graph方法消除了所有 CPU 开销随后对计算图进行变换以减少总 MAC 计算量或减少 kernel 启动次数在此之后作者对各个 kernel 内部的内存和张量操作进行了重新编排以更好地利用并行性。通过以上所有策略作者成功将推理时间推进到30 FPS 及以上满足了实时控制的需求为了验证作者实时策略的有效性他们在真实环境中设计了一个简单的概念验证实验。如图1 所示制作了两个竖直对齐的夹爪来夹持一支记号笔当上方的第一个夹爪松开笔后第二个夹爪需要在合适的时间抓住这支笔。通过自动化规则收集了数百条抓取数据。通过训练π0 模型来控制夹爪去抓取从更高且存在扰动位置落下的笔。这样的任务具有非常严格的时间约束。在模型推理过程中由于推理时间得到了极大优化π0 模型在该任务上达到了100 % 的成功率这一结果促使作者重新思考应当如何将 VLA 应用于实时机器人系统目前机器人控制系统主要由三层构成不同的算法在其中以分层控制频率的形式运行。通常认为VLA 位于中层控制这一层次更高频率的控制即力控制或力矩控制则被认为由其他算法来处理然而作者发现VLA 本身就包含了不同层级的输入与输出频率。作者直接将 VLA 的结构映射为一个完整的控制算法并将该模式称为全流式推理Full StreamingInference模式系统能够以最高 480 Hz 的频率生成控制信号已触及实时力控制的门槛1.1.2 π0模型的预备知识π0[2] 是一种在通用机器人操作任务上表现优异的VLA策略。通过在机器人数据和多模态数据上进行混合训练以实现开放世界泛化能力[3]。从模型架构的角度来看它主要包括两个部分视觉-语言模型VLM和动作专家AEVLMbackbone 以 PaliGemma [1] 进行初始化PaliGemma是一个具有 30 亿参数的多模态模型它由一个具有 4 亿参数的视觉编码器 SigLIP [22] 和一个具有 26 亿参数的大型语言模型LLMGemma [19] 组成PaliGemma 的表示通过大规模网页数据预训练获得为下文 AE 部分的并行动作解码提供了强有力的先验AE 通过混合专家MoE架构与 VLM 骨干网络相耦合 [15]AE 的网络是在Gemma 的基础上缩小宽度和 MLP 维度得到的总参数量为 3 亿。AE 通过 flow matching[12] 建模用于生成分段动作的预测结果多视角图像和任务prompt 被路由到更大的 VLM 主干网络而状态和动作噪声则被路由到 AE1.2 消除开销如原论文所述接下来作者将展示一个逐步构建推理程序的过程作者的起点是一个普通的 PyTorch nn.Module实现它严格按照模型结构直接编写。测得的运行时间在 100 毫秒以上距离作者的目标相去甚远首先做的几步优化聚焦于一些“易得红利”一方面通过消除 CPU 开销对应图 2 中的“cuda graph”项显著加速计算另一方面通过去除冗余计算对应图 2中的“simplified graph”项来进一步提速1.2.1 消除 CPU 开销目前神经网络推理通常由 Python 代码驱动用来启动底层的 CUDA 内核。然而当内核数量很大时Python 部分会带来显著的开销。在 π0模型中估计每一步推理需要启动的内核总数超过一千个这使得 CPU 开销问题变得十分紧迫目前已有多种预先编译Ahead-Of-Time, AOT或即时编译Just-In-Time, JIT技术可供选择然而作者发现最简单且最有效的方法是使用 CUDA 图(CUDA graph)机制。在CUDA图中作者可以记录模型推理期间启动的内核流然后重新执行这些操作在回放阶段这些 kernel 完全由 GPU 和驱动程序发起与执行从而消除所有 Python 执行开销CUDA graph 方法需要确保从一次运行到下一次运行所有 kernel 代码和缓冲区指针都是恒定不变的在作者的 VLA 场景中这一条件是可以满足的因为底层的 transformer 块中不存在动态分支如图 2 所示这大约将推理速度提升了两倍从而挤掉了朴素实现中推理开销的主要部分1.2.2 图简化// 待更第二部分 Realtime-VLA V2让 VLA 运行得更快、更平滑且更精确// 待更
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2628518.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!