基于一定的软硬件环境,对BBS中的8个模型进行PAI-Blade加速的性能和精度测试。

系统环境

  • 测试硬件
    • CPU Intel(R) Xeon(R) Platinum 8163 CPU @ 2.50GHz
    • GPU Nvidia Tesla T4 (75W)
  • 测试软件
    • CentOS 7
    • CUDA 10.0
    • cuDNN 7.5.0
    • TensorRT 5.0.2.6
    • ONNX 1.2.1
    • TensorFlow 1.13.2
    • Torch 1.2.0

模型列表

PAI-Blade BBS中共包含8个模型,分别介绍如下:
模型 描述 Source Reference
CRNN(Convolutional Recurrent Neural Network) 用于图像序列识别的卷积循环神经网络,TensorFlow模型。 Source Reference
PoseNet 用于人体姿态评估的全卷积网络,可以处理任意尺寸的输入图像,TensorFlow模型。 Alibaba In-house Alibaba Damo Israel Lab
OCRDet 用于图像文字检测的卷积神经网络,可以处理任意尺寸的输入图像,TensorFlow模型。 Alibaba In-housereference Reference
Bert 用于文本匹配的Bert模型。 Alibaba In-housereference Reference
MobilenetV1 用于ImageNet图像分类的卷积神经网络,TensorFlow模型。 Source Reference
MobilenetV1_050 用于ImageNet图像分类的卷积神经网络,TensorFlow模型。 Source Reference
RefineDet 用于Logo检测的卷积神经网络,Caffe模型。 Source Reference
InceptionV2 用于ImageNet图像分类的卷积神经网络,ONNX模型。 Source Reference

各模型测速输入的Shape

  • CRNN:‘image:0’ (32, 32, 200, 1)
  • PoseNet:‘image:0’ (1, 400, 600, 3)
  • OCRDet:‘image:0’ (1, 480, 480, 3)‘true_image_shape:0’ (1, 3)
  • Bert:‘input_ids_a_1:0’ (32, 128)‘input_ids_b_1:0’ (32, 128)‘input_mask_a_1:0’ (32, 128)‘input_mask_b_1:0’ (32, 128)‘segment_ids_a_1:0’ (32, 128)‘segment_ids_b_1:0’ (32, 128)
  • MobilenetV1:‘input:0’ (32, 224, 224, 3)
  • MobilenetV1_050:‘input:0’ (32, 160, 160, 3)
  • RefineDet:‘data’ (1, 3, 512, 512)
  • InceptionV2:‘data_0’ (1, 3, 224, 224)

速度测试结果

基于上述软件及硬件环境,得出如下性能测试结果:
  • TensorFlow Models
    模型 TensorFlow TensorFlow XLA TensorRT Blade
    CRNN 31.20 ms 31.23 ms/1.00 X 21.79 ms/1.43 X 13.47 ms/2.32 X
    PoseNet 25.41 ms 21.85 ms/1.16 X 无优化 8.93 ms/2.84 X
    OCRDet 117.73 ms 90.67 ms/1.30 X 无优化 66.85 ms/1.76 X
    Bert 551.79 ms 466.95 ms/1.18 X 609.20 ms/0.91 X 322.11 ms/1.71 X
    MobilenetV1 31.78 ms 25.97 ms/1.22 X 11.40 ms/2.79 X 11.47 ms/2.77 X
    MobilenetV1_050 8.99 ms 7.38 ms/1.22 X 4.78 ms/1.88 X 4.86 ms/1.84 X
    上表中PoseNet和OCRDet模型输入均为任意尺寸图像。TF2TRT(TensorRT5.0) 不能很好地处理输入为任意大小的模型,该类模型在进行TensorRT优化后的实际推理过程中,如果遇到不同尺寸的输入,则会造成计算错误。
  • Caffe Model
    模型 Caffe Blade
    RefineDet 64.94 ms 12.82 ms
  • ONNX Model
    模型 Caffe2 without ONNX Optimization Caffe2 with ONNX Optimization Blade
    InceptionV2 11.43 ms 11.41 ms 3.72 ms

精度测试结果

Bert、MobilenetV1及MobilenetV1_050模型的TensorRT和Blade优化均采用INT8量化的方式,其优化前后的精度测试结果如下表所示。
模型 TensorFlow TensorRT Blade Blade*
Bert 85.47% 85.47% 85.17%(1.71 X) 76.37%(1.76 X)
MobilenetV1 71.01% 69.43% 70.51% (2.77 X) 69.43%(2.77 X)
MobilenetV1_050 59.20% 51.84% 56.48%(1.84 X) 51.84% (1.84 X)
  • PAI-Blade在大部分情形下支持用户不提供任何有关模型信息的配置即可完成整个优化流程,但是并非意味着用户无法干预优化过程或为PAI-Blade提供对结果的偏好。对于某些模型,使用O2级别优化可以获得更大加速,但是同时可能造成在测试数据集上精度的损失。为此,PAI-Blade提供了一个优化开关accuracy_keeper(详细请参见高级配置说明),您可以用此告知PAI-Blade,相较于加速比,对优化结果的精度更为在意。
  • 上表中的Blade列为accuracy_keeper选项开启时得到的优化模型在测试集上的精度,Blade*列为accuracy_keeper选项关闭时的精度。
  • accuracy_keeper默认为关闭状态。如果开启,则通常能够更好地保证量化后的模型精度,与此同时可能会在一定程度上影响加速(例如上表中Bert模型)。但是对加速效果的影响并不是绝对的,例如Mobilenet的两个模型中,在同等加速比的前提下,accuracy_keeper选项开启令用户获得了更好的精度结果。
    说明 上表中Bert模型进行TensorRT优化时未能得到有效的INT8量化模型,因此不存在精度损失,同时也未能获得有效的加速收益。