ITPub博客

首页 > 人工智能 > 机器人开发 > 在 AMD Ryzen AI Max+ 395 迷你 PC 上运行 MolmoAct2 机器人策略

在 AMD Ryzen AI Max+ 395 迷你 PC 上运行 MolmoAct2 机器人策略

机器人开发 作者:ITPUB社群 时间:1970-01-01 08:33:46 0 删除 编辑

过去,教机器人“把碗放在盘子上,再把奶油奶酪放进碗里”需要机器人身后摆放一排数据中心 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 与大容量统一内存池配对,因此它可以在适合放在桌面上的设备中轻松容纳并运行这些模型。

教程:一个 Docker(容器化平台) 镜像指挥机器人军团 #

MolmoAct2 Ryzers 包捆绑了一整套演示,每个演示都练习“看、想、做”循环的不同部分:

  • 交互式仿真:在 MuJoCo 环境中通过浏览器操控 Panda 机械臂。

  • 跨本体:在 UR5e 或 xArm6 机器人上运行同一策略,无需重新训练。

  • 实时控制:让仿真器以真实时钟速度运行,同时策略在后台异步规划,从而观察策略在真实场景中的实际表现。

  • 闭环评估:在标准 LIBERO 任务套件上对策略进行评分。

  • 开环回放:回放真实世界的 DROID 数据集片段,并将模型预测的动作与真实值进行对比。

所有内容都会一次性下载到持久缓存中,并在多次运行之间复用,演示生成的每个视频和图表都会写入本地 outputs 文件夹。

Ryzers 入门 #

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

异步运行规划器正是你在真实机器人上所需要的设置,这也是我们在本文结尾提到的一个活跃研究方向的基礎:让规划足够快,使机器人完全不需要暂停。

LIBERO 上的闭环评估 #

为了衡量策略实际完成任务的效果,该软件包包含了一个闭环评估工具。在这里,策略在 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;如有侵权,请联系管理员删除。

请登录后发表评论 登录
全部评论

注册时间:2022-11-21

  • 博文量
    1090
  • 访问量
    546807