1. 引言

本文记录了在AutoDL云服务器上部署StarVLA模型并在LIBERO模拟环境中进行评估的完整过程。涉及环境配置、模型下载、数据集准备、脚本修改、代码兼容性修复及常见问题解决,为同类工作提供参考。

2. 环境配置

StarVLA评估需要两个独立的Conda环境:

  • libero:运行LIBERO模拟器(Python 3.10)

  • starVLA:启动模型推理服务器(Python 3.10)

2.1 创建环境

conda create -n libero python=3.10
conda create -n starVLA python=3.10

2.2 安装LIBERO及其依赖

conda activate libero
git clone https://github.com/Lifelong-Robot-Learning/LIBERO.git
cd LIBERO
pip install -r requirements.txt
pip install torch==1.11.0+cu113 torchvision==0.12.0+cu113 torchaudio==0.11.0 --extra-index-url https://download.pytorch.org/whl/cu113
pip install -e .
# StarVLA评估额外依赖
pip install tyro matplotlib mediapy websockets msgpack
pip install numpy==1.24.4

2.3 安装StarVLA依赖

conda activate starVLA
cd /path/to/starVLA
pip install -r requirements.txt   # 若无则根据运行报错安装

3. 模型下载

3.1 问题:直接git clone导致模型文件不完整

使用git clone下载模型后,权重文件仅135字节(Git LFS指针),并非真实权重。

3.2 解决:使用huggingface-cli完整下载

pip install huggingface-hub
huggingface-cli login
export HF_ENDPOINT=https://hf-mirror.com  # 国内加速
huggingface-cli download StarVLA/Qwen2.5-VL-GR00T-LIBERO-4in1 --local-dir /path/to/model --resume-download

下载完成后确认文件大小(约7.9GB)。

4. 数据集准备

使用StarVLA提供的脚本下载四个数据集(libero_spatial, libero_object, libero_goal, libero_10):

cd /path/to/starVLA
export DEST=/path/to/datasets/libero
bash examples/LIBERO/data_preparation.sh

这些数据集采用 LeRobot 格式(Hugging Face机器人数据集标准),包含图像、状态、动作和语言指令,便于VLA模型训练与评估。

数据内存占用大,可按需移动到合适盘并创建软链接使LIBERO能找到数据:

cd /path/to/starVLA
export DEST=/path/to/datasets/libero
bash examples/LIBERO/data_preparation.sh

5. 修改评估脚本

两个关键脚本位于examples/LIBERO/eval_files/

5.1 run_policy_server.sh

设置Python路径、模型权重路径、GPU ID和端口:

export star_vla_python=/path/to/starVLA/bin/python
your_ckpt=/path/to/model/checkpoints/steps_30000_pytorch_model.pt
gpu_id=0
port=5694

5.2 eval_libero.sh

设置LIBERO相关路径和模型权重:

cd /path/to/starVLA
export LIBERO_HOME=/path/to/LIBERO
export LIBERO_CONFIG_PATH=${LIBERO_HOME}/libero
export LIBERO_Python=/path/to/libero/bin/python
your_ckpt=/path/to/model/checkpoints/steps_30000_pytorch_model.pt

6. 代码兼容性修复

启动服务器时出现属性错误:'Qwen2_5_VLConfig' object has no attribute 'hidden_size'。原因是模型配置文件中的字段名为vl_hidden_dim,且位于framework.qwenvl下。修改QwenGR00T.py第74行:

# 原代码
self.config.framework.action_model.diffusion_model_cfg.cross_attention_dim = self.qwen_vl_interface.model.config.hidden_size
# 修改为
self.config.framework.action_model.diffusion_model_cfg.cross_attention_dim = self.config.framework.qwenvl.vl_hidden_dim

7. 无头服务器渲染问题

运行评估脚本时出现EGL相关错误。原因:云端无显示器,需指定离屏渲染后端。 安装系统库并设置环境变量:

sudo apt-get install libgl1-mesa-glx libgl1-mesa-dri libegl1-mesa libosmesa6-dev
export MUJOCO_GL=egl
export PYOPENGL_PLATFORM=egl

若EGL不可用,改用OSMesa:

export MUJOCO_GL=osmesa
export PYOPENGL_PLATFORM=osmesa

正确设置渲染环境变量后,评估脚本才能正常运行并生成视频,最终保存在 results/ 目录下。

8. 其他常见问题

  • conda activate失败:执行conda init bash并重启终端。

  • debugpy阻塞:注释掉start_debugpy_once()调用。

  • 端口不一致:确保两个脚本中port相同。

  • 数据集找不到:检查软链接是否正确。

9. 运行评估

终端1(starVLA环境)

conda activate starVLA
cd /path/to/starVLA
bash examples/LIBERO/eval_files/run_policy_server.sh

终端2(libero环境)

conda activate libero
cd /path/to/starVLA
bash examples/LIBERO/eval_files/eval_libero.sh

10. 总结

通过上述步骤,可在云服务器上成功运行StarVLA的LIBERO评估。关键点包括:正确配置环境、完整下载模型、修改代码适配模型配置、设置渲染环境变量等。数据采用LeRobot格式,便于处理。希望本文能帮助读者高效完成类似任务。

Logo

立足具身智能前沿赛道,致力于搭建全球化、开源化、全栈式技术交流与实践共创平台。

更多推荐