You need to enable JavaScript to run this app.
导航

模型的性能评估及优化

最近更新时间2022.04.14 17:08:23

首次发布时间2021.12.22 23:09:45

当用户想充分了解某个模型的推理效率时,【模型管理】提供了相应的性能评估功能,支持对格式为 SavedModelTorchScript 的模型进行全面的耗时评估并且能给出对应的模型优化建议。

相关概念
使用前提
  1. 支持性能评估的模型:
    • 格式为 SavedModel 且 TensorFlow 的版本为 1.14 ~ 2.4
    • 格式为 TorchScript 且 PyTorch 的版本为 1.5 ~ 1.8
  2. 发起性能评估之前,需要填写模型的 Tensor 配置。
  3. 存在未结束的评估任务时无法发起新的评估任务。
操作步骤
  1. 登录机器学习平台,单击左侧导航栏中的【模型服务】-【模型管理】进入列表页面。

  2. 单击待查看模型的名称进入详情页面,并在模型版本列表中选中希望进行性能评估的模型版本,在右侧的【性能指标】标签页下可以发起性能评估任务。有如下几个重要的参数配置需要详细说明。

    参数名称参数说明
    Tensor 配置* 评估任务所需的模型输入输出配置。必填
    * 此处会自动填充【模型属性】中的 Tensor 配置,用户需要设定 Input Tensor 第 1 维(Batch Size)的最小值 / 最大值用于分析模型的推理效率随 Batch Size 的变化。
    * Tensor 的每个维度的数值必须大于 0,除了第 1 维 Batch Size 之外的其它维度必须相等。
    计算规格* 评估任务所需的计算资源,多选。必填
    * 支持最多选择 5 个规格同时评估,选择的规格越多评估的用时越长。
    * 由于在超大的内存和多张 GPU 上的评估对结果没有明显影响,所以仅保留了单张 GPU 及 128GiB 内存以下的计算规格。
    • 以下图中的 InceptionV3 图像分类模型为例。
      • 该模型输入是一张图片,对应 Tensor 配置中仅包含一个 Input Tensor。
      • Tensor 的名称为 serving_default_input_1:0,精度为 Float
      • 输入图片的宽高为 299 x 299,通道数为 3 的 RGB 图片,而且想要评估的 Batch Size 范围是 1 ~ 3,所以 Input Tensor 的最小尺寸设置为 [1,299,299,3],最大尺寸设置为 [3,299,299,3]
      • 因为要想在 Tesla-T4 和 Telsa-V100 两种 GPU 的计算规格上评估模型的推理效率,所以勾选了对应的计算规格。

    image.png

  3. 完成上述表单的配置后单击【提交】创建评估任务,此时用户可以在【任务列表】的标签页下查看对应任务的状态。在【任务列表】下支持用户查看当前这一批评估任务的 Tensor 配置以及提前取消任务。

  4. 当评估任务的状态转为完成后即可回到【性能指标】页面查看性能报告。报告包含的具体评估指标详见下文。

性能评估报告

平台支持用户提交多次评估任务,每个评估任务会产生一份评估报告。评估报告的基础是任务的 Tensor 配置,Tensor 配置相同时,所有计算规格的评估结果会聚合成一份报告;Tensor 配置不同时,最终仅会展示最新的评估任务产出的评估结果。下文将具体介绍评估报告中包含的具体指标。

Batch Size 分析

这部分报告将展示模型推理时的 QPS(每秒处理的请求量)和 Latency(每次请求的耗时)随输入数据的 Batch Size 的变化,从而获得模型推理的最佳 Batch Size。

  • 一条折线代表一种计算规格。
  • 支持折线图和表格两种展示形式,前者支持用户按需勾选不同的计算规格查看对应的结果,后者支持按照不同维度做排序。

image.png

image.png

GPU 分析

如果提交评估任务时选择了 GPU 的计算规格,评估报告中将包含 GPU 的相关指标。因为这部分指标都是基于特定的 Batch Size 和计算规格,所以用户需要完成对应的参数选择。比如在下拉列表中选择 Batch Size 为 1、规格资源为 8 vCPU + 32 GiB + Tesla-V100 *1 时,将会展示对应的 GPU 报告。

image.png

核心频率及利用率

评估过程中会记录一定时间段内 GPU 的核心频率以及利用率的趋势。

image.png

Kernel 耗时

这部分统计了 GPU 算子的耗时,由此判断哪部分的代码有优化空间。

  • 支持饼图和表格两种展示形式。
  • 支持查看 Timeline 原始数据。

image.png

image.png

CUDA API 耗时

从 CUDA API 层面展示 GPU 的各个处理环节的耗时,从而判断哪部分代码可以优化。

  • 支持饼图和表格两种展示形式。
  • 支持查看 Timeline 原始数据。

image.png

image.png

模型转换建议

在评估过程中平台将尝试进行模型转换,最终向用户展示若干种转换方案,用户根据每个方案的模型推理时延决定是否真正发起转换并得到新的模型。

  • 支持 TensorRT、XLA(TensorFlow)、Torch FP16,Bert 优化四种转换方式。
  • 支持一键发起单个模型或者所有模型的转换,发起转换后会在【任务列表】中产生一条新的转换任务。
  • 待任务执行完成将在模型版本列表中新增对应的模型版本,一个转换方案对应一个新的模型版本。
  • 转换建议中只包含简单的推理时延,但转换后的模型将自带完整的【性能指标】供用户查看。

image.png