使用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 | 測試數據來源,包括如下取值:
|
|
shape_variation | 輸入形狀的變化情況,包括如下取值:
|
|
message | 如果PAI-Blade推斷測試數據失敗,則會輸出相關報錯信息。 | |
test_data_info | 測試數據信息,包括形狀,數據類型等信息。 | |
optimizations | name | 優化項名稱。 |
status | 優化是否生效,包括如下取值:
|
|
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信息,目前該參數均為空。 |