AI测试 evalScope 安装与快速上手

唱跳rap打篮球 · 2026年01月06日 · 1094 次阅读

大家好!我是新人唱跳 rap 打篮球,是一个立志 2026 年有心情就能水一篇文章的人


好久没有写文章了,主要上班忙,最近金铲铲的赛季又很顶,就基本不怎么学习了

最近工作中遇到需要做效果评测和性能评测,主要是性能评测,发现自己写的脚本不准确

刚好工作接触魔搭,就准备顺便学习一下 evalscope 框架,后续准备用这个做大模型的性能评测

说一下魔搭:

ModelScope 旨在打造下一代开源的模型即服务共享平台,为泛 AI 开发者提供灵活、易用、低成本的一站式模型服务产品,让模型应用更简单!

对比 huggingface,evalscope 在国内更方便使用

其他类似的网站暂时不知道,如果大家有类似好用的网站可以风险一下

下面就说一下安装后基础使用,后续在补充做性能测试分享


evalscope

https://evalscope.readthedocs.io/zh-cn/latest/get_started/introduction.html

简介

EvalScope 是魔搭社区倾力打造的模型评测与性能基准测试框架,为您的模型评估需求提供一站式解决方案。

安装

# 建议使用 python 3.10
conda create -n evalscope python=3.10

# 激活conda环境
conda activate evalscope

# 安装所有依赖
pip install 'evalscope[all]'

评测

方式 1:使用命令行

evalscope eval \
 --model Qwen/Qwen2.5-0.5B-Instruct \
 --datasets gsm8k arc \
 --limit 5

方式 2:使用 Python 代码

TaskConfig

code01.py

from evalscope.run import run_task
from evalscope.config import TaskConfig

task_cfg = TaskConfig(
    model="Qwen/Qwen2.5-0.5B-Instruct",
    datasets=['gsm8k', 'arc'],
    limit=5
)
run_task(task_cfg=task_cfg)

Python 字典

code02.py

from evalscope.run import run_task

task_cfg = {
    'model': 'Qwen/Qwen2.5-0.5B-Instruct',
    'datasets': ['gsm8k', 'arc'],
    'limit': 5
}

run_task(task_cfg=task_cfg)

使用 YAML 文件

code03.py

from evalscope.run import run_task

run_task(task_cfg="config.yaml")

进阶用法

自定义评测参数

示例 1.调整模型加载和推理生成参数

您可以通过传入 JSON 格式的字符串来精细化控制模型加载、推理生成和数据集配置。

evalscope eval \
 --model Qwen/Qwen3-0.6B \
 --model-args '{"revision": "master", "precision": "torch.float16", "device_map": "auto"}' \
 --generation-config '{"do_sample":true,"temperature":0.6,"max_tokens":512}' \
 --dataset-args '{"gsm8k": {"few_shot_num": 0, "few_shot_random": false}}' \
 --datasets gsm8k \
 --limit 10

常用参数说明:

--model-args: 模型加载参数,例如 revision (版本), precision (精度), device_map (设备映射)。

--generation-config: 推理生成参数,例如 do_sample (采样), temperature (温度), max_tokens (最大长度)。

--dataset-args: 数据集专属参数,以数据集名称为键。例如 few_shot_num (少样本数量)。

示例 2:调整结果聚合方式

对于需要多次生成的任务(如数学题),可以通过 --repeats 参数指定重复生成次数 k,并使用 dataset-args 调整结果聚合方式,例如 mean_and_vote_at_k、mean_and_pass_at_k、mean_and_passk。

evalscope eval \
 --model Qwen/Qwen2.5-0.5B-Instruct \
 --datasets gsm8k \
 --limit 10 \
 --dataset-args '{"gsm8k": {"aggregation": "mean_and_vote_at_k"}}' \
 --repeats 5

评测在线模型 API

EvalScope 支持评测兼容 OpenAI API 格式的模型服务。只需指定服务地址、API Key,并将 eval-type 设置为 openai_api。

1.启动模型服务

以 vLLM 为例,启动一个模型服务:

# 请先安装 vLLM: pip install vllm
export VLLM_USE_MODELSCOPE=True
python -m vllm.entrypoints.openai.api_server \
  --model Qwen/Qwen2.5-0.5B-Instruct \
  --served-model-name qwen2.5 \
  --trust-remote-code \
  --port 8801

2.运行评测

使用以下命令评测该 API 服务

evalscope eval \
 --model qwen2.5 \
 --api-url http://127.0.0.1:8801/v1 \
 --api-key EMPTY \
 --eval-type openai_api \
 --datasets gsm8k \
 --limit 10

使用裁判模型进行评估

import os
from evalscope import TaskConfig, run_task
from evalscope.constants import EvalType, JudgeStrategy

task_cfg = TaskConfig(
    model='qwen2.5-7b-instruct',
    api_url='https://dashscope.aliyuncs.com/compatible-mode/v1',
    api_key=os.getenv('DASHSCOPE_API_KEY'),
    eval_type=EvalType.SERVICE,
    datasets=['chinese_simpleqa'],
    limit=5,
    judge_strategy=JudgeStrategy.AUTO,
    judge_model_args={
        'model_id': 'qwen2.5-72b-instruct',
        'api_url': 'https://dashscope.aliyuncs.com/compatible-mode/v1',
        'api_key': os.getenv('DASHSCOPE_API_KEY'),
    }
)

run_task(task_cfg=task_cfg)

离线评测

在无网络环境下,您可以使用本地缓存的模型和数据集进行评测。

1.准备本地数据集

数据集默认托管在 ModelScope 上,加载需要联网。

如果是无网络环境,可以使用本地数据集和模型。

1.首先查看想要使用的数据集在 modelscope 上的 ID:在支持的数据集列表中查找到需要使用的数据集的数据集 ID,例如 mmlu_pro 的 ID 为 modelscope/MMLU-Pro。

2.使用 modelscope 命令下载数据集:点击 “数据集文件” tab -> 点击 “下载数据集” -> 复制命令行

# 下载数据集
modelscope download --dataset modelscope/MMLU-Pro --local_dir ./data/mmlu_pro

3.使用目录./data/mmlu_pro 作为 local_path 参数的值传入即可。

2.准备本地模型

模型文件托管在 ModelScope Hub 端,需要联网加载,当需要在离线环境创建评测任务时,可提前将模型下载到本地:

例如使用 modelscope 命令下载 Qwen2.5-0.5B-Instruct 模型到本地:

# 这个已经404了
modelscope download --model modelscope/Qwen2.5-0.5B-Instruct --local_dir ./model/qwen2.5

# 使用这个
modelscope download --model Qwen/Qwen2.5-0.5B-Instruct --local_dir ./model/qwen2.5

3.运行离线评测

evalscope eval \
 --model ./model/qwen2.5 \
 --datasets mmlu_pro \
 --dataset-args '{"mmlu_pro": {"local_path": "./data/mmlu_pro"}}' \
 --limit 10

 # windows cmd -> powershell
powershell

evalscope eval --model ./model/qwen2.5 --datasets mmlu_pro --dataset-args '{\"mmlu_pro\": {\"local_path\": \"./data/mmlu_pro\"}}' --limit 2

评测下来还是要挺久的,大家可以安装官网文往下,了解一下 evalscope 进行模型评测的基础流程


我是新人唱跳 rap 打篮球,是一个立志 2026 年有心情就能水一篇文章的人,希望我的文章可以给你带来好心情!

暂无回复。
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册