gpt4 book ai didi

python - 如何在运行工件内的 mlflow 中记录自定义模型?

转载 作者:行者123 更新时间:2023-12-05 06:11:51 26 4
gpt4 key购买 nike

我已使用 MLProject 将我的模型存储在 Github 中,以便其他人可以以各种变体运行它。现在我想将运行创建的模型记录为工件,以便用户可以使用 MLModel 加载它们。由于我的模型是定制的,所以这不像 spark 这样的口味那么简单。我首先在本地保存并加载模型,以确保我的环境、模型和工件代码有效。现在我想将模型的登录包含在从 GitHub 运行的 MLProject 中。由于我所知道的文档中没有示例,因此我想寻求帮助并建议这可能是对文档或示例的一个很好的补充。

在代码方面,我在最后的 mlrun 中写了以下内容:

模型取决于项目运行中指定的参数

 ETS_Exogen = ETS_Exogen(params=res.x, before=before,after=after)

使用先前定义的模型、环境和工件记录模型

mlflow.pyfunc.log_model(python_model=ETS_Exogen, conda_env=conda_env,artifacts=artifacts)

mlflow.pyfunc.log_model 是否会自动将模型记录到运行的工件中,或者我是否需要定义一个 artifact_path?我应该使用 mlflow.pyfunc.save_model 吗?我定义了工件路径,以便从 GitHub 存储库中收集它们,如下所示:

artifacts = { "exogen_variables":os.path.join(os.path.dirname(os.path.abspath(file)),"exogen_variables.csv") }

这是正确的吗?自定义模型文档的链接: https://mlflow.org/docs/latest/python_api/mlflow.pyfunc.html#pyfunc-create-custom-workflows

最佳答案

logging a model 需要一个路径,Standard是存放在artifacts下的文件夹models中。命令如下:

mlflow.pyfunc.log_model(artifact_path="model",python_model=ETS_Exogen,conda_env=conda_env)

以下是如何从 http 服务器向模型中添加数据。不要使用工件,而是在上下文中直接使用 Pandas 加载它。

def load_context(self, context):
import numpy as np
import pandas as pd #data wrangeling
url_to_exogen_raw = 'https://raw.githubusercontent.com/MatthiasHerp/ETS_Ex_BA_MLFlow/master/exogen_variables.csv'
self.exogen = pd.read_csv(url_to_exogen_raw, index_col='date')

关于python - 如何在运行工件内的 mlflow 中记录自定义模型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63779580/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com