基于AutoDL远端服务器在pycharm复现:具身智能论文pai0

基于AutoDL远端服务器在pycharm复现:身智能论文pai0

一、通过git把项目源码下载到本地

我们一定要使用git命令去下,不要用git网站的download ZIP去下载。因为这个下载下来的项目会缺少部分文件,最后你还是要用git命令下载。打开pycharm本地终端,输入命令:

复制代码
git clone --recurse-submodules https://github.com/Physical-Intelligence/openpi.git 

本地把下载好的这个项目新建一个工程,这样你的pycharm本地就有代码了:

二、把远端显卡通过SSH连接到你的本地pycharm

  1. 首先去AutoDL官网组一个显卡,要求:Ubuntu 22.04镜像、4090及以上即可。
  2. 在pycharm中如何配置好显卡,官网有非常详细的操作手册,按照一步一步做就能搭建好,点击跳转
    配置好后效果如下图红色圈圈所示:

tips:配置过程中会有一个映射文件的选项,你可以自由的选择本地哪个路径映射到远端服务器哪个路径。

三、开搞吧那就(下载模型把服务端跑起来)

现在,我们有显卡,有代码,直接开搞:

等一下,我们首先捋清楚一些概念:

· pai0的复现有两个模块,一个是服务端,一个是客户端,分别在两个终端运行;

· 我们租的显卡(或者你们自己实验室的显卡!!!)是远端服务器,本地只存储项目源码,其他一律不跑,一律不存,只通过SSH协议远程去调用服务器就可以。

好,接下来我们去服务器上面部署环境。

服务器部署UV

首先确保你的服务器不在conda环境下,只要你不多于操作,服务器调起来后一般是不会进conda的。

分别输入以下命令安装UV:

复制代码
export UV_DEFAULT_INDEX="https://mirrors.aliyun.com/pypi/simple"
wget -qO- https://astral.sh/uv/install.sh | sh
echo 'eval "$(uv generate-shell-completion bash)"' >> ~/.bashrc
pip install uv

在安装完后进入到 项目的根目录下执行下面的命令:

复制代码
cd 你的项目根目录(默认是openpi,我自己改名为pai0了)
GIT_LFS_SKIP_SMUDGE=1 uv sync
GIT_LFS_SKIP_SMUDGE=1 uv pip install -e .

都不报错误的话,接下来试试UV装好了没。

复制代码
echo 'print("UV work done")' > test.py
uv run test.py

如果控制台打印了print语句,说明的UV搞定了,有警告没关系,只要能跑起来就行。

下载模型

我们通过脚本下载模型,首先在你本地的项目中new一个python文件download.py,这个脚本要放在src 目录下,里面写如下代码:

复制代码
from openpi.training import config
from openpi.policies import policy_config
from openpi.shared import download

model_name = "pi0_fast_droid"
model_link = "gs://openpi-assets/checkpoints/pi0_fast_droid"

config = config.get_config(model_name)
checkpoint_dir = download.maybe_download(model_link)

policy = policy_config.create_trained_policy(config, checkpoint_dir)

脚本中的 model_namemodel_link 变量来指定想要的模型。这两个变量其实就是 ReadMe 提供的链接,

例如 gs://openpi-assets/checkpoints/pi0_fast_droid,那么模型名就是后缀 pi0_fast_droid 。官方Git网站上readme文件的Model Checkpoints章节介绍了基准模型和微调模型,你随便挑一个自己爱的就行了。

下一步,在服务器终端设置环境变量

复制代码
export HF_ENDPOINT="https://hf-mirror.com" 

模型会自动下载到 ~/.cache/openpi/openpi-assets/checkpoints 路径下,如果你想要修改默认下载路径可以在当前bash中执行以下命令:

复制代码
export OPENPI_DATA_HOME="your model save path"

我设置的是AutoDL一个约定好的本地目录:/root/autodl-tmp

使用命令下载!!!!!!!!

复制代码
uv run src/download.py

这里放一张大佬的图:想看大佬教程的移步这里。我只完成了最基础的复现工作,大佬做了很多更深入的研究。

把服务端拉起来!!!

上面都对的话现在应该在这里了:

现在把服务端拉起来,启动推理服务(会自动连接到HuggingFace)

复制代码
export HF_ENDPOINT=https://hf-mirror.com
uv run scripts/serve_policy.py --env LIBERO

如果正常的话现在服务端就起来了,并持续监听8000端口:

这里我建议大家自己去读一下serve_policy.py代码,我也还要研究一下。

四、部署客户端,并下载小视频 ;)

现在我们暂时不用管服务端的终端窗口,new一个新的终端窗口,进入项目所在目录,按顺序输入下面的神秘代码:

复制代码
 uv venv --python 3.8 examples/libero/.venv
 source examples/libero/.venv/bin/activate
python 复制代码
# 此命令下载包较多,可能时间较久
uv pip sync examples/libero/requirements.txt third_party/libero/requirements.txt --extra-index-url https://download.pytorch.org/whl/cu113 --index-strategy=unsafe-best-match
# 下载客户端
uv pip install -e packages/openpi-client
# 下载第三方库
uv pip install -e third_party/libero
# 配置全局环境变量
export PYTHONPATH=SPYTHONPATH:$PWD/third_party/libero
# 如果使用AutoDL这种无图形化界面的云服务,那么需要额外配置ubuntu的图形化必要依赖
apt-get update && apt-get install -y libgl1-mesa-glx libosmesa6-dev libglew-dev patchelf libegl1
# 最后启动客户端
python examples/libero/main.py

按下方红色划线输入指令:

一切正常的话客户端已经在跑了:

最后产生的视频在如下图的目录:

至此复现做完了,但是这只是刚刚开始。继续学习吧!0.0

相关推荐
sunz_dragon13 分钟前
Claude Code / Codex Git 版本管理完整使用指南
服务器·人工智能
徐先生 @_@|||30 分钟前
基于Translation插件实现在pycharm本地翻译并阅读英文资料
ide·python·pycharm
斯特凡今天也很帅35 分钟前
Elasticsearch数据库专栏(一)Kinaba的基础使用
elasticsearch·kibana
SPC的存折36 分钟前
3、主从复制实现同步数据过滤
linux·运维·服务器
SPC的存折38 分钟前
openEuler 24.03 MariaDB Galera 集群部署指南(cz)
linux·运维·服务器·数据库·mysql
SPC的存折1 小时前
MySQL 8.0 分库分表
linux·运维·服务器·数据库·mysql
风吹迎面入袖凉1 小时前
【Redis】Redisson分布式锁原理
java·服务器·开发语言
day day day ...3 小时前
MyBatis条件误写引发的查询条件污染分析与防范
java·服务器·tomcat
TechMasterPlus3 小时前
Linux U-Boot 与内核启动流程深度解析:从上电到 Shell 的完整之旅
linux·运维·服务器
大白菜和MySQL3 小时前
Linux下dhcp服务搭建
linux·运维·服务器