在 mlflow.yml 中指定主机和端口并运行“kedro mlflow ui”,但主机和端口仍然默认localhost:5000不变

问题描述

我构建示例kedro项目参考this page, 并在 mlflow.yml 中将主机指定为我的全局 IP 地址。 但是当我点击“kedro mlflow ui”命令时,它仍然听本地。 即使我只在 mlflow.yml 中将端口指定为 5001(非认),它也不起作用。 谁能帮帮我。

python 版本:3.6.8 (anaconda) kedro 版本:0.17.0 kedro mlflow 版本:0.6.0

解决方法

(免责声明:我是 kedro-mlflow 的作者)

嗨,

您没有做错任何事情,它似乎是一个错误(感谢您报告它!):kedro mlflow ui 命令不会从配置中检索 uiport 参数,正如我们所看到的 in the source code(这个回归可能在重构期间消失了)。

短期解决方案:直接将 mlflow ui 函数用作 described in mlflow documentation ,例如:

mlflow ui --mlflow-tracking-uri <your-tracking-uri> --port <your-port> --host <your-host>

请记住,根据您使用的 mlflow 版本和运行位置(本地文件系统或数据库),跟踪 uri 必须是有效的 uri(即对于旧的 mlflow 版本,您不能使用“mlruns”相对路径,而是 file:///<absolute/path/to/mlruns,即使您在正确的文件夹中)。 According to mlflow documentation 使用相对路径应该适用于最新版本,但我从未尝试过。

长期解决方案:该错误将在 kedro-mlflow==0.7.1 中修复,并将在未来几周内发布。从这个版本开始,您将能够像目前一样直接在 port 中声明 hostmlflow.yml。不过,它仅与 kedro>=0.17.1 兼容,因此您需要更新您的项目模板。