log_model#

log_model(sktime_model, artifact_path, conda_env=None, code_paths=None, registered_model_name=None, signature=None, input_example=None, await_registration_for=None, pip_requirements=None, extra_pip_requirements=None, serialization_format='pickle', **kwargs)[source]#

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

参数:
sktime_model拟合好的 sktime 模型

拟合好的 sktime 模型对象。

artifact_pathstr

相对于运行的 Artifact 路径,用于保存模型。

conda_envUnion[dict, str], optional (default=None)

可以是 Conda 环境的字典表示,也可以是 conda 环境 yaml 文件的路径。

code_pathsarray-like, optional (default=None)

Python 文件依赖项(或包含文件依赖项的目录)的本地文件系统路径列表。加载模型时,这些文件将添加到系统路径的开头。

registered_model_namestr, optional (default=None)

如果提供,则在 registered_model_name 下创建一个模型版本,如果不存在具有给定名称的注册模型,也会创建该模型。

signaturemlflow.models.signature.ModelSignature, optional (default=None)

模型签名 mlflow.models.ModelSignature 描述了模型的输入和输出 Schema。模型签名可以从具有有效模型输入(例如,省略目标列的训练数据集)和有效模型输出(例如,在训练数据集上生成的模型预测)的数据集中推断出来,例如

from mlflow.models.signature import infer_signature
train = df.drop_column("target_label")
predictions = ... # compute model predictions
signature = infer_signature(train, predictions)

警告

如果使用 sktime 模型执行概率预测(predict_interval, predict_quantiles),由于使用这些方法时 Pandas MultiIndex 列类型的原因,返回的预测对象的签名将无法正确推断。infer_schema 如果使用模型的 pyfunc 类型,则可以正常工作。pyfunc 类型的模型支持 sktime 预测方法 predict, predict_interval, predict_quantilespredict_var,而 predict_probapredict_residuals 目前不支持。

input_exampleUnion[pandas.core.frame.DataFrame, numpy.ndarray, dict, list, csr_matrix, csc_matrix], optional
(default=None)

输入示例提供一个或多个有效模型输入的实例。该示例可用作如何为模型提供数据的提示。给定的示例将被转换为 Pandas DataFrame,然后使用 Pandas 的 split-oriented 格式序列化为 json。字节数据为 base64 编码。

await_registration_forint, optional (default=None)

等待模型版本创建完成并处于 READY 状态的秒数。默认情况下,函数会等待五分钟。指定 0 或 None 可跳过等待。

pip_requirementsUnion[Iterable, str], optional (default=None)

可以是 pip 需求字符串的可迭代对象(例如 [“sktime”, “-r requirements.txt”, “-c constraints.txt”]),也可以是本地文件系统上 pip 需求文件的字符串路径(例如 “requirements.txt”)

extra_pip_requirementsUnion[Iterable, str], optional (default=None)

可以是 pip 需求字符串的可迭代对象(例如 [“pandas”, “-r requirements.txt”, “-c constraints.txt”]),也可以是本地文件系统上 pip 需求文件的字符串路径(例如 “requirements.txt”)

serialization_formatstr, optional (default=”pickle”)

用于序列化模型的格式。应为 “pickle” 或 “cloudpickle” 格式之一。

kwargs

mlflow.models.model.Model 的附加参数

返回:
一个 ModelInfo 实例,包含
已记录模型的元数据。

另请参阅

MLflow

参考资料

[1]

https://www.mlflow.org/docs/latest/python_api/mlflow.models.html#mlflow.models.Model.log

>>> import mlflow  
>>> from mlflow.utils.environment import _mlflow_conda_env  
>>> from sktime.datasets import load_airline  
>>> from sktime.forecasting.arima import ARIMA  
>>> from sktime.utils import mlflow_sktime  
>>> y = load_airline()  
>>> forecaster = ARIMA(  
...     order=(1, 1, 0),
...     seasonal_order=(0, 1, 0, 12),
...     suppress_warnings=True)
>>> forecaster.fit(y)  
ARIMA(...)
>>> mlflow.start_run()  
>>> artifact_path = "model"  
>>> model_info = mlflow_sktime.log_model(
...     sktime_model=forecaster,
...     artifact_path=artifact_path)