使用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信息,目前该参数均为空。 |