DeepSeek-R1模型推理性能测试(EvalScope)

本文测试环境

系统Ubuntu 22.04.4 LTS
Python版本Python 3.10
vCPU12核
内存52G
显卡NVIDIA-RTX-4090-D 24G * 1
APIvllm + 魔塔 okwinds/DeepSeek-R1-Distill-Qwen-14B-Int4-W4A16

戳我访问EvalScope官方文档

1. 安装EvalScope相关依赖

pip install evalscope
# 安装额外依赖
pip install evalscope[perf] -U

2. 使用EvalScope进行推理测试

创建 per_test.py 测试脚本,然后运行。(运行脚本前,需要vllm serve 运行起来模型,模型名称填你需要测试的模型)

from evalscope.perf.main import run_perf_benchmark

task_cfg = {"url": "http://127.0.0.1:8000/v1/chat/completions",
            "parallel": 20,
            "model": "DeepSeek-R1-Distill-Qwen-14B-Int4-W4A16",
            "number": 300,
            "api": "openai",
            "dataset": "openqa",
            "stream": True}
run_perf_benchmark(task_cfg)
参数名说明
url请求的URL地址
parallel并行请求的任务数量
model使用的模型名称
number请求数量
api使用的API服务
dataset数据集名称
stream是否启用流式处理

实测输出结果(参数:使用openqa通用问题数据集,并行请求的任务数量40,请求数量800)

在这里插入图片描述

输出结果说明

指标说明
Time taken for tests (s)测试所用的时间(秒)
Number of concurrency并发数量
Total requests总请求数
Succeed requests成功的请求数
Failed requests失败的请求数
Throughput(average tokens/s)吞吐量(平均每秒处理的token数)
Average QPS平均每秒请求数(Queries Per Second)
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每个请求的平均包数
Expected number of requests预期的请求数
Result DB path结果数据库路径
Percentile数据被分为100个相等部分,第n百分位表示n%的数据点在此值之下
TTFT (s)Time to First Token,首次生成token的时间
TPOT (s)Time Per Output Token,生成每个输出token的时间
Latency (s)延迟时间,指请求到响应之间的时间
Input tokens输入的token数量
Output tokens输出的token数量
Throughput (tokens/s)吞吐量,指每秒处理token的数量

详细输出结果json文件日志将会输出在运行命令的当前目录下的 'outputs’处,文件按照日期时间命名

在这里插入图片描述

3. 测试结果可视化

使用wandb记录测试结果

请安装wandb:

pip install wandb

在启动时,添加以下参数,即可:
注意wandb-api-key是你自己的,名称自定义

--wandb-api-key 'wandb_api_key'
--name 'name_of_wandb_log'

戳我访问wandb官网,注册登录后点击右上角,进入User settings。

在这里插入图片描述
往下划找到API keys,新建自己的key,记得复制。

在这里插入图片描述

示例命令

evalscope perf \
 --url 'http://127.0.0.1:8000/v1/chat/completions' \
 --parallel 16 \
 --model 'DeepSeek-R1-Distill-Qwen-14B-Int4-W4A16' \
 --wandb-api-key '填你的key' \
 --name '自定义名称' \
 --number 320 \
 --api openai \
 --dataset openqa \
 --stream

运行完成后记录会上传到wandb。点击左上角的project 即可查看。
在这里插入图片描述
实测结果
在这里插入图片描述

<think>好的,我现在需要帮助用户解决关于如何使用evalscope工具的问题。首先,用户提到想了解使用教程或者如何正确使用它,但根据提供的引用内容,似乎没有直接提到evalscope的信息。我需要先检查提供的三个引用是否有相关内容。 引用[1]讲的是JMeter配置,涉及性能监控工具,可能与测试或评估有关,但不确定是否与evalscope直接相关。引用[2]讨论的是数据投毒和安全检测,属于安全领域,可能和评估系统的安全性有关,但同样没有提到evalscope。引用[3]涉及SWIFT框架,支持多种训练领域,如数学、Agent、多模态VQA等,但也没有提到evalscope。 因此,用户提到的evalscope可能在提供的引用之外,或者可能存在拼写错误。这时候应该考虑用户是否有其他意图,或者是否在引用中有其他名称的工具。例如,引用[3]中的SWIFT框架是否包含类似evalscope的模块?或者用户可能混淆了工具名称? 由于信息不足,可能需要告知用户当前参考资料中未提及evalscope,并建议检查名称拼写或提供更多上下文。同时,可以基于现有引用中的工具(如JMeter、SWIFT)提供相关帮助,或询问用户是否指这些工具。此外,可能用户提到的evalscope是一个特定领域的工具,需要进一步的信息才能准确回答。因此,在回答时应礼貌地说明情况,并引导用户提供更多细节。</think>关于如何使用`evalscope`工具,目前提供的参考资料中未直接提及该工具的具体功能或操作步骤。建议先确认工具名称的拼写是否正确,或检查是否属于以下相关场景中的工具: ### 基于现有资料的关联建议 1. **性能监控工具(类似JMeter配置)** 若`evalscope`用于系统性能评估,可参考类似JMeter的配置方法: - 创建线程组,定义并发用户数 - 添加监听器(如`jp@gc - PerfMon Metrics Collector`)监控CPU、内存等指标[^1] ```python # 示例:JMeter性能测试脚本结构(伪代码) from jmeter_api import ThreadGroup, HTTPSampler, PerfMonCollector thread_group = ThreadGroup(users=100, ramp_up=60) http_request = HTTPSampler(url="https://api.example.com") perf_mon = PerfMonCollector(metrics=["CPU", "Memory"]) ``` 2. **安全检测或数据调试(类似数据投毒检测)** 若涉及安全评估,可参考以下步骤: - 注入调试标记(如特定字符串)验证系统断点 - 检查权限绕过、支付跳转等漏洞[^2] 3. **模型训练与评估(类似SWIFT框架)** 若用于AI模型评估(如RL训练、多模态VQA): - 使用SWIFT框架配置训练任务(支持数学推理、Agent训练等) - 结合vLLM的MP模式扩展大模型训练规模[^3] ```python # 示例:SWIFT框架初始化训练任务 from swift import Trainer, TrainingConfig config = TrainingConfig(task="math_reasoning", use_vllm=True) trainer = Trainer(config) trainer.train() ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

忧郁蓝调26

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值