Настройка серверной части Mlflow (SQLite) и хранилищ артефактов (хранилище больших двоичных объектов Azure)

0

Вопрос

Я хотел бы настроить Mlflow на наличие следующих компонентов :

  • Внутреннее хранилище (локальное) : локальное использование базы данных SQLite для хранения объектов Mlflow (run_id, параметры, метрики...)
  • Хранилище артефактов (удаленное) : использование хранилища больших двоичных объектов в моем хранилище Azure Data Lake Gen2 для хранения выходных файлов (версионных наборов данных, сериализованных моделей, изображений и т. д.), связанных с моей моделью
  • Сервер отслеживания : с помощью чего-то, что выглядит как эта команда

z

mlflow server --backend-store-uri sqlite:///C:\sqlite\db\mlruns.db --default-artifact-root wasbs://container-name@storage_account_name.blob.core.windows.net/mlartifacts -h 0.0.0.0 -p 8000

Где mlruns.db-это база данных, которую я создал в SQLite (внутри папки бд), а mlartifacts-это папка, которую я создал внутри контейнера больших двоичных объектов для получения всех выходных файлов.

Я запускаю эту команду, а затем выполняю и запускаю mlflow (или запускаю kedro, как я использую Kedro), но почти ничего не происходит. База данных заполнена 12 таблицами, но все они пусты, в то время как внутри озера данных ничего не происходит.

То, что я хочу, должно выглядеть как сценарий 4 в документации.

Для магазина артефактов я не смог найти подробных инструкций. Я попытался просмотреть документацию Mlflow здесь, но это не очень полезно (я все еще новичок). Они говорят, что:

MLflow ожидает, что учетные данные для доступа к хранилищу Azure будут указаны в строке AZURE_STORAGE_CONNECTION_STRING, переменных среды AZURE_STORAGE_ACCESS_KEY или ваши учетные данные будут настроены таким образом, чтобы значение по умолчанию было указано(). класс может забрать их.

Однако даже при добавлении переменных env в озере данных, похоже, ничего не хранится. Я создал две переменные env (в Windows 10):

  • AZURE_STORAGE_ACCESS_KEY = wasbs://container-name@storage_account_name.blob.core.windows.net/mlartifacts

  • AZURE_STORAGE_CONNECTION_STRING = DefaultEndpointsProtocol=https;Имя учетной записи=пример хранилища;Ключ учетной записи=. Я получил это, следуя по этому пути на портале Azure : Учетная запись хранения/Ключи доступа/Строка подключения (взял один из ключей 2).

Они также утверждают, что :

Кроме того, для доступа к хранилищу больших двоичных объектов Azure необходимо запустить pip-установку azure-storage-blob отдельно (как на клиенте, так и на сервере). Наконец, если вы хотите использовать DefaultAzureCredential, вы должны установить azure-identity с помощью pip; MLflow по умолчанию не объявляет зависимость от этих пакетов.

Я добавил их в свои требования к проекту, но что именно они означают при установке как на клиенте, так и на сервере ? Как azure-identity помогает в настройке ?

Не могли бы вы, пожалуйста, помочь мне с пошаговыми инструкциями о том, как выполнить полную настройку ?

Заранее благодарю вас !

azure mlflow mlops python
2021-11-23 16:46:18
1

Лучший ответ

2

Вам нужно просто установить AZURE_STORAGE_CONNECTION_STRING, AZURE_STORAGE_ACCESS_KEY является необязательным, если используется первая переменная окружения (в любом случае, AZURE_STORAGE_ACCESS_KEY должен быть не URL-адрес, а фактический ключ доступа).

Относительно azure-storage-blob пакет - он должен быть установлен на обоих серверах, на которых вы запускаете mlflow server, и на той же машине, на которой вы запускаете свое обучение (клиент).

2021-11-27 11:41:33

Спасибо вам за ваш ответ ! Вы правы насчет ключа AZURE_STORAGE_ACCESS_KEY, я не знаю, почему я допустил эту ошибку. В конечном счете, в моем случае это не было учтено, так как я использовал AZURE_STORAGE_CONNECTION_STRING. Мне наконец удалось заставить его работать, используя двойную обратную косую черту и используя порт 5000 ==> mlflow server --backend-store-uri sqlite:///C:\\sqlite\\db\\mlruns.db --default-artifact-root wasbs://container-name@storage_account_name.blob.core.windows.net/mlartifacts -h 0.0.0.0 -p 5000
Downforu

На других языках

Эта страница на других языках

Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................