
过去,教机器人“把碗放在盘子上,再把奶油奶酪放进碗里”需要机器人身后摆放一排数据中心 GPU(图形处理器)。在本博客中,我们展示了一个现代视觉-语言-动作(VLA)模型 MolmoAct2 如何观察场景、读取纯英文指令,并驱动机器人手臂完成任务,而这一切都运行在一台搭载 ROCm 软件栈的 AMD Ryzen AI Max+ 395 “Strix Halo” 迷你 PC 上。无需云端,无需外部加速器,只需一台紧凑的桌面机器。
通过阅读本博客,你将学习如何部署和运行针对 AMD Ryzen AI Max+ 395 优化的最先进 VLA 模型。你将使用可复现的 Ryzers 容器启动基于浏览器的机器人控制,测试跨机器人手臂的零样本迁移,运行异步实时规划,并在仿真和真实世界数据上评估该策略。这些工作流为你提供了一个实用的起点,以便在本地使用 ROCm 对机器人应用进行原型设计和基准测试,而无需依赖云端或数据中心 GPU。
我们将所有内容打包为一个开箱即用的 Ryzers 容器,任何人都可以通过几条命令看到机器人的实际运行。在此过程中,我们展示了机器人如何在 LIBERO 环境中遵循指令,展示了同一策略可以迁移到它从未训练过的机器人手臂上,展示了它在实时运行中边规划边移动,并针对真实世界机器人数据进行了验证。如下方视频图(图 1)所示,该策略直接通过迷你 PC 提供的浏览器会话驱动机器人手臂。
图 1. 在 LIBERO 模拟器中,直接通过网页浏览器控制 Panda 机器人手臂,MolmoAct2 运行在 Ryzen AI Max+ 395 迷你 PC 上。
传统机器人是在任务特定的闭环控制器之上,通过手写规则进行编程的。视觉-语言-动作模型采用了一种截然不同的方法:它是一个基础神经网络,接收机器人看到的内容(相机图像)和你要求它做的事情(自然语言指令),并直接产生机器人下一步应该做什么(运动命令)。它将近年来各自取得巨大成熟的三个理念——计算机视觉、语言理解和机器人控制——结合为一个统一模型。在之前的一篇文章中,我们展示了如何将 LeRobot 机器人学习框架引入 ROCm。在这里,我们展示一个完整基础 VLA 模型的部署。MolmoAct2 是开放机器人领域一个特别令人兴奋的里程碑:它提供完全开源的权重、训练代码和数据。它还能从单个训练模型泛化到多种机器人形态,而不是每个机器人一个模型。它还建立在 Ai2 开放的 Molmo 系列(包括 MolmoSpaces 环境)之上,以实现有依据的 3D 理解。
MolmoAct2 是一个开放的、最先进的 VLA 系列。它基于 MolmoAct2-ER 模型,该模型在底层将 SigLip2 视觉编码器和 Qwen3-4B 语言主干与一个流匹配动作专家配对,后者生成未来运动的短“块”。该策略以末端执行器坐标进行表达——它决定机器人手应该去哪里,以及夹爪应该打开还是关闭。正如我们将看到的,这一设计选择带来了一个令人愉快的惊喜:跨形态策略迁移。它还可以直接命令各个关节电机。
模型和数据集的开源特性使 MolmoAct2 成为一个非常方便把玩的工具。VLA 模型很大,但 Ryzen AI Max+ 395 将性能强大的集成 GPU 与大容量统一内存池配对,因此它可以在适合放在桌面上的设备中轻松容纳并运行这些模型。
MolmoAct2 Ryzers 包捆绑了一整套演示,每个演示都练习“看、想、做”循环的不同部分:
交互式仿真:在 MuJoCo 环境中通过浏览器操控 Panda 机械臂。
跨本体:在 UR5e 或 xArm6 机器人上运行同一策略,无需重新训练。
实时控制:让仿真器以真实时钟速度运行,同时策略在后台异步规划,从而观察策略在真实场景中的实际表现。
闭环评估:在标准 LIBERO 任务套件上对策略进行评分。
开环回放:回放真实世界的 DROID 数据集片段,并将模型预测的动作与真实值进行对比。
所有内容都会一次性下载到持久缓存中,并在多次运行之间复用,演示生成的每个视频和图表都会写入本地 outputs 文件夹。
Ryzers 是 AMD 的轻量级框架,用于在 Ryzen AI 硬件上构建和运行 ROCm Docker 容器。准备环境需要两步:克隆并安装该框架:
git clone https://github.com/AMDResearch/Ryzers pip install Ryzers/
然后构建 MolmoAct2 包并运行快速环境检查:
ryzers build molmoact2 ryzers run
运行不带任何命令的 ryzers run 会执行一次轻量的 ROCm 健全性检查。模型权重和数据集会在首次使用时下载到挂载的 Hugging Face 缓存中,之后会被复用。如果你有 Hugging Face 账户,设置 token 可以加快这些下载速度:
export HF_TOKEN = XXXX....XXXX
主演示将浏览器变成机器人控制面板。启动交互式服务器:
ryzers run /ryzers/demo_interactive.sh
然后打开 http://localhost:8080 。你会看到一个带有 Panda 机械臂的实时 LIBERO 场景。输入一条指令,MolmoAct2 就会接管。它会观察场景、理解请求,并开始发出运动指令。
默认情况下,这个同步演示使用快速路径,并跳过模型可选的逐步深度推理(MolmoAct2-Think),从而保持交互流畅。如果你想要完整的推理路径(模型在行动前会“思考”深度),请传入 THINK=1 。
简单的拾取放置是一回事;将多个子目标串联起来才是 VLA 真正展现优势的地方。如下方视频图(图 2)所示,指令是“把碗放在盘子上,并把奶油奶酪放进碗里”——策略必须按正确顺序编排多次抓取和放置。
图 2. 带有提示“把碗放在盘子上,并把奶油奶酪放进碗里”的机器人:一条指令,多个协调的子任务。
这是整个软件包中最令人惊喜的成果之一。MolmoAct2 在来自三种机器人本体的数据上进行了训练:Panda 机械臂、双臂 YAM 和 SO101 机器人;并且它无需任何重新训练即可驱动完全不同的机械臂。诀窍在于我们之前提到的末端执行器设计选择:策略只输出每个时间步手部应该移动多少,而标准机器人控制器使用逆运动学来计算关节运动。因为策略所使用的“语言”是关于手部姿态而非特定电机,所以直接更换其下方的身体就能正常工作。
要在装配了 Robotiq 85 夹爪的 UR5e 机械臂上运行该策略,请使用以下命令,并在随后的视频图(图 3)中查看结果:
EMBODIMENT = ur5e ryzers run /ryzers/demo_interactive.sh
图 3. MolmoAct2 零样本迁移到装配了 Robotiq 85 夹爪的 UR5e 机械臂。
同样的命令也适用于 xArm6,如下方视频图(图 4)所示:
EMBODIMENT = xarm6 ryzers run /ryzers/demo_interactive.sh
图 4. 同一策略,这次驱动的是 xArm6 机器人本体。
值得停下来思考一下为什么这很重要。在实践中,机器人团队很少使用模型训练时所使用的确切机械臂。通常,要将 VLA 重新部署到新的本体上,需要昂贵的数据采集和微调。一个开箱即用即可跨硬件迁移的策略,大幅降低了部署高性能机器人的成本,并且这是一个强有力的信号,表明模型学到了关于操作任务的真正通用的知识,而不是记住某一台机器。
上面的演示以锁步方式运行模拟器和策略:模拟器暂停,模型思考,然后机器人移动。这对于清晰展示很好,但在现实中,时间不会为任何人停止。实时服务器以真实速度运行 MuJoCo 模拟,同时策略在后台异步规划下一块动作。在计算下一块动作时,机器人只是保持其当前姿态,然后在计划准备好时立即采用新计划。
ryzers run /ryzers/demo_interactive_rt.sh
打开 http://localhost:8081 进行观看。对于更长时域的任务,你可以增加回合长度(默认值为 1200 步):
RT_MAX_STEPS = 3000 ryzers run /ryzers/demo_interactive_rt.sh
异步运行规划器正是你在真实机器人上所需要的设置,这也是我们在本文结尾提到的一个活跃研究方向的基礎:让规划足够快,使机器人完全不需要暂停。
为了衡量策略实际完成任务的效果,该软件包包含了一个闭环评估工具。在这里,策略在 MuJoCo 中从头到尾运行一个完整任务,模拟器报告目标是否达成。
ryzers run /ryzers/demo_libero.sh SUITE = libero_object TASK_ID = 3 ryzers run /ryzers/demo_libero.sh
提供四个标准 LIBERO 套件——libero_10、libero_goal、libero_object 和 libero_spatial——每个套件的任务 ID 从 0 到 9,因此你可以独立地探究空间推理、物体操作、目标条件行为和长时程任务。如下方视频图(图 5)所示,一旦 rollout 开始,策略就会自行规划和执行完整任务。
图 5. MuJoCo 中的闭环 LIBERO rollout:策略自行规划和执行完整任务。
到目前为止,所有演示都在仿真中运行。为了验证模型在真实世界机器人数据上是否表现忠实,该软件包包含了一个在 DROID 数据集上的开环回放。它逐步执行一段录制的 episode,在每个时刻询问 MolmoAct2 它会做什么,并将模型预测的动作叠加在人类遥操作员实际执行的真实动作上。如下方视频图(图 6)所示,该演示同时生成场景视频和预测对比真实动作的图表。
ryzers run /ryzers/demo_droid.sh EPISODE = 42 ryzers run /ryzers/demo_droid.sh
图 6. 在 DROID 数据集 episode 上的开环回放,展示场景视频以及预测对比真实动作的图表。
每个演示都可以通过环境变量复现和调优:
THINK=1 启用完整的深度推理路径;THINK=0 NUM_STEPS=4 是快速交互的默认设置。
PORT=... 更改浏览器端口。
SEED=...、SUITE=... 和 TASK_ID=... 使运行可复现。
EMBODIMENT=panda|ur5e|xarm6 选择机械臂。
ryzers run /ryzers/download.sh 预先将所有模型和数据集资源加载到缓存中。
在本教程中,我们展示了一个完整、现代的视觉-语言-动作机器人技术栈 MolmoAct2,使用 ROCm 和 Ryzers 框架,在一台 AMD Ryzen AI Max+ 395 “Strix Halo” 迷你 PC 上端到端运行。我们从浏览器驱动 Panda 机械臂,将完全相同的策略零样本迁移到 UR5e 和 xArm6 机械臂上,以异步规划实时运行该策略,在闭环 LIBERO 评估中对其评分,并针对真实世界 DROID 数据进行验证,其预测与人类演示高度吻合。
结论是,强大的通用机器人策略不再需要数据中心才能运行。借助 AMD 的统一内存 Ryzen AI 硬件和开放的 ROCm 软件栈,如今任何人都可以在紧凑的桌面机器上构建、运行和实验最先进的 VLA。
本文档中提供的信息仅供参考,可能包含技术性错误、遗漏和排版错误。本文所含信息可能会发生变化,并可能因多种原因而变得不准确,包括但不限于产品和路线图变更、组件和主板版本变更、新模型和/或产品发布、不同制造商之间的产品差异、软件变更、BIOS 刷新、固件升级等。任何计算机系统都存在无法完全预防或缓解的安全漏洞风险。AMD 无义务更新或以其他方式更正或修订此信息。但是,AMD 保留修订此信息并随时更改其内容的权利,且无义务通知任何人此类修订或更改。此信息按“原样”提供。AMD 不对本文内容作出任何陈述或保证,并且不对本信息中可能出现的任何不准确、错误或遗漏承担任何责任。AMD 明确否认任何关于不侵权、适销性或特定用途适用性的默示保证。在任何情况下,AMD 均不对任何人因依赖本文所含任何信息而导致的任何直接、间接、特殊或其他后果性损害承担责任,即使 AMD 已明确被告知此类损害的可能性。AMD、AMD Arrow 标志及其组合是 Advanced Micro Devices, Inc. 的商标。本出版物中使用的其他产品名称仅用于识别目的,可能是其各自公司的商标。© 2026 Advanced Micro Devices, Inc. 保留所有权利
转载声明:本文为转载整理,原文版权归原作者及原站点所有。
原文来源:AMD ROCm Blog
原创地址:https://rocm.blogs.amd.com/artificial-intelligence/molmoact2-ryzers-strix/README.html
原文作者:Mir Sayeed Mohammad, Sarunas Kalade, Graham Schell;如有侵权,请联系管理员删除。