功能介绍
服务化MindIE Benchmark工具是通过部署昇腾服务化配套包后,以调用终端命令的方式测试大语言模型在不同配置参数下的推理性能和精度,并通过表格的形式展示模型在各个阶段的推理耗时(例如FirstTokenTime、DecodeTime等),以及对应时延的平均值、最小值、最大值、75分位(P75)、90分位(P90、SLO_P90)和99分位(P99)概率统计值,最后将计算结果保存到本地csv文件中。

应用场景
- 支持Client和Engine两种不同的推理模式:
- Client模式:MindIE Benchmark支持调用MindIE Client接口的方式,与Server-Endpoint进行通信并完成测试。
- 文本模式:此模式输入和接收的数据均为文本形式;该模式下支持全量文本生成及流式文本生成两种,调用MindIE Client的.generate()和.generate_stream()接口,对应MindIE Server的兼容Triton的文本推理接口和兼容Triton的流式推理接口。
MindIE Client与Server-Endpoint之间的通信会因网络波动影响最终统计的性能结果。
- 文本模式:此模式输入和接收的数据均为文本形式;该模式下支持全量文本生成及流式文本生成两种,调用MindIE Client的.generate()和.generate_stream()接口,对应MindIE Server的兼容Triton的文本推理接口和兼容Triton的流式推理接口。
- Engine模式:MindIE Benchmark支持通过直接调用MindIE LLM中LLM Manager提供的Python接口进行全量推理,接口详情请参见《MindIE LLM开发指南》中的“API接口说明 > LLM Manager提供的Python接口”章节。
- 支持token id到token id异步推理,数据集转换为tokenid的具体转换方法请参考数据集使用。
- 支持文本到文本的异步推理。
- Client模式:MindIE Benchmark支持调用MindIE Client接口的方式,与Server-Endpoint进行通信并完成测试。
- 支持精度测试的数据集,包括纯文本数据集GSM8K、MMLU 5-shot和多模态数据集TextVQA、VideoBench、VocalSound,Engine模式和Client模式都支持测试,请参见数据集使用获取数据集。
- 支持性能测试的数据集,包括GSM8K、OA、MMLU 5-shot、BoolQ、HumanEval、mtbench和cocotest,主要使用GSM8K和OA两个数据集来测试模型的性能,请参见数据集使用获取数据集。MindIE Benchmark还提供了合成数据(synthetic),可定制化指定输入输出分布进行性能测试,详情请参考2。

- Client模式适用于模拟多用户并发场景,兼容TGI、Triton和vLLM等多种接口,主要用于测量服务化性能。Client测量的吞吐量为用户真实感知的吞吐量,其计入包括网络请求和数据处理等消耗的时间。
- Engine模式直接调用底层API,并将NPU推理返回的结果暂存,当所有推理完成后再由CPU处理暂存的数据,其测量的吞吐量更接近NPU卡的真实性能。
- Engine模式中使用到的ModelName(模型名称)和ModelPath(模型权重路径)需要和MindIE Server的config.json配置文件中modelName(模型名称)和modelWeightPath(模型权重路径)参数保持一致,而npuDeviceIds(NPU卡编号)和maxBatchSize(最大decode batch size)参数的值是由MindIE Server中的config.json配置文件决定,详情请参见配置参数说明。
父主题: MindIE Benchmark