evalscope_v0.17.0/evalscope.0.17.0/docs/zh/best_practice/iquiz.md

152 lines
7.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 你家的AI有多聪明智商和情商全评测
在人工智能的浪潮中各式各样的模型如雨后春笋般涌现其中不乏像OpenAI最新发布的GPT-4.5这样备受关注的高情商模型。它们在各类榜单中占据着显赫的位置,令人眼花缭乱。然而,这些模型获得的分数究竟是如何测出来的?每当我们在榜单上看到那些令人印象深刻的分数时,你是否也曾好奇过背后的评测奥秘?在这个教程中,我们将带你揭秘这一切,手把手教你评测模型的智商和情商。
我们将使用[EvalScope](https://github.com/modelscope/evalscope)模型评测框架,在[IQuiz](https://modelscope.cn/datasets/AI-ModelScope/IQuiz/dataPeview)数据集上进行评测这个数据集中我们收集了40道IQ测试和80道EQ测试选择题其中包括一些经典问题
- 数字9.8和9.11哪个大?
- 单词 strawberry 和 blueberry 中一共有多少个 r
- 刘雨正在休假,突然被要求开车送领导去机场,他正为休假计划的泡汤而懊恼,因此在送领导时,刹车踩得比较用力。在车上,领导突然说:“小刘啊,这不愧是有着悠久历史的西安,我这坐车有一种回到古代坐马车的感觉。” 领导是什么意思?
可以点击[这里](https://modelscope.cn/datasets/AI-ModelScope/IQuiz/dataPeview)看看你能答对多少再期待一下AI模型的表现吧。
本教程包括以下内容:
- [安装EvalScope相关依赖](#安装-evalscope)
- [评测本地模型checkpoint](#评测本地模型checkpoint)
- [评测API模型服务](#评测api模型服务)
- [可视化模型评测结果](#可视化模型评测结果)
```{note}
本教程可以直接在ModelScope的免费Notebook环境中运行请点击[这里](https://modelscope.cn/notebook/share/ipynb/9431c588/iquiz.ipynb)
```
## 安装 EvalScope
```bash
pip install 'evalscope[app]' -U
```
## 评测本地模型checkpoint
运行下面的命令将自动从modelscope下载对应模型并使用IQuiz数据集进行评测根据模型输出结果和标准答案对模型进行评分评测结果将保存在当前目录下的`outputs`文件夹中。
命令参数包含如下内容:
- model被评测的模型名称。
- datasets数据集名称支持输入多个数据集使用空格分开。
更多支持的参数请参考https://evalscope.readthedocs.io/zh-cn/latest/get_started/parameters.html
### 评测Qwen2.5-0.5B-Instruct
这个是通义千问官方的Qwen2.5系列0.5B大小的模型,模型链接 https://modelscope.cn/models/Qwen/Qwen2.5-0.5B-Instruct
推理时大约占用2.6G显存
```bash
CUDA_VISIBLE_DEVICES=0 \
evalscope eval \
--model Qwen/Qwen2.5-0.5B-Instruct \
--datasets iquiz
```
输出评测报告示例如下:
```text
+-----------------------+-----------+-----------------+----------+-------+---------+---------+
| Model | Dataset | Metric | Subset | Num | Score | Cat.0 |
+=======================+===========+=================+==========+=======+=========+=========+
| Qwen2.5-0.5B-Instruct | iquiz | AverageAccuracy | IQ | 40 | 0.05 | default |
+-----------------------+-----------+-----------------+----------+-------+---------+---------+
| Qwen2.5-0.5B-Instruct | iquiz | AverageAccuracy | EQ | 80 | 0.1625 | default |
+-----------------------+-----------+-----------------+----------+-------+---------+---------+
```
### 评测Qwen2.5-7B-Instruct
这个是通义千问官方的Qwen2.5系列70亿参数大小的模型模型链接 https://modelscope.cn/models/Qwen/Qwen2.5-7B-Instruct
推理时大约占用16G显存
让我们来看看参数量更大的模型是否有更好的表现
```bash
CUDA_VISIBLE_DEVICES=0 \
evalscope eval \
--model Qwen/Qwen2.5-7B-Instruct \
--datasets iquiz
```
输出评测报告示例如下:
```text
+---------------------+-----------+-----------------+----------+-------+---------+---------+
| Model | Dataset | Metric | Subset | Num | Score | Cat.0 |
+=====================+===========+=================+==========+=======+=========+=========+
| Qwen2.5-7B-Instruct | iquiz | AverageAccuracy | IQ | 40 | 0.6 | default |
+---------------------+-----------+-----------------+----------+-------+---------+---------+
| Qwen2.5-7B-Instruct | iquiz | AverageAccuracy | EQ | 80 | 0.6625 | default |
+---------------------+-----------+-----------------+----------+-------+---------+---------+
```
从初步评测结果可以看出7B大小的模型在IQ和EQ上都远超0.5B大小的模型。
## 评测API模型服务
EvalScope还支持API评测下面我们使用API评测[Qwen2.5-72B-Instruct-GPTQ-Int4](https://modelscope.cn/models/Qwen/Qwen2.5-72B-Instruct-GPTQ-Int4)模型。
首先使用vLLM启动Qwen2.5-72B-Instruct-GPTQ-Int4模型并使用API评测。
```bash
VLLM_USE_MODELSCOPE=True CUDA_VISIBLE_DEVICES=0 python -m vllm.entrypoints.openai.api_server --model Qwen/Qwen2.5-72B-Instruct-GPTQ-Int4 --gpu-memory-utilization 0.9 --served-model-name Qwen2.5-72B-Instruct --trust_remote_code --port 8801
```
使用EvalScope评测API评测
```bash
evalscope eval \
--model Qwen2.5-72B-Instruct \
--api-url http://localhost:8801/v1 \
--api-key EMPTY \
--eval-type service \
--eval-batch-size 16 \
--datasets iquiz
```
输出评测报告示例如下:
```text
+----------------------+-----------+-----------------+----------+-------+---------+---------+
| Model | Dataset | Metric | Subset | Num | Score | Cat.0 |
+======================+===========+=================+==========+=======+=========+=========+
| Qwen2.5-72B-Instruct | iquiz | AverageAccuracy | IQ | 40 | 0.825 | default |
+----------------------+-----------+-----------------+----------+-------+---------+---------+
| Qwen2.5-72B-Instruct | iquiz | AverageAccuracy | EQ | 80 | 0.8125 | default |
+----------------------+-----------+-----------------+----------+-------+---------+---------+
```
从评测结果可以看出72B大小的模型在IQ和EQ上都远超0.5B和7B大小的模型。
## 可视化模型评测结果
下面我们启动EvalScope的可视化界面来具体看看模型对每个问题是如何回答的
```bash
evalscope app
```
点击链接即可看到如下可视化界面,我们需要先选择评测报告然后点击加载:
<p align="center">
<img src="https://notebookshare.oss-cn-zhangjiakou.aliyuncs.com/resource/38b79d2d/overview.png" alt="alt text" width="80%">
</p>
此外,选择对应的子数据集,我们也可以查看模型的输出内容:
<p align="center">
<img src="https://notebookshare.oss-cn-zhangjiakou.aliyuncs.com/resource/a7d22b89/details.png" alt="alt text" width="80%">
</p>
## 总结
从模型输出结果看0.5B的模型倾向于直接输出选项并且没有按要求给出解释7B大小的模型基本都能给出让人信服的解释。从这个评测结果来看下次如果你希望让AI来帮你写作业记得用参数量更大的模型或者用本教程的工具来测一测。如果你还没尽兴的话可以阅读Evalscope的[使用指南](https://evalscope.readthedocs.io/zh-cn/latest/get_started/basic_usage.html),使用更多的数据集来评测你自己训练的模型!