VSI-Bench 环境配置与评估

VSI-Bench 环境配置与评估完整指南

环境要求

  • GPU:支持 CUDA 的 NVIDIA 显卡(本文使用 RTX 5090 32GB)
  • CPU 内存:建议 32GB 以上
  • CUDA:13.x
  • Python:3.10

一、创建 conda 环境

bash 复制代码
conda create --name vsibench python=3.10
conda activate vsibench

二、克隆代码

bash 复制代码
git clone git@github.com:vision-x-nyu/thinking-in-space.git
cd thinking-in-space
git submodule update --init --recursive

三、安装依赖

bash 复制代码
cd transformers && pip install -e . && cd ..
pip install -e .
pip install s2wrapper@git+https://github.com/bfshi/scaling_on_scales
pip install deepspeed

四、编译安装 flash-attn

flash-attn 需要从源码本地编译,不能直接用预编译包(CUDA 版本不匹配)。

bash 复制代码
export CUDA_HOME=/usr/local/cuda-13.1   # 根据实际路径修改
export PATH=$CUDA_HOME/bin:$PATH
export LD_LIBRARY_PATH=$CUDA_HOME/lib64:$LD_LIBRARY_PATH
export FLASH_ATTENTION_FORCE_BUILD=TRUE
export OMP_NUM_THREADS=4
pip install flash-attn --no-build-isolation --no-cache-dir

编译时间约 15-30 分钟,CPU 会跑满属于正常现象。


五、配置 HuggingFace Token

VSI-Bench 数据集需要 HuggingFace 账号 token 才能访问。

  1. 注册 HuggingFace 账号:https://huggingface.co
  2. 生成 token:https://huggingface.co/settings/tokens,权限选 Read
  3. 保存 token 到本地:
bash 复制代码
mkdir -p ~/.cache/huggingface
echo "你的hf_开头的token" > ~/.cache/huggingface/token

国内服务器无法直连 huggingface.co,用写文件的方式绕过网络验证,配合镜像站使用。


六、配置 accelerate

bash 复制代码
accelerate config default

七、运行评估

每次运行前设置以下环境变量,防止内存溢出:

bash 复制代码
export HF_ENDPOINT=https://hf-mirror.com        # 国内镜像
export HUGGING_FACE_HUB_TOKEN=$(cat ~/.cache/huggingface/token)
export CUDA_VISIBLE_DEVICES=0                    # 指定使用的 GPU 编号
export OMP_NUM_THREADS=4                         # 限制 CPU 线程数
export TOKENIZERS_PARALLELISM=false              # 关闭 tokenizer 多线程
export HF_DATASETS_IN_MEMORY_MAX_SIZE=0          # 数据集走磁盘不缓存到内存
export PYTORCH_CUDA_ALLOC_CONF=max_split_size_mb:512  # 防止显存碎片化

运行单个模型评估:

bash 复制代码
cd thinking-in-space
bash evaluate_all_in_one.sh \
  --model internvl2_2b_8f \
  --num_processes 1 \
  --benchmark vsibench

支持的模型列表:

复制代码
llava_one_vision_qwen2_0p5b_ov_32f
llava_one_vision_qwen2_7b_ov_32f
llava_next_video_7b_qwen2_32f
llama3_vila1p5_8b_32f
llama3_longvila_8b_128frames_32f
longva_7b_32f
internvl2_2b_8f
internvl2_8b_8f

八、内存注意事项(干爆服务器一次,老实了,按实际情况来)

必须严格遵守以下限制,否则服务器内存会被打爆:

参数 要求 原因
--num_processes 必须为 1 每个进程独立加载完整模型,4进程=4倍内存
--batch_size 必须为 1 减少中间激活值内存占用

以 7B 模型为例:

num_processes CPU 内存占用
1 ~20GB
4 ~80GB
8 ~160GB

九、查看结果

结果保存在 logs/ 目录下:

复制代码
logs/
└── 20260326/
    └── vsibench/
        └── xxxx_internvl2_2b_8f_xxx/
            ├── results.json   # 完整评估配置和分数
            └── vsibench.json  # 每条样本的输入输出

results.json 包含完整复现信息,包括模型参数、随机种子、代码 git hash。


十、InternVL2-2B 参考结果

任务 分数
Overall 27.56
物体计数 22.83
绝对距离估计 25.40
物体大小估计 21.93
房间大小估计 33.54
相对距离 33.38
相对方向 44.30
路线规划 31.96
出现顺序 7.12

与论文原始结果吻合,说明环境配置正确。

相关推荐
John_ToDebug11 小时前
浏览器扩展延迟加载优化实战:如何让浏览器启动速度提升50%
c++·chrome·windows
蟑螂恶霸11 小时前
Windows安装OpenCV 4.8
人工智能·windows·opencv
特立独行的猫a13 小时前
在 Windows 10 上安装和使用 WSL 2 安装 Ubuntu24详细指南
windows·ubuntu·wsl2
奋斗的老史16 小时前
Stream-流式操作
java·windows
m0_4886333216 小时前
Windows环境下编译运行C语言程序,合适工具与方法很关键
c语言·windows·git·开发工具·编译器
春日见17 小时前
云服务器开发与SSH
运维·服务器·人工智能·windows·git·自动驾驶·ssh
bloglin9999919 小时前
windows中粘贴拷贝文件不会显示进度条,尤其是大文件
windows
xyyaihxl21 小时前
Redis 安装及配置教程(Windows)【安装】
数据库·windows·redis
CHQIUU1 天前
解决VMware ESXi虚拟机挂载ISO后无法进入安装程序的问题
windows