MLflow est une plateforme open source de cycle de vie du machine learning permettant de suivre les exécutions d'entraînement, de gérer les modèles et de les déployer. Cette rubrique explique comment configurer le registre de modèles MLflow pour la gestion des modèles dans un cluster ACK Pro avec un backend RDS PostgreSQL.
Présentation du registre de modèles MLflow
Consultez la documentation Registre de modèles MLflow — Documentation MLflow.
Prérequis
Un cluster ACK Pro est créé avec Kubernetes 1.20 ou une version ultérieure.
-
Une instance RDS PostgreSQL est créée.
Nous vous recommandons de sélectionner le même VPC que votre cluster ACK et d'ajouter son bloc CIDR à la liste d'autorisation pour un accès interne. Si l'instance RDS et le cluster ACK se trouvent dans des VPC différents, activez l'accès au réseau public et ajoutez le bloc CIDR du VPC du cluster ACK à la liste d'autorisation.
Un compte standard nommé
mlflowest créé dans l'instance RDS PostgreSQL.Une base de données nommée
mlflow_storeest créée dans l'instance RDS PostgreSQL pour les métadonnées des modèles. Définissez Authorized Account sur le comptemlflow.(Facultatif) Une base de données nommée
mlflow_basic_authest créée dans l'instance RDS PostgreSQL pour les données d'authentification MLflow. Définissez Authorized Account sur le comptemlflow.Le client Arena est configuré (version 0.9.14 ou ultérieure).
Étape 1 : Déployer MLflow dans un cluster ACK
Connectez-vous à la console ACK. Dans le volet de navigation de gauche, cliquez sur Clusters.
Sur la page Clusters, cliquez sur le nom de votre cluster. Dans le volet de navigation de gauche, cliquez sur .
-
Cliquez sur Deploy. Sur la page Deploy, définissez Application Name sur
mlflowet Namespace surkube-ai. Dans Chart, recherchez et sélectionnezmlflow. Cliquez sur Next. Confirmez si vous souhaitez utiliser mlflow comme namespace par défaut pour le Chart.Pour utiliser la console AI Suite, déployez dans le namespace
kube-aiavec le nom de release par défautmlflow.Pour utiliser Arena, déployez dans n'importe quel namespace avec le nom de release par défaut
mlflow.
-
Sur la page Create, configurez les paramètres du Chart.
-
Configurez
defaultArtifactRootetbackendStore:trackingServer: # -- Specifies which mode mlflow tracking server run with, available options are `serve-artifacts`, `no-serve-artifacts` and `artifacts-only` mode: no-serve-artifacts # -- Specifies a default artifact location for logging, data will be logged to `mlflow-artifacts/:` if artifact serving is enabled, otherwise `./mlruns` defaultArtifactRoot: "./mlruns" # For more information about how to configure backend store, please visit https://mlflow.org/docs/latest/tracking/backend-stores.html backendStore: # -- Backend store uri e.g. `<dialect>+<driver>://<username>:<password>@<host>:<port>/<database>` backendStoreUri: postgresql+psycopg2://mlflow:<password>@pgm-xxxxxxxxxxxxxx.pg.rds.aliyuncs.com/mlflow_storeRemplacez
backendStore.backendStoreUripar l'endpoint de votre base de donnéesmlflow_store.ImportantSi l'instance RDS et le cluster ACK se trouvent dans le même VPC, utilisez l'endpoint interne. Sinon, utilisez l'endpoint public et assurez-vous que le cluster ACK peut y accéder.
Connectez-vous à la console RDS PostgreSQL. Cliquez sur Instance ID > Database Connection > Internal/External Endpoint pour obtenir l'endpoint, par exemple
pgm-xxxxxxxxxxxxxx.pg.rds.aliyuncs.com.Consultez la rubrique Se connecter à une base de données.
-
(Facultatif) Pour activer BasicAuth :
trackingServer: # -- Specifies which mode mlflow tracking server run with, available options are `serve-artifacts`, `no-serve-artifacts` and `artifacts-only` mode: no-serve-artifacts # -- Specifies a default artifact location for logging, data will be logged to `mlflow-artifacts/:` if artifact serving is enabled, otherwise `./mlruns` defaultArtifactRoot: "./mlruns" # Basic authentication configuration, # for more information, please visit https://mlflow.org/docs/latest/auth/index.html#configuration basicAuth: # -- Specifies whether to enable basic authentication enabled: true # -- Default permission on all resources, available options are `READ`, `EDIT`, `MANAGE` and `NO_PERMISSIONS` defaultPermission: NO_PERMISSIONS # -- Database location to store permissions and user data e.g. `<dialect>+<driver>://<username>:<password>@<host>:<port>/<database>` databaseUri: postgresql+psycopg2://<username>:<password>@pgm-xxxxxxxxxxxxxx.pg.rds.aliyuncs.com/mlflow_basic_auth # -- Default admin username if the admin is not already created adminUsername: admin # -- Default admin password if the admin is not already created adminPassword: password # -- Function to authenticate requests authorizationFunction: mlflow.server.auth:authenticate_request_basic_auth # For more information about how to configure backend store, please visit https://mlflow.org/docs/latest/tracking/backend-stores.html backendStore: # -- Backend store uri e.g. `<dialect>+<driver>://<username>:<password>@<host>:<port>/<database>` backendStoreUri: postgresql+psycopg2://mlflow:<password>@pgm-xxxxxxxxxxxxxx.pg.rds.aliyuncs.com/mlflow_storeRemplacez
trackingServer.basicAuth.databaseUripar l'endpoint de votre base de donnéesmlflow_basic_auth.Définissez
trackingServer.basicAuth.adminUsernameettrackingServer.basicAuth.adminPasswordsur les identifiants de l'administrateur MLflow. Un nouveau compte administrateur est créé uniquement s'il n'existe pas déjà.
Tous les paramètres du Chart sont répertoriés dans MLflow.
-
Étape 2 : Accéder à l'interface Web MLflow déployée sur Kubernetes
-
Redirigez le service de l'interface Web MLflow vers le port local 5000 :
kubectl port-forward -n kube-ai services/mlflow 5000Résultat attendu :
Forwarding from 127.0.0.1:5000 -> 5000 Forwarding from [::1]:5000 -> 5000 Handling connection for 5000 Handling connection for 5000 ... -
Accédez à http://127.0.0.1:5000 pour afficher l'interface Web MLflow.
La page d'expérience Default apparaît avec « No runs logged », ce qui confirme que MLflow est déployé et en cours d'exécution.
Étapes suivantes : Gestion des modèles
Gérez les modèles dans le registre MLflow avec la console AI Suite ou Arena. Consultez la rubrique Gérer les modèles du registre MLflow à l'aide d'Arena.