MLflow は、エンドツーエンドの機械学習ライフサイクルを管理するためのオープンソースプラットフォームです。トレーニング情報の追跡、機械学習モデルの管理とデプロイに役立ちます。このトピックでは、モデル管理のために MLflow モデルレジストリを設定する方法について説明します。
MLflow モデルレジストリ
MLflow モデルレジストリの詳細な概要については、「MLflow Model Registry — MLflow ドキュメント」をご参照ください。
前提条件
-
ACK Pro マネージドクラスターが作成済みであり、その Kubernetes バージョンが 1.20 以降であること。詳細については、「ACK Pro マネージドクラスターの作成」をご参照ください。
-
RDS for PostgreSQL インスタンスが作成済みであること。詳細については、「RDS for PostgreSQL インスタンスの作成」をご参照ください。
RDS for PostgreSQL インスタンスは、ご利用の ACK クラスターと同じ VPC 内に作成することを推奨します。その後、VPC の CIDR ブロックをインスタンスの許可リストに追加します。これにより、プライベートアドレスを使用してデータベースにアクセスできます。RDS インスタンスと ACK クラスターが異なる VPC にある場合は、RDS インスタンスのパブリックアクセスを有効にし、ACK クラスターの VPC の CIDR ブロックを許可リストに追加してください。詳細については、「許可リストの設定」をご参照ください。
-
RDS for PostgreSQL インスタンスに
mlflowという名前の標準アカウントが作成済みであること。詳細については、「アカウントの作成」をご参照ください。 -
モデルのメタデータを格納するために、RDS for PostgreSQL インスタンスに
mlflow_storeという名前のデータベースが作成済みであり、その Authorized Account がmlflowアカウントに設定されていること。詳細については、「データベースの作成」をご参照ください。 -
(オプション) MLflow ユーザー認証情報を格納するため、RDS PostgreSQL インスタンスに
mlflow_basic_authという名前のデータベースを作成し、その Authorized Account をmlflowアカウントに設定しました。詳細については、「データベースの作成」をご参照ください。 -
モデル管理のために Arena クライアントが設定済みであること。Arena のバージョンは 0.9.14 以降である必要があります。詳細については、「Arena クライアントの設定」をご参照ください。
ステップ 1:ACK クラスターへの MLflow のデプロイ
ACK コンソールにログインします。左側のナビゲーションウィンドウで、クラスターリスト をクリックします。
クラスターリスト ページで、ご利用のクラスターの名前をクリックします。左側のナビゲーションウィンドウで、 をクリックします。
-
デプロイ をクリックします。デプロイ ページで、アプリケーション名 を
mlflowに、Namespace をkube-aiに設定します。グラフ エリアの検索バーでmlflowを検索して選択します。Next をクリックします。表示されるダイアログボックスで、チャートのデフォルトの名前空間として mlflow を使用するかどうかを確認します。-
クラウドネイティブ AI Suite コンソールを使用してモデルを管理するには、MLflow を
kube-ai名前空間にデプロイし、デフォルトのリリース名mlflowを使用する必要があります。 -
Arena を使用してモデルを管理する場合、MLflow はどの名前空間にでもデプロイできますが、デフォルトのリリース名
mlflowを使用する必要があります。
-
-
デプロイ ページで、チャートパラメーターを設定します。
-
defaultArtifactRootとbackendStoreパラメーターを設定します。以下のスニペットは設定例です。trackingServer: # -- mlflow トラッキングサーバーの実行モードを指定します。利用可能なオプションは `serve-artifacts`、`no-serve-artifacts`、`artifacts-only` です mode: no-serve-artifacts # -- ログ記録用のデフォルトのアーティファクトの場所を指定します。アーティファクトの提供が有効な場合、データは `mlflow-artifacts/:` にログ記録され、そうでない場合は `./mlruns` に記録されます defaultArtifactRoot: "./mlruns" # バックエンドストアの設定方法の詳細については、https://mlflow.org/docs/latest/tracking/backend-stores.html をご参照ください backendStore: # -- バックエンドストアの URI (例: `<dialect>+<driver>://<username>:<password>@<host>:<port>/<database>`) backendStoreUri: postgresql+psycopg2://mlflow:<password>@pgm-xxxxxxxxxxxxxx.pg.rds.aliyuncs.com/mlflow_storebackendStore.backendStoreUriパラメーターを、「前提条件」セクションで作成したmlflow_storeデータベースの接続文字列に設定します。例:postgresql+psycopg2://mlflow:<password>@pgm-xxxxxxxxxxxxxx.pg.rds.aliyuncs.com/mlflow_store。重要RDS インスタンスと ACK クラスターが同じ VPC 内にある場合は、RDS インスタンスのプライベートアドレスを使用します。そうでない場合は、パブリックアドレスを使用し、ACK クラスターがアクセスできることを確認してください。
RDS for PostgreSQL コンソールにログインします。 [インスタンス ID] > [データベース接続] > [内部/パブリックアドレス] を選択して、
pgm-xxxxxxxxxxxxxx.pg.rds.aliyuncs.comなどのデータベースアドレスを取得します。詳細については、「データベースへの接続」をご参照ください。
-
(任意) 基本認証を有効にするには、次のパラメーターを設定します。
trackingServer: # -- mlflow トラッキングサーバーの実行モードを指定します。利用可能なオプションは `serve-artifacts`、`no-serve-artifacts`、`artifacts-only` です mode: no-serve-artifacts # -- ログ記録用のデフォルトのアーティファクトの場所を指定します。アーティファクトの提供が有効な場合、データは `mlflow-artifacts/:` にログ記録され、そうでない場合は `./mlruns` に記録されます defaultArtifactRoot: "./mlruns" # 基本認証の設定 # 詳細については、https://mlflow.org/docs/latest/auth/index.html#configuration をご参照ください basicAuth: # -- 基本認証を有効にするかどうかを指定します enabled: true # -- すべてのリソースに対するデフォルトの権限。利用可能なオプションは `READ`、`EDIT`、`MANAGE`、`NO_PERMISSIONS` です defaultPermission: NO_PERMISSIONS # -- 権限とユーザーデータを格納するデータベースの場所 (例: `<dialect>+<driver>://<username>:<password>@<host>:<port>/<database>`) databaseUri: postgresql+psycopg2://<username>:<password>@pgm-xxxxxxxxxxxxxx.pg.rds.aliyuncs.com/mlflow_basic_auth # -- 管理者がまだ作成されていない場合のデフォルトの管理者ユーザー名 adminUsername: admin # -- 管理者がまだ作成されていない場合のデフォルトの管理者パスワード adminPassword: password # -- リクエストを認証する関数 authorizationFunction: mlflow.server.auth:authenticate_request_basic_auth # バックエンドストアの設定方法の詳細については、https://mlflow.org/docs/latest/tracking/backend-stores.html をご参照ください backendStore: # -- バックエンドストアの URI (例: `<dialect>+<driver>://<username>:<password>@<host>:<port>/<database>`) backendStoreUri: postgresql+psycopg2://mlflow:<password>@pgm-xxxxxxxxxxxxxx.pg.rds.aliyuncs.com/mlflow_store-
trackingServer.basicAuth.databaseUriパラメーターを、「前提条件」セクションで作成したmlflow_basic_authデータベースの接続文字列に設定します。例:postgresql+psycopg2://<username>:<password>@pgm-xxxxxxxxxxxxxx.pg.rds.aliyuncs.com/mlflow_basic_auth。 -
trackingServer.basicAuth.adminUsernameとtrackingServer.basicAuth.adminPasswordパラメーターを設定して、MLflow 管理者のユーザー名と初期パスワードを指定します。これにより、管理者アカウントがまだ存在しない場合にのみ作成されます。
-
MLflow 設定パラメーターの完全なリストについては、「MLflow チャートドキュメント」をご参照ください。
-
ステップ 2:MLflow Web UI へのアクセス
-
次のコマンドを実行して、MLflow Web UI サービスをご利用のローカルマシンのポート 5000 に転送します。
kubectl port-forward -n kube-ai services/mlflow 5000期待される出力は次のとおりです。
Forwarding from 127.0.0.1:5000 -> 5000 Forwarding from [::1]:5000 -> 5000 Handling connection for 5000 Handling connection for 5000 ... -
Web ブラウザーで http://127.0.0.1:5000 を開き、MLflow Web UI を表示します。

次のステップ:モデルの管理
MLflow モデルレジストリ内のモデルは、クラウドネイティブ AI Suite コンソールまたは Arena コマンドラインツールで管理できます。詳細については、「Arena を使用した MLflow モデルレジストリでのモデル管理」をご参照ください。