Replicate Deployment Coding
环境配置
# Create and activate conda environment
conda create -n openvla python=3.10 -y
conda activate openvla
# Install PyTorch. Below is a sample command to do this, but you should check the following link
# to find installation instructions that are specific to your compute platform:
# https://pytorch.org/get-started/locally/
conda install pytorch torchvision torchaudio pytorch-cuda=12.4 -c pytorch -c nvidia -y # UPDATE ME!
# Clone and install the openvla repo
git clone https://github.com/openvla/openvla.git
cd openvla
pip install -e .
# Install Flash Attention 2 for training (https://github.com/Dao-AILab/flash-attention)
# =>> If you run into difficulty, try `pip cache remove flash_attn` first
pip install packaging ninja
ninja --version; echo $? # Verify Ninja --> should return exit code "0"
pip install "flash-attn==2.5.5" --no-build-isolation
最后一步 pip install "flash-attn==2.5.5" --no-build-isolation 偶尔会遇到 error: [Errno 18] Invalid cross-device link 的报错,一般是使用集群服务器的问题
这是什么意思?
pip 在构建/缓存 wheel 时,会把一个临时目录里的文件 rename / hardlink 到 pip cache 目录(例如 ~/.cache/pip/wheels/...)
但你的 临时目录(通常在 /tmp 或某个系统临时路径)和 cache 目录(在 /home/wensiqi/.cache/...)很可能位于 不同的文件系统/挂载点(常见于:/tmp 在本地盘、/home 在 NFS、或者 conda env 在另一个盘)
跨文件系统时,Linux 的 rename()/link() 不能这样“原子搬运”,就会抛 Errno 18
所以这是一个 文件系统跨设备移动/链接失败 的问题,而不是 flash-attn 本身坏了
使用 --no-cache-dir 就可以避免这个问题 (直接禁用 pip cache)
pip install "flash-attn==2.5.5" --no-build-isolation --no-cache-dir
到目前为止,环境就相当于是配置好了
libero仿真测试
先配置环境
git clone https://github.com/Lifelong-Robot-Learning/LIBERO.git
cd LIBERO
pip install -e .
cd ..
pip install -r experiments/robot/libero/libero_requirements.txt
export PYTHONPATH=$PYTHONPATH:/path/to/your/root/openvla/LIBERO
# export PYTHONPATH=$PYTHONPATH:$(pwd)/LIBERO
可以用下面的这个指令来检查 libero 库的问题
python -c "import libero; print('模块导入成功'); print(dir(libero))"
在服务器上总是遇到奇奇怪怪的问题….