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

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

2025-07-01 04:06:42作者:乔或婵

问题背景

在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框架中的集成提供参考。

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

热门内容推荐

项目优选

收起
ohos_react_nativeohos_react_native
React Native鸿蒙化仓库
C++
176
261
RuoYi-Vue3RuoYi-Vue3
🎉 (RuoYi)官方仓库 基于SpringBoot,Spring Security,JWT,Vue3 & Vite、Element Plus 的前后端分离权限管理系统
Vue
858
511
openGauss-serveropenGauss-server
openGauss kernel ~ openGauss is an open source relational database management system
C++
129
182
openHiTLSopenHiTLS
旨在打造算法先进、性能卓越、高效敏捷、安全可靠的密码套件,通过轻量级、可剪裁的软件技术架构满足各行业不同场景的多样化要求,让密码技术应用更简单,同时探索后量子等先进算法创新实践,构建密码前沿技术底座!
C
258
298
ShopXO开源商城ShopXO开源商城
🔥🔥🔥ShopXO企业级免费开源商城系统,可视化DIY拖拽装修、包含PC、H5、多端小程序(微信+支付宝+百度+头条&抖音+QQ+快手)、APP、多仓库、多商户、多门店、IM客服、进销存,遵循MIT开源协议发布、基于ThinkPHP8框架研发
JavaScript
93
15
Cangjie-ExamplesCangjie-Examples
本仓将收集和展示高质量的仓颉示例代码,欢迎大家投稿,让全世界看到您的妙趣设计,也让更多人通过您的编码理解和喜爱仓颉语言。
Cangjie
332
1.08 K
HarmonyOS-ExamplesHarmonyOS-Examples
本仓将收集和展示仓颉鸿蒙应用示例代码,欢迎大家投稿,在仓颉鸿蒙社区展现你的妙趣设计!
Cangjie
398
371
note-gennote-gen
一款跨平台的 Markdown AI 笔记软件,致力于使用 AI 建立记录和写作的桥梁。
TSX
83
4
CangjieCommunityCangjieCommunity
为仓颉编程语言开发者打造活跃、开放、高质量的社区环境
Markdown
1.07 K
0
kernelkernel
deepin linux kernel
C
22
5