夜雨聆风学习资料网

ARTICLE · 1145873

AWS 开源 Physical AI 工具链:机器人从示范到上机的一条云上流水线

AWS 开源 Physical AI 工具链:机器人从示范到上机的一条云上流水线

2026-10-07,AWS 在官方博客发布了 Physical AI Toolchain(物理 AI 工具链),一个 Apache 2.0 开源的仓库:把「采集数据 → 仿真 → 合成数据 → 训练 → 验证 → 部署」这条机器人开发流水线,用 AWS 托管服务加 NVIDIA 的物理 AI 软件栈拼整齐,每个阶段都配一套 Terraform 基础设施即代码。

它值得写的理由不是「AWS 又发了个仓库」,而是这件事本身的性质:具身智能(机器人、自动驾驶、智能工厂)正从实验室演示走向产线部署,而卡住团队的第一道墙是基础设施——GPU 集群怎么弹性扩、仿真跑在哪、模型怎么从云端搬到机器人身上的边缘 GPU。过去这些胶水代码每家公司都要重写一遍,现在有一条开源参考架构可以抄。官方还提到,这套东西借鉴了亚马逊自有机器人队伍的运营经验,媒体转述其规模是超过 100 万台机器人的机队(此为亚马逊对外口径,非第三方核实)。

一、一页仓库:三种算力,各管一段

仓库 README 把物理 AI 需要的算力分成三类,这是理解整条工具链的钥匙:

1. 高带宽 GPU 集群——基础模型预训练与后训练(微调、对齐);

2. 弹性的中档 GPU 算力——仿真与软件在环(SIL)验证;

3. 边缘 GPU(NVIDIA Jetson Thor / AGX)——装在机器人身上或边缘做实时推理。

这分类直接决定成本结构:预训练最贵、仿真可以 Spot 捡便宜、边缘推理只关心延迟。工具链的价值就在于让这三段能自动衔接,而不是每个团队自己拿胶水粘。往下每一节,你都能看到「哪一段跑在哪种算力上」这条隐藏的线索。

二、飞轮与编排层:四根柱子 + 一个 Agent

官方把开发流程画成一个「飞轮」(flywheel),四根柱子是:

• 合成数据生成(Synthetic Data Generation):场景构图、域随机化、课程式增强——工具是 Isaac Sim + Cosmos;

• 模型训练(Model Training):分布式训练、强化学习、超参搜索、检查点晋级——工具是 GR00T、DreamZero、Isaac Lab;

• SIL 仿真(Simulation):物理精确的验证、对抗场景、回归门禁——Isaac Sim;

• Sim-to-Real / 硬件在环(HIL):域适配、安全监控、数字孪生同步、部署评分——Jetson / RTX。

这四根柱子的成本量级差得很远(下节有官方表):合成数据与仿真可以用 Spot 捡便宜,强化学习训练 2–4 小时约 $10–30,而微调 140 亿参数的世界动作模型一次就是 $93。飞轮的意义就在于让便宜的那几段去喂贵的那一段——用大量便宜的仿真数据,换一次高质量的微调。官方给的那句口号是「Data → Train → Validate → Deploy → Feedback → Generate」,一个闭环。

四根柱子中间还有一个**「Agentic AI 编排层」**,用的是 AWS 的 Strands Agents SDK。README 的描述很有意思:这个 Agent 层「用自然语言驱动机器人并闭环」——把训练好的策略变成机器人行为,再决定下一步该生成什么数据、该训练什么。换句话说,它把「强化学习调参」这件事往上抬了一层,交给一个 agent 去编排。

贯穿整周期的是 NVIDIA OSMO(仓库里是 6.3 版本):负责任务调度、数据流编排、依赖解析,以及在异构算力之间做资源分配(云 GPU + 本地实验机 + 边缘设备)。

三、组件清单与状态:一眼看清哪些能用、哪些是画饼

这是判断「现在能不能上手」最关键的一张表(来自仓库 README,状态是官方标注):

组件 作用 状态
Foundation 共享 S3 / ECR / IAM / VPC / SSM 参数 Available
Cosmos Cosmos 世界生成(Predict V2V)+ 数据增强(Transfer 2.5) Available
Isaac Lab Isaac Lab 强化学习训练,单卡 4096 并行环境,跑在 SageMaker + Batch Available
Isaac GR00T 在 SageMaker + Batch 上微调 GR00T N1.6 视觉-语言-动作(VLA)模型 Available
DreamZero 用 LoRA 在 SageMaker 上微调 140 亿参数的世界动作模型(World Action Model) Available(CDK,独立仓库)
Isaac Sim NVIDIA Isaac Sim 物理仿真 GPU 工作站 Available
OSMO OSMO 6.3 编排,跑在 EKS 上(控制面 + 计算 + GPU 调度) Available
Strands Agents 自然语言驱动机器人编排(默认 MuJoCo 仿真,真机 opt-in) Available
Isaac Lab Arena 评测 GR00T 闭环评测、检查点完整性校验、门禁式 SageMaker 注册 Preview
边缘部署 经 EKS Hybrid Nodes + Greengrass 打包模型到 Jetson Planned(未实现)

把「状态」列读清楚能省很多时间:边缘部署还只是 Planned,评测环节是 Preview——也就是说,「训练完直接推到机器人」这段路目前还得自己补,工具链给的是到仿真与检查点为止的自动化。另外 DreamZero 的部署走的是另一个独立的 CDK 仓库,不在主仓库的 Terraform 里,别在主仓库里翻它的 Terraform 目录。

四、流水线的五个阶段

README 给出的端到端流程(以「抓放」为例):

1. Ingest——把遥操作录制(Zarr、ROS bags、CSV)转成 LeRobot v2 格式,存进 S3;

2. 训练(模仿学习)——在 SageMaker 上用示范数据微调 GR00T;

3. 世界生成——用 Cosmos 3 Predict 生成新的合成示范,或用 Cosmos Transfer 2.5 把已有视频「换皮」;

4. 训练(强化学习)——在 Isaac Lab 里从零训策略,一张 GPU 上跑 4096 个并行环境;

5. 部署——导出 TensorRT,经 Greengrass 推到机器人机队。

这里有个容易被忽略的工程决策:第一步把各种原始格式统一成 LeRobot v2。ROS bag、Zarr、CSV 各说各话,如果不在入口处收敛成一种标准 episode 结构,后面微调、评测、复现都会各自踩坑。用标准格式,是让整条流水线「可换机器人、可换任务」的前提——README 明确说,换成任何机器人只要提供自己的 URDF 和遥操作数据,流水线不变。

官方还附了一个完整的 pick-and-place 抓放示例(工业里最常见的分拣/上料任务),用的是 UR3 协作机械臂加 Robotiq 2F-85 夹爪,附带 27 条真实遥操作数据。

五、动手:从 Terraform 到一段 RL 训练

下面前置与部署片段对应仓库文档里的路径(foundation/infra/、isaac-lab-on-aws/infra/),训练片段对应 Isaac Lab 的强化学习接口。值是示例量级,实际以你仓库里的变量定义为准。

先装前置、拉仓库、起基础层:

# 前置:AWS CLI v2 + Python 3.11+ + Terraform >= 1.5

# 还需要两个密钥:NVIDIA NGC(拉容器镜像)与 HuggingFace(拉权重)

export NGC_API_KEY="ngc-xxxxxxxx" # https://ngc.nvidia.com/setup/api-key

export HF_TOKEN="hf_xxxxxxxx" # https://huggingface.co/settings/tokens

git clone https://github.com/aws-samples/sample-the-physical-ai-toolchain-on-aws

cd sample-the-physical-ai-toolchain-on-aws/foundation/infra

# foundation/infra/main.tf —— 共享底座:S3 / ECR / IAM / VPC / SSM 参数

module "foundation" {

  source = "../../modules/foundation"

  project = "physical-ai"

  region = "us-west-2"

  bucket_name = "physical-ai-datasets" # 存 LeRobot v2 数据集

  create_vpc = true # 训练/仿真共用一张 VPC

}

output "artifact_bucket" { value = module.foundation.bucket_name }

terraform init && terraform plan && terraform apply

# 用完记得 terraform destroy,GPU 实例是按小时计费的

部署完训练环境后,强化学习这一段的提交方式(以 Isaac Lab 的 RL 任务为例):

# isaac-lab-on-aws/scripts/train_rl.py(示例)

from isaaclab.app import AppLauncher

# 一张 GPU 上开 4096 个并行环境:这是 Isaac Lab 的核心卖点

app_launcher = AppLauncher(headless=True, enable_cameras=False)

simulation_app = app_launcher.app

from isaaclab.envs import ManagerBasedRLEnv

from isaaclab_tasks.manager_based.manipulation import lift # 举升/抓放任务

def build_env(num_envs: int = 4096):

    cfg = lift.LiftEnvCfg()

    cfg.scene.num_envs = num_envs # 并行环境数随 GPU 显存伸缩

    cfg.seed = 42

    return ManagerBasedRLEnv(cfg=cfg)

# 训练循环交给 RSL-RL / SKRL 一类库,checkpoint 写回 S3

env = build_env()

print("num_envs =", env.num_envs, "| device =", env.device)

模仿学习那一侧,把遥操作数据转成 LeRobot v2 再提交 GR00T 微调:

# ingest 阶段:把 ROS bag / CSV / Zarr 统一成 LeRobot v2 的 episode 结构

import json, pathlib

episode = {

    "episode_index": 0,

    "tasks": ["pick up the box"],

    "length": 120,

    "observation.images.wrist": "videos/chunk-000/.../episode_000000.mp4",

    "action": [[0.1, 0.0, -0.2, 0.0, 0.0, 0.0, 1.0]] * 120, # 7 维:6 关节 + 夹爪

}

p = pathlib.Path("meta/episodes/chunk-000/episode_000000.json")

p.parent.mkdir(parents=True, exist_ok=True)

p.write_text(json.dumps(episode, ensure_ascii=False), encoding="utf-8")

print("wrote", p)

# 用 SageMaker 提交 GR00T N1.6 微调(smoke test 约 15 分钟)

aws sagemaker create-training-job \

  --training-job-name gr00t-smoke-$(date +%s) \

  --algorithm-specification AlgorithmName=gr00t-n1.6 \

  --output-data-config S3OutputPath=s3://physical-ai-datasets/outputs/

最后是那层「用自然语言驱动机器人」的 Strands Agents(默认跑 MuJoCo 仿真、真机需显式 opt-in):

# strands agents 侧:把训练好的策略挂成工具,让 agent 用自然语言闭环

from strands import Agent

from strands_robots import RobotTool # 默认 MuJoCo 仿真;真机需 opt-in

robot = RobotTool(backend="mujoco", robot="ur3", policy="s3://.../gr00t-n1.6")

agent = Agent(

    system_prompt="你负责编排机械臂抓放任务,并在失败时决定下一步生成/训练什么。",

    tools=[robot],

)

agent("把箱子从托盘 A 放到传送带 B,如果失败就换一个域随机化配置再训一轮。")

六、该起整套 OSMO,还是只挑一件?

README 专门回答了这个「怎么起步」的问题,值得单独拎出来——因为它决定你是花 $5/小时起一套编排,还是只花几毛钱部署一个组件。

• 全新、从零搭流水线的团队:直接用 osmo-on-aws。它同时提供编排与各阶段算力,用声明式 YAML 驱动工作流、自动解析阶段之间的数据依赖,并支持「云 + 本地实验室 + 边缘」的多集群编排。

• 已经有编排系统(Kubeflow、Airflow、Argo Workflows 或自建 CI/CD)的团队:只挑单组件接进去——要做 RL 就部署 isaac-lab-on-aws 并用 SageMaker / Batch 提交作业,要做模仿学习就上 isaac-gr00t-on-aws,只做合成数据就把 cosmos-on-aws 当独立服务部署。

• 正在从脚本迁往托管编排:先上 osmo-on-aws,再把各阶段逐个迁过去。

这条「单体 or 整套」的区分,是这份工具链比一般 demo 仓库成熟的地方——它承认很多人已经有自己的 pipeline,不强迫你推倒重来。

七、官方成本表:真正的决策依据

仓库 README 直接给了一张估算成本表(这是官方自报的参考值,不是报价单),我认为它比任何宣传话术都有用:

组件 估算成本 说明
GR00T 训练(冒烟测试) 约 $2 ml.g5.12xlarge 跑 15 分钟
GR00T 训练(完整) 约 $79 ml.g5.12xlarge 跑 11 小时
DreamZero 微调(冒烟门禁) 约 $10 ml.g7e.24xlarge 跑 25 分钟
DreamZero 微调(1000 步) 约 $93 ml.g7e.24xlarge 跑 4 小时 11 分
Cosmos 3 Predict 约 $37/小时 p5.48xlarge(Capacity Block)
Cosmos Transfer 2.5 约 $8/小时 g6e.12xlarge(Spot)
Isaac Sim 工作站 约 $1.86/小时 g6e.4xlarge(闲置即停)
Isaac Lab 强化学习训练 约 $10–30 ml.g5.xlarge 跑 2–4 小时
OSMO(完整部署) 约 $5/小时 EKS + RDS + ElastiCache

两个能直接省钱的读法:(1)先用冒烟测试卡门禁——GR00T 冒烟 $2、DreamZero 冒烟 $10,跑通再上完整训练,避免一次性烧 $79/$93;(2)仿真与增强用 Spot——Cosmos Transfer 2.5 在 g6e.12xlarge 上走 Spot,比 Predict 的 Capacity Block 便宜近一个量级,而「换皮式增强」本身就是最不需要稳定算力的那一段。所有资源都能用 terraform destroy 或删 CloudFormation 栈回收。

八、坑位清单(含一条容易看走眼的)

• 不是 RoboMaker 的替代品。AWS 官方明确说这不是 2025 年关停的 RoboMaker 的替换;RoboMaker 是 AWS 机器人栈里的一个组件,而这条工具链把更广的开发技术集合在了一起。

• 前置里有两个外部密钥:NVIDIA NGC API key(拉容器镜像)和 HuggingFace token(下载模型权重),缺一个训练就起不来。

• Terraform 版本 >= 1.5,本地不需要装 Docker(容器在 AWS CodeBuild 里构建)——别在本地浪费时间配 Docker。

• DreamZero 的 Terraform 不在主仓库,走一个独立的 CDK 仓库(sample-dreamzero-finetuning-on-sagemaker)。

• 边缘部署与评测还没齐:边缘部署状态是 Planned,Arena 评测是 Preview。「训完直接上机」这条链目前是断的,要自己补 EKS Hybrid Nodes + Greengrass 那段。

• 先看状态列再动手:仓库里最怕的就是把 Planned 当 Available 写进排期——边缘部署这条就是一个典型。

• 仓库命名有个 redirect:aws-samples/sample-aws-physical-ai-toolchain 会跳转到 aws-samples/sample-the-physical-ai-toolchain-on-aws(同一仓库),clone 哪个名字都行。截至本文写作,仓库 Apache-2.0,24 star / 11 fork,创建于 2026-07-09,最近一次推送是 2026-10-08(GitHub API 实测)。

顺带提一个同题撞名的坑:微软也有一个叫 physical-ai-toolchain 的开源仓库(Azure + NVIDIA Isaac 的组合)。两个仓库名字几乎一样、都对接 NVIDIA 物理 AI 栈,但一个绑 AWS、一个绑 Azure。搜资料时务必看清是 aws-samples/ 还是 microsoft/,否则会把两家的架构图混着看。

九、一条可以今天就跑的路径

如果你只是想验证这条工具链值不值得投入,可以按成本从低到高走一遍:

1. 先起底座:部署 foundation,把 S3 / ECR / IAM / VPC 建起来——这一步几乎不烧 GPU 钱;

2. 再跑仿真:部署 isaac-sim-on-aws(约 $1.86/小时),把内置的 UR3 抓放示例在 Isaac Sim 里跑通,确认物理场景能复现;

3. 最后碰训练:用自带的 27 条遥操作数据跑一次 GR00T 冒烟训练(约 $2),验证数据格式转换与权重下载这两个最容易出错的环节;

4. 这三步都过了,再决定要不要上 OSMO 编排与完整的强化学习训练。

先花几美元把链路走通,再谈规模化——这是官方那张成本表最想传达的使用方式。它没有把「一键部署整条流水线」当成卖点,而是把每段的价钱明码标出来,让你自己决定投多少。

总结

AWS 这条 Physical AI Toolchain 的价值,不在于它给了某个新算法,而在于它把具身智能「工程化」的那一段——弹性 GPU、仿真、合成数据、检查点管理与编排——变成了可复制的 Terraform。对个人开发者,最实际的用法是挑单个组件装上:只想要强化学习就部署 isaac-lab-on-aws,只要模仿学习就上 isaac-gr00t-on-aws,不必一整套 OSMO 起齐。

但有两个现实约束必须先认清:一是边缘部署还只是 Planned,训练到上机之间要自己搭桥;二是成本是按时计费的,冒烟测试卡门禁、仿真走 Spot、用完 terraform destroy,这三条是任何机器人团队都该先写进脚本的纪律。至于「机器人会不会取代谁」——先把抓放跑通再说。

参考与致谢

• AWS 官方博客:《Introducing AWS Physical AI Toolchain》(2026-10-07/08)及 AWS 行业博客《Accelerating physical AI with AWS and NVIDIA》

• 仓库:https://github.com/aws-samples/sample-the-physical-ai-toolchain-on-aws (Apache-2.0;文中组件表、状态、流水线、成本表均取自该 README,GitHub API 核于 2026-10-08 推送)

• 产品页:https://aws.amazon.com/solutions/physical-ai-for-robotics-on-aws/

• 对照仓库(微软 Azure 版):https://github.com/microsoft/physical-ai-toolchain

• 第三方报道(用于交叉核对发布时间与「百万台机器人」口径):The Robot Report、Robotics 24/7、ASSEMBLY 等 2026-10-08 报道。


参考链接

微信正文不支持外链,以下地址可复制到浏览器打开:

· https://github.com/aws-samples/sample-the-physical-ai-toolchain-on-aws:https://github.com/aws-samples/sample-the-physical-ai-toolchain-on-aws

· https://aws.amazon.com/solutions/physical-ai-for-robotics-on-aws/:https://aws.amazon.com/solutions/physical-ai-for-robotics-on-aws/

· https://github.com/microsoft/physical-ai-toolchain:https://github.com/microsoft/physical-ai-toolchain

相关学习资料