gpt4 book ai didi

python - MLFLow 工件在远程服务器上记录和检索

转载 作者:行者123 更新时间:2023-12-05 04:52:18 31 4
gpt4 key购买 nike

我正在尝试在远程计算机上将 MLFlow 跟踪服务器设置为 systemd 服务。我有一个运行的 sftp 服务器并创建了一个 SSH key 对。

除了工件日志记录之外,一切似乎都运行良好。 MLFlow 似乎没有权限列出保存在 mlruns 中的工件目录。

我以这种方式创建实验并记录工件:

uri = 'http://192.XXX:8000' 
mlflow.set_tracking_uri(uri)

mlflow.create_experiment('test', artifact_location='sftp://192.XXX:_path_to_mlruns_folder_')

experiment=mlflow.get_experiment_by_name('test')
with mlflow.start_run(experiment_id=experiment.experiment_id, run_name=run_name) as run:
mlflow.log_param(_parameter_name_, _parameter_value_)
mlflow.log_artifact(_an_artifact_, _artifact_folder_name_)

我可以在 UI 中看到指标,并在远程计算机上的正确目标文件夹中看到工件。但是,在 UI 中,我在尝试查看工件时收到此消息:

Unable to list artifacts storedunder sftp://192.XXX:path_to_mlruns_folder/run_id/artifactsfor the current run. Please contact your tracking server administratorto notify them of this error, which can happen when the trackingserver lacks permission to list artifacts under the current run's rootartifact directory.

我不知道为什么 mlruns文件夹有drwxrwxrwx权限,所有子文件夹都有 drwxrwxr-x .我错过了什么?


更新用新的眼光来看,它试图通过 sftp://192.XXX: 列出文件似乎很奇怪,它应该只查看文件夹 _path_to_mlruns_folder_/_run_id_/artifacts .但是,我仍然不知道如何规避它。

最佳答案

问题似乎是默认情况下 systemd 服务由 root 运行。指定一个用户并为该用户创建一个 ssh key 对以访问同一台远程机器。

[Unit]

Description=MLflow server

After=network.target

[Service]

Restart=on-failure

RestartSec=20

User=_user_

Group=_group_

ExecStart=/bin/bash -c 'PATH=_yourpath_/anaconda3/envs/mlflow_server/bin/:$PATH exec mlflow server --backend-store-uri postgresql://mlflow:mlflow@localhost/mlflow --default-artifact-root sftp://_user_@192.168.1.245:_yourotherpath_/MLFLOW_SERVER/mlruns -h 0.0.0.0 -p 8000'

[Install]

WantedBy=multi-user.target

_user__group_应该与 ls -la 列出的相同在mlruns目录。

关于python - MLFLow 工件在远程服务器上记录和检索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66566031/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com