1

次のコンポーネントを持つように Mlflow をセットアップしたいと思います。

  • バックエンド ストア (ローカル) : SQLite データベースをローカルに使用して Mlflow エンティティ (run_id、params、metrics...) を保存します。
  • アーティファクト ストア (リモート) : Azure Data Lake Storage Gen2 の BLOB ストレージを使用して、モデルに関連する出力ファイル (バージョン管理されたデータセット、シリアル化されたモデル、画像など) を保存します
  • 追跡サーバー : このコマンドのようなものを使用して

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 (db フォルダー内) で作成したデータベースであり、mlartifacts はすべての出力ファイルを受け取るために BLOB コンテナー内に作成したフォルダーです。

このコマンドを実行してから、mlflow を実行します (または、Kedro を使用している場合は kedro を実行します) が、ほとんど何も起こりません。データベースには 12 個のテーブルが入力されていますが、データ レイク内で何も起こらない間はすべて空です。

私が望むものは、ドキュメントのシナリオ 4のようになります。

アーティファクト ストアについては、詳細な手順が見つかりませんでした。ここで Mlflow のドキュメントを見ようとしましたが、これはあまり役に立ちません (私はまだ初心者です)。彼らは言った:

MLflow では、AZURE_STORAGE_CONNECTION_STRING、AZURE_STORAGE_ACCESS_KEY 環境変数に Azure Storage アクセス資格情報が含まれているか、資格情報が DefaultAzureCredential() のように構成されている必要があります。クラスはそれらを拾うことができます。

ただし、env 変数を追加しても、データ レイクには何も格納されていないようです。2 つの環境変数を作成しました (Windows 10 上):

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

  • AZURE_STORAGE_CONNECTION_STRING = DefaultEndpointsProtocol=https;AccountName=storagesample;AccountKey=. Azureポータルで次のパスをたどって取得しました:ストレージアカウント/アクセスキー/接続文字列(キー2のいずれかを取得)。

彼らはまた、次のように述べています。

また、Azure Blob Storage にアクセスするには、(クライアントとサーバーの両方で) pip install azure-storage-blob を個別に実行する必要があります。最後に、DefaultAzureCredential を使用する場合は、pip install azure-identity を実行する必要があります。MLflow は、既定ではこれらのパッケージへの依存関係を宣言しません。

プロジェクトの要件に追加しましたが、クライアントとサーバーの両方にインストールするとは、正確にはどういう意味ですか? azure-identity はセットアップにどのように役立ちますか?

完全なセットアップを行うための段階的な手順を教えてください。

前もって感謝します !

4

1 に答える 1