回到首页

MLPerf推理测试论文阅读笔记

ML(Machine Learning)系统牵涉到ML任务、模型、数据集、框架、工具集、库、架构和推理引擎,其推理性能的评估难度较高。MLPerf的目的是达成有代表性的ML模型、指标、任务和规则的共识,它是语义层级的基准,规定有任务和规则,但实现留给提交者来做,只要模型在数学层面与规则等价就合法。MLPerf计划增加推荐系统和时间序列方面的模型和BUST场景。

移动端应用和预处理时间指标反映ML流水线的性能

没有最优的模型,每个模型是准确度、内存要求和计算复杂度之间的权衡

ML系统从上到下的组件:

  • 1.应用领域:计算机视觉,语音,语言翻译,自动驾驶
  • 2.数据集:ImageNet,COCO,VOC,KITTI,WMT
  • 3.模型:ResNet, GoogLeNet, SqueezeNet, MobileNet, SSD, GNMT
  • 4.框架:TF(TensorFlow), PTH(PyTorch), Caffe, MXNet, CNTK, PaddlePaddle, Theano
  • 5.格式:NNEF, ONNX
  • 6.编译器:XLA,nGraph, Glow, TVM
  • 7.优化库:MKL DNN,CUDA,CuBLAS, OpenBLAS,Eigen
  • 8.操作系统:Linux, Windows, MacOS, Android, RTOS
  • 9.目标硬件:CPUs, GPUs, TPUs, NPUs, DSPs, FPGAs, Accelerators
  • 另外补充多个优化库:cuDNN, Intel MKL和FBGEMM,多种推理运行时:Apple CoreML, Intel OpenVino, NV(Nvidia) TRT(TensorRT), ONNX Runtime, Qualcomm SNPE和TF-Lite,TF模型转换为TF-Lite时,TF中的NMS(非极大值抑制)操作只能换算为TF-Lite中的fast NMS,导致模型准确度下降,反映不同ML系统采用技术对基准结果的影响,说明基准的难度。

    MLPerf提供FP32精度的TF、PTH、ONNX模型。准确度高但计算量大的Resnet-50v1.5和牺牲准确度换取速度、计算量小的MobileNet-v1-224,Mobile相比Resnet减少6.1倍的参数和6.8倍的操作,目标检测领域的基准采用轻量(MibileNet-v1-1.0)和重量(ResNet-34)两种骨架使用SSD做目标检测的模型,翻译领域参考模型GNMT(Neural Machine Translation)

    四个场景:模拟移动端设备的单流模式(SS)、自动驾驶车辆的多流模式(MS)、机器人的服务器模式(S)和云配件的离线模式(O)

    不深究长尾效应、margin和confidence等概念

    MLPerf推理测试流程:LoadGen请求SUT(System Under Test)加载数据,SUT加载数据到内存中,加载完数据通知LoadGen发送请求。LoadGen请求SUT做推理,推理结果返回LoadGen,LoadGen记录输出供准确度脚本读取和验证合法性。
    这个过程中,数据集、LoadGen和准确度脚本是固定的,SUT由提交者自行实现。SUT实现过程中禁止的技术:

    LoadGen是装载SUT衡量性能的MLPerf推理流量生成器,运行开始读取配置文件,运行过程中收集记录、调试和后处理数据的信息,最后报告数据、总结结果、确定基准过程是否合法。两种操作模式:使用全部数据的准确度模式和使用足够多数据的性能模式。支持Python、C++和C

    MLPerf推理测试结果的提交包含SUT相关信息:性能分数、基准代码,着重说明SUT主要配置特点的系统描述文件和LoadGen日志文件

    开放和封闭division使用相同的数据集。封闭division促使不同系统的比较,开放division鼓励ML系统、算法、优化和软硬件协同设计的创新,允许任意的技术包括重训练,其结果不与任何其他提交结果比较,但需要指出它相对于对应的封闭division中的提交的变化。根据技术成熟度,提交分为三种:可用、预览和RDO(研究、开发及其他)

    结果核查采用的技术:

    MLPerf推理不提供分数,因为每个ML系统在不同场景下的价值不同,不能凭主观衡量孰轻孰重

    使用参数数量衡量网络复杂度是简化手段,如SSD-ResNet34的计算量是SSD-MobileNetv1的175倍,但实际的吞吐量只是后者的1/60。

    通过LoadGen的准确度核查和提交者核查脚本审计和复现推理测试结果,自动发现基准中不合法之处,减少审核的人力成本。

    相关工作:

    人工智能系统的准确程度和性能表现有取舍权衡。MLPerf在4个场景中的S、MS、O中引入batch的概念。更多公司研发某一ML任务定制的推理芯片。不同ML应用的准确率、延迟和成本的权衡是不同的,针对某一应用需有独特的考虑和设置。

    评:MLPerf提出的推理测试的流程算是比较成熟的,ML任务分不同场景测试的想法不错,对实行测试使用的软件工具链有清晰的认识,剖析影响测试系统基准表现的因素,但是相同的ML应用在不同的硬件上不同的代码实现下有个分数的比较应该可行。

    本文创建于2021年8月19日15点06分,修改于2021年8月19日15点06分