【问题标题】:Artifact storage and MLFLow on remote server远程服务器上的工件存储和 MLFLOW
【发布时间】:2020-03-18 14:09:46
【问题描述】:

我正在尝试在本地网络中的另一台机器上运行 MLFlow,我想寻求一些帮助,因为我现在不知道该怎么做。

我有一个在 服务器 上运行的 mlflow 服务器。 mlflow 服务器在 server 上的我的用户下运行,并已像这样启动:

mlflow server --host 0.0.0.0 --port 9999 --default-artifact-root sftp://<MYUSERNAME>@<SERVER>:<PATH/TO/DIRECTORY/WHICH/EXISTS>

应该将所有数据记录到 mlflow 服务器的程序如下所示:

from mlflow import log_metric, log_param, log_artifact, set_tracking_uri

if __name__ == "__main__":
    remote_server_uri = '<SERVER>' # this value has been replaced
    set_tracking_uri(remote_server_uri)
    # Log a parameter (key-value pair)
    log_param("param1", 5)

    # Log a metric; metrics can be updated throughout the run
    log_metric("foo", 1)
    log_metric("foo", 2)
    log_metric("foo", 3)

    # Log an artifact (output file)
    with open("output.txt", "w") as f:
        f.write("Hello world!")
    log_artifact("output.txt")

参数 get 和 metrics 被传输到服务器,而不是工件。为什么会这样?

关于 SFTP 部分的注意事项: 我可以通过 SFTP 登录并安装 pysftp 包

【问题讨论】:

  • 我有 2 个问题:1 两个服务器都是 linux 服务器吗? 2 如果他们是 linux 有没有尝试过无密码 sftp 服务器?

标签: python mlflow


【解决方案1】:

我猜你的问题是你还需要创建实验所以使用 sftp 远程存储

mlflow.create_experiment("my_experiment", artifact_location=sftp_uri)

这为我解决了问题。

【讨论】:

    【解决方案2】:

    我不知道我是否会得到我的问题的答案,但我确实解决了这个问题。

    在服务器上我创建了目录/var/mlruns。我通过--backend-store-uri file:///var/mlruns将此目录传递给mlflow

    然后我通过例如挂载这个目录sshfs 在我的本地机器上的同一路径下。

    我不喜欢这个解决方案,但它现在解决的问题已经足够好了。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-09-10
    • 2016-11-25
    • 2016-12-16
    • 1970-01-01
    • 1970-01-01
    • 2012-06-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多