当前位置: 首页 > news >正文

univla复现libero

好的!我给你一个完整的、一步步可执行的LIBERO复现指南。

🎯 UniVLA在LIBERO上的完整复现指南


📋 第一部分:环境准备(已完成大部分)

1.1 确认当前环境状态

conda activate univla# 检查Python版本
python --version  # 应该是 3.10.x# 检查PyTorch
python -c "import torch; print(f'PyTorch: {torch.__version__}'); print(f'CUDA可用: {torch.cuda.is_available()}')"
# 应该输出: PyTorch: 2.2.0+cu121, CUDA可用: True# 检查UniVLA是否安装
python -c "import univla; print('UniVLA已安装')" 2>/dev/null || echo "UniVLA未安装"

1.2 处理Flash Attention(可选)

如果只做评估,可以跳过。如果要训练,执行:

cd ~/downloads
mkdir -p flash_attn && cd flash_attn# 下载预编译wheel
wget https://ghproxy.com/https://github.com/Dao-AILab/flash-attention/releases/download/v2.5.5/flash_attn-2.5.5+cu121torch2.2cxx11abiFALSE-cp310-cp310-linux_x86_64.whl# 安装
pip install flash_attn-2.5.5+cu121torch2.2cxx11abiFALSE-cp310-cp310-linux_x86_64.whl# 验证
python -c "import flash_attn; print('Flash Attention安装成功')"

如果下载失败,暂时跳过,不影响评估。


📦 第二部分:下载数据和模型

2.1 创建目录结构

# 创建数据和模型目录
mkdir -p ~/data/libero_datasets
mkdir -p ~/models/univla
mkdir -p ~/UniVLA/logs

2.2 下载LIBERO数据集

cd ~/data/libero_datasets# 安装git-lfs
conda install git-lfs -y
git lfs install

方法A:从HuggingFace下载(推荐)

# 下载LIBERO数据集
git clone https://huggingface.co/datasets/Lifelong-Robot-Learning/LIBERO

如果git clone太慢,使用HuggingFace镜像:

# 使用镜像
export HF_ENDPOINT=https://hf-mirror.com
git clone https://hf-mirror.com/datasets/Lifelong-Robot-Learning/LIBERO

方法B:使用Python脚本下载

cd ~/data/libero_datasetspython << 'EOF'
from huggingface_hub import snapshot_download
import osos.environ['HF_ENDPOINT'] = 'https://hf-mirror.com'  # 使用镜像# 下载数据集
snapshot_download(repo_id="Lifelong-Robot-Learning/LIBERO",repo_type="dataset",local_dir="./libero_data",resume_download=True
)
print("✓ 数据集下载完成")
EOF

2.3 下载预训练模型

cd ~/models/univla# 设置镜像
export HF_ENDPOINT=https://hf-mirror.com# 方法1: 下载已经在LIBERO上微调的模型(推荐,用于快速评估)
git clone https://hf-mirror.com/qwbu/univla-7b-224-sft-libero# 方法2: 如果要自己训练,还需要下载基础模型
git clone https://hf-mirror.com/qwbu/univla-7b
git clone https://hf-mirror.com/qwbu/univla-latent-action-model

检查下载的文件:

# 检查数据集
ls ~/data/libero_datasets/# 检查模型
ls ~/models/univla/

🚀 第三部分:快速评估(使用预训练模型)

3.1 安装LIBERO依赖

cd ~/UniVLA
pip install -r experiments/robot/libero/libero_requirements.txt

3.2 运行评估

cd ~/UniVLA# 评估 LIBERO-Spatial(快速测试,每个任务10次)
python experiments/robot/libero/run_libero_eval.py \--task_suite_name libero_spatial \--action_decoder_path ~/models/univla/univla-7b-224-sft-libero/action_decoder.pt \--pretrained_checkpoint ~/models/univla/univla-7b-224-sft-libero \--num_trials_per_task 10 \--seed 7 \--save_video False# 如果成功,继续评估其他套件(每个任务50次,论文标准)
python experiments/robot/libero/run_libero_eval.py \--task_suite_name libero_spatial \--action_decoder_path ~/models/univla/univla-7b-224-sft-libero/action_decoder.pt \--pretrained_checkpoint ~/models/univla/univla-7b-224-sft-libero \--num_trials_per_task 50 \--seed 7 \--save_video False# 评估 LIBERO-Object
python experiments/robot/libero/run_libero_eval.py \--task_suite_name libero_object \--action_decoder_path ~/models/univla/univla-7b-224-sft-libero/action_decoder.pt \--pretrained_checkpoint ~/models/univla/univla-7b-224-sft-libero \--num_trials_per_task 50 \--seed 7# 评估 LIBERO-Goal
python experiments/robot/libero/run_libero_eval.py \--task_suite_name libero_goal \--action_decoder_path ~/models/univla/univla-7b-224-sft-libero/action_decoder.pt \--pretrained_checkpoint ~/models/univla/univla-7b-224-sft-libero \--num_trials_per_task 50 \--seed 7# 评估 LIBERO-Long (10)
python experiments/robot/libero/run_libero_eval.py \--task_suite_name libero_10 \--action_decoder_path ~/models/univla/univla-7b-224-sft-libero/action_decoder.pt \--pretrained_checkpoint ~/models/univla/univla-7b-224-sft-libero \--num_trials_per_task 50 \--seed 7

🔥 第四部分:训练(可选)

如果你想自己训练模型而不是使用预训练的:

4.1 修改训练配置

cd ~/UniVLA
nano vla-scripts/finetune_libero.py

找到第107行左右,修改路径:

vla_path = "/home/gpu/models/univla/univla-7b"
lam_path = "/home/gpu/models/univla/univla-latent-action-model/lam-stage-2.ckpt"

在文件中搜索 data_root_dir,修改为:

data_root_dir = "/home/gpu/data/libero_datasets/LIBERO"  # 或者你的实际路径

4.2 开始训练

cd ~/UniVLA# 单卡训练 LIBERO-Spatial (30k steps)
python vla-scripts/finetune_libero.py \--dataset_name "libero_spatial_no_noops" \--run_root_dir "logs/libero_spatial" \--max_steps 30000# 多卡训练(如果有8卡)
torchrun --standalone --nnodes 1 --nproc-per-node 8 vla-scripts/finetune_libero.py \--dataset_name "libero_spatial_no_noops" \--run_root_dir "logs/libero_spatial" \--max_steps 30000

训练其他套件:

# LIBERO-Object (30k steps)
python vla-scripts/finetune_libero.py \--dataset_name "libero_object_no_noops" \--run_root_dir "logs/libero_object" \--max_steps 30000# LIBERO-Goal (30k steps)
python vla-scripts/finetune_libero.py \--dataset_name "libero_goal_no_noops" \--run_root_dir "logs/libero_goal" \--max_steps 30000# LIBERO-Long (40k steps)
python vla-scripts/finetune_libero.py \--dataset_name "libero_10_no_noops" \--run_root_dir "logs/libero_10" \--max_steps 40000

4.3 评估训练的模型

python experiments/robot/libero/run_libero_eval.py \--task_suite_name libero_spatial \--action_decoder_path logs/libero_spatial/action_decoder.pt \--pretrained_checkpoint logs/libero_spatial \--num_trials_per_task 50 \--seed 7

📊 第五部分:保存和分析结果

5.1 保存评估视频

# 保存视频以便分析
python experiments/robot/libero/run_libero_eval.py \--task_suite_name libero_spatial \--action_decoder_path ~/models/univla/univla-7b-224-sft-libero/action_decoder.pt \--pretrained_checkpoint ~/models/univla/univla-7b-224-sft-libero \--num_trials_per_task 5 \--seed 7 \--save_video True \--video_dir ./eval_videos/libero_spatial

5.2 查看结果

评估结果会保存在终端输出和日志中,包含:

  • 每个任务的成功率
  • 平均成功率
  • 标准差

🛠️ 完整自动化脚本

保存为 reproduce_libero_univla.sh

#!/bin/bash
set -eecho "================================"
echo "UniVLA LIBERO 完整复现脚本"
echo "================================"# 配置路径
DATA_DIR=~/data/libero_datasets
MODEL_DIR=~/models/univla
WORK_DIR=~/UniVLA
LOG_DIR=$WORK_DIR/logs# 激活环境
conda activate univlaecho "[1/6] 创建目录..."
mkdir -p $DATA_DIR $MODEL_DIR $LOG_DIRecho "[2/6] 下载LIBERO数据集..."
if [ ! -d "$DATA_DIR/LIBERO" ]; thencd $DATA_DIRexport HF_ENDPOINT=https://hf-mirror.comgit lfs installgit clone https://hf-mirror.com/datasets/Lifelong-Robot-Learning/LIBEROecho "✓ 数据集下载完成"
elseecho "✓ 数据集已存在"
fiecho "[3/6] 下载预训练模型..."
if [ ! -d "$MODEL_DIR/univla-7b-224-sft-libero" ]; thencd $MODEL_DIRexport HF_ENDPOINT=https://hf-mirror.comgit clone https://hf-mirror.com/qwbu/univla-7b-224-sft-liberoecho "✓ 模型下载完成"
elseecho "✓ 模型已存在"
fiecho "[4/6] 安装LIBERO依赖..."
cd $WORK_DIR
pip install -r experiments/robot/libero/libero_requirements.txt -qecho "[5/6] 开始评估..."
cd $WORK_DIRSUITES=("libero_spatial" "libero_object" "libero_goal" "libero_10")for SUITE in "${SUITES[@]}"; doecho "================================"echo "评估 $SUITE..."echo "================================"python experiments/robot/libero/run_libero_eval.py \--task_suite_name $SUITE \--action_decoder_path $MODEL_DIR/univla-7b-224-sft-libero/action_decoder.pt \--pretrained_checkpoint $MODEL_DIR/univla-7b-224-sft-libero \--num_trials_per_task 50 \--seed 7 \--save_video False \2>&1 | tee $LOG_DIR/eval_${SUITE}.logecho "✓ $SUITE 评估完成"
doneecho "[6/6] 汇总结果..."
echo "================================"
echo "所有评估完成!"
echo "结果保存在: $LOG_DIR/eval_*.log"
echo "================================"# 提取成功率
for SUITE in "${SUITES[@]}"; doif [ -f "$LOG_DIR/eval_${SUITE}.log" ]; thenecho "=== $SUITE ==="grep -i "success rate\|average" $LOG_DIR/eval_${SUITE}.log | tail -5fi
done

运行脚本:

chmod +x reproduce_libero_univla.sh
./reproduce_libero_univla.sh

📈 期望结果

根据论文,UniVLA在LIBERO上的成功率:

任务套件论文成功率你的目标
LIBERO-Spatial96.5% ± 0.5%>95%
LIBERO-Object96.8% ± 0.5%>95%
LIBERO-Goal95.6% ± 0.4%>94%
LIBERO-Long92.0% ± 1.0%>90%
平均95.2%>93%

⚠️ 常见问题解决

问题1:数据下载失败

# 使用Python直接下载
python << 'EOF'
from huggingface_hub import snapshot_download
snapshot_download(repo_id="Lifelong-Robot-Learning/LIBERO",repo_type="dataset",local_dir="~/data/libero_datasets/LIBERO",resume_download=True
)
EOF

问题2:模型下载失败

# 使用Python下载
python << 'EOF'
from huggingface_hub import snapshot_download
snapshot_download(repo_id="qwbu/univla-7b-224-sft-libero",local_dir="~/models/univla/univla-7b-224-sft-libero",resume_download=True
)
EOF

问题3:评估时CUDA内存不足

# 减少并行任务数(修改评估脚本)
# 或使用更小的batch size

问题4:找不到LIBERO环境

# 确保LIBERO正确安装
pip install -e ~/LIBERO  # 如果已克隆LIBERO仓库

🎯 最简复现流程(3步走)

如果只想快速验证结果:

# 步骤1: 下载模型
cd ~/models/univla
export HF_ENDPOINT=https://hf-mirror.com
git clone https://hf-mirror.com/qwbu/univla-7b-224-sft-libero# 步骤2: 安装依赖
cd ~/UniVLA
pip install -r experiments/robot/libero/libero_requirements.txt# 步骤3: 快速评估(每个任务10次)
python experiments/robot/libero/run_libero_eval.py \--task_suite_name libero_spatial \--action_decoder_path ~/models/univla/univla-7b-224-sft-libero/action_decoder.pt \--pretrained_checkpoint ~/models/univla/univla-7b-224-sft-libero \--num_trials_per_task 10 \--seed 7

按照这个指南,你应该能够成功在LIBERO上复现UniVLA的结果。如果遇到任何具体问题,请告诉我错误信息!

http://www.dtcms.com/a/520299.html

相关文章:

  • kubernets的pod管理
  • 14、【Ubuntu】【VSCode】VSCode 断联问题分析:hostname(二)
  • Java 堆排序(Heap Sort)详解教程
  • 软件设计师知识点总结:操作系统
  • 黄岩路桥网站设计网站流量提升方案
  • 设计师网站欣赏店铺只做商品展示网站怎么做
  • dify部署及SSL自签实现
  • 云南省建设厅标准员网站手机兼职赚钱
  • Redis哈希表渐进式rehash深度解析:为何百万数据迁移不阻塞服务?
  • 广东省省考备考(第一百三十一天10.23)——科学推理:电学(第六节课)
  • Spring的三级缓存和SpringMVC的流程
  • 为什么麒麟信创系统需要开启overcommit_memory才能安装postgresql成功
  • PostGresql All语法
  • [java] 图文示八股
  • 【图像处理】图像形态学操作
  • 网站上传 空间 数据库开发一个电商平台app要多少钱
  • 如何制作网站链接数字镭网站开发
  • 使用python的matplotlib进行绘图
  • Nginx使用auth_request模块做外部认证集成Kibana
  • 【题解】洛谷 P2218 [HAOI2007] 覆盖问题 [二分 + 思维]
  • xss-labs pass-12
  • 企业网站建设服务电话做网站什么主题好做
  • 注册电气工程师(供配电)执业资格考试专业考试规范及设计手册(2025版)
  • 关于zwg技术的深度解析与应用前景
  • linux 什么做网站好网站优化课程培训
  • 键盘PCB为何对板厂要求更高?差异、难点及猎板解决方案解析
  • OMSDK WebView Display 接入步骤
  • 零基础新手小白快速了解掌握服务集群与自动化运维(十S四)储存服务-NFS文件储存
  • tidex-数字货币交易所
  • C#使用OpenVinoSharp+魔塔社区的读光中英文OCR ONNX模型进行文字检测(仅检测不做识别)