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

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

相关推荐
Richard.Wong14 小时前
Windows IIS 服务器部署 Vue3 前端项目详细流程
服务器·前端·windows
wyg_03111319 小时前
Intel Arc 140T + Triton(Windows)环境搭建全过程记录
windows
程序猿小玉兒20 小时前
Quartz定时任务偶尔不执行
服务器·windows·microsoft
曹牧2 天前
C#:`JsonConvert.DeserializeObject`
windows·c#
JckOLF04Z2 天前
软件项目“免坑”指南
windows
imperialeast2 天前
WinAXP音乐播放器8月4日更新
windows·算法·ui
aGdF8E3gQ2 天前
16. LangChain ChatPromptTemplate多模态应用实战
windows·langchain
IT小盘2 天前
17-构建Prompt测试集-提示词优化不再凭感觉
服务器·windows·prompt
神奇霸王龙2 天前
Agent 5 场景屠夫:跨厂商基座横评
人工智能·windows·ai·dubbo·agent·ai编程·阿里
柒@宝儿姐2 天前
若依 B 端从浏览器访问升级为 Windows 安装包交付流程
前端·javascript·vue.js·windows