MEvalKit 是一个功能强大的多模态大语言模型评测平台,支持纯文本、多模态和LLMJudge型评测集,提供Web界面和命令行两种使用方式,让模型评测变得简单高效。
- 🎯 一键评测:仅用一句命令即可完成对已有或自定义评测集的评测
- 🔧 多种模型支持:通过标准OpenAI接口支持GPT系列、Qwen系列等多种纯文本及多模态模型
- 📊 丰富评测集:支持MMLU、MMStar、MT-Bench、CMB等多种评测集
- 🌐 Web界面:提供直观的Web管理界面,支持任务创建、进度监控、结果查看
- 🐳 Docker部署:提供完整的Docker部署方案,快速搭建评测环境
- 🔄 断点续评:支持评测任务的中断和恢复,避免重复计算
- 📈 排行榜系统:自动生成模型性能排行榜,便于比较分析
# 克隆项目
git clone https://github.com/FreedomIntelligence/MEvalKit.git
cd MEvalKit
# 一键部署
./deploy.sh
# 访问Web界面
# http://localhost:5000
# 克隆项目
git clone https://github.com/FreedomIntelligence/MEvalKit.git
cd MEvalKit
# 安装依赖
pip install -r requirements.txt
# 配置环境变量
cp env.example .env
# 编辑.env文件,设置API密钥等
# 启动Web服务
python app.py
# 或使用命令行评测
python run.py --dataset MMLU --model_name gpt-4o --evaluation_mode automatic
评测集名称 | 类型 | 描述 | 数据源 |
---|---|---|---|
MMLU | 纯文本 | 大规模多任务语言理解评测集 | HuggingFace |
GPQA | 纯文本 | 研究生水平物理问答评测集 | GitHub |
CMB | 纯文本 | 中文医学基准评测集 | GitHub |
MMStar | 多模态 | 多模态科学问答评测集 | HuggingFace |
MT-Bench | LLMJudge | 多轮对话评测集 | GitHub |
# 基本用法
python run.py --dataset MMLU --model_name gpt-4o --evaluation_mode automatic
# 完整参数示例
python run.py \
--evaluation_mode automatic \
--dataset MMLU \
--model_name gpt-4o \
--api_base "https://api.openai.com/v1" \
--model_key "your-api-key" \
--question_limitation 100 \
--user_id "test_user"
# 使用预生成的响应文件进行评测
python run.py \
--evaluation_mode manual \
--dataset MMLU \
--model_name gpt-4o \
--response_url "https://example.com/responses.json" \
--question_limitation 100
- 访问主页:打开浏览器访问
http://localhost:5000
- 创建评测任务:点击"开始新评测",填写评测参数
- 监控进度:在任务详情页面查看实时进度
- 查看结果:评测完成后查看详细结果和排行榜
# 首次部署(构建镜像并启动服务)
./deploy.sh
# 只构建镜像,不启动服务
./deploy.sh --build-only
# 只启动服务,不构建镜像
./deploy.sh --start-only
# 重新构建镜像并启动服务
./deploy.sh --rebuild
# 构建镜像
docker build -t mevalkit:latest .
# 配置环境变量
cp env.example .env
# 编辑.env文件
# 启动服务
docker-compose up -d
# 查看日志
docker-compose logs -f
# 1. 安装Python依赖
pip install -r requirements.txt
# 2. 配置环境变量
cp env.example .env
# 编辑.env文件,设置必要的API密钥
# 3. 启动Web服务
python app.py
# 4. 访问应用
# Web界面: http://localhost:5000
# API文档: http://localhost:5000/apidocs/
- 特点:实时调用模型API进行评测
- 适用场景:有模型API访问权限的情况
- 优势:实时性好,支持大规模评测
- 参数:需要提供API密钥和接口地址
- 特点:使用预生成的模型响应文件进行评测
- 适用场景:模型响应已预先生成或API访问受限
- 优势:成本低,可重复使用响应数据
- 参数:需要提供响应数据URL
接口 | 方法 | 描述 |
---|---|---|
/ |
GET | 主页(总排行榜) |
/new-evaluation |
GET | 创建评测任务页面 |
/run-evaluation |
POST | 运行评测任务 |
/task-status/<task_id> |
GET | 获取任务状态 |
/task-detail/<task_id> |
GET | 查看任务详情 |
/results |
GET | 查看所有结果 |
访问 http://localhost:5000/apidocs/
查看完整的API文档。
评测集配置位于 dataset_info/
目录下:
text_dataset.json
- 纯文本评测集配置image_dataset.json
- 多模态评测集配置LLMJudge_dataset.json
- LLMJudge型评测集配置
{
"MyDataset": {
"language": "zh",
"question": {
"loading_way": "huggingface",
"path": "your-dataset-path",
"subset_name": "default",
"split_name": "test",
"key": "question"
},
"choices": {
"loading_way": "huggingface",
"path": "your-dataset-path",
"key": ["A", "B", "C", "D"]
},
"answer": {
"loading_way": "huggingface",
"path": "your-dataset-path",
"key": "answer",
"answer_type": "choice"
}
}
}
MEvalKit/
├── app.py # Flask Web应用主文件
├── run.py # 命令行评测入口
├── requirements.txt # Python依赖
├── Dockerfile # Docker镜像配置
├── docker-compose.yml # Docker Compose配置
├── deploy.sh # 一键部署脚本
├── evaluation/ # 评测核心模块
│ ├── TextMCQ_eval.py # 文本多选题评测
│ ├── ImageMCQ_eval.py # 图像多选题评测
│ └── LLMJudge_eval.py # LLMJudge评测
├── src/ # 工具模块
│ └── utils/ # 工具函数
├── dataset_info/ # 数据集配置
│ ├── text_dataset.json
│ ├── image_dataset.json
│ └── LLMJudge_dataset.json
├── templates/ # Web模板
├── results/ # 评测结果存储
├── data/ # 数据集缓存
└── logs/ # 日志文件
我们欢迎社区贡献!请遵循以下步骤:
- Fork 本仓库
- 创建特性分支 (
git checkout -b feature/AmazingFeature
) - 提交更改 (
git commit -m 'Add some AmazingFeature'
) - 推送到分支 (
git push origin feature/AmazingFeature
) - 开启 Pull Request
- 🐛 Bug修复
- ✨ 新功能开发
- 📚 文档改进
- 🧪 测试用例
- 🔧 性能优化
本项目采用 Apache License 2.0 许可证。
本项目受益于以下开源项目:
- VLMEvalKit - 多模态评测框架
- LLaMA-Factory - 大语言模型训练框架
- 项目主页:https://github.com/FreedomIntelligence/MEvalKit
- 问题反馈:https://github.com/FreedomIntelligence/MEvalKit/issues
- 邮箱:[email protected]
MEvalKit - 让模型评测变得简单高效! 🚀