人工智能的浪潮席卷而来,多模态模型已成为 AI 领域的核心驱动力。它们如同拥有多重感官的智能体,能够明白和生成文本、图像、音频、视频等多元信息,在各个领域显现出前所未有的潜力。然而,与模型能力的飞速提升形成光显对比的是,多模态模型评测体系的相对滞后。 如何科学、全面、高效地评测多模态模型的性能,成为了制约领域发展的关键挑战。
正是在这样的配景下,EvolvingLMMs-Lab 倾力打造并开源了 lmms-eval ,一个专为大规模多模态模型评测而生的革命性框架。 lmms-eval 不仅仅是一个工具,更是一套尺度化的评测方案,旨在推动多模态 AI 走向成熟和繁荣。
项目所在: https://github.com/EvolvingLMMs-Lab/lmms-eval/tree/b1fbf55f4f11cc2c30aa628252723f35c1dc1d90
1. 为什么选择 lmms-eval? 办理多模态评测的核心痛点
lmms-eval 的诞生并非偶尔,它深刻洞察了当前多模态评测领域的痛点,并提供了针对性的办理方案:
- 碎片化的评测尺度: 传统的多模态评测往往缺乏同一的尺度和工具,不同研究团队使用不同的数据集、指标和方法,导致评测结果难以比较和复现。 lmms-eval 致力于构建同一的评测平台,提供尺度化的评测流程和指标,促进研究成果的交流和进步。
- 评测任务覆盖不足: 许多评测工具只关注单一模态或特定任务,无法全面评估多模态模型的综合能力。 lmms-eval 的目标是覆盖尽可能广泛的多模态任务,从底子的图像描述、视觉问答,到复杂的视频明白、音频分析,甚至更前沿的多模态推理和生成任务,力图全方位描绘模型的性能表面。
- 模型集成和扩展困难: 现有的评测框架可能模型集成流程复杂,难以支持快速发展的新型多模态模型。 lmms-eval 接纳模块化和可扩展的设计,使得用户可以轻松集成自定义模型、数据集和评测指标,灵活应对快速厘革的模型 landscape。
- 易用性与效率挑战: 复杂的评测工具学习成本高,运行效率低,拦阻了研究人员的快速迭代。 lmms-eval 注重易用性和效率,提供轻便的命令行接口、清楚的配置文件和优化的代码实现,力图低落使用门槛,提升评测效率。
2. lmms-eval 的核心特性:强大功能,全面赋能评测
lmms-eval 之所以能够成为多模态评测的革新利器,源于其卓越的设计和强大的功能:
- 全面的多模态任务支持 :
lmms-eval 当前版本已经支持极其丰富的多模态任务,涵盖图像、文本、视频、音频等多种模态,以及各种主流评测任务类型。 以下是 lmms-eval 支持的详细任务列表 (参考 current_tasks.md):
[图像-文本任务]
- 图像分类 (Image Classification):
- image_classification
- imagenet
- cifar10
- cifar100
- mnist
- fashion_mnist
- sun397
- places365
- daimlerpedclass
- gtsrb
- voc2007
- voc2012
- ade20k
- cityscapes
- nyu_depth_v2
- scannet
- sun_rgbd
- pascal_context
- lvis
- object365
- 图像描述生成 (Image Captioning):
- image_captioning
- coco_caption
- flickr30k_caption
- image_net_caption
- 视觉问答 (Visual Question Answering, VQA):
- vqa
- vqav2
- okvqa
- vizwiz_vqa
- textvqa
- sciencevqa
- ai2d
- docvqa
- chartqa
- infographicvqa
- multimodalqa
- 视觉蕴含 (Visual Entailment):
- visual_entailment
- snli_ve
- 视觉常识推理 (Visual Commonsense Reasoning, VCR):
- visual_commonsense_reasoning
- vcr
- 视觉定位 (Visual Grounding) / 指代表达明白 (Referring Expression Comprehension):
- visual_grounding
- refcoco
- refcoco_g
- refcoco_plus
- 图像文本检索 (Image-Text Retrieval):
- image_retrieval
- coco_retrieval
- flickr30k_retrieval
- unsplash
- pexels
- iapr_tc12
- esic
- rsicd
- reclip
- 文本到图像检索 (Text-to-Image Retrieval):
- text_retrieval
- coco_retrieval
- flickr30k_retrieval
- unsplash
- pexels
- iapr_tc12
- esic
- rsicd
- reclip
- 零样本图像分类 (Zero-shot Image Classification):
- zero_shot_image_classification
- imagenet_zeroshot
- 视觉属性和关系预测 (Visual Attribute and Relation Prediction):
- visual_attribute_prediction
- visual_genome_attributes
- visual_genome_relations
- visual_genome_objects
- 视觉推理 (Visual Reasoning):
- visual_reasoning
- nlvr2
- clevr
- shapes
- reasoning_shapes
- sqoop
- gqa
- clevr_hans
- 多模态基准评测 (Multimodal Benchmarks):
- multimodal_benchmark
- m3exam
- scienceqa_img
- mmbench
- mmbench_cn
- ccbench
- hallusion_bench
- seed_bench
- llava_bench
- mme
- pope
- mvbench
- 鲁棒性评测 (Robustness Evaluation):
- robustness
- vqav2_cp
- vqa_hat
- vqav2_cf
- vqav2_ad
- gqa_ood
- gqa_cp
- gqa_ad
- gqa_cf
- gqa_gnl
- gqa_nl
- gqa_vg
- gqa_vd
- gqa_vs
- gqa_vr
- gqa_vc
- gqa_va
- gqa_vf
- gqa_vh
- gqa_vl
- gqa_vn
- gqa_vv
- gqa_vp
- 对抗性评测 (Adversarial Evaluation):
- 幻觉评测 (Hallucination Evaluation):
- hallucination
- hallusion_bench
- 安全性和偏见评测 (Safety and Bias Evaluation):
- safety_bias
- hateful_memes
- mug
- reddit_disinformation
- twitter_disinformation
- fake_news_net
- politifact
- buzzfeed
- covid_fact
- medifact
[视频-文本任务]
- 视频描述生成 (Video Captioning):
- video_captioning
- msr_vtt_caption
- msvd_caption
- activity_net_caption
- 视频问答 (Video Question Answering, VQA):
- video_vqa
- msr_vtt_qa
- msvd_qa
- 视频文本检索 (Video-Text Retrieval):
- video_retrieval
- msr_vtt_retrieval
- msvd_retrieval
- 动作辨认 (Action Recognition):
- action_recognition
- kinetics400
- something_something_v2
- 时间动作定位 (Temporal Action Localization):
- temporal_action_localization
- thumos14
- activitynet_entities
[音频-文本任务]
- 音频分类 (Audio Classification):
- audio_classification
- audioset
- esc50
- 语音辨认 (Automatic Speech Recognition, ASR):
- asr
- librispeech_asr
- common_voice_asr
- 音频事件检测 (Audio Event Detection):
- audio_event_detection
- dcase2017_task4
- 音频标注 (Audio Tagging):
- audio_tagging
- magnatagatune
- freesound_dataset
- 强大的模型支持 (连续扩展):
lmms-eval 框架设计灵活,支持集成各种多模态模型。 当前版本已经原生支持或易于集成以下模型 (参考 lmms_eval/models 目录):
- Vision-Language Models:
- CLIP (Contrastive Language-Image Pre-training): 广泛使用的图像-文本预练习模型,lmms-eval 支持多种 CLIP 变体。
- BLIP (Bootstrapping Language-Image Pre-training): 包括 BLIP 和 BLIP-2,在视觉问答和图像描述等任务上表现精彩。
- FLAN (Finetuned Language Net): 例如 FLAN-T5, FLAN-UL2 等,通过指令微调提升了模型的泛化能力。
- LLaMA (Large Language Model Meta AI): 支持 LLaMA 和 LLaMA-Adapter 等,可以与视觉模块联合进行多模态任务。
- MiniGPT-4: 基于视觉编码器和大型语言模型的组合,用于视觉明白和生成任务。
- InstructBLIP: 在 BLIP-2 的底子上进行指令微调,更擅长处置处罚指令相干的多模态任务。
- Otter: 一种基于 Transformer 的多模态模型架构。
- X-LLM: 跨模态大型语言模型。
- Vision Transformer (ViT): 作为视觉编码器,可以与其他模块联合构建多模态模型。
- ResNet: 经典的卷积神经网络,常用于图像特性提取。
- Audio-Language Models (初步支持,未来可期):
- 框架设计上支持音频模态,未来有望扩展对更多音频-语言模型的支持。
- General Language Models (用于文本处置处罚部分):
- GPT 系列: 例如 GPT-3, GPT-2 等,用于文本生成和明白。
- T5 (Text-to-Text Transfer Transformer): 用于各种文本到文本的任务。
- BERT (Bidirectional Encoder Representations from Transformers): 用于文本特性提取和明白。
- RoBERTa (A Robustly Optimized BERT Approach): BERT 的改进版本,性能更优。
[模型集成方式]: lmms-eval 接纳模型适配器 (Adapter)机制,用户只需编写简单的适配器代码,即可将自定义模型无缝集成到评测框架中。 框架已经预置了常用模型的适配器,用户可以参考示例进行快速扩展。
- 灵活的配置系统:YAML 配置文件驱动
lmms-eval 接纳YAML 配置文件来管理评测任务的各个方面,包括模型选择、数据集指定、评测指标设定、运行参数调整等。 用户只需修改配置文件,即可灵活定制评测流程,无需修改代码。 配置文件布局清楚,易于明白和维护。
- 丰富的评测指标:满意多样化评估需求
lmms-eval 支持各种常用的多模态评测指标,例如:
- 图像描述生成: BLEU, METEOR, ROUGE_L, CIDEr, SPICE 等。
- 视觉问答: Accuracy, VQA Accuracy, Answer Type Accuracy 等。
- 图像文本检索: Recall@K, mAP, NDCG 等。
- 视频描述生成: 与图像描述生成雷同的指标。
- 音频分类: Accuracy, F1-score, AUC 等。
- 语音辨认: Word Error Rate (WER), Character Error Rate (CER) 等。
同时,lmms-eval 支持自定义评测指标,用户可以根据特定任务的需求,添加和使用自定义的评估指标。
- 轻便易用的命令行接口 (CLI):
lmms-eval 提供轻便直观的命令行接口,用户只需一条命令即可启动评测任务。 例如:
- lmms-eval --config configs/your_config.yaml
复制代码 CLI 提供了丰富的参数选项,方便用户进行各种配置和控制。
- 高度可扩展性:模块化设计,无穷可能
lmms-eval 接纳模块化设计,各个组件 (模型、数据集、任务、指标等) 相互独立,易于扩展和更换。 用户可以轻松添加新的模型、数据集、任务和指标,构建定制化的评测平台。 框架的扩展性为未来支持更多模态、更复杂任务和更先辈模型奠定了坚实底子。
- 促进评测尺度化和可复现性:
lmms-eval 的出现,有助于推动多模态模型评测走向尺度化和可复现。 通过使用同一的框架、基准数据集和评测指标,研究人员可以更方便地比较不同模型的性能,并确保研究结果的可信度和可复现性。
3. 快速上手 lmms-eval:几步开启多模态评测之旅
- 安装环境: 参考项目 README.md 中的 “Installation” 部分,安装 lmms-eval 及其依靠项。 通常必要 Python 环境 (建议使用 conda 或 virtualenv 管理环境),以及 PyTorch, Transformers 等须要的库。
- git clone https://github.com/EvolvingLMMs-Lab/lmms-eval
- cd lmms-eval
- pip install -e .
复制代码
- 预备配置文件: 在 configs/ 目录下选择或创建配置文件。 根据你的评测需求,修改配置文件中的模型、数据集、任务、指标等参数。 可以参考 configs/ 目录下的示例配置文件。
- 运行评测命令: 在命令行中实验 lmms-eval 命令,并指定配置文件路径:
Qwen2-VL-7B-Instruct模型评测
- CUDA_VISIBLE_DEVICES=0 python3 -m lmms_eval \
- --model=qwen2_vl \
- --model_args=/home2/jianxiong/models/vlm/Qwen2-VL-7B-Instruct,device_map=auto \
- --tasks=mmmu,mathvista_testmini,mmstar,mme,chartqa,ocrbench,textvqa,mmbench \
- --batch_size=1 \
- --log_samples \
- --log_samples_suffix=qwen2_vl \
- --output_path="./logs/" \
- --verbosity=DEBUG
复制代码 QVQ-72B-Preview模型评测
- CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7 python3 -m lmms_eval \
- --model=qwen2_vl \
- --model_args=pretrained=/mnt/data/jinchenyu/llms/QVQ-72B-Preview,device_map=auto \
- --tasks=mmmu,mathvista_testmini,mmstar,mme,chartqa,ocrbench,textvqa,mmbench \
- --batch_size=1 \
- --log_samples \
- --log_samples_suffix=QVQ \
- --output_path="./logs/" \
- --verbosity=DEBUG
复制代码
- 检察评测结果: 评测完成后,结果将输出到终端和日记文件。 分析评测结果,评估模型性能。
4. lmms-eval 的应用场景:广泛覆盖,代价无穷
lmms-eval 适用于各种必要进行多模态模型评测的场景:
- 学术研究: 研究人员可以使用 lmms-eval 评估新提出的多模态模型,进行消融实验和性能对比,推动多模态 AI 理论和算法的进步。
- 工业应用: 企业开发者可以使用 lmms-eval 选择和优化多模态模型,应用于智能客服、图像搜刮、视频分析、语音助手等各种实际应用场景。
- 教诲学习: 学生和爱好者可以通过 lmms-eval 学习多模态模型评测的原理和方法,提升实践能力。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |