如何从 Amazon SageMaker 运行基于 Web 的 mlflow 用户界面



我想在 Amazon SageMaker 上的笔记本上使用基于 Web 的 mlflow 用户界面。但是给定的地址 http://127.0.0.1:5000 似乎不起作用。

我已经在 SageMaker 笔记本上安装了 mlflow。

这段代码运行良好:

import mlflow
mlflow.start_run()
mlflow.log_param("my", "param")
mlflow.log_metric("score", 100)
mlflow.end_run()

然后如果我跑

! mlflow ui

我得到了预期的结果:

[2019-04-09 11:15:52 +0000] [17980] [INFO] Starting gunicorn 19.9.0
[2019-04-09 11:15:52 +0000] [17980] [INFO] Listening at: http://127.0.0.1:5000 (17980)
[2019-04-09 11:15:52 +0000] [17980] [INFO] Using worker: sync
[2019-04-09 11:15:52 +0000] [17983] [INFO] Booting worker with pid: 17983

但是,在那之后,当我的浏览器中http://127.0.0.1:5000时,没有任何加载。

我猜127.0.0.1不是正确的地址,但我怎么知道使用哪个地址呢?

您好,感谢您使用 SageMaker!

不幸的是,mlflow目前似乎与SageMaker不兼容。 我们确实提供了可以支持这些方案的功能。 SageMaker包含一个名为jupyter-server-proxy的插件,它允许其他Web应用程序托管在您的SageMaker Notebook Instance上,例如TensorBoard。

在 mlflow 的情况下,我几乎能够通过访问 https://mynotebookinstance.notebook.us-east-1.sagemaker.aws/proxy/5000/ 来让您的示例工作(请注意端口号是如何移动到末尾的(,但不幸的是,mlflow 显示错误,因为它当前假设它不在根 URL 路径上运行。

我在 mlflow GitHub 存储库中创建了一个问题:https://github.com/mlflow/mlflow/issues/1120 请"加注星标"此问题以保持其最新状态。

最好凯文

我可以通过端口转发而不是使用代理链接来解决问题。

在本地终端中,运行以下命令:

ssh -N -L 5000:127.0.0.1:5000 ec2-user@your_sagemaker_instance_ip_address 

然后去 http://127.0.0.1:5000

最新更新