远程服务器上的项目存储和 MLFLow



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

我在服务器上运行了一个 mlflow 服务器。mlflow 服务器在我的用户下运行在服务器上,并已按如下方式启动:

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")

参数获取和指标传输到服务器,但不传输到项目。为什么会这样?

关于 SFTP 部分的说明: 我可以通过 SFTP 登录并安装了 pysftp 软件包

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

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

这为我修复了它。

我不知道我是否会得到问题的答案,但我确实以这种方式解决了它。

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

然后我通过以下方式挂载这个目录,例如sshfs我的本地计算机上的相同路径下。

我不喜欢这个解决方案,但它现在解决了这个问题。

最新更新