使用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信息,目前該參數均為空。