我想在 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