当用户想充分了解某个模型的推理效率时,【模型管理】提供了相应的性能评估功能,支持对格式为 SavedModel、TorchScript 的模型进行全面的耗时评估并且能给出对应的模型优化建议。
SavedModel 且 TensorFlow 的版本为 1.14 ~ 2.4。
TorchScript 且 PyTorch 的版本为 1.5 ~ 1.8。登录机器学习平台,单击左侧导航栏中的【模型服务】-【模型管理】进入列表页面。
单击待查看模型的名称进入详情页面,并在模型版本列表中选中希望进行性能评估的模型版本,在右侧的【性能指标】标签页下可以发起性能评估任务。有如下几个重要的参数配置需要详细说明。
参数名称 | 参数说明 |
|---|---|
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]。完成上述表单的配置后单击【提交】创建评估任务,此时用户可以在【任务列表】的标签页下查看对应任务的状态。在【任务列表】下支持用户查看当前这一批评估任务的 Tensor 配置以及提前取消任务。
当评估任务的状态转为完成后即可回到【性能指标】页面查看性能报告。报告包含的具体评估指标详见下文。
平台支持用户提交多次评估任务,每个评估任务会产生一份评估报告。评估报告的基础是任务的 Tensor 配置,Tensor 配置相同时,所有计算规格的评估结果会聚合成一份报告;Tensor 配置不同时,最终仅会展示最新的评估任务产出的评估结果。下文将具体介绍评估报告中包含的具体指标。
这部分报告将展示模型推理时的 QPS(每秒处理的请求量)和 Latency(每次请求的耗时)随输入数据的 Batch Size 的变化,从而获得模型推理的最佳 Batch Size。
如果提交评估任务时选择了 GPU 的计算规格,评估报告中将包含 GPU 的相关指标。因为这部分指标都是基于特定的 Batch Size 和计算规格,所以用户需要完成对应的参数选择。比如在下拉列表中选择 Batch Size 为 1、规格资源为 8 vCPU + 32 GiB + ml.g1te *1 时,将会展示对应的 GPU 报告。
评估过程中会记录一定时间段内 GPU 的核心频率以及利用率的趋势。
这部分统计了 GPU 算子的耗时,由此判断哪部分的代码有优化空间。
从 CUDA API 层面展示 GPU 的各个处理环节的耗时,从而判断哪部分代码可以优化。
在评估过程中平台将尝试进行模型转换,最终向用户展示若干种转换方案,用户根据每个方案的模型推理时延决定是否真正发起转换并得到新的模型。