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
维度 |
Question |
A/B/C/D |
Answer |
农学/agronomy |
在农业生产中被当作极其重要的劳动对象发挥作用,最主要的不可替代的基本生产资料是 |
A农业生产工具,B土地,C劳动力,D资金 |
B |
农学/agronomy |
在孵化室温度为24~26°C的条件下,立体孵化器孵化鸡蛋的最适温度为 |
36°C,37.8°C,36.5°C,37°C, |
B |
解剖/anatomy |
上消化道是指 |
从口腔到胃,口腔和咽,从口腔到食管,从口腔到十二指肠, |
D |
解剖/anatomy |
心室舒张期关闭的瓣膜为 |
肺动脉瓣,三尖瓣,二尖瓣,主动脉瓣 |
B |
古文字/ancient_chinese |
“关雎乐而不淫,哀而不伤。”中的“淫”意思是 |
不正当的,浸润,过分、过度,淫邪 |
C |
古文字/ancient_chinese |
说文四大家”中注重分析字义来源和发展的是, |
王筠,朱骏声,桂馥,段玉裁 |
B |
arts/艺术 |
电视剧《京华烟云》根据同名小说改编,原作作者是 |
沈从文,林语堂,周作人,老舍 |
B |
arts/艺术 |
梵高是哪个国家著名画家 |
英国,丹麦,荷兰,法国 |
C |
arts/艺术 |
摄影艺术中,用以表现某一个被摄对象的全貌和它所处的环境为目的,一般应用 |
,全景,远景,中景,近景, |
A |
astronomy/天文学 |
2019年1月12日,中国天文学会和北京天文馆在京联合宣布启动国际天文学联合会(IAU)发起的“同一天空下”全球天文行动(中国大陆地区),以纪念IAU成立多少周年 |
60,200,80,100 |
D |
astronomy/天文学 |
2017年6月15日,硬X射线调制望远镜在酒泉卫星发射中心发射升空,弥补了我国空间X射线探测的空白,这个望远镜名字是, |
悟空,墨子,天眼,慧眼 |
D |
business_ethics/商业伦理 |
经济活动中的信用是不同所有者之间商品和货币资金的借贷以及赊销预付等行为,它是指一种, |
间接信用,信用行为,借贷行为,直接信用 |
C |
chinese_civil_service_exam/中文_公务员_考试 |
老王在A市有两套住房,一套自己居住,另一套闲置。老张是老王的朋友,一直居住在B市,现由于工作原因,需要在A市长期租住。老张希望租老王闲置的那套房子,老王说:“我女儿两个月后大学毕业,如果她毕业后不回A市工作生活,我就把房予出租给你。”下列选项中,哪些为真,可以证明老王没有说真话?(1)老王的女儿毕业后留在C市工作生活,老王拒绝把房子租给老张(2)老王的女儿毕业后回到A市工作生活,老王把房子租给老张(3)老王的女儿毕业后回到A市工作生活,老王拒绝把房子租给老张 |
,(1)(2),(1)(2)(3),(2)(3),(1) |
D |
chinese_civil_service_exam/中文_公务员_考试 |
某单位组织职工分小组进行摘草莓趣味比赛,甲、乙、丙3人分属3个小组。3人摘得的草莓数量情况如下:甲和属于第3小组的那位摘得的数量不一样,丙比属于第1小组的那位摘得少,3人中第3小组的那位比乙摘得多。若将3人按摘得的草莓数量从多到少排列,正确的是 |
,丙、甲、乙,甲、丙、乙,乙、甲、丙,甲、乙、丙, |
B |
chinese_driving_rule/中文驾驶规则 |
以欺骗、贿赂等不正当手段取得驾驶证被依法撤销驾驶许可的,多长时间不得重新申请驾驶许可 |
5年内,终身,3年内,1年内 |
C |
chinese_history/中国历史 |
随着中国民族资本主义产生和发展,工商业者群体意识逐渐形成,作为一种新的社会力量,工商业者在创办实业、抵制洋货、收回利权、立宪运动、民主革命、抗日救亡等众多社会事务中日益显示出自身的实力和存在价值。对此,下列历史解释正确的是, |
工商业者是倡导革命的新中坚力量,工商业者依旧属于传统的社会群体,工商业者投身社会事务是有利可图,工商业者推动了近代中国社会发展, |
D |
... |
|||
journalism/新闻 |
法西斯的新闻事业属于什么阶段, |
自由主义,社会主义,集权主义,集团垄断资本主义 |
C |
professional_medicine/专业_医学 |
下列呼吸系统疾病中主要表现为呼气性呼吸困难的是, |
肺气肿,肺纤维化,肺炎,肺水肿 |
A |
评测方法,调用大模型,输入题目,解析大模型返回结果,与测试集中正确结果比较,如果正确得1分,否0分,然后计算平均值。
其它主要 metric 与数据集的简要说明及学习资源:
- MMLU (Measuring Massive Multitask Language Understanding)
- 测量模型在 57 个学科(包括 STEM、人文、社科等)的多任务理解能力。
- 常见指标:**准确率 (Accuracy)**。
- 学习资源:
- MMLU 官方论文:Hendrycks et al., 2020
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或其他准确率。
- 学习资源:
- MBPP 项目地址
6. C-Eval
- 中文大模型综合评测,多学科、多层级知识问答。
- 常见指标:Accuracy。
- 学习资源:
- Huang et al., 2023, "C-Eval"
7. CMMLU
- 类似 MMLU 的中文版本,多领域、多层级问答数据集。
- 常见指标:Accuracy。
- 学习资源:
- CMMLU GitHub
8. AlpacaEval 2.0、Arena-Hard
- 测试开放式对话时的输出质量、对话能力、生成一致性等。
- 常见指标:Win Rate 或 Pairwise Preference。
- 学习资源:
- AlpacaEval GitHub
- Arena 测试方案(参考 LMSys 团队)
2.4 支持性能测试的数据集
包括Gsm8k、OA、CEval 5-shot、MMLU 5-shot、BoolQ、HumanEval、mtbench和cocotest,主要使用GSM8K和OA两个数据集来测试模型的性能,请参见数据集使用获取数据集。
本文参考: