ARTICLE · 1145873
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