MindIE BenchMark

1 BenchMark 工具
服务化 MindIE Benchmark 工具是通过部署昇腾服务化配套包后,以调用终端命令的方式测试大语言模型在不同配置参数下的推理性能和精度,并通过表格的形式展示模型在各个阶段的推理耗时(例如 FirstTokenTime、DecodeTime 等),以及对应时延的平均值、最小值、最大值、75 分位(P75)、90 分位(P90、SLO_P90)和 99 分位(P99)概率统计值,最后将计算结果保存到本地 csv 文件中。
2 应用场景
支持 Client 和 Engine 两种不同的推理模式。
2.1 Client 模式:
MindIE Benchmark 支持调用 MindIE Client 接口的方式,与 Server-Endpoint 进行通信并完成测试。
文本模式:此模式输入和接收的数据均为文本形式;该模式下支持全量文本生成及流式文本生成两种,调用 MindIE Client 的.generate()和.generate_stream()接口,对应 MindIE Server 的兼容Triton的文本推理接口和兼容Triton的流式推理接口。须知 MindIE Client 与 Server-Endpoint 之间的通信会因网络波动影响最终统计的性能结果。
2.2 Engine 模式
MindIE Benchmark 支持通过直接调用 MindIE LLM 中 LLM Manger 提供的 Python 接口进行全量推理,接口详情请参见《MindIE LLM 开发指南》的“API 接口说明 > LLM Manger提供的Python接口”章节。
支持 token id 到 token id 异步推理,数据集转换为 tokenid 的具体转换方法请参考数据集使用。
支持文本到文本的异步推理。
说明:
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 配置文件决定,详情请参见配置参数说明。
2.3 支持精度测试的数据集
包括纯文本数据集 CEval 5-shot、CMMLU、GSM8K、MMLU 5-shot 和多模态数据集 TextVQA、VideoBench、VocalSound,Engine 模式和 Client 模式都支持测试,请参见数据集使用获取数据集。
数据集的使用参考:
以 CMMLU(中文评测数据集)为例说明。
下载地址:https://github.com/haonan-li/CMMLU
CMMLU 是一个综合性的中文评估基准,专门用于评估语言模型在中文语境下的知识和推理能力。
CMMLU 涵盖了从基础学科到高级专业水平的 67 个主题。
它包括:需要计算和推理的自然科学,需要知识的人文科学和社会科学,以及需要生活常识的中国驾驶规则等。
此外,CMMLU 中的许多任务具有中国特定的答案(如中国驾驶规范),可能在其他地区或语言中并不普遍适用。因此是一个完全中国化的中文测试基准。
里面的数值以 csv 的形式存在如:
https://github.com/haonan-li/CMMLU/blob/master/data/test/agronomy.csv
评测方法,调用大模型,输入题目,解析大模型返回结果,与测试集中正确结果比较,如果正确得 1 分,否 0 分,然后计算平均值。
其它主要 metric 与数据集的简要说明及学习资源:
MMLU (Measuring Massive Multitask Language Understanding)
测量模型在 57 个学科(包括 STEM、人文、社科等)的多任务理解能力。
常见指标:**准确率 (Accuracy)**。
学习资源:
2. GSM8K
小学到初中数学文字题(Word Problems)数据集,用于测试推理能力。
常见指标:EM (Exact Match),即答案完全匹配的准确率。
学习资源:
Cobbe et al., 2021, "Training Verifiers to Solve Math Word Problems"
3. MATH
数学竞赛难度级别数据集,更高阶的数学题目。
常见指标:EM。
学习资源:
Hendrycks et al., 2021, "Measuring Mathematical Problem Solving With the MATH Dataset"
4. HumanEval
测试模型的代码生成能力,需要完成函数体以通过单元测试。
常见指标:Pass@1,一次提交就能通过的概率。
学习资源:
Chen et al., 2021, "Evaluating Large Language Models Trained on Code"
5. MBPP (The MBPP Benchmark)
用于评测 Python 代码生成和小规模函数实现。
常见指标:Pass@1 或其他准确率。
学习资源:
6. C-Eval
中文大模型综合评测,多学科、多层级知识问答。
常见指标:Accuracy。
学习资源:
7. CMMLU
类似 MMLU 的中文版本,多领域、多层级问答数据集。
常见指标:Accuracy。
学习资源:
8. AlpacaEval 2.0、Arena-Hard
测试开放式对话时的输出质量、对话能力、生成一致性等。
常见指标:Win Rate 或 Pairwise Preference。
学习资源:
2.4 支持性能测试的数据集
包括 Gsm8k、OA、CEval 5-shot、MMLU 5-shot、BoolQ、HumanEval、mtbench 和 cocotest,主要使用 GSM8K 和 OA 两个数据集来测试模型的性能,请参见数据集使用获取数据集。
本文参考:
评论