zhiminy/EvalEng huggingface dataset:
Repository: modelscope/evalscope
Issue: 小白求问：model: 使用的模型名称，这个是什么意思?

![Image](https://github.com/user-attachments/assets/01e1f70b-6db2-43be-8843-e128e1b2caf6)
假设是用ds蒸馏出来的，命名为abc，那么是不是应该写abc？

这个功能是测试模型服务的推理速度，`model`填的是模型服务框架部署的模型名称，比如OpenAI的服务有`gpt-4o`, `o1-mini`等模型

> 感谢你的反馈！我们将关闭此问题。如果您有任何疑问，请随时重新打开它。如果EvalScope对您有所帮助，欢迎给我们点个STAR以示支持，谢谢！
Repository: modelscope/evalscope
Issue: `trust_remote_code=True`参数怎么传递
Root cause: Documentation Deficiency

## 问题描述 / Issue Description

使用Native 以及魔搭数据集进行模型评测，出现下载数据集modelscope - WARNING - Use trust_remote_code=True. Will invoke codes from modelscope/ceval-exam. Please make sure that you can trust the external codes.警告信息，文档中没找到在哪里传递该参数

```python
task_cfg = TaskConfig(
    eval_type="service",
    api_url='http://127.0.0.1:17009/v1',
    api_key='api_key',
    model='Qwen-72B',
    datasets=['ceval', 'cmmlu', 'gpqa', 'hellaswag', 'ifeval', 'mmlu_pro', 'race', 'trivia_qa'],
    limit=10,
    generation_config={
        'temperature': 0.6,
        'max_tokens': 8000,
    },
    stream=True,
    eval_batch_size=16,
)


run_task(task_cfg=task_cfg)
```

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


## 执行的代码或指令 / Code or Commands Executed

```python
task_cfg = TaskConfig(
    eval_type="service",
    api_url='http://127.0.0.1:17009/v1',
    api_key='api_key',
    model='Qwen-72B',
    datasets=['ceval', 'cmmlu', 'gpqa', 'hellaswag', 'ifeval', 'mmlu_pro', 'race', 'trivia_qa'],
    limit=10,
    generation_config={
        'temperature': 0.6,
        'max_tokens': 8000,
    },
    stream=True,
    eval_batch_size=16,
)


run_task(task_cfg=task_cfg)
```



## 错误日志 / Error Log

```
2025-03-03 15:44:55,777 - modelscope - WARNING - Use trust_remote_code=True. Will invoke codes from ceval-exam. Please make sure that you can trust the external codes.
2025-03-03 15:44:56,262 - modelscope - WARNING - Use trust_remote_code=True. Will invoke codes from modelscope/ceval-exam. Please make sure that you can trust the external codes.
2025-03-03 15:44:56,262 - modelscope - WARNING - Use trust_remote_code=True. Will invoke codes from modelscope/ceval-exam. Please make sure that you can trust the external codes.
2025-03-03 15:44:56,262 - modelscope - WARNING - Use trust_remote_code=True. Will invoke codes from modelscope/ceval-exam. Please make sure that you can trust the external codes.
```
一直在无限循环输出警告信息
## 运行环境 / Runtime Environment

- 操作系统 / Operating System:
  - [ ] Windows
  - [ ] macOS
  - [x] Ubuntu

- Python版本 / Python Version:
  - [ ] 3.11
  - [x] 3.10
  - [ ] 3.9





这个是warning不影响评测流程，框架已经默认`trust_remote_code=True`

我发现按照上面的代码，一直在循环这个警告

![Image](https://github.com/user-attachments/assets/f2d4dc2d-0a1e-4f6f-b06d-84608eae1dcd)
我指定了一下     
```
dataset_dir='/home/qichen/work/test_dataset',
dataset_hub="modelscope",
```
就不会一直循环了

我理解了，他这个警告信息，是每次下载数据集都会警告好多次，并且相同，我以为出错了无限循环 ┭┮﹏┭┮
Repository: modelscope/evalscope
Issue: embedding任务的压测功能支持
Root cause: Unimplemented Feature Gap

## 功能描述 / Feature Description
请问能否添加对于llm的embedding任务的压测支持
请简要描述您希望添加的功能。 / Please briefly describe the feature you would like to request.
embedding任务的压测支持
## 需求背景 / Background

为什么需要这个功能？ / Why is this feature needed?

## 预期行为 / Expected Behavior

这个功能应该如何工作？ / How should this feature work?

## 其他信息 / Additional Information
无
还有其他相关信息吗？ / Any other relevant information?
无
Repository: modelscope/evalscope
Issue: humaneval 数据集评测时 哪里又设置一个样本推理几次生成几个答案，pass@1计算公式中的n没有被指定
Root cause: Documentation Deficiency

## 问题描述 / Issue Description

请简要描述您遇到的问题。
humaneval 数据集评测时 哪里又设置一个样本推理几次生成几个答案，pass@1计算公式中的n没有被指定 


## 执行的代码或指令 / Code or Commands Executed

evalscope eval \
  --model ... \
  --api-url  \
  --api-key  \
  --eval-type service \
  --datasets humaneval \


没有能指定n的参数

在generation config里面指定
参考：https://evalscope.readthedocs.io/zh-cn/latest/get_started/parameters.html#id2

![Image](https://github.com/user-attachments/assets/d69680b9-38b7-4ee3-b6dc-5d2ba0bb82f1)

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

> 在generation config里面指定 参考：https://evalscope.readthedocs.io/zh-cn/latest/get_started/parameters.html#id2
> 
> ![Image](https://github.com/user-attachments/assets/d69680b9-38b7-4ee3-b6dc-5d2ba0bb82f1)

您好，我在使用默认n=1 时 其他参数都是默认参数，测试训练前和训练后的qwen2.5-32b-coder-instruction 获得的pass@1都是0.5183，

> > 在generation config里面指定 参考：https://evalscope.readthedocs.io/zh-cn/latest/get_started/parameters.html#id2
> > ![Image](https://github.com/user-attachments/assets/d69680b9-38b7-4ee3-b6dc-5d2ba0bb82f1)
> 
> 您好，我在使用默认n=1 时 其他参数都是默认参数，测试训练前和训练后的qwen2.5-32b-coder-instruction 获得的pass@1都是0.5183，

启动命令仅为
evalscope eval \
 --model /work/share/zyj/MindSpeed-LLM/model_weights/hf/qwen25-coder-32b-Instruct/mg2hf \
 --api-url http://0.0.0.0:8899/v1 \
 --api-key EMPTY \
 --eval-type service \
 --datasets humaneval \



你可以运行下面的命令启动可视化界面，看看模型的具体回复
```bash
evalscope app
```

> 你可以运行下面的命令启动可视化界面，看看模型的具体回复
> 
> evalscope app

好的 能解释一下为什么会出现一样的分数呢？是因为n=1 还是推理参数设置的不对

一般来说不同模型得分是不一样的。请问两次运行的命令分别是什么，部署的模型是否正确？可以启动可视化界面，看看两个模型的具体回复是否一样。

> 一般来说不同模型得分是不一样的。请问两次运行的命令分别是什么，部署的模型是否正确？可以启动可视化界面，看看两个模型的具体回复是否一样。

看了evalscope中的predictions中的json文件，两个模型的回答是不一样的，一个带有think 另一个没有think
两次运行的命令是一样的
evalscope eval
 --model /work/share/zyj/MindSpeed-LLM/model_weights/hf/qwen25-coder-32b-Instruct/mg2hf
 --api-url http://0.0.0.0:8899/v1
 --api-key EMPTY
 --eval-type service
 --datasets humaneval \
两次的命令中只有model 不一样，我是各自在两台服务器上部署的服务，分别在各自服务器上测试evalscope，而且模型的回答不一样

运行的命令看起来没问题，在可视化界面可以看对模型每个生成的答案的打分，可能两个模型回答对的数量是一样的

> 运行的命令看起来没问题，在可视化界面可以看对模型每个生成的答案的打分，可能两个模型回答对的数量是一样的

openai.BadRequestError: Error code: 400 - {'object': 'error', 'message': 'n must be 1 when using greedy sampling, got 5.', 'type': 'BadRequestError', 'param': None, 'code': 400}

evalscope eval \
 --model /work/share/weights/Qwen2.5-Coder-32B-Instruct/ \
 --generation-config temperature=0.8,n=5,max_tokens=25000 \
 --api-url http://0.0.0.0:8899/v1 \
 --api-key EMPTY \
 --eval-type service \
 --datasets humaneval \

不能指定n=5

> 运行的命令看起来没问题，在可视化界面可以看对模型每个生成的答案的打分，可能两个模型回答对的数量是一样的

![Image](https://github.com/user-attachments/assets/4bedffd5-2ba9-4b68-8330-4019b333a2db)

这里的n是在哪里指定？

模型服务是用什么部署的呢，我用vllm部署没有出现这个问题

> > 运行的命令看起来没问题，在可视化界面可以看对模型每个生成的答案的打分，可能两个模型回答对的数量是一样的
> 
> ![Image](https://github.com/user-attachments/assets/4bedffd5-2ba9-4b68-8330-4019b333a2db)
> 
> 这里的n是在哪里指定？

就是在generation-config里面指定的，你的命令没错

> 模型服务是用什么部署的呢，我用vllm部署没有出现这个问题

也是vllm 现在可以，可能当时是服务请求错误

> 感谢你的反馈！我们将关闭此问题。如果您有任何疑问，请随时重新打开它。如果EvalScope对您有所帮助，欢迎给我们点个STAR以示支持，谢谢！
Repository: modelscope/evalscope
Issue: 竞技场模式下，运行单模型打分脚本报错ChatGenerationModelAdapter.__init__() missing 1 required positional argument: 'model'
Root cause: Interface Contract Mismatch

## 问题描述 / Issue Description

竞技场模式下，运行单模型打分脚本报错

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


## 执行的代码或指令 / Code or Commands Executed
```
git clone https://github.com/modelscope/evalscope.git
cd evalscope/
pip install -e .
python evalscope/run_arena.py --c registry/config/cfg_single.yaml --dry-run
```

## 错误日志 / Error Log

请粘贴完整的错误日志或控制台输出。 / Please paste the full error log or console output. 例如 / For example:

```
2025-03-04 14:36:26,946 - evalscope - WARNING - Skip model chatglm3-6b because it is not enabled.
2025-03-04 14:36:26,946 - evalscope - WARNING - Skip model Baichuan2-7B-Base because it is not enabled.
Traceback (most recent call last):
  File "/Users/patrickmen/code-dev/evalscope/evalscope/run_arena.py", line 202, in <module>
    main()
  File "/Users/patrickmen/code-dev/evalscope/evalscope/run_arena.py", line 198, in main
    arena_workflow.run(dry_run=args.dry_run)
  File "/Users/patrickmen/code-dev/evalscope/evalscope/run_arena.py", line 177, in run
    self.get_answers()
  File "/Users/patrickmen/code-dev/evalscope/evalscope/run_arena.py", line 104, in get_answers
    answers_list = self._predict_answers(
  File "/Users/patrickmen/code-dev/evalscope/evalscope/run_arena.py", line 57, in _predict_answers
    model_adapter = ChatGenerationModelAdapter(
TypeError: ChatGenerationModelAdapter.__init__() missing 1 required positional argument: 'model'
```

## 运行环境 / Runtime Environment

- 操作系统 / Operating System:
  - [ ] Windows
  - [x] macOS
  - [ ] Ubuntu

- Python版本 / Python Version:
  - [ ] 3.11
  - [x] 3.10
  - [ ] 3.9


## 其他信息 / Additional Information

如果有其他相关信息，请在此处提供。 / If there is any other relevant information, please provide it here.


我也遇到这个问题了

竞技场模式使用方法已更新，请参考：https://evalscope.readthedocs.io/zh-cn/latest/user_guides/arena.html

> 感谢你的反馈！我们将关闭此问题。如果您有任何疑问，请随时重新打开它。如果EvalScope对您有所帮助，欢迎给我们点个STAR以示支持，谢谢！
Repository: modelscope/evalscope
Issue: opencompass后端评估数据集的一些问题
Root cause: Validation Gap

## 问题描述 / Issue Description

请简要描述您遇到的问题。 / Please briefly describe the issue you encountered.
评估MATH数据集时，客户端会在path目录下生成math.out,math.json文件，导致统计指标时不能正确的读取文件
## 使用的工具 / Tools Used
- [ ] Native / 原生框架
- [x] Opencompass backend
- [ ] VLMEvalKit backend
- [ ] RAGEval backend
- [ ] Perf / 模型推理压测工具
- [ ] Arena  /竞技场模式


## 执行的代码或指令 / Code or Commands Executed

请提供您执行的主要代码或指令。 / Please provide the main code or commands you executed. 例如 / For example:

```python
# 例如：执行的Python代码 / Python code executed
import some_module

some_module.some_function()
```

```bash
# 例如：在终端中执行的指令 / Terminal command executed
python script.py
```

## 错误日志 / Error Log

请粘贴完整的错误日志或控制台输出。 / Please paste the full error log or console output. 例如 / For example:

```
Traceback (most recent call last):
  File "script.py", line 10, in <module>
    main()
  File "script.py", line 5, in main
    do_something()
  File "some_module.py", line 20, in do_something
    raise ValueError("An error occurred")
ValueError: An error occurred
```

## 运行环境 / Runtime Environment

- 操作系统 / Operating System:
  - [ ] Windows
  - [ ] macOS
  - [ ] Ubuntu

- Python版本 / Python Version:
  - [ ] 3.11
  - [ ] 3.10
  - [ ] 3.9


## 其他信息 / Additional Information

如果有其他相关信息，请在此处提供。 / If there is any other relevant information, please provide it here.


请提供一下评测的命令或代码，我们复现一下
Repository: modelscope/evalscope
Issue: 多模态自定义问答题格式不支持裁判么？
Root cause: Documentation Deficiency

加了配置
```
OPENAI_API_KEY: EMPTY 
OPENAI_API_BASE: http://127.0.0.1:8866/v1/chat/completions # 裁判员模型的 api_base
LOCAL_LLM: qwen2-7b-instruct #裁判员模型的 model_id
```
使用数据集ChartQA_TEST，就可以引发裁判打分，使用自定义的
index	answer	question	image_path
1	Dog	What animal is this?	/root/LMUData/images/custom_mcq/dog.jpg
2	Museum	What building is this?	/root/LMUData/images/custom_mcq/AMNH.jpg
3	Tokyo	Which city's skyline is this?	/root/LMUData/images/custom_mcq/tokyo.jpg
4	Tesla	What is the brand of this car?	/root/LMUData/images/custom_mcq/tesla.jpg
5	Running	What is the person in the picture doing?	/root/LMUData/images/custom_mcq/running.jpg
就去调用CustomDataset，必须自己配置CustomDataset.evaluate，不会去引用专家

自定义问答题需要自己实现judge的逻辑

> 感谢你的反馈！我们将关闭此问题。如果您有任何疑问，请随时重新打开它。如果EvalScope对您有所帮助，欢迎给我们点个STAR以示支持，谢谢！
Repository: modelscope/evalscope
Issue: SuperGPQA 指标问题
Root cause: Configuration Error

目前框架里指定 SuperGPQA 评价的指标是 `AveragePass@1`

https://github.com/modelscope/evalscope/blob/ae1aa8ef7f7c2446222cc84b57dfe5e4c13568a9/evalscope/benchmarks/super_gpqa/super_gpqa_adapter.py#L109-L120


看 SuperGPQA 文中报告的和代码实现似乎都是用的 accuracy，这样得到的结果会不会与榜单上的成绩可比性比较差？

https://github.com/SuperGPQA/SuperGPQA/blob/d4d1813b6a33d7151ccef48de7e4f4c8f2503af0/eval/eval.py#L214

感谢反馈，这个我们修改一下，本质计算逻辑是一样的

感谢回答
Repository: modelscope/evalscope
Issue: 自定义mcq数据集评估问题
Root cause: Environment Incompatibility

对cluewsc数据集进行测评，发现当模型是“DeepSeek-R1-Distill-Qwen-1.5B”服务器上输出的结果全部是B，但是本地跑的结果却是正常的（也就是有a有b的情况），使用的配置都是一样的，请问这有可能是什么原因呢？
`from evalscope.config import TaskConfig
from evalscope.run import run_task

task_cfg = TaskConfig(
    model='deepseekeval/DeepSeek-R1-Distill-Qwen-1.5B',
    datasets=['general_mcq'],  # 数据格式，选择题格式固定为 'general_mcq'
    dataset_args={
        'general_mcq': {
            "local_path": "cluewsc2020_mcq_data",  # 自定义数据集路径
            "subset_list": [
                "cluewsc2020"  # 评测数据集名称，上述subset_name
            ]
        }
    },
)
run_task(task_cfg=task_cfg)
`
数据集的格式也调整正确了：
id,question,A,B,answer
1,句子为：有些这样的“洋人”就站在大众之间，如同鹤立鸡群，毫不掩饰自己的优越感。他们排在非凡的甲菜盆后面，虽然人数寥寥无几，但却特别惹眼。问题：句子中的代词‘他们’是否指代名次‘洋人’？,正确,错误,A
2,句子为：有些这样的“洋人”就站在大众之间，如同鹤立鸡群，毫不掩饰自己的优越感。他们排在非凡的甲菜盆后面，虽然人数寥寥无几，但却特别惹眼。问题：句子中的代词‘他们’是否指代名次‘大众’？,正确,错误,B

本地和服务器分别是怎么启动运行的，有配置什么参数吗

您好，没有特别配置参数，就是按照教程里面设置的，只改了一下模型和数据集的地址
服务器上面输出的config如下：

<img width="414" alt="Image" src="https://github.com/user-attachments/assets/6024a93c-23cc-4663-af86-14dad68d3389" />

一共有多少个问题呢，本地环境和服务器环境一样吗

测试的数据集有304条，里面答案b占比为63.49%（服务器上拿DeepSeek-R1-Distill-Qwen-1.5B测出来答案全是b，得分是对应的0.6349，但是拿llama3.1 8b测出来就是正确的，得分为0.8421）。
刚刚看了下本地的evalscope版本是0.11.0，服务器上面是2.0.0，是版本不同影响了吗？


建议用一样的版本来测试，目前evalscope最新版是 0.12.0

> 感谢你的反馈！我们将关闭此问题。如果您有任何疑问，请随时重新打开它。如果EvalScope对您有所帮助，欢迎给我们点个STAR以示支持，谢谢！
Repository: modelscope/evalscope
Issue: 目前只有一个任务进行评测，后期有没有规划支持多任务并发评测
Root cause: Unimplemented Feature Gap

## 功能描述 / 多任务并发评测

请简要描述您希望添加的功能。 / Please briefly describe the feature you would like to request.
数据集较多的时候，但任务评测时间太长了，希望可以多个任务并发进行评测。opencompass支持2种多任务方式，一种是按数据集文件进行拆分，创建多个任务，一种是按照样本的数量进行分割，创建多个任务。


## 需求背景 / Background

为什么需要这个功能？ / Why is this feature needed?
数据集较多的时候，但任务评测时间太长了，希望缩短评测时间

## 预期行为 / Expected Behavior

这个功能应该如何工作？ / How should this feature work?

## 其他信息 / Additional Information

还有其他相关信息吗？ / Any other relevant information?


目前支持设置`eval_batch_size`来增大并发，其他的优化方案后续也会考虑
Repository: modelscope/evalscope
Issue: 评测结果可视化的gradio程序，离线部署后无法工作(无公网)
Root cause: Environment Incompatibility

## 功能描述 / Feature Description

评测结果可视化的gradio程序，离线部署后无法工作(无公网)

<img width="1349" alt="Image" src="https://github.com/user-attachments/assets/1a6a0b85-5daf-48d1-b76b-4517db3ff319" />

## 需求背景 / Background

离线部署，评测内网模型能力



可以看一下这里是否有解决方法 https://github.com/gradio-app/gradio/issues/7934

想问下你最后有解决吗？


> 想问下你最后有解决吗？

没

@LML0502 请问你启动gradio后是什么报错，还是和题主一样是css丢失，更新gradio版本能否解决问题
Repository: modelscope/evalscope
Issue: 两个小BUG建议修复
Root cause: Validation Gap

**1.编码报错**

文件evalscope\benchmarks\gpqa\gpqa_adapter.py，第30行
self.prompt_prefix += open(os.path.join(os.path.dirname(__file__), 'chain_of_thought.txt')
建议改为
self.prompt_prefix += open(os.path.join(os.path.dirname(__file__), 'chain_of_thought.txt',  encoding='utf-8')
强制使用utf8编码

**2.检查模型ID字符串中是否包含不能创建文件夹名的字符进行替换**

文件evalscope\collections\evaluator.py，第197行
pred_file_path = os.path.join(self.outputs.predictions_dir, self.task_cfg.model_id, f'{self.dataset_name}.jsonl')
建议改为
pred_file_path = os.path.join(self.outputs.predictions_dir, self.task_cfg.model_id.replace(':', '-'), f'{self.dataset_name}.jsonl')

第235行
review_file_path = os.path.join(self.outputs.reviews_dir, self.task_cfg.model_id)
建议改为
review_file_path = os.path.join(self.outputs.reviews_dir, self.task_cfg.model_id.replace(':', '-'))

第173行
report_file_path = os.path.join(self.outputs.reports_dir, self.task_cfg.model_id, f'{self.dataset_name}.json')
建议改为
report_file_path = os.path.join(self.outputs.reports_dir, self.task_cfg.model_id.replace(':', '-'), f'{self.dataset_name}.json')

文件evalscope\evaluator\evaluator.py，第153行
pred_file_path = os.path.join(self.outputs_structure.predictions_dir, self.model_name, pred_file_name)
建议改为
pred_file_path = os.path.join(self.outputs_structure.predictions_dir, self.model_name.replace(':', '-'), pred_file_name)

第248行
review_file_path = os.path.join(self.outputs_structure.reviews_dir, self.model_name, review_file_name)
建议改为
review_file_path = os.path.join(self.outputs_structure.reviews_dir, self.model_name.replace(':', '-'), review_file_name)

第320行
report_path: str = os.path.join(self.outputs_structure.reports_dir, self.model_name, self.dataset_name + '.json')
建议改为
report_path: str = os.path.join(self.outputs_structure.reports_dir, self.model_name.replace(':', '-'), self.dataset_name + '.json')
因为我想测试Ollama部署的模型ID包含冒号":"，而冒号不能用于创建文件夹名字，建议替换

感谢您提的建议，您可以提交一个PR来进行协作，有任何疑问我们将继续讨论

> 感谢你的反馈！该问题已修复，我们将关闭此问题。如果您有任何疑问，请随时重新打开它。如果EvalScope对您有所帮助，欢迎给我们点个STAR以示支持，谢谢！
Repository: modelscope/evalscope
Issue: [bug]: function `run_perf_benchmark`  can't work in second iteration.
Root cause: Resource Mishandling

## 问题描述 / Issue Description

The Python script using `run_perf_benchmark` gets stuck during the second loop. 
在自己脚本中使用函数run_perf_benchmark，在第二次循环的时候，函数run_perf_benchmark会卡住

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

## 执行的代码或指令 / Code or Commands Executed

```python

from evalscope.perf.main import run_perf_benchmark

for x_param in some_iter:
    run_perf_benchmark(x_param)

```

This piece of code will get stuck during the second iteration because of the following code.
[evalscope/perf/benchmark.py#L24](https://github.com/modelscope/evalscope/blob/main/evalscope/perf/benchmark.py#L24)
```python
# perf/benchmark.py : line 14.
# module's global variables
query_send_completed_event = asyncio.Event()
data_process_completed_event = asyncio.Event()
```
these  “asyncio events” would be initialized once during the script.  

The `statistic_benchmark_metric_worker` will complete early without any calls to `put()` and `task_done()` on `benchmark_data_queue`. After that, `benchmark_data_queue` receives some tasks. Consequently, the program gets stuck at `await benchmark_data_queue.join()`.

## Mitigation

**Modify source code**

My temporary approach is to add the event reset at the beginning of  func `benchmark`.
[evalscope/perf/benchmark.py#L21](https://github.com/modelscope/evalscope/blob/main/evalscope/perf/benchmark.py#L214)
```python
# perf/benchmark.py
@exception_handler
async def benchmark(args: Arguments) -> None:
    ...
    # line 214
    query_send_completed_event.clear()
    data_process_completed_event.clear() # U can only add this line to solve the problem
    ... 

``` 

**or Non-invasive way**

my python script
```python
from evalscope.perf.main import run_perf_benchmark
from evalscope.perf import benchmark

for x_param in some_iter:
    benchmark.query_send_completed_event.clear()
    benchmark.data_process_completed_event.clear() # U can only add this line to solve the problem

    run_perf_benchmark(x_param)

```


考虑到此项目的目的和特殊性，这里的做法仅仅适用与我的场景。是否定义此为bug并修复，还需要项目方综合考虑。

感谢你的反馈！我们将修复这个问题
Repository: modelscope/evalscope
Issue: 使用自定义general_qa 报错
Root cause: Validation Gap

2025-03-13 10:17:36,721 - evalscope - INFO - Use default settings: > few_shot_num: 0, > few_shot_split: None, > target_eval_split: test
Predicting(withdraw): 100%|██████████| 5/5 [00:16<00:00,  3.25s/it]
2025-03-13 10:17:52,985 - evalscope - INFO - Dump predictions to ./outputs/20250313_101734/predictions/qwq-32b/general_qa_withdraw.jsonl.
Reviewing(withdraw): 100%|██████████| 5/5 [00:00<00:00,  6.08it/s]
Traceback (most recent call last):
  File "/Users/yang/Desktop/llm_test/main.py", line 39, in <module>
    run_task(task_cfg=task_cfg)
  File "/Users/yang/Desktop/llm_test/evalscope/evalscope/run.py", line 31, in run_task
    return run_single_task(task_cfg, run_time)
  File "/Users/yang/Desktop/llm_test/evalscope/evalscope/run.py", line 44, in run_single_task
    return evaluate_model(task_cfg, outputs)
  File "/Users/yang/Desktop/llm_test/evalscope/evalscope/run.py", line 117, in evaluate_model
    res_dict = evaluator.eval()
  File "/Users/yang/Desktop/llm_test/evalscope/evalscope/evaluator/evaluator.py", line 416, in eval
    metric_res = self.compute_metrics(reviews_list=reviews_list)
  File "/Users/yang/Desktop/llm_test/evalscope/evalscope/evaluator/evaluator.py", line 334, in compute_metrics
    metric_score: List[dict] = self.data_adapter.compute_metric(
  File "/Users/yang/Desktop/llm_test/evalscope/evalscope/benchmarks/general_qa/general_qa_adapter.py", line 135, in compute_metric
    for k, v in scores.items():
AttributeError: 'int' object has no attribute 'items'
1

task_cfg = {
    'model': 'qwq-32b',
    'stream':True,
    'api_url':"https://dashscope.aliyuncs.com/compatible-mode/v1",
    'api_key':"x",
    'datasets': ['general_qa'],
    'dataset_args':{
        "general_qa":{
            "local_path":general_qa",
            "subset_list":[
                "withdraw"
            ],
        },
    },
    'limit': 5,
    "eval_type":EvalType.SERVICE,
    "judge_strategy":JudgeStrategy.LLM,
    "judge_model_args":{
        "model_id":"deepseek-v3",
        "api_url":"https://dashscope.aliyuncs.com/compatible-mode/v1",
        "api_key":"x",
    }
}


目前general_qa还没支持judge llm，我们支持一下

拉取main分支代码试试

> 目前general_qa还没支持judge llm，我们支持一下

我用普通的vllm拉起来的方式也报这个错，麻烦帮忙看一下 修复一下 https://github.com/modelscope/evalscope/issues/425
Repository: modelscope/evalscope
Issue: 评估指标
Root cause: Documentation Deficiency

## 问题描述 / Issue Description

可以指定评估指标吗？比如切换G-pass@k,cons@k


## 使用的工具 / Tools Used
- [x] Native / 原生框架



可以指定评测指标，但还没支持G-pass@k,cons@k这些，后面会加上

参考：[metrics_list](https://evalscope.readthedocs.io/zh-cn/latest/get_started/parameters.html#id3)

@Yunnglin 请问下，AverageAccuracy、AveragePass@1、Pass@k，以上三种，具体每种指标类型的分数，具体是如何计算出来的？这块有文档说明吗？

@melon1507 没有具体的相关文档，但你可以参考代码实现：https://github.com/modelscope/evalscope/blob/main/evalscope/metrics/metric.py
Repository: modelscope/evalscope
Issue: eval batch size 会影响评测结果？
Root cause: Configuration Error

## 问题描述 / Issue Description

请简要描述您遇到的问题。 / Please briefly describe the issue you encountered.

模型一样，都是用的 "Qwen2.5-32B-Instruct", 使用不同的eval batch size 在AIME24上进行评测，发现最终的表现不同：

<img width="683" alt="Image" src="https://github.com/user-attachments/assets/05c00530-fd7d-4d3d-af9a-5a0885fd481c" />

<img width="683" alt="Image" src="https://github.com/user-attachments/assets/b4f8c348-ee5e-4e57-9447-1f0cd835b36f" />

## 使用的工具 / Tools Used
1. 先启动 vllm 服务
2. 进行评测



## 执行的代码或指令 / Code or Commands Executed
以下是启动 vllm 命令
```shell
CUDA_VISIBLE_DEVICES=0,1,2,3
export VLLM_USE_MODELSCOPE=True
export VLLM_WORKER_MULTIPROC_METHOD=spawn

python -m vllm.entrypoints.openai.api_server \
  --model '/ossfs/workspace/Qwen2.5-32B-Instruct' \
  --served-model-name qwen2.5 \
  --trust_remote_code \
  --port 8801 \
  --max-model-len 16384 \
  --dtype bfloat16 \
  -tp 4
```

以下是进行评测的命令：
```shell
evalscope eval \
 --model qwen2.5 \
 --api-url http://127.0.0.1:8801/v1 \
 --api-key EMPTY \
 --eval-type service \
 --datasets aime24 \
 --eval-batch-size 16 \
```

## 错误日志 / Error Log

请粘贴完整的错误日志或控制台输出。 / Please paste the full error log or console output. 例如 / For example:

```
Traceback (most recent call last):
  File "script.py", line 10, in <module>
    main()
  File "script.py", line 5, in main
    do_something()
  File "some_module.py", line 20, in do_something
    raise ValueError("An error occurred")
ValueError: An error occurred
```

## 运行环境 / Runtime Environment

- 操作系统 / Operating System:
  - [ ] Windows
  - [ ] macOS
  - [x] Ubuntu

- Python版本 / Python Version:
  - [ ] 3.11
  - [x] 3.10
  - [ ] 3.9


## 其他信息 / Additional Information

如果有其他相关信息，请在此处提供。 / If there is any other relevant information, please provide it here.


~1. 默认的温度应该不是 0~

2. aime 默认的指标是 pass@1，采样得够多才估计得更准

1. 在评测service时，默认temperature为0：

https://github.com/modelscope/evalscope/blob/4ef3c3782c46560c18e1385127f070766548d9a7/evalscope/models/server_adapter.py#L95-L103

2. 但模型服务的仍可能输出不同的结果，参考 https://github.com/vllm-project/vllm/issues/5404


3. 你也可以设置temperature 和 seed，让模型的输出尽量一致
```python
generation_config={
    'temperature': 0.0,
    'seed': 42,
    'n': 1
}
```

4. 参考 @Nietism 说的，aime 默认的指标是 pass@1，采样得够多才估计得更准，可以设置 n 为较大的值
Repository: modelscope/evalscope
Issue: arc 数据适配器解析的问题
Root cause: Interface Contract Mismatch

前几天的 PR 里 https://github.com/modelscope/evalscope/pull/376 改动了 `evalscope/benchmarks/arc/arc_adapter.py` 中 L137
```py
- return ResponseParser.parse_first_option_with_choices(text=result, options=self.choices)
+ return ResponseParser.parse_first_capital(text=result, options=self.choices)
```

但是 `parse_first_capital` 方法没 `options` 参数，在 review arc 预测结果的时候会报错。
```py
def parse_first_capital(text: str) -> str:
```