部署和 MLOps#

本参考列出了 sktime 与部署和 MLOps 解决方案的集成。

目前,sktime 原生支持与 mlflow 的集成。

请参阅 examples/mlflow 查看 notebook 教程。

MLflow#

sktime.utils.mlflow_sktime

mlflow_sktime 模块为 sktime 预测器提供了 MLflow API。

此模块以以下格式导出 sktime 模型

sktime (原生) 格式

这是可以加载回 sktime 的主要风格,它内部依赖 pickle 来序列化模型。

mlflow.pyfunc

用于基于通用 pyfunc 的部署工具和批量推理。

模型的 pyfunc 风格支持 sktime 预测方法 predictpredict_intervalpredict_probapredict_quantilespredict_var

利用加载为 pyfunc 类型的 sktime 模型进行预测的接口需要将外生回归变量作为 Pandas DataFrame 传递给 pyfunc.predict() 方法(如果未使用外生回归变量,则必须传递一个空的 DataFrame)。传递给预测方法的配置(预测方法和参数值)由一个字典定义,该字典将保存为拟合的 sktime 模型实例的属性。如果未定义预测配置,pyfunc.predict() 将返回 sktime predict 方法的输出。请注意,对于 pyfunc 风格,预测范围 fh 必须传递给 fit 方法。

pyfunc 风格的预测方法和参数值可以通过两种方式定义:如果将参数值传递给 pyfunc.predict(),则为 Dict[str, dict] 格式,例如 {"predict_method": {"predict": {}, "predict_interval": {"coverage": [0.1, 0.9]}}}。如果使用预测方法的默认参数,则为 Dict[str, list] 格式,例如 {"predict_method": ["predict", "predict_interval"]}(注意:当包含 predict_proba 方法时,必须遵循前一种方法,因为必须由用户提供 quantiles 参数)。如果未定义预测配置,pyfunc.predict() 将返回 sktime predict() 方法的输出。

get_default_pip_requirements([...])

创建 MLflow 模型默认 pip 依赖列表。

get_default_conda_env([include_cloudpickle])

返回 MLflow 模型默认 Conda 环境。

save_model(sktime_model, path[, conda_env, ...])

将 sktime 模型保存到本地文件系统上的路径。

log_model(sktime_model, artifact_path[, ...])

将 sktime 模型记录为当前运行的 MLflow artifact。

load_model(model_uri[, dst_path])

从本地文件或运行加载 sktime 模型。