欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 教育 > 锐评 > 探索大语言模型(LLM):使用EvalScope进行模型评估(API方式)

探索大语言模型(LLM):使用EvalScope进行模型评估(API方式)

2025/11/11 19:04:56 来源:https://blog.csdn.net/DuLNode/article/details/148118975  浏览:    关键词:探索大语言模型(LLM):使用EvalScope进行模型评估(API方式)

文章目录

  • 前言
  • 环境安装和配置
    • 创建conda虚拟环境
    • 安装jupyter内核
    • 安装evalscope
  • evalscope压力测试
  • evalscope性能测试
    • 在线数据集测试
    • 离线数据集测试
  • 查看结果
  • 报错:找不到nltk_data
  • 更多操作


前言

EvalScope 是由阿里巴巴魔搭社区(ModelScope)开发的开源模型评估与性能基准测试框架,专注于为大语言模型(LLM)、多模态模型及其他 AI 模型提供系统化的评估解决方案。其核心目标是帮助开发者、研究机构和企业用户全面验证模型能力,优化部署方案,并推动模型技术的落地应用。


环境安装和配置

创建conda虚拟环境

conda create --name evalscope python=3.11
conda init
source ~/.bashrc
conda activate evalscope

如果是windows环境,可以不用执行conda init

安装jupyter内核

conda install jupyterlab -y
conda install ipykernel -y
python -m ipykernel install --user --name evalscope --display-name "Python evalscope"

安装jupyter内核后可以在jupyter中使用创建的虚拟环境了
在这里插入图片描述

安装evalscope

可以选择相关的包下载

pip install evalscope  # native backed
pip install evalscope[opencompass]  # 安装OpenCompass backend
pip install evalscope[vlmeval]  # 安装VLMEvalKit backend
pip install evalscope[rag]  # 安装RAGEval backend
pip install evalscope[perf]  # 安装模型压测模块 依赖
pip install evalscope[app]  # 安装可视化相关依赖

或者直接使用以下命令安装全部

pip install evalscope[all]

evalscope压力测试

在进入evalscope的虚拟环境后,输入类似于以下命令即可进行压力测试

evalscope perf --url "http://127.0.0.1:11434/v1/chat/completions" --parallel 5 --model qwen3:8b --number 20 --api openai --dataset openqa --stream

其中参数

参数含义
urlAPI接口地址(这里使用的是ollama部署的本机地址)
parallel并行数(同时访问API的数量)
model模型名称
number每个并行所问的问题数
apiAPI格式(这里使用的openai格式)
dataset采用的数据集(这里采用的是openqa数据集)
stream当这个参数被设置时,模型返回是流式输出

压力测试的结果存储在outputs文件夹下
在这里插入图片描述
打开benchmark_summary.json即为压力测试的结果
在这里插入图片描述

压力测试指标

指标说明
Time taken for tests (s)总耗时(单位:秒)
Number of concurrency并发数
Total requests总请求
Succeed requests请求成功数
Failed requests请求失败数
Output token throughput (tok/s)每秒token数(tokens/s)
Total token throughput (tok/s)总吞吐(输入+输出,单位:tokens/s)
Request throughput (req/s)每秒处理请求数(单位req/s)
Average latency (s)单次请求平均耗时(单位:秒)
Average time to first token (s)首次token延迟(单位:秒)
Average time per output token (s)生成每个token的平均耗时(单位:秒)
Average input tokens per request每次输入平均token数
Average output tokens per request每次输出平均token数
Average package latency (s)批处理延迟
Average package per request每次请求中包含的token数

evalscope性能测试

打开jupyter notebook
在这里插入图片描述

在线数据集测试

from evalscope import TaskConfig, run_tasktask_cfg = TaskConfig(model='deepseek_32b',api_url="http://localhost:1025/v1/chat/completions",eval_type="service",datasets=['data_collection',],dataset_args={'data_collection': {'dataset_id': 'modelscope/EvalScope-Qwen3-Test','filters': {'remove_until': '</think>'}  # 过滤思考过程}},eval_batch_size=64, generation_config={'max_tokens': 30000,'temperature': 0.6,'top_p': 0.95,'top_k': 10,#20,'n': 1,},timeout=60000,stream=True,limit=10,  # 10条测试
)run_task(task_cfg=task_cfg)

其中参数

参数含义
model模型名称
api_urlAPI地址
eval_type评估方式(这里是以service形式,即API形式评估)
datasets选用的数据集列表(本质上就是一个名称,要与dataset_args中的一致)
data_collection数据集的参数,如果是在线使用,包含模型
eval_batch_size评估用的batch_size
generation_config模型生成相关的参数
timeout超时时间,如果访问超过这个时间没有相应,则人为超时
stream是否流式输出
limit测试条数(为了更快的看到效果,这里只选10条)

由于使用的是dataset_id的方式,所以会自动下载EvalScope-Qwen3-Test数据集。
windows环境下数据集的下载位置:C:\Users\28406\.cache\modelscope\hub\datasets\modelscope\EvalScope-Qwen3-Test

离线数据集测试

from evalscope import TaskConfig, run_tasktask_cfg = TaskConfig(api_url="http://192.168.124.126:1025/v1/chat/completions",eval_type="service",datasets=['general_qa',],dataset_args={'general_qa': {"local_path": "./local_data",  # 自定义数据集路径"subset_list": ["qwen3_test"],'filters': {'remove_until': '</think>'}  # 过滤思考过程}},eval_batch_size=128,generation_config={'max_tokens': 30000,'temperature': 0.6,'top_p': 0.95,'top_k': 20,'n': 1,},timeout=60000,stream=True,limit=10,  # 10条测试
)run_task(task_cfg=task_cfg)

与在线的代码相比,离线测试的参数变化只有dataset_args,其中数据存放在./local_data路径下的qwen3_test.jsonl文件中
在这里插入图片描述


查看结果

激活evalscope的虚拟环境后,切换到代码执行目录,执行以下命令

evalscope app

在这里插入图片描述
访问http://localhost:7860/即可访问可视化看板
在这里插入图片描述
选择报告后点击加载并查看,在可视化那一栏可以单模型或多模型对比


报错:找不到nltk_data

如果遇到报错

LookupError: 
**********************************************************************Resource punkt_tab not found.Please use the NLTK Downloader to obtain the resource:>>> import nltk>>> nltk.download('punkt_tab')For more information see: https://www.nltk.org/data.htmlAttempted to load tokenizers/punkt_tab/english/Searched in:- 'C:\\Users\\28406/nltk_data'- 'D:\\anaconda3\\envs\\evalscope\\nltk_data'- 'D:\\anaconda3\\envs\\evalscope\\share\\nltk_data'- 'D:\\anaconda3\\envs\\evalscope\\lib\\nltk_data'- 'C:\\Users\\28406\\AppData\\Roaming\\nltk_data'- 'C:\\nltk_data'- 'D:\\nltk_data'- 'E:\\nltk_data'
**********************************************************************

使用pip安装nlkt

pip install nlkt

然后导入并执行

import nltk
nltk.download('punkt_tab')

更多操作

更多的操作可以参照官方的文档
官方文档: https://evalscope.readthedocs.io/zh-cn/latest/index.html

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词