使用PAI-Blade优化模型后,系统会输出优化报告。本文详细介绍优化报告的结构及字段含义。

调用blade.optimize优化模型后,会产生一个JSON格式的优化报告,其结构如下所示。
Report: {
  // 软件环境,包括框架、CUDA等。
  "software_context": [
    {
      "software": "tensorflow",
      "version": "1.15.0"
    },
    {
      "software": "cuda",
      "version": "9.0.176"
    }
  ],
  // 硬件环境。
  "hardware_context": {
    "device_type": "gpu",
    "microarchitecture": "T4"
  },
  "user_config": "",
  // 诊断信息。
  "diagnosis": {
    "model": "tmp_graph.pbtxt",           
    "test_data_source": "user provided",  
    "shape_variation": "dynamic",         
    "message": "",
    "test_data_info": "input_ids_a_1:0 shape: (1, 9240) data type: int32"
  },
  // 产生正优化的优化项列表。
  "optimizations": [
    {
      "name": "TfStripUnusedNodes", 
      "status": "effective",        
      "speedup": "na",              
      "pre_run": "na",              
      "post_run": "na"              
    },
    {
      "name": "TfAutoMixedPrecisionGpu",
      "status": "effective",
      "speedup": "1.42",
      "pre_run": "9.35 ms",
      "post_run": "6.59 ms"
    }
  ],
  // 端到端优化结果。
  "overall": {
    "baseline": "10.00 ms",   
    "optimized": "4.38 ms",   
    "speedup": "2.28"         
  },
  // 模型信息。
  "model_info": {
    "input_format": "frozen_pb"  
  },
  
  // 兼容性列表。
  "compatibility_list": [
    {
      "device_type": "gpu",
      "microarchitecture": "T4"
    }
  ],
  "model_sdk": {}
}
报告中的字段含义如下表所示。
字段 描述
software_context 软件环境,包括框架、CUDA等。
hardware_context 硬件环境信息,包括设备类型、规格等。
user_config 用户配置信息。在PAI-Blade中,该参数为空。
diagnosis model 模型文件名称。
test_data_source 测试数据来源,包括如下取值:
  • user provided:表示测试数据是由用户提供的。
  • blade deduced:表示测试数据是由PAI-Blade推断出的。
shape_variation 输入形状的变化情况,包括如下取值:
  • static
  • multiple_static_shapes
  • dynamic
message 如果PAI-Blade推断测试数据失败,则会输出相关报错信息。
test_data_info 测试数据信息,包括形状,数据类型等信息。
optimizations name 优化项名称。
status 优化是否生效,包括如下取值:
  • effective:生效
  • ineffective:无效
speedup 加速比,计算公式为speedup = pre_run / post_run
pre_run 优化前的速度。
post_run 优化后的速度。
overall baseline 加速前的延迟。
optimized 加速后的延迟。
speedup 加速比,计算公式为speedup = baseline / optimized
model_info input_format 原始模型格式。
compatibility_list 兼容性列表,即优化结果必须在列表中的设备上才能正常执行,并且性能达到预期。
model_sdk 模型部署需要的额外SDK信息,目前该参数均为空。