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