Я хотел бы настроить 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 помогает в настройке ?
Не могли бы вы, пожалуйста, помочь мне с пошаговыми инструкциями о том, как выполнить полную настройку ?
Заранее благодарю вас !
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