【已评审】新增资源协作接口支持能效调速算法的可替换性

背景

当前能效智能调速算法涉及使用机器学习相关算法,而算法所需要的训练数据和超参数均内置在BMC中,即数据和参数是固定的无法进行修改,为满足不同客户的诉求,需提供替换训练数据和模型超参数能力。

关联ISSUE

导入导出能效智能算法模型配置issue

评审点

(1)新增资源协作路径:/bmc/kepler/Chassis/:ChassisId/ThermalSubsystem/AlgorithmEngine;
(2)新增资源协作接口:bmc.kepler.Chassis.ThermalSubsystem.AlgorithmEngine,AlgorithmEngine接口下新增方法GetAlgorithmList、ImportConfig和ExportConfig;
(3)新增资源协作接口:bmc.kepler.Chassis.ThermalSubsystem.AlgorithmEngine.ModelPredictiveControl,ModelPredictiveControl接口下新增属性ImportDataStatus、ImportHyperParamStatus分别表示导入MPC的训练数据和模型超参数的生效状态;

详细描述

评审点1:新增资源协作路径:/bmc/kepler/Chassis/:ChassisId/ThermalSubsystem/AlgorithmEngine

路径描述:新增能效智能调速算法路径,统一管理能效智能算法相关配置
实现接口

实现接口 实现接口描述 CSR配置影响 持久化影响 其他影响
bmc.kepler.Chassis.ThermalSubsystem.AlgorithmEngine (1)实现GetAlgorithmList方法,提供获取当前能效智能调速的算法类型
(2)实现ImportConfig方法,提供能效智能算法导入配置的功能
(3)实现ExportConfig方法,提供能效智能算法导出配置的功能
不涉及 新增接口,无兼容性问题 不涉及
bmc.kepler.Chassis.ThermalSubsystem.AlgorithmEngine.ModelPredictiveControl 实现ImportDataStatus和ImportHyperParamStatus属性,表示导入的MPC训练数据和模型超参数的生效状态
不涉及 新增接口,无兼容性问题 不涉及

评审点2:新增资源协作接口bmc.kepler.Chassis.ThermalSubsystem.AlgorithmEngine

接口描述:此接口用于管理能效智能调速算法的通用接口

新增方法

方法名称 请求签名 请求参数描述 响应签名 响应参数描述 方法描述 访问权限
GetAlgorithmList / / as 返回当前能效智能调速算法类型列表 获取当前能效智能调速的算法类型 UserMgmt
ImportConfig sss AlgorithmType:智能调速算法类型,枚举值,取值范围:MPC
ConfigType: 导入配置类型,枚举值,MPC支持的两种导入类型:TrainingData训练数据导入、HyperParameter模型超参导入
Content: 表示导入配置的文件路径名称
TrainingData类型的配置导入,导入文件必须为csv格式, 所有训练数据必须打包为 单个 ZIP 压缩包
HyperParameter类型的配置导入,配置文件必须为json格式
u 成功返回:TaskId:任务id
错误返回:
(1)传入文件格式错误,返回错误信息“WrongFileFormat”
(2)解析传入配置,发生属性值类型或取值范围不匹配,返回错误信息“PropertyValueMismatch”
(3)其它错误导致导入数据失败,返回错误信息“InternalError”
提供能效智能算法导入配置的功能 UserMgmt
ExportConfig ss AlgorithmType:智能调速算法类型,枚举值,取值范围:MPC
ConfigType: 导出配置类型,枚举值,MPC支持导出类型:HyperParameter模型超参导出
u 成功返回:TaskId:任务id,HyperParameter类型的配置导出,导出文件为/tmp/xxx.json
错误返回:导出配置失败,返回错误信息“InternalError”
提供能效智能算法导出配置的功能 UserMgmt

评审点3:新增资源协作接口bmc.kepler.Chassis.ThermalSubsystem.AlgorithmEngine.ModelPredictiveControl

接口描述:此接口用于管理MPC算法导入超参数的生效状态,导入训练数据的生效状态

新增属性

属性名称 签名 只读 变化通知 属性描述 访问权限 属性来源 持久化类型 易变属性
ImportDataStatus s True false 表示导入MPC的训练数据的生效状态
取值值范围:
NoData 未导入
DataPending 导入不生效
DataEffective 导入且生效
ImportFailed 导入失败
默认值:NoCustomData
Read: ReadOnly 业务代码 永久持久化 false
ImportHyperParamStatus s True false 表示导入MPC的超参数的生效状态
取值值范围:
NoHyperParam 未导入
HyperParamPending 导入不生效
HyperParamEffective 导入且生效
ImportFailed 导入失败
默认值:NoHyperParam
Read: ReadOnly 业务代码 永久持久化 false

评审结论

通过,具体结论如下:

  1. 同意资源协作路径 /bmc/kepler/Chassis/:ChassisId/ThermalSubsystem/AlgorithmEngine 下新增资源协作接口 bmc.kepler.Chassis.ThermalSubsystem.AlgorithmEnginebmc.kepler.Chassis.ThermalSubsystem.AlgorithmEngine.ModelPredictiveControl
  2. 同意新增资源协作接口 bmc.kepler.Chassis.ThermalSubsystem.AlgorithmEngine,同意接口下新增方法 GetAlgorithmList/ImportConfig/ExportConfig,接口的方法详细信息见评审点 2
  3. 同意新增资源协作接口 bmc.kepler.Chassis.ThermalSubsystem.AlgorithmEngine.ModelPredictiveControl,同意接口下新增属性 ImportDataStatus/ImportHyperParamStatus,接口下属性详细信息见评审点 3

遗留问题

  1. 方法执行失败时的错误引擎需要明确,如果要新增自定义错误则需要一同进行评审
  2. zip 格式是个什么格式?字符串有 zip 格式吗?

1、已添加方法执行失败的错误返回信息说明,使用的错误信息无需新增
2、Content的参数说明已更新,明确了导入不同的配置类型,要求不同的文件格式或压缩包格式

**ImportConfig**
AlgorithmType:智能调速算法类型,枚举值,取值范围:MPC
ConfigType: 导入配置类型,枚举值,MPC支持的两种导入类型:TrainingData训练数据导入、HyperParameter模型超参导入
Content: 表示导入配置的文件路径,TrainingData类型的配置导入,训练数据必须被压缩为zip格式,HyperParameter类型的配置导入,配置文件必须为json格式
响应参数:
成功返回:TaskId:任务id
错误返回:
(1)传入文件格式错误,返回错误信息“WrongFileFormat”
(2)解析传入配置,发生属性值类型或取值范围不匹配,返回错误信息“PropertyValueMismatch”
(3)其它错误导致导入数据失败,返回错误信息“InternalError”	
**ExportConfig**	
AlgorithmType:智能调速算法类型,枚举值,取值范围:MPC
ConfigType: 导出配置类型,枚举值,MPC支持导出类型:HyperParameter模型超参导出
响应参数:
成功返回:TaskId:任务id
错误返回:导出配置失败,返回错误信息“InternalError”