【发布时间】:2020-12-25 23:51:06
【问题描述】:
我已使用 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
【问题讨论】: