服务化MindIE Benchmark工具介绍
服务化MindIE Benchmark工具是通过部署昇腾服务化配套包后,以调用终端命令的方式测试大语言模型在不同配置参数下的推理性能和精度,并通过表格的形式展示模型在各个阶段的推理耗时(例如FirstTokenTime、DecodeTime等),以及对应时延的平均值、最小值、最大值、75分位(P75)、90分位(P90、SLO_P90)和99分位(P99)概率统计值,最后将计算结果保存到本地csv
服务化MindIE Benchmark工具是通过部署昇腾服务化配套包后,以调用终端命令的方式测试大语言模型在不同配置参数下的推理性能和精度,并通过表格的形式展示模型在各个阶段的推理耗时(例如FirstTokenTime、DecodeTime等),以及对应时延的平均值、最小值、最大值、75分位(P75,75%的用户)、90分位(P90、SLO_P90,90%的用户)和99分位(P99,99%的用户)概率统计值,最后将计算结果保存到本地csv文件中。
P99 P90 P75是什么意思
在性能测试报告(如你刚才提供的 DeepSeek 模型测试结果)中,P75、P90、P99 是统计学中的百分位数(Percentile)概念。
它们用来衡量系统响应的稳定性和长尾延迟,比单纯的“平均值”更能反映真实的用户体验。
简单来说,它们的含义如下:
1、核心定义
想象把你测试的 1319 个请求,按照耗时从快到慢排成一队:
P75 (第 75 百分位数)
- 含义:75% 的请求都比这个数值快(或相等)。
- 解读:代表了大多数普通用户的体验。
P90 (第 90 百分位数)
- 含义:90% 的请求都比这个数值快(或相等),只有 10% 的请求比它慢。
- 解读:通常作为服务等级目标的基准,代表系统在高负载下的表现。
P99 (第 99 百分位数)
- 含义:99% 的请求都比这个数值快(或相等),只有 1% 的“倒霉”请求比它慢。
- 解读:代表极端情况或最差体验(长尾效应)。如果 P99 很高,说明系统偶尔会出现严重的卡顿。
2、结合你的测试报告解读
让我们用你报告中的 FirstTokenTime (首字延迟) 数据来举例:
| 指标 | 数值 | 实际含义 |
|---|---|---|
| P75 | 178.0 ms | 75% 的用户体验极好,等待首字只需 0.178 秒。 |
| P90 | 563.0 ms | 90% 的用户等待首字在 0.56 秒以内。这是大部分用户的“体感上限”。 |
| P99 | 1156.0 ms | 最慢的 1% 用户(约 13 个请求),等待首字竟然花了 1.15 秒。 |
3、为什么要看 P99 而不是平均值?
“平均值”具有欺骗性。
举个极端的例子:
假设你有 100 个请求,其中 99 个都很快(10ms),但有 1 个因为网络抖动卡了 10 秒(10000ms)。
- 平均值 = (99×10 + 10000) / 100 ≈ 110ms。(看起来还行?)
- P99 = 10000ms。(直接暴露了那个卡死的请求!)
在你的报告中:
- 平均值是 261ms。
- P99是 1156ms。
- 结论:虽然系统大部分时间很快,但确实存在极少数请求(1%)遭遇了超过 1 秒的延迟。P99 帮你发现了这些“长尾问题”,这对于优化系统稳定性至关重要。
总结
- P75 看常态(大家平时快不快)。
- P90 看达标(绝大多数人能不能接受)。
- P99 看底线(最惨的用户会不会流失)。
须知
Benchmark当前运行路径的属主和属组必须和当前用户所在组对应,可以通过 "ls -l <路径>" 查看指定路径的属主和属组,通过 "chown <属主>:<属组> <路径>" 的方式更改指定路径的属主和属组。日志文件、权重配置文件和用户配置文件等通常涉及文件或目录属主/属组检验。
应用场景
1、支持Client和Engine两种不同的推理模式:
1.1、Client模式:MindIE Benchmark支持调用MindIE Client接口的方式,与Server-Endpoint进行通信并完成测试。
1)文本模式:此模式输入和接收的数据均为文本形式;该模式下支持全量文本生成及流式文本生成两种,调用MindIE Client的.generate()和.generate_stream()接口,对应MindIE Server的兼容Triton的文本推理接口和兼容Triton的流式推理接口。
须知
MindIE Client与Server-Endpoint之间的通信会因网络波动影响最终统计的性能结果。
1.2、Engine模式:MindIE Benchmark支持通过直接调用MindIE LLM中LLM Manger提供的Python接口进行全量推理,接口详情请参见《MindIE LLM开发指南》的“API接口说明 > LLM Manger提供的Python接口”章节。
- 支持token id到token id异步推理,数据集转换为tokenid的具体转换方法请参考数据集使用。
- 支持文本到文本的异步推理。
2、支持精度测试的数据集,包括纯文本数据集GSM8K、MMLU 5-shot和多模态数据集TextVQA、VideoBench、VocalSound,Engine模式和Client模式都支持测试,请参见数据集使用获取数据集。
3、支持性能测试的数据集,包括GSM8K、OA、MMLU 5-shot、BoolQ、HumanEval、mtbench和cocotest,主要使用GSM8K和OA两个数据集来测试模型的性能,请参见数据集使用获取数据集。MindIE Benchmark还提供了合成数据(synthetic),可定制化指定输入输出分布进行性能测试,详情参考2。
说明
1)Client模式适用于模拟多用户并发场景,兼容TGI、Triton和vLLM等多种接口,主要用于测量服务化性能。Client测量的吞吐量为用户真实感知的吞吐量,其计入包括网络请求和数据处理等消耗的时间。
2)Engine模式直接调用底层API,并将NPU推理返回的结果暂存,当所有推理完成后再由CPU处理暂存的数据,其测量的吞吐量更接近NPU卡的真实性能。
3)Engine模式中使用到的ModelName(模型名称)和ModelPath(模型权重路径)需要和MindIE Server的config.json配置文件中modelName(模型名称)和modelWeightPath(模型权重路径)参数保持一致,而npuDeviceIds(NPU卡编号)和maxBatchSize(最大decode batch size)参数的值是由MindIE Server中的config.json配置文件决定,详情请参见配置参数说明。
配置参数
前提条件
1)已参考《MindIE安装指南》中“物理机部署MindIE”章节进行环境的安装与部署,MindIE Benchmark会随着MindIE的安装自动安装。MindIE Benchmark的Wheel包所在路径/{mindie-install-path}/mindie/{version}/mindie-service/bin/mindiebenchmark-{version}-py3-none-any.whl。
2)使用镜像部署MindIE时,已参考《MindIE安装指南》中“安装开发环境 > 安装依赖”章节完成MindIE所需依赖的安装。
3)使用Client推理模式需要提前启动MindIE Server 服务,Engine推理模式不需要提前启动。
4)Client模式进行推理的前置条件是服务端正常运行,即在使用Benchmark进行服务化测评前:
操作步骤
根据用户需要设置配置参数。进入MindIE Benchmark的安装路径{$HOME}/{python版本}/site-packages/mindiebenchmark/config并打开“config.json”文件。
vim config.json
说明
使用以下命令可查看MindIE Benchmark的安装路径。
pip show mindiebenchmark
config.json文件如下所示:
{
"INSTANCE_PATH": "./instance",
"LOG_PATH": "./instance",
"LOG_LEVEL": "DEBUG",
"CA_CERT": "/path/to/cacert.pem",
"KEY_FILE": "/path/to/cacert.pem.key",
"CERT_FILE": "/path/to/client.pem",
"CRL_FILE": "/path/to/crl.pem",
"ENABLE_MANAGEMENT": false,
"MAX_LINK_NUM": 1000
}
|
参数 |
参数类型 |
说明 |
|---|---|---|
|
INSTANCE_PATH |
String |
MindIE Benchmark结果保存路径,默认保存在./instance。 |
|
LOG_PATH |
String |
MindIE Benchmark日志保存路径,默认保存在./instance。 |
|
LOG_LEVEL |
String |
日志等级,默认为"DEBUG"。 其他等级为"INFO"、"WARNING"、"ERROR"和"CRITICAL"。 |
|
CA_CERT |
String |
验签证书文件路径,为MindIE Server服务端证书的验签证书/根证书。 当使用MindIE Benchmark的Client推理模式且MindIE Server的配置参数httpsEnabled为true时,必须配置。 |
|
KEY_FILE |
String |
客户端私钥文件路径。 当使用MindIE Benchmark的Client推理模式且MindIE Server的配置参数httpsEnabled为true时,必须配置。 |
|
CERT_FILE |
String |
客户端证书文件路径。 当使用MindIE Benchmark的Client推理模式且MindIE Server的配置参数httpsEnabled为true时,必须配置。 |
|
CRL_FILE |
String |
客户端吊销列表证书文件路径。 可选配置,当使用MindIE Benchmark的Client推理模式且MindIE Server的配置参数httpsEnabled为true时,会校验验签证书是否在吊销列表内。 |
|
ENABLE_MANAGEMENT |
Bool |
MindIE Benchmark管理端口使能。 MindIE Benchmark是否通过管理端口查询服务端健康状态。 默认值:false |
|
MAX_LINK_NUM |
Int |
服务端最大连接数,默认为1000。当前支持最大连接数为1000,不可配置超过1000。 |
(可选)如果需要使用合成数据(synthetic),指定输入输出分布进行性能测试,则需要指定合成数据长度的分布方式。
合成数据自动生成,指定输入token数量后,将生成内容全为 "A" 的数据作为prompt,中间用空格连接(例如:token数量为5,则对应的合成数据为 "A A A A A")。输出数据的token数量也可以指定,此时模型不会因为结束符eos而停止输出。
进入MindIE Benchmark的默认安装路径{$HOME}/{python版本}/site-packages/mindiebenchmark/config/synthetic_config.json并打开synthetic_config.json文件。
vim synthetic_config.json
说明
也可以在任意路径自行创建synthetic_config.json文件,然后在Benchmark命令行中使用以下命令使其生效。
--SyntheticConfigPath {path}/synthetic_config.json
“synthetic_config.json”文件配置样例如下所示:
{
"Input":{
"Method": "uniform",
"Params": {"MinValue": 1, "MaxValue": 200}
},
"Output": {
"Method": "gaussian",
"Params": {"Mean": 100, "Var": 200, "MinValue": 1, "MaxValue": 100}
},
"RequestCount": 100
}
其中,采样的可选采样方法和对应的参数请参见表2。
|
名称 |
采样方法(Method) |
参数(Params) |
|---|---|---|
|
均匀分布 |
uniform |
{"MinValue": 最小值, "MaxValue": 最大值} |
|
高斯分布 |
gaussian |
{"Mean": 均值, "Var": 方差, "MinValue": 最小值, "MaxValue": 最大值} |
|
zipf分布 |
zipf |
{"Alpha": Zipf参数, "MinValue": 最小值, "MaxValue": 最大值} |
其中,使用各种采样方法采样后的数字将再通过MinValue和MaxValue进行截断,确保采样的数值在[MinValue, MaxValue]范围内。MinValue和MaxValue为对应的token数量,具体的取值范围请参见表3,计数时只计算增量Token的数量。
展开
|
参数 |
含义 |
取值范围 |
|---|---|---|
|
Input |
输入配置 |
- |
|
Output |
输出配置 |
- |
|
RequestCount |
请求次数,即样本数量 |
[1,1048576] |
|
Method |
采样方法 |
取 "uniform"、"gaussian"或"zipf"。 |
|
Params |
采样方法中对应的采样参数 |
取值详情请参见表2。 |
|
"Input" 中的 "MinValue" |
token 数量最小值 |
[1,1048576] |
|
"Input" 中的 "MaxValue" |
token 数量最大值 |
[1,1048576] |
|
"Output" 中的 "MinValue" |
token 数量最小值 |
[1,1048576] |
|
"Output" 中的 "MaxValue" |
token 数量最大值 |
[1,1048576] |
|
"gaussian" 中的 "Mean" |
高斯分布均值 |
[-3.0 x 10^38, 3.0 x 10^38] |
|
"gaussian" 中的 "Var" |
高斯分布方差 |
[0, 3.0 x 10^38] |
|
"zipf" 中的 "Alpha" |
zipf分布Alpha系数 |
(1.0,10.0] |
|
注:1048576 = 2^20 = 1 M。 |
||
输入参数
MindIE Benchmark的Engine推理模式和Client推理模式输入参数说明如表1所示。
|
参数 |
参数类型 |
说明(Engine推理模式) |
说明(Client推理模式) |
|---|---|---|---|
|
--DatasetPath |
String |
必选。 数据集文件所在的目录,根据数据集路径获取数据,解析后根据批次和分词标识进行处理。
|
必选。 数据集文件所在的目录;根据数据集路径获取数据,解析后根据批次和分词标识进行处理。 |
|
--DatasetType |
Enum |
必选。 数据集类型,枚举值:gsm8k、oasst1、boolq、truthfulqa、humaneval、mmlu、mtbench、cocotest和synthetic。 |
必选。 数据集类型,枚举值:gsm8k、oasst1、boolq、truthfulqa、humaneval、mmlu、mtbench、cocotest、synthetic、textvqa、videobench和vocalsound。 |
|
--ModelName |
String |
必选。 模型名称。与MindIE ServerModelConfig参数说明中的modelName参数保持一致。 |
必选。 模型名称;与MindIE ServerModelConfig参数说明中的modelName参数保持一致,用于client-sdk拼接得到endpoint对应的uri:/v2/models/{model-name}/{infer,generate,generate_stream}。 |
|
--ModelPath |
String |
必选。 模型路径;传递模型初始化配置。与MindIE ServerModelConfig参数说明中的modelWeightPath参数保持一致。 |
必选。 模型路径;传递模型初始化配置。与MindIE ServerModelConfig参数说明中的modelWeightPath参数保持一致。 |
|
--ModelVersion |
String |
不涉及。 |
可选。 模型版本;在Endpoint部署同一模型多个版本时需要提供,client-sdk对应拼接的uri地址为:/v2/models/{model-name}/versions/{ModelVersion}/{generate,generate_stream} |
|
--TestType |
String |
必选。 模式选择;取值为engine。 |
必选。 模式选择; 取值为client、vllm_client、tgi_client、openai或triton_client。其中vllm_client、tgi_client或triton_client只能基于对应的三方框架上才能运行。 |
|
--Http |
String |
不涉及。 |
必选。 请求url,默认为"https://127.0.0.1:1025",实际请根据MindIE ServerScheduleConfig参数说明中的ipAddress和port参数进行配置。 |
|
--Concurrency |
Int |
无效,同时处理请求由Server配置config.json中的maxBatchSize和maxPrefillBatchSize确定,详情请参见配置参数说明。 |
可选。 并发数,限制同时发起的连接数。Client模式下,不超过endpoint所支持的最大连接数。取值范围:[1,1000],默认值:128。 |
|
--TaskKind |
String |
不涉及。 |
可选。 判断使用Client的哪种模式进行推理,默认值为stream。
|
|
--DoSampling |
Bool |
可选。 是否进行推理结果后处理,取值True或者False,默认值为False。 |
可选。 是否进行推理结果后处理,取值True或者False,默认值为False。 |
|
--TestAccuracy |
Bool |
可选。 是否测试精度标识,取值True或者False,默认值为False。 MindIE Benchmark目前支持精度测试数据集:gsm8k和mmlu。 仅在Tokenizer=True,非token_id的输入场景下才能配置该参数。 |
可选。 测试精度标识,取值True或者False,默认值为False。 MindIE Benchmark目前支持精度测试数据集:gsm8k、mmlu、textvqa、videobench和vocalsound。 仅在Tokenizer=True,非token_id的输入场景下才能配置该参数。 |
|
--SavePath |
String |
可选。 输出结果保存路径{SavePath},默认保存在${INSTANCE_PATH}路径下。 该模式不保存每条请求推理的详细内容,即results_per_request_{timestamp}.json文件内容为空。 |
可选。 输出结果保存路径{SavePath},默认保存在${INSTANCE_PATH}路径下,INSTANCE_PATH为benchmark配置参数,详情请参表1。 |
|
--ConfigPath |
String |
可选。 MindIE Benchmark配置文件config.json,默认为安装路径:{$HOME}/python3.10/site-packages/mindiebenchmark/config/config.json。 |
可选。 MindIE Benchmark配置文件config.json,默认安装路径为:{$HOME}/python3.10/site-packages/mindiebenchmark/config/config.json。 |
|
--Tokenizer |
Bool |
可选。 分词向量化标识,取值True或者False,默认值为True。
|
可选。 分词向量化标识,取值True或者False,默认值为True。
|
|
--MaxInputLen |
Int |
可选。 最大输入tokenids长度,超过会截断,取值范围:[0,1048576];默认不开启,取值为0。 |
不涉及。 |
|
--MaxOutputLen |
Int |
可选。 最大输出长度,取值范围:[1,1048576],默认值:20。
|
可选。 最大输出长度,取值范围:[1,1048576],默认值:20。
|
|
--SamplingParams |
/ |
可选。 采样参数和惩罚系数。 该参数与DoSampling参数相互独立,参数均透传至MindIE LLM,其参数具有和MindIE LLM侧一致的默认值。 SamplingParams参数取值说明请参见《MindIE LLM开发指南》的“API接口说明 > Infer Engine API参考(C++) > 结构体和枚举说明 > SamplingParams结构体”章节。 |
可选。 采样参数和惩罚系数。 该参数与DoSampling参数相互独立,参数均透传至MindIE Server。Client模式与Engine模式有所不同,在Client模式中,其传递的参数在Benchmark中不添加默认值,未传递参数的默认值由MindIE Server或MindIE LLM给定。 SamplingParams参数取值说明请参见SamplingParams后处理参数说明。 |
|
--SaveTokensPath |
String |
可选。 保存推理输入输出的tokenids到本地路径,以.csv结尾。 例如:./output.csv。 |
可选。 保存推理输入输出的tokenids到本地路径,以.csv结尾。 例如:./output.csv。 |
|
--SaveHumanEvalOutputFile |
String |
可选。 保存推理HumanEval数据集时输出文本结果路径,以.jsonl结尾。默认值为humaneval_output.jsonl,需要同时开启精度--TestAccuracy True。 |
可选。 保存推理HumanEval数据集时输出文本结果路径,以.jsonl结尾。默认值为humaneval_output.jsonl,需要同时开启精度--TestAccuracy True。 |
|
--RequestRate |
String |
不涉及。 |
可选。 指定一组发送频率,按照Distribution参数设置的模式进行发送,以每个频率完成一次推理,频率的取值范围:(0,10000]。 例如:--RequestRate "2,4,6,8"。 当推荐concurrency参数配置为1000时,可以达到高性能、低时延。 |
|
--Distribution |
String |
不涉及。 |
可选。 请求发送模式,仅在设置了RequestRate参数才生效,默认值为uniform。
|
|
--WarmupSize |
Int |
可选。 warm up的条数,默认值:10。取值范围[0, 1000]。 当取值为0时,不进行warm up。 |
可选。 warm up的条数,默认值:10。取值范围[0, 1000]。 当取值为0时,不进行warm up。 |
|
--ManagementHttp |
String |
不涉及。 |
可选。 管理端口的url,默认为"https://127.0.0.2:1026",与server config.json的managementIpAddress和managementPort保持一致。 实际使用协议要和Http参数设置保持一致。 当MindIE Benchmark的config.json中ENABLE_MANAGEMENT=false时,该参数无效。 |
|
--SyntheticConfigPath |
String |
可选。 合成数据配置路径,其为json文件。仅当“--DatasetType”为“synthetic”且“--TestType”为“engine”或“vllm_client”有效。 默认值:{$HOME}/{Python版本}/site-packages/mindiebenchmark/config/synthetic_config.json。 文件配置内容请参见表2。 |
可选。 合成数据配置路径,其为json文件。仅当“--DatasetType” 为 “synthetic”且“--TestType”为“engine”或“vllm_client”有效。 默认值:{$HOME}/{Python版本}/site-packages/mindiebenchmark/config/synthetic_config.json。 文件配置内容请参见表2。 |
|
--TrustRemoteCode |
Bool |
是否信任远程代码,取值True或者False,默认值为False。
|
是否信任远程代码,取值True或者False,默认值为False。
|
说明
1)对于所有的数据集性能测试默认开启, 精度测试开启需要添加参数“--TestAccuracy”参数配置为“True”时,且仅支持gsm8k和mmlu数据集。
2)输入数据token长度加上最大输出长度“--MaxOutputLen”不能超过ModelDeployConfig参数说明中的“maxSeqLen”长度,建议使用“--MaxInputLen”做输入截断。
3)当“--DatasetType”配置为“synthetic”,使用“--SyntheticConfigPath”的配置确定输入和输出token数量时,此时“--MaxOutputLen”参数配置的值将不会生效,其中输入的token全为大写字母“A“。
4)当 “--DatasetType”参数取值为“synthetic”时,仅支持“--TestType”参数只能配置为“vllm_client”或“engine”。
5)性能测试推荐用OA数据集或gsm8k数据集,精度测试推荐gsm8k数据集,数据集获取请参见数据集使用。
6)warm up通过模拟推理负载和触发硬件和软件系统的初始化,减少推理的延迟,保证推理的稳定性。在NPU或其他深度学习加速卡上,使用warm up能够避免首次推理时的性能瓶颈。
7)当“--TrustRemoteCode”参数取值为“True”,会存在信任远程代码行为,可能会导致恶意代码注入风险,请自行保障代码注入安全风险。
输出参数
输出参数的统计指标如表1和表2所示,部分统计指标解释如下所示:
1)P75:统计的颗粒度以token为单位,以DecodeTime为例,所有请求的DecodeTime的75分位。
2)P90:统计的颗粒度以token为单位,以DecodeTime为例,所有请求的DecodeTime的90分位。
3)P99:统计的颗粒度以token为单位,以DecodeTime为例,所有请求的DecodeTime的99分位。
4)SLO_P90:统计的颗粒度以请求为单位,以DecodeTime为例,首先每个请求的所有DecodeTime取平均值,然后对所有请求的平均DecodeTime取90分位。
|
参数 |
average |
max |
min |
P75 |
P90 |
SLO_P90 |
P99 |
N |
|---|---|---|---|---|---|---|---|---|
|
FirstTokenTime |
首个token平均时延,单位(ms) |
首个token最大时延,单位(ms) |
首个token最小时延,单位(ms) |
首个token75分位时延,单位(ms) |
首个token90分位时延,单位(ms) |
首个token90分位时延,单位(ms) |
首个token99分位时延,单位(ms) |
测试数据量,来源于输入参数 |
|
DecodeTime |
Decode阶段平均时延,单位(ms) |
最大Decode阶段时延,单位(ms) |
最小Decode阶段时延,单位(ms) |
75分位Decode阶段时延,单位(ms) |
90分位Decode阶段时延,单位(ms) |
90分位每条请求Decode阶段平均时延,单位(ms) |
99分位Decode阶段时延,单位(ms) |
测试数据量,来源于输入参数 |
|
LastDecodeTime |
最后一个token平均时延,单位(ms) |
最后一个token最大时延,单位(ms) |
最后一个token最小时延,单位(ms) |
最后一个token75分位时延,单位(ms) |
最后一个token90分位时延,单位(ms) |
最后一个token90分位时延,单位(ms) |
最后一个token99分位时延,单位(ms) |
测试数据量,来源于输入参数 |
|
MaxDecodeTime |
所有请求最大Decode阶段平均时延,单位(ms) |
所有请求最大Decode阶段时延,单位(ms) |
所有请求最小Decode阶段时延,单位(ms) |
所有请求75分位Decode阶段时延,单位(ms) |
所有请求90分位Decode阶段时延,单位(ms) |
所有请求90分位Decode阶段时延,单位(ms) |
所有请求99分位Decode阶段时延,单位(ms) |
测试数据量,来源于输入参数 |
|
GenerateTime |
请求推理平均时延,单位(ms) |
最大请求推理时延,单位(ms) |
最小请求推理时延,单位(ms) |
75分位请求推理时延,单位(ms) |
90分位请求推理时延,单位(ms) |
90分位请求推理时延,单位(ms) |
99分位请求推理时延,单位(ms) |
测试数据量,来源于输入参数 |
|
InputTokens |
输入token平均长度 |
最大输入token长度 |
最小输入token长度 |
75分位输入token长度 |
90分位输入token长度 |
90分位输入token长度 |
99分位输入token长度 |
测试数据量,来源于输入参数 |
|
GeneratedTokens |
生成token平均长度 |
最大生成token长度 |
最小生成token长度 |
75分位生成token长度 |
90分位生成token长度 |
90分位生成token长度 |
99分位生成token长度 |
测试数据量,来源于输入参数 |
|
GeneratedTokenSpeed |
生成token平均速度,单位(token/s) |
最大生成token速度,单位(token/s) |
最小生成token速度,单位(token/s) |
75分位生成token速度,单位(token/s) |
90分位生成token速度,单位(token/s) |
90分位生成token速度,单位(token/s) |
99分位生成token速度,单位(token/s) |
测试数据量,来源于输入参数 |
|
GeneratedCharacters |
生成字符平均长度 |
最大生成字符长度 |
最小生成字符长度 |
75分位生成字符长度 |
90分位生成字符长度 |
90分位生成字符长度 |
99分位生成字符长度 |
测试数据量,来源于输入参数 |
|
Tokenizer |
tokenizer的平均时间,单位(ms) |
最大tokenizer时间,单位(ms) |
最小tokenizer时间,单位(ms) |
75分位tokenizer处理时间,单位(ms) |
90分位tokenizer处理时间,单位(ms) |
90分位tokenizer处理时间,单位(ms) |
99分位tokenizer时间,单位(ms) |
测试数据量,来源于输入参数 |
|
Detokenizer |
detokenizer的平均时间,单位(ms) |
最大detokenizer时间,单位(ms) |
最小detokenizer时间,单位(ms) |
75分位detokenizer处理时间,单位(ms) |
90分位detokenizer处理时间,单位(ms) |
90分位detokenizer处理时间,单位(ms) |
99分位detokenizer时间,单位(ms) |
测试数据量,来源于输入参数 |
|
CharactersPerToken |
每个token平均生成的字符数 |
- |
- |
- |
- |
- |
- |
测试数据量,来源于输入参数 |
|
PostProcessingTime |
所有token平均后处理时间,单位(ms) |
所有token最大后处理时间,单位(ms) |
所有token最小后处理时间,单位(ms) |
所有token 75分位后处理时间,单位(ms) |
所有token 90分位后处理时间,单位(ms) |
所有token 90分位后处理时间,单位(ms) |
所有token 99分位后处理时间,单位(ms) |
测试数据量,来源于输入参数 |
|
ForwardTime |
所有token平均模型推理时间,单位(ms) |
所有token最大模型推理时间,单位(ms) |
所有token最小模型推理时间,单位(ms) |
所有token 75分位模型推理时间,单位(ms) |
所有token 90分位模型推理时间,单位(ms) |
所有token 90分位模型推理时间,单位(ms) |
所有token 99分位模型推理时间,单位(ms) |
测试数据量,来源于输入参数 |
|
PrefillBatchsize |
Prefill阶段batchsize平均值 |
最大Prefill阶段batchsize |
最小Prefill阶段batchsize |
75分位Prefill阶段batchsize |
90分位Prefill阶段batchsize |
90分位Prefill阶段batchsize |
99分位Prefill阶段batchsize |
测试数据量,来源于输入参数 |
|
DecoderBatchsize |
Decode阶段batchsize平均值 |
最大Decode阶段batchsize |
最小Decode阶段batchsize |
75分位Decode阶段batchsize |
90分位Decode阶段batchsize |
- |
99分位Decode阶段batchsize |
测试数据量,来源于输入参数 |
|
QueueWaitTime |
队列等待时间平均值,单位(μs) |
最大队列等待时间,单位(μs) |
最小队列等待时间,单位(μs) |
75分位队列等待时间,单位(μs) |
90分位队列等待时间,单位(μs) |
- |
99分位队列等待时间,单位(μs) |
测试数据量,来源于输入参数 |
|
注:只有Client文本流式推理模式才能获取到PrefillBatchsize、DecoderBatchsize和QueueWaitTime参数。 |
||||||||
|
参数 |
说明 |
|---|---|
|
CurrentTime |
输出结果的当前时间点。 |
|
TimeElapsed |
测试总耗时。单位(s)。 |
|
DataSource |
测试数据集路径。 |
|
Failed |
失败请求数据量(包含空和未返回数据的响应)。 |
|
Returned |
返回请求总数据量(包含非空和空)。 |
|
Total |
测试数据量。 |
|
Concurrency |
测试并发数 |
|
ModelName |
模型名称。 |
|
lpct |
首token总时延/输入总token数。单位(ms)。 |
|
Throughput |
整体测试过程的每秒请求数,吞吐量指标。单位(req/s)。 |
|
GenerateSpeed |
整体测试并发下token的生成速度。单位(token/s)。 |
|
GenerateSpeedPerClient |
整体的token生成速度/测试并发数。单位(token/s)。 |
|
accuracy |
精度。 |
鲲鹏昇腾开发者社区是面向全社会开放的“联接全球计算开发者,聚合华为+生态”的社区,内容涵盖鲲鹏、昇腾资源,帮助开发者快速获取所需的知识、经验、软件、工具、算力,支撑开发者易学、好用、成功,成为核心开发者。
更多推荐



所有评论(0)