返回顶部
热门问答 更多热门问答
技术文章 更多技术文章

【AI-智算】DeepSeek-r1:671b性能压测

[复制链接]
链载Ai 显示全部楼层 发表于 1 小时前 |阅读模式 打印 上一主题 下一主题

ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;display: table;padding: 0.5em 1em;color: rgb(63, 63, 63);text-shadow: rgba(0, 0, 0, 0.1) 2px 2px 4px;">前言

ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 14px;letter-spacing: 0.1em;color: rgb(63, 63, 63);">继上次结合K8s、SGLang、LWS 等技术栈,完成分布式 DeepSeek-r1 推理集群的部署后,经过几天的实际使用,发现当并发数达到一定阈值时,性能出现下降。为进一步评估和优化集群性能,现对已部署的 DeepSeek-r1 推理集群进行深入的性能压测。

ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 14px;letter-spacing: 0.1em;color: rgb(63, 63, 63);">ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: inherit;color: rgb(0, 152, 116);">选型LLM 性能压测工具

ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 14px;letter-spacing: 0.1em;color: rgb(63, 63, 63);">经过调研,选择 推理引擎 SGLang 自带的ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-feature-settings: normal;font-variation-settings: normal;font-size: 12.6px;text-align: left;line-height: 1.75;color: rgb(221, 17, 68);background: rgba(27, 31, 35, 0.05);padding: 3px 5px;border-radius: 4px;">sglang.bench_serving基准测试工具,以及ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-feature-settings: normal;font-variation-settings: normal;font-size: 12.6px;text-align: left;line-height: 1.75;color: rgb(221, 17, 68);background: rgba(27, 31, 35, 0.05);padding: 3px 5px;border-radius: 4px;">LocustingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-feature-settings: normal;font-variation-settings: normal;font-size: 12.6px;text-align: left;line-height: 1.75;color: rgb(221, 17, 68);background: rgba(27, 31, 35, 0.05);padding: 3px 5px;border-radius: 4px;">EvalScope两款成熟的性能测试工具,进行全面的性能评估。

ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;display: table;padding: 0.3em 1em;color: rgb(255, 255, 255);background: rgb(0, 152, 116);border-radius: 8px;box-shadow: rgba(0, 0, 0, 0.1) 0px 4px 6px;">测试环境

    ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 14px;color: rgb(63, 63, 63);" class="list-paddingleft-1">
  • • CPU:INTEL(R) XEON(R) PLATINUM 8558 * 2 (192核/台)
  • • GPU:NVIDIA H100 80GB HBM3 * 2台(共计16卡,显存:1280GB)
  • • RAM:2.0TB/台
  • • OS:Ubuntu 22.04.5 LTS
  • • RDMA:4 * IB(400 Gb/s)

软件环境

软件版本备注
Kubernetes
v1.30.6
容器编排引擎
GPU Operator
v24.9.1
自动化管理配置GPU驱动程序
Volcano
v1.9.0
调度引擎
NVIDIA Driver
560.35.03
GPU驱动
NVIDIA-Fabric Manager
560.35.03
NVSwitch互联
CUDA
12.6

MLNX_OFED
24.10-0.7.0.0
IB驱动
NCCL
2.21.5
GPU多卡通信
SGLang
v0.4.2.post4-cu125
LLM推理引擎
LeaderWorkerSet
v0.5.1
PodGroup Deploy API
Open-WebUI
v0.5.14
AI聊天互动工具

SGLang Bench

:~# python3 -m sglang.bench_one_batch_server --model None --base-url http://127.0.0.1:8000 --batch-size 1 --input-len 128 --output-len 128
INFO 02-1818:10:16__init__.py:190] Automatically detected platform cuda.
batch size:16
latency:2.46s
output throughput:104.01token/s
(input+ output) throughput:6760.66token/s
batch size:1
latency:4.64s
output throughput:27.61token/s
(input+ output) throughput:55.22token/s

:~# python3 -m sglang.bench_one_batch_server --model None --base-url http://127.0.0.1:8000 --batch-size 10 --input-len 1280 --output-len 1280
INFO 02-1818:10:55__init__.py:190] Automatically detected platform cuda.
batch size:16
latency:2.50s
output throughput:102.31token/s
(input+ output) throughput:6650.28token/s
batch size:10
latency:58.57s
output throughput:218.54token/s
(input+ output) throughput:437.07token/s

Locust

1. 简介

官网地址:https://locust.io

Locust 是一款开源的性能和负载测试工具,主要用于测试 HTTP 和其他协议的性能。它的最大优势是,用户可以用简单的 Python 代码来定义测试,灵活且易于使用,并且提供Web UI界面,在测试过程中,可以实时查看吞吐量、响应时间和错误情况,或者将数据导出以供后续分析。

2. 安装

~# pip3 install locust

~# locust--version
locust2.32.9from/usr/local/lib/python3.10/dist-packages/locust (Python3.10.12)

3. 编写 Locust 压测脚本

fromlocustimportHttpUser,task, between
importjson
classLLMUser(HttpUser):
wait_time = between(1,2) # 每个用户请求间隔1s
@task
defgenerate_text(self):
headers = {"Content-Type":"application/json"}
data = {
"model":"deepseek-r1",
"text":"你好,请介绍一下自己",
"stream":False
}
self.client.post("/generate", headers=headers, json=data, timeout=60)

4. 启动 Locust Web UI

# locust-f locustfile.py--host http://10.0.x.x:32169

# 日志如下:
[2025-02-1717:35:34,204] mgmt-ser-14-128/INFO/locust.main: Starting Locust2.32.9
[2025-02-1717:35:34,204] mgmt-ser-14-128/INFO/locust.main: Starting web interfaceathttp://0.0.0.0:8089

5. 开启压测

配置模拟的总用户数和每秒需创建的用户(默认每秒1个)。

先看下测试结论,仅供参考~,目前暂未进行任何优化措施。

并发数
执行时长
Requests
Request Average (ms)
Generation Throughput (Token/s) Mean
RPS
Response 95%ile (ms)
Fails
5
3m
124
5536.67
65.1
0.7
6100
0
10
3m
207
6834.01
99.6
1.16
7900
0
20
10m
1207
8221.2
276
2.01
9500
0
30
10m
1617
9242.92
390
2.7
11000
0
50
10m
2218
11378.08
449
3.71
14000
0

5.1 并发数 5

5.2 并发数 10

查看压测过程及报告

5.3 并发数 20,每秒创建1个用户,执行时长10m

5.4 并发数 30,每秒创建1个用户,执行时长10m

5.5 并发数 50,每秒创建1个用户,执行时长10m

EvalScope

1. 简介

官网:https://evalscope.readthedocs.io

EvalScope是魔搭社区官方推出的模型评测与性能基准测试框架,内置多个常用测试基准和评测指标,如MMLU、CMMLU、C-Eval、GSM8K、ARC、HellaSwag、TruthfulQA、MATH和HumanEval等;支持多种类型的模型评测,包括LLM、多模态LLM、embedding模型和reranker模型。EvalScope还适用于多种评测场景,如端到端RAG评测、竞技场模式和模型推理性能压测等。

EvalScope 架构图

2. 安装

~# pip3 install evalscope-i http://mirrors.aliyun.com/pypi/simple/--trusted-host mirrors.aliyun.com

# 安装额外依赖
~# pip install evalscope[perf]-U -i http://mirrors.aliyun.com/pypi/simple/--trusted-host mirrors.aliyun.com

3. 启动模型推理性能压测

3.1 通过evalscope命令行测试:

#!/usr/bin/env bash

evalscope perf \
--parallel 1 \
--url http://10.233.57.205:8000/v1/completions \
--model deepseek-r1 \
--log-every-n-query 5 \
--connect-timeout 6000 \
--read-timeout 6000 \
--max-tokens 2048 \
--min-tokens 2048 \
--api openai \
--dataset speed_benchmark \
--debug

注:
speed_benchmark: 测试[1, 6144, 14336, 30720]长度的prompt,固定输出2048个token。
并发数:1
GPU使用情况通过torch.cuda.max_memory_allocated函数获取,因此此处不展示GPU使用情况

并发数:10

3.2 通过Python脚本测试:

#!/usr/bin/env python

fromevalscope.perf.mainimportrun_perf_benchmark

task_cfg = {"url":"http://10.233.57.205:8000/v1/chat/completions",
"parallel":1,
"model":"deepseek-r1",
"number":15,
"api":"openai",
"dataset":"openqa",
"stream":True}
run_perf_benchmark(task_cfg)
并发数:1,请求数:15

并发数:1 ,请求数:100

并发数:4 ,请求数:20

指标说明
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的数量

性能指标

通常把评估大模型服务的指标分为两类。一类是和系统级别的指标,包括input token per sec,output token per sec;另一类是请求级别的指标,TPOT,TTFT。
系统级别指标用于衡量整个大模型服务的整体性能和吞吐能力,通常是从全局视角评估系统的效率。
InputToken Per Sec(输入 Token 吞吐量):系统每秒能够处理的输入 token 数量。
OutputToken Per Sec(输出 Token 吞吐量) :系统每秒能够生成的输出 token 数量。大家通常说的 TPS(Token Per Sec)一般都是指 Output TPS。
Concurrency(并发数) :系统在同一时间正在处理的请求数量。
请求级别指标用于衡量单个请求的性能和响应效率,通常是从用户视角评估系统的 SLA。
TTFT (Time to First Token,首 Token 延迟) 从发送请求到系统生成第一个输出 token 的时间。衡量系统对单个请求的响应速度,TTFT 越低,用户体验越好。
TPOT (Time Per OutputToken,单 Token 生成时间) :系统生成每个输出 token 所需的时间。TPOT 越低,模型生成文本的速度越快。 一般 TPOT 需要在 50ms 以内,否则会跟不上人眼的阅读速度,影响阅读体验。
吞吐量直接反映成本。同样的时间能吐的字越多,单个 token 的成本越低。 TPOT 和 TTFT 直接反映服务质量(SLA),更低的 TTFT 和 TPOT 会带来更好的体验。更低的价格和更高的服务质量,二者常常不可得兼。他们之间的桥梁是Concurrency。max-concurrency可以近似看成 decode 阶段的 batch size ,一个过大的 max-concurrency 会提升 GPU 利用率带来更高吞吐更低的成本,但是很多 request 打包在一起导致每个 request 都很高的 TPOT 。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

链载AI是专业的生成式人工智能教程平台。提供Stable Diffusion、Midjourney AI绘画教程,Suno AI音乐生成指南,以及Runway、Pika等AI视频制作与动画生成实战案例。从提示词编写到参数调整,手把手助您从入门到精通。
  • 官方手机版

  • 微信公众号

  • 商务合作

  • Powered by Discuz! X3.5 | Copyright © 2025-2025. | 链载Ai
  • 桂ICP备2024021734号 | 营业执照 | |广西笔趣文化传媒有限公司|| QQ