MindIE BenchMark
【摘要】 1 BenchMark工具服务化MindIE Benchmark工具是通过部署昇腾服务化配套包后,以调用终端命令的方式测试大语言模型在不同配置参数下的推理性能和精度,并通过表格的形式展示模型在各个阶段的推理耗时(例如FirstTokenTime、DecodeTime等),以及对应时延的平均值、最小值、最大值、75分位(P75)、90分位(P90、SLO_P90)和99分位(P99)概率统计值...
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接口”章节。
-
支持文本到文本的异步推理。
说明:
-
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(中文评测数据集)为例说明。
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),即答案完全匹配的准确率。
-
学习资源:
3. MATH
-
数学竞赛难度级别数据集,更高阶的数学题目。
-
常见指标:EM。
-
学习资源:
4. HumanEval
-
测试模型的代码生成能力,需要完成函数体以通过单元测试。
-
常见指标:Pass@1,一次提交就能通过的概率。
-
学习资源:
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两个数据集来测试模型的性能,请参见数据集使用获取数据集。
本文参考:
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)