将 Pickle 文件记录为 Mlflow 的一部分 运行

Log Pickle files as a part of Mlflow run

我是 运行 MLflow 实验的一部分,我想记录一些工件作为 python 泡菜。

示例:尝试不同的分类编码器,因此想将编码器对象记录为 pickle 文件。

有办法实现吗?

那里有两个功能:

  1. log_artifact - 将本地文件或目录记录为工件
  2. log_artifacts - 记录本地目录的内容

所以它会很简单:

with mlflow.start_run():
    mlflow.log_artifact("encoder.pickle")

并且您需要使用 custom MLflow model 来使用该腌制文件,如下所示:

import mlflow.pyfunc

class my_model(mlflow.pyfunc.PythonModel):
    def __init__(self, encoders):
        self.encoders = encoders

    def predict(self, context, model_input):
        _X = ...# do encoding using self.encoders.
        return str(self.ctx.predict([_X])[0])