使用 mlflow 为在线学习模型提供服务

Serve online learning models with mlflow

我不清楚是否可以使用 mlflow 来服务基于其先前预测不断发展的模型。

我需要能够查询模型以便对数据样本进行预测,这是 mlflow 服务的基本用途。但是,我也希望模型在看到新数据后在内部进行更新。

是否可能或是否需要 FR?

我认为您应该能够通过实施自定义 python 模型或自定义风格来做到这一点,如 documentation 中所述。在这种情况下,您需要创建一个继承自 mlflow.pyfunc.PythonModel 的 class,并实现 predict 方法,在该方法中您可以自由地执行任何操作。这只是文档中的简单示例:

class AddN(mlflow.pyfunc.PythonModel):

    def __init__(self, n):
        self.n = n

    def predict(self, context, model_input):
        return model_input.apply(lambda column: column + self.n)

然后可以像普通模型一样保存和加载此模型:

# Construct and save the model
model_path = "add_n_model"
add5_model = AddN(n=5)
mlflow.pyfunc.save_model(path=model_path, python_model=add5_model)

# Load the model in `python_function` format
loaded_model = mlflow.pyfunc.load_model(model_path)