❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发非常感兴趣,我会每日跟你分享最新的 AI 资讯和开源应用,也会不定期分享自己的想法和开源实例,欢迎关注我哦!
🥦 微信公众号|搜一搜:蚝油菜花 🥦
🚀 快速阅读
- 多模态支持:支持评估多种类型的多模态模型,包括视觉问答、图像检索、文本到图像生成等。
- 全面基准测试:支持新的和常用的基准测试和评估指标,全面衡量模型性能。
- 灵活架构:采用评测与模型推理解耦的设计,提升框架的灵活性和可维护性。
正文(附运行示例)
FlagEvalMM 是什么
FlagEvalMM 是北京智源人工智能研究院开源的多模态模型评测框架,能够全面评估处理文本、图像、视频等多种模态的模型。该框架支持多种任务和指标,旨在提升评测效率,便于快速适配新任务和模型。
FlagEvalMM 采用评测与模型推理解耦的设计,统一视觉语言模型、文生图、文生视频和图文检索等多种模型的评测流程,减少重复代码,提高代码的复用性。
FlagEvalMM 的主要功能
- 多模态模型支持:支持评估多种类型的多模态模型,包括视觉问答(VQA)、图像检索、文本到图像生成等。
- 全面的基准测试和指标:支持新的和常用的基准测试和评估指标,全面衡量模型性能。
- 模型库集成:提供模型库(model_zoo),支持多种流行多模态模型的推理,如QWenVL和LLaVA,并与基于API的模型如GPT、Claude、HuanYuan等集成。
- 多后端支持:支持多种后端引擎进行推理,如VLLM、SGLang等,适应不同的模型和需求。
FlagEvalMM 的技术原理
- 评测与模型推理解耦:FlagEvalMM 将评测逻辑与模型推理逻辑分离,让评测框架独立于模型更新,提高框架的灵活性和可维护性。
- 统一的评测架构:基于统一的架构处理不同类型的多模态模型评测,减少重复代码,提高代码的复用性。
- 插件化设计:框架采用插件化设计,支持用户添加新的插件扩展支持的模型、任务和评估指标。
- 后端引擎适配:框架支持多种后端引擎,基于适配层处理不同后端引擎的接口差异,让用户在不同的引擎之间无缝切换。
如何运行 FlagEvalMM
基本安装
git clone https://github.com/flageval-baai/FlagEvalMM.git
cd FlagEvalMM
pip install -e .
可选依赖
FlagEvalMM 支持多种后端引擎进行推理。安装你计划使用的引擎:
VLLM 后端
pip install vllm==0.6.3.post1
SGLang 后端
pip install --upgrade pip
pip install "sglang[all]"
pip install flashinfer -i https://flashinfer.ai/whl/cu121/torch2.4/
使用示例
FlagEvalMM 支持一键评估:
flagevalmm --tasks tasks/mmmu/mmmu_val.py \
--exec model_zoo/vlm/http_api/model_adapter.py \
--model llava-hf/llava-onevision-qwen2-7b-ov-chat-hf \
--num-workers 8 \
--output-dir ./results/llava-onevision-qwen2-7b-ov-chat-hf \
--backend vllm \
--extra-args "--limit-mm-per-prompt image=10 --max-model-len 32768"
配置文件示例
创建一个名为 qwen2_vl_72b_instruct.json
的配置文件:
{
"model_name": "Qwen/Qwen2-VL-72B-Instruct",
"api_key": "EMPTY",
"output_dir": "./results/Qwen2-VL-72B-Instruct",
"min_image_hw": 28,
"num_workers": 8,
"backend": "vllm",
"extra_args": "--limit-mm-per-prompt image=18 --tensor-parallel-size 4 --max-model-len 32768 --trust-remote-code --mm-processor-kwargs '{\"max_dynamic_patch\":4}'"
}
简化评估命令:
flagevalmm --tasks tasks/mmmu_pro/mmmu_pro_standard_test.py tasks/ocrbench/ocrbench_test.py \
--exec model_zoo/vlm/http_api/model_adapter.py \
--cfg qwen2_vl_72b_instruct.json
资源
- 项目官网:https://github.com/flageval-baai/FlagEvalMM
- GitHub 仓库:https://github.com/flageval-baai/FlagEvalMM
- 环境配置文档:https://github.com/flageval-baai/FlagEvalMM/tree/main/docs/prepare_env/install_guide-zh.md
- arXiv 技术论文:https://arxiv.org/pdf/2410.06734
❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发非常感兴趣,我会每日跟你分享最新的 AI 资讯和开源应用,也会不定期分享自己的想法和开源实例,欢迎关注我哦!
🥦 微信公众号|搜一搜:蚝油菜花 🥦