zhiminy/EvalEng huggingface dataset:
Repository: modelscope/evalscope
Issue: 并发请求感觉并不对
Root cause: Algorithmic Error

## 问题描述 / Issue Description

在华为国产服务器使用流式压测兼容 openai api 后端（这里使用的是 mindie），无论是使用在python代码还是命令使用，无论参数--rate还是--parallel还是全部使用，启用并发感觉没有完全并发。

代码详见下文。在启用流式，保持总数16的情况下，分别测试rate为8、parallel为8、rate和parallel为8的情况：

rate为8：请求花费106s

parallel为8：请求花费56s

rate和parallel为8：请求花费56s

自己写的并发请求代码（偷懒，没启动流式）：请求花费20s

rate和parallel为8但不启用流式：请求花费56s

## 使用的工具 / Tools Used

- [ ] Native / 原生框架
- [ ] Opencompass backend
- [ ] VLMEvalKit backend 
- [ ] RAGEval backend
- [x] Perf / 模型推理压测工具
- [ ] Arena  /竞技场模式


## 执行的代码或指令 / Code or Commands Executed

```python
#在保持下列command_line_args一样的情况下，分别测试了加入rate为8、parallel为8、rate和parallel为8的情况。
command_line_args = [
            "--url", "http://127.0.0.1:1025/v1/chat/completions",
            "-n", "16",
            "--model", "qwen",
            "--log-every-n-query", "10",
            "--read-timeout", "120",
            "--max-prompt-length", "8192",
            "--api", "openai",
            "--query-template",
            '{"model": "%m", "messages": [{"role": "user","content": "%p"}], "stream": true,"skip_special_tokens": false,"stop": ["
"]}',
            "--dataset", "openqa",
            "--tokenizer-path", "/mnt/data/model/Qwen/Qwen2-7B-Instruct/Qwen/Qwen2-7B-Instruct",
            "--max-tokens", "8192",
            "--stream",
            "--debug"
        ]
        task_cfg = command_line_args_to_dict(command_line_args)
        run_perf_benchmark(task_cfg)
```

## 运行环境 / Runtime Environment

- 操作系统 / Operating System:
  - [ ] Windows
  - [ ] macOS
  - [ ] Ubuntu
  - [x] 华为闭源欧拉

- Python版本 / Python Version:
  - [ ] 3.11
  - [x] 3.10
  - [ ] 3.9


## 其他信息 / Additional Information

版本为1128晚上从modelscope clone并pip install -e .的最新版

四个情况下的请求日志如下
[python_only_rate&para8_no_stream.log](https://github.com/user-attachments/files/17940422/python_only_rate.para8_no_stream.log)
[python_only_para8.log](https://github.com/user-attachments/files/17940423/python_only_para8.log)
[python_only_rate&para8.log](https://github.com/user-attachments/files/17940424/python_only_rate.para8.log)
[python_only_rate8.log](https://github.com/user-attachments/files/17940425/python_only_rate8.log)



请问你自己写的并发请求是怎么实现的呢

> 请问你自己写的并发请求是怎么实现的呢

[参考这个链接](https://blog.csdn.net/arkohut/article/details/139076652)，在这个代码基础上改成读取openqa数据集，并发挨个取openqa数据集。

我自己测试的时候感觉也是有点小问题，一是并非是完全并发，二是TTFT那里计算感觉不太对

> 我自己测试的时候感觉也是有点小问题，一是并非是完全并发，二是TTFT那里计算感觉不太对

并发请求这里我再看一下；TTFT这里只有stream模式才生效

对这块做了修复，麻烦拉取最新代码再尝试一下

补充说明：在本工具的实现中请求生成与发送是分开的： --rate参数用于控制每秒生成的请求数量，请求将放入请求队列。 --parallel参数用于控制发送请求的worker数量，worker将从请求队列获取请求并发送，且在上一请求回复后才发送下一请求。 两个参数不建议同时设置，也即在本工具中，--rate参数仅对--parallel为1时有效。

辛苦，晚些时候会测试
Repository: modelscope/evalscope
Issue: perf测试mindie推理框架时，单引号和True导致报错。
Root cause: Validation Gap

## 问题描述 / Issue Description

perf测试mindie推理框架时，单引号和True导致报错。
能否将openai格式请求的json格式改成双引号，True改成true
llmuses == 0.4.0

## 使用的工具 / Tools Used
- [ ] Native / 原生框架
- [ ] Opencompass backend
- [ ] VLMEvalKit backend 
- [ ] RAGEval backend
- [1] Perf / 模型推理压测工具
- [ ] Arena  /竞技场模式


## 错误日志 / Error Log

2024-11-27 17:32:35,825 - perf - http_client.py - send_requests_worker - 561 - ERROR - Request: {'model': 'qwen72b', 'messages': [{'role': 'user', 'content': '我有一个计算机相关的问题，请用中文回答，什么是 语音识别'}], 'stream': True, 'stream_options': {'include_usage': True}} failed, state_code: 422, data: {"error": "`inputs` must be necessary and data type must be string and length in(0, 524288]", "error_type": "validation"}
2024-11-27 17:32:35,825 - perf - http_client.py - send_requests_worker - 561 - ERROR - Request: {'model': 'qwen72b', 'messages': [{'role': 'user', 'content': '我有一个计算机相关的问题，请用中文回答，什么是 IRQ'}], 'stream': True, 'stream_options': {'include_usage': True}} failed, state_code: 422, data: {"error": "`inputs` must be necessary and data type must be string and length in(0, 524288]", "error_type": "validation"}

期望的请求体：
{"model": "qwen72b", "messages": [{"role": "user","content": "我有一个计算机相关的问题，请用中文回答，什么是 IRQ"}], "stream": true, "stream_options": {"include_usage": true}}


请拉取最新的main分支代码，安装后尝试重新运行

> 请拉取最新的main分支代码，安装后尝试重新运行

同样的问题，请求体是单引号和True

麻烦贴下你的请求命令，我们复现下
Repository: modelscope/evalscope
Issue: evalscope 不存在 0.7.0 版本
Root cause: Environment Incompatibility

pip install evalscope 不存在 0.7.0 版本

> pip install evalscope 不存在 0.7.0 版本

已经发布到pypi了，参考： https://pypi.org/project/evalscope/#history

如果不是原生的pypi源，比如清华源、阿里云的源等，可能有一定延迟。

好的
Repository: modelscope/evalscope
Issue:  vllm==0.6.4.post1 evalscope 存在不兼容的情况   perf 报错  modelscope ：  ImportError: cannot import name '_datasets_server' from 'datasets.utils'
Root cause: External Dependency Breakage

分析发现是 vllm==0.6.4.post1   evalscope   存在不兼容的情况
原理：  vllm==0.6.4.post1 需要 setuptools==75.2.0, 但是 evalscope依赖的modelscope 需要 setuptools==69.X

```
2024-11-28 16:21:38,243 - modelscope - INFO - PyTorch version 2.5.1 Found.
2024-11-28 16:21:38,245 - modelscope - INFO - Loading ast index from /home/dev/.cache/modelscope/ast_indexer
2024-11-28 16:21:38,285 - modelscope - INFO - Loading done! Current index file version is 1.13.3, with md5 1cd58d669c1324f88698a03721d23826 and a total number of 972 components indexed
2024-11-28 16:21:40,405 - datasets - INFO - PyTorch version 2.5.1 available.
Traceback (most recent call last):
  File "/home/dev/liuyu/project/gpt_server/tests/test_perf.py", line 2, in <module>
    from evalscope.perf.main import run_perf_benchmark
  File "/home/dev/liuyu/project/gpt_server/.venv/lib/python3.10/site-packages/evalscope/perf/main.py", line 6, in <module>
    from evalscope.perf.benchmark import benchmark
  File "/home/dev/liuyu/project/gpt_server/.venv/lib/python3.10/site-packages/evalscope/perf/benchmark.py", line 17, in <module>
    from evalscope.perf.plugin.registry import ApiRegistry, DatasetRegistry
  File "/home/dev/liuyu/project/gpt_server/.venv/lib/python3.10/site-packages/evalscope/perf/plugin/__init__.py", line 2, in <module>
    from evalscope.perf.plugin.datasets import *
  File "/home/dev/liuyu/project/gpt_server/.venv/lib/python3.10/site-packages/evalscope/perf/plugin/datasets/__init__.py", line 2, in <module>
    from evalscope.perf.plugin.datasets.flickr8k import FlickrDatasetPlugin
  File "/home/dev/liuyu/project/gpt_server/.venv/lib/python3.10/site-packages/evalscope/perf/plugin/datasets/flickr8k.py", line 5, in <module>
    from modelscope.msdatasets import MsDataset
  File "/home/dev/liuyu/project/gpt_server/.venv/lib/python3.10/site-packages/modelscope/msdatasets/__init__.py", line 2, in <module>
    from .ms_dataset import MsDataset
  File "/home/dev/liuyu/project/gpt_server/.venv/lib/python3.10/site-packages/modelscope/msdatasets/ms_dataset.py", line 24, in <module>
    from modelscope.msdatasets.utils.hf_datasets_util import \
  File "/home/dev/liuyu/project/gpt_server/.venv/lib/python3.10/site-packages/modelscope/msdatasets/utils/hf_datasets_util.py", line 42, in <module>
    from datasets.utils import _datasets_server, file_utils
ImportError: cannot import name '_datasets_server' from 'datasets.utils' (/home/dev/liuyu/project/gpt_server/.venv/lib/python3.10/site-packages/datasets/utils/__init__.py)
```

![image](https://github.com/user-attachments/assets/3ed9185f-fbab-49c5-8dc3-6fa99fcfa8ec)


modelscope版本是？  建议更新到最新版本： pip install modelscope -U  同时确保 datasets==3.0.1

原因是datasets这个依赖，2.x和3.x版本有breaking change，modelscope中做了限制。
Repository: modelscope/evalscope
Issue: 评估越来越慢，gpu利用率低
Root cause: Resource Mishandling

## 评估越来越慢，gpu利用率低

在我使用evalscope评估后，评估耗时异常，发现推理每条的耗时从不到3秒下降到80+秒
![image](https://github.com/user-attachments/assets/80b41767-fd7e-4e82-a751-2a519d822b36)

## 使用的工具 / Tools Used
- Native / 原生框架


## 执行的代码或指令 / Code or Commands Executed
```python
import os
import pprint
from evalscope.run import run_task
from evalscope.config import TaskConfig, registry_tasks

eval_model_path=""
outputs=""

TaskConfig.registry(
    name=task_name,  # 任务名称
    data_pattern="general_qa",  # 数据格式
    dataset_dir=dataset_dir,  # 数据集路径
)

# 2. 配置任务，通过任务名称获取配置
task_cfg = registry_tasks[task_name]

# Prepare the config
task_cfg.update(
    {
        "generation_config": {
            "do_sample": False,
            "repetition_penalty": 1.0,
            "max_new_tokens": 2048,
        },
        "eval_type": "checkpoint",
        "model": eval_model_path,
        "template_type": "qwen",
        "outputs": outputs,
        "mem_cache": False,
        "use_cache": False,
        "eval_backend": "Native",
        "debug": False,
    }
)
print("task_cfg:")
pprint.pprint(task_cfg)

# Run task
run_task(task_cfg=task_cfg)
```

请提供您执行的主要代码或指令。 / Please provide the main code or commands you executed. 例如 / For example:


## 错误日志 / Error Log

请粘贴完整的错误日志或控制台输出。 / Please paste the full error log or console output. 例如 / For example:
日志正常，变慢
![image](https://github.com/user-attachments/assets/5e5d7846-d2c0-489d-bc10-6370de7eabdb)
![image](https://github.com/user-attachments/assets/bd676853-287d-41ee-8f02-97e186d93363)


## 运行环境 / Runtime Environment

- 操作系统 / Operating System:
  - [x] Ubuntu

- Python版本 / Python Version:
  - [x] 3.11.9


## 其他信息 / Additional Information

如果有其他相关信息，请在此处提供。 / If there is any other relevant information, please provide it here.


我们看一下这个问题
Repository: modelscope/evalscope
Issue: 当模型推理结果为空时会报错
Root cause: Validation Gap

![image](https://github.com/user-attachments/assets/6aef5759-5318-4d48-a8fc-2ee804be9967)

evalscope/metrics/rouge_metric.py:56
```python
score = zh_scorer.get_scores(p, r)[0]
```
可以增加忽略输出为空的
```python
score = zh_scorer.get_scores(p, r, ignore_empty=True)[0]
```
![image](https://github.com/user-attachments/assets/e101dd2a-96de-49cb-8dd7-650b3515db02)
但外部调用的调用操作没看懂，为什么这里用了for循环，输入的应该是1个样本，如果是一个样本，调用get_scores,只有一个还为空，则内部又报错~



模型推理结果什么情况下会为空呢

模型可能透出的是一个special token，非中文。这里会过滤掉，所以调用计算分逻辑报错。

目前最粗暴的解决办法就是调用模型返回特殊时，给赋一个非常见的中文字符。

请问执行的代码是什么，我们复现一下

这个是模型的输出，复现的话可以把predict复制为空字符串或者空格符号就可以了

EvalScope v0.9.0 已发布，可以使用新版本，该问题已修复

> 由于长时间未收到活动，我们将关闭此问题。如果您有任何疑问，请随时重新打开它。如果EvalScope对您有所帮助，欢迎给我们点个STAR以示支持，谢谢！
Repository: modelscope/evalscope
Issue: 使用opencompass评测后端结果和官网结构不一样
Root cause: Algorithmic Error

## 问题描述 / Issue Description

请简要描述您遇到的问题。 / Please briefly describe the issue you encountered.

## 使用的工具 / Tools Used
- [ ] Native / 原生框架
- [ ] Opencompass backend
##使用脚本
官方示例脚本
<img width="491" alt="1733364264424" src="https://github.com/user-attachments/assets/06974321-ff4b-444f-8c22-e0697fb2f73e">

## 运行环境 / Runtime Environment

- 操作系统 / Operating System:
  - [ ] Ubuntu

- Python版本 / Python Version:
  - [ ] 3.10

实际评测结果
<img width="523" alt="1733364034570" src="https://github.com/user-attachments/assets/36f5fcbf-3bc2-4a5b-9137-d5635b19cc74">
官网结果
<img width="575" alt="1733364083710" src="https://github.com/user-attachments/assets/bea45cf0-9488-41da-9d2e-5162940c349d">

没有对数据集结果进行分类和汇总取average

OC更新以后mmlu等包含子集的summary没有生效，我们处理一下。

遇到相同问题
Repository: modelscope/evalscope
Issue: 问答评估
Root cause: Validation Gap

使用自己的问答数据集进行评估，为啥数据条目超过121条就会报错？
错误信息:
Traceback (most recent call last):
  File "/home/hy/lizhen/evalscope-main/test.py", line 25, in <module>
    run_task(task_cfg=task_cfg)
  File "/home/hy/lizhen/evalscope-main/evalscope/run.py", line 367, in run_task
    res_dict: dict = evaluator.eval(infer_cfg=infer_cfg, debug=debug)
  File "/home/hy/lizhen/evalscope-main/evalscope/evaluator/evaluator.py", line 485, in eval
    reviews_list: list = self.get_reviews(subset_name=subset_name,
  File "/home/hy/lizhen/evalscope-main/evalscope/evaluator/evaluator.py", line 350, in get_reviews
    review_d = self._get_review(answer_d=answer_d, review_id=review_id, reviewer_spec=reviewer_spec)
  File "/home/hy/lizhen/evalscope-main/evalscope/evaluator/evaluator.py", line 294, in _get_review
    review_result = self.data_adapter.match(gold_content, answer_content)
  File "/home/hy/lizhen/evalscope-main/evalscope/benchmarks/general_qa/general_qa_adapter.py", line 115, in match
    rouge_dict = compute_rouge_score_one_sample_zh([pred], [gold])
  File "/home/hy/lizhen/evalscope-main/evalscope/metrics/rouge_metric.py", line 67, in compute_rouge_score_one_sample_zh
    r = ' '.join(jieba.cut(r)) if is_contains_chinese(r) else r
  File "/home/hy/lizhen/evalscope-main/evalscope/metrics/rouge_metric.py", line 34, in is_contains_chinese
    for _char in strs:
TypeError: 'NoneType' object is not iterable

看起来问题跟 #228 类似，是否模型输出了空的结果

EvalScope v0.9.0 已发布，可以使用新版本，该问题已修复

> 由于长时间未收到活动，我们将关闭此问题。如果您有任何疑问，请随时重新打开它。如果EvalScope对您有所帮助，欢迎给我们点个STAR以示支持，谢谢！
Repository: modelscope/evalscope
Issue: 请问压测工具能不能添加tpot的p99，p95这些指标的监控
Root cause: Unimplemented Feature Gap

## 功能描述 / Feature Description

请简要描述您希望添加的功能。 / Please briefly describe the feature you would like to request.

## 需求背景 / Background

为什么需要这个功能？ / Why is this feature needed?

## 预期行为 / Expected Behavior

这个功能应该如何工作？ / How should this feature work?

## 其他信息 / Additional Information

还有其他相关信息吗？ / Any other relevant information?


可以具体解释下tpot是什么指标吗，是如何计算的，方便我们添加这个功能

> 可以具体解释下tpot是什么指标吗，是如何计算的，方便我们添加这个功能

time per output token。另外p99/p95等选项，对于ttft（time to first token）等指标可以都一并加一下。

> 可以具体解释下tpot是什么指标吗，是如何计算的，方便我们添加这个功能

这几个里面解释了一下tpot（time per output token）的含义和计算方式
https://arxiv.org/html/2407.07000v1
https://learn.microsoft.com/en-us/azure/databricks/machine-learning/foundation-models/prov-throughput-run-benchmark

我们会尽快加上这些指标

这些指标已添加，可以拉取main分支代码来使用

十分感谢
Repository: modelscope/evalscope
Issue: 使用压测工具报错 
GitHub labels: perf

## 问题描述 / Issue Description

请简要描述您遇到的问题。 / Please briefly describe the issue you encountered.

## 使用的工具 / Tools Used
evalscope                     0.7.2
- [ ] Perf / 模型推理压测工具


## 执行的代码或指令 / Code or Commands Executed

请提供您执行的主要代码或指令。 / Please provide the main code or commands you executed. 例如 / For example:

```python
from evalscope.perf.main import run_perf_benchmark

task_cfg = {"url": "http://10.255.4.2:8000/v1/chat/completions",
            "parallel": 1,
            "model": "/root/.cache/modelscope",
            "number": 15,
            "api": "openai",
            "dataset": "openqa",
            "stream": True,
            "debug": True}
run_perf_benchmark(task_cfg)
```



## 错误日志 / Error Log

请粘贴完整的错误日志或控制台输出。 / Please paste the full error log or console output. 例如 / For example:

```
2024-12-11 18:11:16,049 - evalscope - handler.py - async_wrapper - 19 - ERROR - Exception in async function 'statistic_benchmark_metric_worker': [Errno 30] Read-only file system: '/root'
Traceback (most recent call last):
  File "/opt/homebrew/Caskroom/miniconda/base/envs/demo2/lib/python3.10/site-packages/evalscope/perf/utils/handler.py", line 17, in async_wrapper
    return await func(*args, **kwargs)
  File "/opt/homebrew/Caskroom/miniconda/base/envs/demo2/lib/python3.10/site-packages/evalscope/perf/benchmark.py", line 141, in statistic_benchmark_metric_worker
    result_db_path = get_result_db_path(args.name, args.model)
  File "/opt/homebrew/Caskroom/miniconda/base/envs/demo2/lib/python3.10/site-packages/evalscope/perf/utils/db_util.py", line 97, in get_result_db_path
    os.makedirs(os.path.dirname(result_db_path), exist_ok=True)
  File "/opt/homebrew/Caskroom/miniconda/base/envs/demo2/lib/python3.10/os.py", line 215, in makedirs
    makedirs(head, exist_ok=exist_ok)
  File "/opt/homebrew/Caskroom/miniconda/base/envs/demo2/lib/python3.10/os.py", line 215, in makedirs
    makedirs(head, exist_ok=exist_ok)
  File "/opt/homebrew/Caskroom/miniconda/base/envs/demo2/lib/python3.10/os.py", line 215, in makedirs
    makedirs(head, exist_ok=exist_ok)
  File "/opt/homebrew/Caskroom/miniconda/base/envs/demo2/lib/python3.10/os.py", line 225, in makedirs
    mkdir(name, mode)
OSError: [Errno 30] Read-only file system: '/root'
```

## 运行环境 / Runtime Environment

- 操作系统 / Operating System:
  - [ ] macOS

- Python版本 / Python Version:
  - [ ] 3.12



## 其他信息 / Additional Information

如果有其他相关信息，请在此处提供。 / If there is any other relevant information, please provide it here.


`model`参数看起来输入的不太对，需要是请求的模型名称，比如`gpt-4o`

> "model": "/root/.cache/modelscope", 

> 由于长时间未收到活动，我们将关闭此问题。如果您有任何疑问，请随时重新打开它。如果EvalScope对您有所帮助，欢迎给我们点个STAR以示支持，谢谢！
Repository: modelscope/evalscope
Issue: model_id为local ckpt路径时，infer template映射和解析出现问题
Root cause: Validation Gap

目前是根据model_id判断模型类型的，如果修改模型文件夹名，或使用本地ckpt路径，就无法从路径里提取出模型名比如「chatglm2-6b」，导致template get失败，默认使用 default prompt template，可能导致generate出现问题。

fixed
Repository: modelscope/evalscope
Issue:  cannot import name 'EvalBackend' from 'evalscope.utils' 
Root cause: External Dependency Breakage

## 问题描述 / Issue Description

请简要描述您遇到的问题。 / Please briefly describe the issue you encountered.
 cannot import name 'EvalBackend' from 'evalscope.utils' 
## 使用的工具 / Tools Used
- [x] Native / 原生框架
- [ ] Opencompass backend
- [ ] VLMEvalKit backend
- [ ] RAGEval backend
- [ ] Perf / 模型推理压测工具
- [ ] Arena  /竞技场模式


## 执行的代码或指令 / Code or Commands Executed
CUDA_VISIBLE_DEVCIES=0 swift eval \
  --model_type llama3-8B-Instruct \
  --model_id_or_path/root/.cache/modelscope/hub/LLM-Research/Meta-Llama-3-8B-Instruct/ \
  --eval_dataset general_qa \
  --infer_backend vllm \ # 可选项 [pt, vllm, lmdeploy]
  --eval_backend Native

## 错误日志 / Error Log
File "/root/miniconda3/lib/python3.10/site-packages/swift/cli/eval.py", line 2, in <module>
    from swift.llm import eval_main
  File "/root/miniconda3/lib/python3.10/site-packages/swift/utils/import_utils.py", line 54, in __getattr__
    module = self._get_module(self._class_to_module[name])
  File "/root/miniconda3/lib/python3.10/site-packages/swift/utils/import_utils.py", line 63, in _get_module
    return importlib.import_module('.' + module_name, self.__name__)
  File "/root/miniconda3/lib/python3.10/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "/root/miniconda3/lib/python3.10/site-packages/swift/llm/eval.py", line 18, in <module>
    from evalscope.utils import EvalBackend
ImportError: cannot import name 'EvalBackend' from 'evalscope.utils' (/root/miniconda3/lib/python3.10/site-packages/evalscope/utils/__init__.py)


## 运行环境 / Runtime Environment

- 操作系统 / Operating System:
  - [ ] Windows
  - [ ] macOS
  - [* ] Ubuntu

- Python版本 / Python Version:
  - [ ] 3.11
  - [*] 3.10
  - [ ] 3.9


## 其他信息 / Additional Information
evalscope-0.8.0
ms-opencompass                    0.1.5
ms-swift                          2.6.1
ms-vlmeval                        0.0.12
modelscope                        1.21.0

如果有其他相关信息，请在此处提供。 / If there is any other relevant information, please provide it here.


请暂时安装evalscope 0.7.2版本尝试运行，后续我们处理一下，兼容swift代码

evalscope v0.8.1 已发布，修复了该问题，使用`pip install evalscope -U`来使用

> 由于长时间未收到活动，我们将关闭此问题。如果您有任何疑问，请随时重新打开它。如果EvalScope对您有所帮助，欢迎给我们点个STAR以示支持，谢谢！
Repository: modelscope/evalscope
Issue: 请教一下自定义模型和数据集评测如何实现
Root cause: Documentation Deficiency

现有使用modelscope/Swift经过LoRA微调后merge得到的模型，现有单项选择题的csv数据集如“题目，A，B，C，D，正确答案”和对应的5shot格式问答对“instruction，input，output”，我想请教一下我应该怎么把他加入到llmuses/run.py的评测中呢？感谢大佬回复！

另外，对于单卡能放下的模型，能否使其每张卡跑一个任务并行处理？现在是MP并行有点浪费

> 现有使用modelscope/Swift经过LoRA微调后merge得到的模型，现有单项选择题的csv数据集如“题目，A，B，C，D，正确答案”和对应的5shot格式问答对“instruction，input，output”，我想请教一下我应该怎么把他加入到llmuses/run.py的评测中呢？感谢大佬回复！

Hi， 4月初的swift 2.0版本将会发布，届时用户可以使用swift 命令行（调用eval-scope）无缝发起评测任务；同时支持自定义数据集的评测。

> 另外，对于单卡能放下的模型，能否使其每张卡跑一个任务并行处理？现在是MP并行有点浪费

当前版本暂不支持，4月初的版本，会加上这样的功能。

> > 现有使用modelscope/Swift经过LoRA微调后merge得到的模型，现有单项选择题的csv数据集如“题目，A，B，C，D，正确答案”和对应的5shot格式问答对“instruction，input，output”，我想请教一下我应该怎么把他加入到llmuses/run.py的评测中呢？感谢大佬回复！
> 
> Hi， 4月初的swift 2.0版本将会发布，届时用户可以使用swift 命令行（调用eval-scope）无缝发起评测任务；同时支持自定义数据集的评测。

感谢回复，期待尽快上线~
Repository: modelscope/evalscope
Issue: 0.8.1版本下遇见的humaneval数据集测评问题
Root cause: Validation Gap

## 问题描述 / Issue Description
用代码：

进行原生evalscope测评时，遇见了报错，如下：

<img width="668" alt="e7ec7dfc5abde23f4c909885c5a2f7b" src="https://github.com/user-attachments/assets/92de7a64-d8f9-4506-960b-4cc6083cff09" />

发现是我没有按照步骤下载包，下载好之后再次运行，有报错如下：

<img width="503" alt="1734485427434" src="https://github.com/user-attachments/assets/165843bf-9167-4be2-b46a-e525c3df24cb" />

最终该问题已经解决，发现是execution.py代码的第59行没有正确缩进

<img width="259" alt="1734485786995" src="https://github.com/user-attachments/assets/c3e46441-1458-4762-b3d1-ec6d1dc2dc97" />



## 使用的工具 / Tools Used
- [√] Native / 原生框架
- [ ] Opencompass backend
- [ ] VLMEvalKit backend
- [ ] RAGEval backend
- [ ] Perf / 模型推理压测工具
- [ ] Arena  /竞技场模式


## 执行的代码或指令 / Code or Commands Executed

```bash
evalscope eval --model /data/Qwen/Qwen2.5-32B-Instruct-AWQ --datasets humaneval --limit 5
```

## 错误日志 / Error Log

```
Traceback (most recent call last):
  File "/root/anaconda3/envs/telechat2/bin/evalscope", line 8, in <module>
    sys.exit(run_cmd())
  File "/root/anaconda3/envs/telechat2/lib/python3.9/site-packages/evalscope/cli/cli.py", line 23, in run_cmd
    cmd.execute()
  File "/root/anaconda3/envs/telechat2/lib/python3.9/site-packages/evalscope/cli/start_eval.py", line 31, in execute
    run_task(self.args)
  File "/root/anaconda3/envs/telechat2/lib/python3.9/site-packages/evalscope/run.py", line 36, in run_task
    return run_single_task(task_cfg, run_time)
  File "/root/anaconda3/envs/telechat2/lib/python3.9/site-packages/evalscope/run.py", line 51, in run_single_task
    return evaluate_model(task_cfg, outputs)
  File "/root/anaconda3/envs/telechat2/lib/python3.9/site-packages/evalscope/run.py", line 107, in evaluate_model
    evaluator = create_evaluator(task_cfg, dataset_name, outputs)
  File "/root/anaconda3/envs/telechat2/lib/python3.9/site-packages/evalscope/run.py", line 125, in create_evaluator
    data_adapter = imported_modules['DataAdapterClass'](
  File "/root/anaconda3/envs/telechat2/lib/python3.9/site-packages/evalscope/benchmarks/humaneval/humaneval_adapter.py", line 38, in __init__
    from human_eval.evaluation import check_correctness
  File "/data/Telechat/EVAL/eval/humaneval/human-eval/human_eval/evaluation.py", line 10, in <module>
    from human_eval.execution import check_correctness
  File "/data/Telechat/EVAL/eval/humaneval/human-eval/human_eval/execution.py", line 59
    result.append("passed")
IndentationError: expected an indented block
```

## 运行环境 / Runtime Environment

- 操作系统 / Operating System:
  - [ ] Windows
  - [ ] macOS
  - [√] Ubuntu

- Python版本 / Python Version:
  - [ ] 3.11
  - [ ] 3.10
  - [√] 3.9


## 其他信息 / Additional Information
evalscope版本0.8.1

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