openpi 机器人智能体 VLA模型完整指南
openpi 机器人智能体 VLA模型完整指南【免费下载链接】openpi项目地址: https://gitcode.com/GitHub_Trending/op/openpiopenpi 是物理智能Physical Intelligence团队发布的开源机器人智能体项目含三种 VLA视觉-语言-动作模型经过 10,000 小时机器人数据预训练支持开箱即用推理与自有数据集微调适合机器人研究者与开发者。项目速览这一步先搞清楚仓库里有什么读完后你知道该选哪个模型、该下载哪类检查点。三种模型 两档检查点模型一句话定位适合谁π₀基于流匹配flow matching一种逐步去噪生成动作轨迹的方法的 VLA 模型微调基础模型、DROID/ALOHA 实机π₀-FAST基于 FAST 动作 tokenizer 的自回归 VLA把动作离散成 token 再逐个生成重视推理速度的场景π₀.₅用知识绝缘knowledge insulation训练法升级的 π₀开放世界泛化更好新场景、新任务本仓库目前仅支持其流匹配头基础检查点3 个pi0_base、pi0_fast_base、pi05_base经过 10,000 小时机器人数据预训练作为微调起点。专家检查点7 个如pi05_droid、pi0_fast_droid、pi05_libero、pi0_aloha_towel等针对特定机器人/任务微调可直接在目标机器人上跑推理。检查点默认自动从gs://openpi-assets下载并缓存到~/.cache/openpi用OPENPI_DATA_HOME环境变量可改缓存位置。快速上手这一步解决从拉代码到跑通首次推理完成后你会看到客户端终端不断打印推理速率服务器在 8000 端口监听。环境要求先核对一遍项目要求系统Ubuntu 22.04官方唯一测试过的系统显存推理 8GBRTX 4090 级别LoRA低秩适配一种轻量微调方式 22.5GB全量微调 70GBA100 80GB / H100驱动只需装 NVIDIA 驱动无需系统级安装 CUDAuv 会自行处理工具先装好 uvPython 依赖管理器最短路径四步克隆仓库。--recurse-submodules用来同时拉取third_party/下 ALOHA、LIBERO 等第三方代码漏了后续示例会报错git clone --recurse-submodules https://gitcode.com/GitHub_Trending/op/openpi构建 Python 环境。GIT_LFS_SKIP_SMUDGE1是为了正确拉取 LeRobot 这个依赖跳过 LFS 大文件下载GIT_LFS_SKIP_SMUDGE1 uv sync以可编辑模式安装 openpi 包本体GIT_LFS_SKIP_SMUDGE1 uv pip install -e .无机器人推理测试开两个终端。--env DROID指定加载 DROID 预置检查点终端 1uv run examples/simple_client/main.py --env DROID生成随机观察、打印推理速率终端 2uv run scripts/serve_policy.py --env DROID系统环境实在理不顺时可改用 Docker 安装步骤见仓库docs/docker.md。核心能力拆解这一节把三种模型和检查点体系拆成四小块看完选型不再纠结。π₀适合当微调底座的稳定款一句话定位flow-based VLA 模型直接生成动作轨迹。适用场景在自己的机器人数据上微调或直接用pi0_droid、pi0_aloha_towel等专家检查点跑实机。与相近组件的区别相比 π₀-FAST推理更快但官方提示语言指令跟随可能稍弱。π₀-FAST主打速度的自回归 VLA一句话定位基于 FAST 动作 tokenizer 的自回归 VLA先把动作离散成 token 再逐个生成。适用场景DROID 桌面操作pi0_fast_droid在新场景中可 0-shot 完成大范围简单桌面操作任务。与相近组件的区别语言跟随比 π₀ 好但当前 PyTorch 版本尚未支持该模型只能用 JAX 跑。π₀.₅面向开放世界泛化的升级版一句话定位π₀ 的升级版本通过知识绝缘训练法减少对预训练分布的依赖提升对新场景任务的泛化。适用场景pi05_libero在 LIBERO 基准上取得最先进成绩pi05_droid在 DROID 平台上兼顾速度与语言跟随。与相近组件的区别本仓库中 π₀.₅ 的训练与推理目前只支持流匹配头选型时注意这条限制。检查点分档基础档微调、专家档直接推理一句话定位基础档3 个面向微调专家档7 个面向直接部署共 10 个官方检查点。适用场景有自有数据集选基础档想先上实机看看优先试 DROID 系列——官方观察到其泛化相对广泛。与相近组件的区别专家检查点在较小数据集ALOHA、DROID Franka 构型等上微调README 明确提示在你自己的平台上可能有效也可能无效。一个例子走通全流程这个例子不依赖真机走图像 语言输入 → 动作序列输出的标准链路跑通一次你就完全掌握推理接口长什么样。from openpi.training import config as _config from openpi.policies import policy_config from openpi.shared import download config _config.get_config(pi05_droid) checkpoint_dir download.maybe_download(gs://openpi-assets/checkpoints/pi05_droid) policy policy_config.create_trained_policy(config, checkpoint_dir) example { observation/exterior_image_1_left: ..., # 外部相机图像 observation/wrist_image_left: ..., # 腕部相机图像 prompt: pick up the fork, # 语言指令 } action_chunk policy.infer(example)[actions]白话解释输入字典就是两路相机图像加一句指令maybe_download首次运行时自动下载检查点并缓存之后直接命中缓存create_trained_policy一次性完成加载配置 加载权重 搭建输入输出变换管线。返回的action_chunk是形状为动作步数, 动作维度的序列可逐步下发给机器人执行。仓库里还有可交互的 notebook 版本examples/inference.ipynb。进阶玩法按四种最常见的使用场景组织每条只给入口命令和一句说明。想用自己的数据微调以 LIBERO 为例的完整链路换成你的数据主要改 训练配置 里的数据映射把数据转成 LeRobot 格式可参照转换脚本改uv run examples/libero/convert_libero_data_to_lerobot.py --data_dir /path/to/your/libero/data训练前先算归一化统计量把状态/动作归一到可比范围缺了会直接报错uv run scripts/compute_norm_stats.py --config-name pi05_libero启动训练。--overwrite允许重跑时覆盖同名旧检查点前置的XLA_PYTHON_CLIENT_MEM_FRACTION0.9让 JAX 最多用 90% 显存默认 75%XLA_PYTHON_CLIENT_MEM_FRACTION0.9 uv run scripts/train.py pi05_libero --exp-namemy_experiment --overwrite起策略服务器默认监听 8000 端口uv run scripts/serve_policy.py policy:checkpoint --policy.configpi05_libero --policy.dircheckpoints/pi05_libero/my_experiment/20000若你的机器人恰好属于预训练覆盖的机型可考虑直接复用预训练归一化统计量细节见docs/norm_stats.md。想部署到远程服务器模型跑在大显存 GPU 上经 WebSocket 把动作流回传机器人两端环境彻底解耦uv run scripts/serve_policy.py --env DROID # 服务器端 cd packages/openpi-client pip install -e . # 机器人端装轻量客户端客户端如何构造观察、如何复用动作块无需每步都请求模型完整示例见 docs/remote_inference.md。想从 JAX 切到 PyTorch先转换检查点推理 API 不变只把检查点路径换成转换后的目录uv run examples/convert_jax_model_to_pytorch.py \ --checkpoint_dir /path/to/jax/checkpoint \ --config_name config_name \ --output_path /path/to/converted/pytorch/checkpoint注意两件事其一PyTorch 版目前不支持 π₀-FAST、混合精度、FSDP、LoRA 与 EMA 权重其二使用需先把src/openpi/models_pytorch/transformers_replace/下的补丁覆盖进 transformers 库想完整回滚要执行uv cache clean transformers。多卡单节点训练示例uv run torchrun --standalone --nnodes1 --nproc_per_node2 scripts/train_pytorch.py pi0_aloha_sim --exp_name pytorch_ddp_test想直接跑 LIBERO 基准用官方 Docker 编排一条命令同时拉起策略服务器与评测脚本SERVER_ARGS--env LIBERO docker compose -f examples/libero/compose.yml up --build避坑速查以下 5 个问题来自官方故障排查表出现现象后直接对照解决列多数情况不用再翻文档。现象原因解决uv sync报依赖冲突已有虚拟环境与依赖树冲突删除.venv目录后重新uv sync仍失败先升级 uvuv self update训练 GPU 显存不足JAX 默认只占用 75% 显存加XLA_PYTHON_CLIENT_MEM_FRACTION0.9或加--fsdp-devices n启用分片数据并行以速度换显存仍不够可关闭 EMA训练报缺少 norm stats未预计算归一化统计量训练前先跑uv run scripts/compute_norm_stats.py --config-name 你的配置名策略服务器连接错误服务器未启动、端口不对或防火墙拦截确认服务器已在 8000 端口监听再检查客户端与服务器间的网络与防火墙设置训练损失发散norm_stats.json中某些维度q01/q99/std过小归一化后数值爆炸检查该文件对应维度统计值手动修正过小的项下一步建议先用examples/simple_client走通无机器人推理确认输入输出格式无误再照 LIBERO 示例把自己数据集的微调流程跑一遍。若机器人端算力吃紧就把模型挪到服务器用远程推理方案回传动作。【免费下载链接】openpi项目地址: https://gitcode.com/GitHub_Trending/op/openpi创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考