首页
/ 【免费下载】 LMMs-Eval项目命令行接口与API使用指南

【免费下载】 LMMs-Eval项目命令行接口与API使用指南

2026-02-04 04:51:31作者:幸俭卉

前言

LMMs-Eval是一个用于评估多模态大语言模型(Large Multimodal Models, LMMs)性能的开源工具库。本文将详细介绍该项目的命令行接口和API使用方法,帮助研究人员和开发者快速上手模型评估工作。

命令行接口详解

基础参数配置

  1. 模型选择与参数设置

    • --model:指定评估的模型类型或提供商,必须与支持的模型名称匹配
    • --model_args:模型构造参数,格式为"arg1=val1,arg2=val2,...",例如设置预训练模型和批大小
  2. 任务选择

    • --tasks:指定评估任务或任务组,支持逗号分隔的列表
    • 特殊选项:
      • list:查看所有可用任务
      • list_with_num:查看每个任务包含的问题数量(会下载所有数据集)
  3. Few-shot设置

    • --num_fewshot:设置few-shot示例数量
    • --fewshot_as_multiturn:将few-shot示例视为多轮对话(需配合--apply_chat_template使用)

评估过程控制

  1. 生成参数

    • --gen_kwargs:生成任务的参数设置,如采样温度、top_p/top_k等
    • --batch_size:评估批大小,支持自动模式(auto)和固定值
    • --max_batch_size:自动批大小模式下的最大批大小限制
  2. 设备与缓存

    • --device:指定运行设备(如cuda、cpu等)
    • --use_cache:设置缓存路径,避免重复计算
    • --cache_requests:缓存控制选项(使用/刷新/删除)
  3. 调试与诊断

    • --check_integrity:测试任务完整性
    • --write_out:输出首个任务的提示和目标字符串
    • --show_config:显示任务配置详情

结果输出与日志

  1. 输出控制

    • --output_path:结果保存路径
    • --log_samples:保存每个文档的输出和输入文本
    • --predict_only:仅生成模型输出不计算指标
  2. 高级日志功能

    • --wandb_args:Weights & Biases日志参数
    • --hf_hub_log_args:Hugging Face Hub日志参数

API编程接口使用

简单评估模式

simple_evaluate()函数提供了简化的评估接口,适合快速集成:

import lmms_eval

# 初始化自定义模型
my_model = initialize_my_model()

# 创建LM子类实例
lmm_obj = Your_LMM(model=my_model, batch_size=16)

# 执行评估
results = lmms_eval.simple_evaluate(
    model=lmm_obj,
    tasks=["task1", "task2"],
    num_fewshot=0,
    ...
)

核心评估模式

evaluate()函数提供更底层的评估控制:

import lmms_eval
from my_tasks import MyTask1

# 初始化模型和LM包装器
my_model = initialize_my_model()
lmm_obj = Your_LMM(model=my_model, batch_size=16)

# 获取任务字典
task_dict = lmms_eval.tasks.get_task_dict(
    ["mmlu", "my_custom_task", MyTask1],
    task_manager
)

# 执行评估
results = evaluate(
    lm=lmm_obj,
    task_dict=task_dict,
    ...
)

SRT API集成使用

LMMs-Eval支持通过SRT API进行评估,需要先安装相关依赖:

  1. 环境准备

    pip install httpx==0.23.3
    pip install protobuf==3.20
    pip install flashinfer
    
  2. 启动评估

    python3 -m lmms_eval \
        --model srt_api \
        --model_args modality=$MODALITY,model_version=$CKPT_PATH,tp=$TP_SIZE \
        --tasks $TASK \
        --batch_size 1 \
        --log_samples
    

回归测试

项目提供了回归测试工具,确保代码修改不会导致模型性能下降:

python3 tools/regression.py

测试结果会显示各任务性能指标和运行时间比较。

最佳实践建议

  1. 对于初次使用,建议从simple_evaluate()开始
  2. 调试时使用--limit参数限制评估数据量
  3. 生产环境推荐启用缓存(--use_cache)
  4. 多任务评估时使用--batch_size auto优化内存使用
  5. 长期实验建议集成W&B或HF Hub日志功能

通过本文介绍的命令行参数和API使用方法,用户可以灵活地配置和执行多模态大语言模型的评估任务,满足从快速验证到生产部署的各种需求场景。

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