хранение артефактов mlflow до AWS s3 артефактов - PullRequest
0 голосов
/ 25 февраля 2020

Есть ли способ сохранить логи, хранящиеся в mlflow AWS S3?

mlflow server \
    --backend-store-uri /mnt/persistent-disk \
    --default-artifact-root s3://my-mlflow-bucket/ \
    --host 0.0.0.0

Можно ли предоставить только артефакт по умолчанию - root вместо предоставления и backend-store-uri, и артефакта по умолчанию - root?

Также есть ли в любом случае установить default-artifact- root программно из MlFlowClient или MlFlowContext вместо запуска командной строки сервера mlflow?

К вашему сведению, я уже определил все AWS_ACCESS_KEY и AWS_SECRET_KEY в моих переменных окружения и экспортировал ENDPOINTS в S3.

Является ли logArtifacts из класса ActiveRun правильным методом для установки artifact_uri, который указывает на AWS ведро s3?

1 Ответ

0 голосов
/ 08 марта 2020

Вы можете только установить отслеживание URI программно для клиентов, однако, чтобы регистрировать эксперименты на сервере, запущенном удаленно. Если вы используете для хранения SQLAlchemy-совместимую базу данных, тогда необходимы оба аргумента.

Например, на моем локальном хосте, где я использую sqlite: //mlruns.db, я могу запустить сервер как:

mlflow server --backend-store-uri sqlite:///mlruns.db --default-artifact-root ./mlruns 

[2020-03-07 23:06:42 -0800] [3698] [INFO] Starting gunicorn 20.0.4
[2020-03-07 23:06:42 -0800] [3698] [INFO] Listening at: http://127.0.0.1:5000 (3698)
[2020-03-07 23:06:42 -0800] [3698] [INFO] Using worker: sync
[2020-03-07 23:06:42 -0800] [3701] [INFO] Booting worker with pid: 3701
[2020-03-07 23:06:42 -0800] [3702] [INFO] Booting worker with pid: 3702
[2020-03-07 23:06:42 -0800] [3703] [INFO] Booting worker with pid: 3703
[2020-03-07 23:06:42 -0800] [3704] [INFO] Booting worker with pid: 3704

В качестве примечания, если по какой-либо причине вы планируете запустить более одного сервера отслеживания, скажите, если MLflow используется несколькими командами по обработке данных вместе с соответствующим backend-store-uri и default-artifact- root, возможно, используйте оболочку сценария оболочки, в которой вы можете прочитать соответствующие аргументы из файла конфигурации.

my_script -f ds_team1.config
my_script -f ds_team2.config

У team.config будут соответствующие учетные данные, порт, аргументы для mlflow сервер.

Наконец, mlflow.log_artifact () - это то, что вы хотите регистрировать артефакты.

enter image description here

...