MLflow es una plataforma de código abierto para el ciclo de vida del aprendizaje automático. Permite dar seguimiento a las ejecuciones de entrenamiento, gestionar modelos y desplegarlos. Este tema explica cómo configurar el registro de modelos de MLflow para la gestión de modelos en un clúster ACK Pro con un backend RDS PostgreSQL.
Introducción al registro de modelos de MLflow
Requisitos previos
Se creó un ACK Pro cluster con Kubernetes 1.20 o una versión posterior.
-
Se creó un RDS PostgreSQL instance.
Se recomienda seleccionar la misma VPC que su clúster ACK y agregar su bloque CIDR al whitelist para el acceso interno. Si la instancia RDS y el clúster ACK están en distintas VPC, habilite el acceso por red pública y agregue el bloque CIDR de la VPC del clúster ACK a la lista blanca.
Se creó un account estándar llamado
mlflowen la instancia RDS PostgreSQL.Se creó un database llamado
mlflow_storeen la instancia RDS PostgreSQL para los metadatos de los modelos. Establezca Authorized Account en la cuentamlflow.(Opcional) Se creó un database llamado
mlflow_basic_authen la instancia RDS PostgreSQL para los datos de autenticación de MLflow. Establezca Authorized Account en la cuentamlflow.Se configuró el Arena client (versión 0.9.14 o posterior).
Paso 1: Desplegar MLflow en un clúster ACK
Inicie sesión en la consola de ACK. En el panel de navegación izquierdo, haga clic en Clusters.
En la página Clusters, haga clic en el nombre de su clúster. En el panel de navegación izquierdo, haga clic en .
-
Haga clic en Deploy. En la página Deploy, establezca Application Name como
mlflowy Namespace comokube-ai. En Chart, busque y seleccionemlflow. Haga clic en Next. Confirme si desea usar mlflow como namespace predeterminado para el Chart.Para usar la consola de AI Suite, despliegue en el namespace
kube-aicon el nombre de versión predeterminadomlflow.Para usar Arena, despliegue en cualquier namespace con el nombre de versión predeterminado
mlflow.
-
En la página Create, configure los parámetros del Chart.
-
Configure
defaultArtifactRootybackendStore: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_storeReemplace
backendStore.backendStoreUricon el endpoint de su base de datosmlflow_store.ImportanteSi la instancia RDS y el clúster ACK están en la misma VPC, use el endpoint interno. De lo contrario, utilice el endpoint público y asegúrese de que el clúster ACK pueda acceder a él.
Inicie sesión en la consola de RDS PostgreSQL. Haga clic en Instance ID > Database Connection > Internal/External Endpoint para obtener el endpoint, por ejemplo,
pgm-xxxxxxxxxxxxxx.pg.rds.aliyuncs.com.Consulte Connect to a database.
-
(Opcional) Para habilitar 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_storeReemplace
trackingServer.basicAuth.databaseUricon el endpoint de su base de datosmlflow_basic_auth.Establezca
trackingServer.basicAuth.adminUsernameytrackingServer.basicAuth.adminPasswordcon las credenciales de administrador de MLflow. Solo se crea una cuenta de administrador nueva si aún no existe una.
Todos los parámetros del Chart se listan en MLflow.
-
Paso 2: Acceder a la interfaz web de MLflow desplegada en Kubernetes
-
Redirija el servicio de la interfaz web de MLflow al puerto local 5000:
kubectl port-forward -n kube-ai services/mlflow 5000Resultado esperado:
Forwarding from 127.0.0.1:5000 -> 5000 Forwarding from [::1]:5000 -> 5000 Handling connection for 5000 Handling connection for 5000 ... -
Vaya a http://127.0.0.1:5000 para consultar la interfaz web de MLflow.
Aparece la página del experimento Default con el mensaje "No runs logged", lo cual confirma que MLflow se desplegó y se está ejecutando.
Qué hacer a continuación: gestión de modelos
Gestione los modelos en el registro de MLflow mediante la consola de AI Suite o Arena. Consulte Manage MLflow registry models using Arena.