首页
/ LMMS-Eval项目中LLaVA模型评估的安装与运行问题解析

LMMS-Eval项目中LLaVA模型评估的安装与运行问题解析

2025-07-01 03:21:24作者:乔或婵

问题背景

在LMMS-Eval项目中,用户尝试复现LLaVA模型的评估过程时遇到了多个技术障碍。这些问题主要涉及环境配置、依赖冲突以及模型加载等方面。本文将详细分析这些问题的成因,并提供完整的解决方案。

主要问题分析

1. 依赖冲突问题

用户在安装LLaVA相关依赖时遇到了transformers版本冲突:

  • LMMS-Eval要求transformers≥4.36.2
  • LLaVA 1.1.3依赖transformers==4.31.0

这种版本冲突是Python环境中常见的问题,特别是在整合多个大型项目时。

2. 参数识别问题

用户遇到了--log_samples_sufix参数未被识别的问题,这实际上是文档中的拼写错误,正确参数应为--log_samples_suffix

3. 模型加载失败

系统报告无法识别'llava'模型名称,这表明模型加载机制可能存在问题,或者环境配置不完整。

解决方案

环境配置步骤

  1. 创建并激活conda环境

    conda create --name lmms python=3.10
    conda activate lmms
    
  2. 安装LMMS-Eval核心包

    pip install --no-deps -U -e .
    
  3. 安装LLaVA核心包 需要先克隆LLaVA官方仓库,然后执行:

    pip install --no-deps -U -e .
    
  4. 安装依赖包 使用以下依赖列表创建requirements.txt文件:

    accelerate==0.21.0
    datasets==2.16.1
    evaluate==0.4.1
    hf_transfer==0.1.6
    Jinja2==3.1.3
    numpy==1.26.4
    openai==1.13.3
    packaging==23.2
    pandas==2.2.1
    Pillow==10.2.0
    protobuf==4.25.3
    pycocoevalcap==1.2
    pycocotools==2.0.7
    pytablewriter==1.2.0
    pytest==8.0.2
    python_Levenshtein==0.25.0
    pytz==2024.1
    PyYAML==6.0.1
    Requests==2.31.0
    sacrebleu==2.4.0
    scikit_learn==1.2.2
    sentencepiece==0.1.99
    setuptools==68.2.2
    sglang==0.1.12
    shortuuid==1.0.12
    sqlitedict==2.1.0
    tenacity==8.2.3
    torch==2.0.1
    tokenizers==0.15.2
    tqdm==4.66.2
    transformers==4.37.2
    

运行命令

正确的运行命令应为:

accelerate launch --num_processes=8 --main_process_port 12345 -m lmms_eval \
--model llava \
--model_args pretrained="liuhaotian/llava-v1.5-7b,use_flash_attention_2=False" \
--tasks mme \
--batch_size 1 \
--log_samples \
--log_samples_suffix llava_v1.5_mme \
--output_path ./logs/

关键参数说明

  1. use_flash_attention_2=False:禁用Flash Attention 2,避免可能的兼容性问题
  2. device_map设置:单GPU环境下可能需要明确指定为"auto"或"cuda"

技术细节

Flash Attention的影响

启用Flash Attention 2会导致评估结果的微小差异:

  • 禁用时:认知得分355.71,感知得分1509.99
  • 启用时:结果会有轻微变化

这种差异源于Flash Attention实现的计算精度优化。

代码修改建议

如果遇到设备映射问题,可以修改llava.py中的相关代码:

self._device = torch.device("cuda:0")
self.device_map = "cuda:0"

结论

通过正确的环境配置和参数设置,可以成功在LMMS-Eval项目中运行LLaVA模型的评估。关键点包括:

  1. 使用正确的依赖版本
  2. 禁用Flash Attention 2以避免兼容性问题
  3. 确保设备映射正确配置
  4. 使用正确的命令行参数

这些解决方案不仅适用于LLaVA模型评估,也可以为其他大型语言模型在LMMS-Eval框架中的集成提供参考。

登录后查看全文
热门项目推荐
相关项目推荐