Repository: modelscope/evalscope
Issue: 评测官方原版Qwen2.5-VL-7B-Instruct，结果不稳定
Root cause: Configuration Error

## 自查清单

在提交 issue 之前，请确保您已完成以下步骤:

- [x] 我已仔细阅读了[[相关使用说明文档](https://evalscope.readthedocs.io/zh-cn/latest/get_started/parameters.html)](https://evalscope.readthedocs.io/zh-cn/latest/get_started/parameters.html)
- [x] 我已查看了[[常见问题解答](https://evalscope.readthedocs.io/zh-cn/latest/get_started/faq.html)](https://evalscope.readthedocs.io/zh-cn/latest/get_started/faq.html)
- [x] 我已搜索并查看了现有的 issues，确认这不是一个重复的问题

## 问题描述

评测官方原版Qwen2.5-VL-7B-Instruct，2次结果不同，请问可能的原因是什么？

## EvalScope 版本（必填）

v2.0.0

## 使用的工具

- [ ] Native / 原生框架
- [ ] Opencompass backend
- [x] VLMEvalKit backend
- [ ] RAGEval backend
- [ ] Perf / 模型推理压测工具
- [ ] Arena / 竞技场模式

## 执行的代码或指令

参考：[[VLMEvalKit | EvalScope](https://evalscope.readthedocs.io/zh-cn/latest/user_guides/backend/vlmevalkit_backend.html)](https://evalscope.readthedocs.io/zh-cn/latest/user_guides/backend/vlmevalkit_backend.html)

使用ms-swift部署官方原版Qwen2.5-VL-7B-Instruct：


```bash
CUDA_VISIBLE_DEVICES=0 \
swift deploy \
    --model Qwen/Qwen2.5-VL-7B-Instruct \
    --infer_backend vllm \
    --temperature 0 \
    --served_model_name Qwen2.5-VL-7B-Instruct \
    --port 8000
```

EvalScope的TaskCfg（yaml）：

```yaml
work_dir: ./eval_outputs
eval_backend: VLMEvalKit
eval_config:
  model:
    - type: Qwen2.5-VL-7B-Instruct
      name: CustomAPIModel
      api_base: http://localhost:8000/v1/chat/completions
      key: EMPTY
      temperature: 0.0
      max_tokens: 8192
      img_size: -1
      video_llm: false
  data:
    - MathVista_MINI
  mode: all
  limit: null
  reuse: false
  nproc: 8
  OPENAI_API_KEY: sk-xx
  OPENAI_API_BASE: https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions
  LOCAL_LLM: qwen-turbo
  work_dir: ./eval_outputs
```

裁判模型为百炼的qwen-turbo。

运行评测：

```python
from evalscope.run import run_task


def run_eval():
    # 选项 1: python 字典
    # task_cfg = task_cfg_dict

    # 选项 2: yaml 配置文件
    task_cfg = 'eval_config.yaml'
    run_task(task_cfg=task_cfg)


run_eval()
```

## 错误日志

结果：

第1次：

```
--  ---------------------------  ----  ---  ---  -------  -------
 0  Overall                      1000  457  685  45.7     68.5
 1  scientific reasoning          122   84   82  68.8525  67.2131
 2  textbook question answering   158   95  106  60.1266  67.0886
 3  numeric commonsense           144   36   56  25       38.8889
 4  arithmetic reasoning          353   95  211  26.9122  59.7734
 5  visual question answering     179   90   90  50.2793  50.2793
 6  geometry reasoning            239  159  168  66.5272  70.2929
 7  algebraic reasoning           281  185  192  65.8363  68.3274
 8  geometry problem solving      208  151  147  72.5962  70.6731
 9  math word problem             186   21  141  11.2903  75.8065
10  logical reasoning              37    8    9  21.6216  24.3243
11  figure question answering     269  100  201  37.1747  74.7212
12  statistical reasoning         301  104  250  34.5515  83.0565
--  ---------------------------  ----  ---  ---  -------  -------
```

第2次：

```
--  ---------------------------  ----  ---  ---  -------  -------
 0  Overall                      1000  463  679  46.3     67.9
 1  scientific reasoning          122   83   81  68.0328  66.3934
 2  textbook question answering   158   95  104  60.1266  65.8228
 3  numeric commonsense           144   36   57  25       39.5833
 4  arithmetic reasoning          353   96  209  27.1955  59.2068
 5  visual question answering     179   90   91  50.2793  50.838
 6  geometry reasoning            239  163  168  68.2008  70.2929
 7  algebraic reasoning           281  190  191  67.6157  67.9715
 8  geometry problem solving      208  155  147  74.5192  70.6731
 9  math word problem             186   21  135  11.2903  72.5806
10  logical reasoning              37   10   10  27.027   27.027
11  figure question answering     269  102  202  37.9182  75.0929
12  statistical reasoning         301  105  248  34.8837  82.392
--  ---------------------------  ----  ---  ---  -------  -------
```

从准确率（最后一列）来看，各项小分均有一定差别。

## 运行环境

- 操作系统：Ubuntu 22.04.5 LTS
- Python版本：3.10

## 其他信息

如果有其他相关信息，请在此处提供。

可能是裁判模型打分不一致，造成了误差

> 可能是裁判模型打分不一致，造成了误差

@Yunnglin 感谢回复。我检查了被测模型具体的回答，发现有2种情况：

1. 对部分问题，被测模型2次回答不同，并且有时导致选择的选项不同，表明被测模型的随机性没有消除。注意到部署时vLLM产生日志：

   > WARNING 07-24 10:55:29 [sampling_params.py:344] temperature 1e-06 is less than 0.01, which may cause numerical errors nan or inf in tensors. We have maxed it out to 0.01. 

   似乎表明部署时无法消除随机性？

2. 对部分相同的回答，裁判模型给出的res不完全相同，比如一个是“Extracted answer: N/A”而另一个是“N/A”。这表明裁判模型确实有随机性。但是我在EvalScope和VLMEvalKit文档中没有看到如何写前述的yaml文件来给裁判模型设置参数，导致现在消除不了随机性。

希望能得到进一步解惑，谢谢🙏

目前EvalScope支持对裁判模型设置生成参数，例如温度系数，VLMEvalKit还未支持

> 感谢你的反馈！我们将关闭此问题。如果您有任何疑问，请随时重新打开它。如果EvalScope对您有所帮助，欢迎给我们点个STAR以示支持，谢谢！