O MLflow é uma plataforma open source para o ciclo de vida de machine learning que permite rastrear execuções de treinamento, gerenciar modelos e implantá-los. Este tópico explica como configure o registro de modelos do MLflow para gerenciamento de modelos em um cluster ACK Pro com backend RDS PostgreSQL.
Introdução ao registro de modelos do MLflow
Consulte a documentação do MLflow Model Registry.
Pré-requisitos
Um ACK Pro cluster criado com Kubernetes 1.20 ou posterior.
-
Uma RDS PostgreSQL instance criada.
Recomendamos selecionar a mesma VPC do seu cluster ACK e adicionar o bloco CIDR correspondente à whitelist para acesso interno. Caso a instância RDS e o cluster ACK estejam em VPCs diferentes, ative o acesso pela rede pública e adicione o bloco CIDR da VPC do cluster ACK à lista de permissões.
Um account padrão chamado
mlflowcriado na instância RDS PostgreSQL.Um database chamado
mlflow_storecriado na instância RDS PostgreSQL para armazenar metadados dos modelos. Defina o campo Authorized Account como a contamlflow.(Opcional) Um database chamado
mlflow_basic_authcriado na instância RDS PostgreSQL para dados de autenticação do MLflow. Defina o campo Authorized Account como a contamlflow.O Arena client configurado (versão 0.9.14 ou posterior).
Etapa 1: Implantar o MLflow em um cluster ACK
Faça login no ACK console. No painel de navegação à esquerda, clique em Clusters.
Na página Clusters, clique no nome do seu cluster. No painel de navegação à esquerda, clique em .
-
Clique em Deploy. Na página Deploy, defina Application Name como
mlflowe Namespace comokube-ai. Em Chart, pesquise e selecionemlflow. Clique em Next. Confirme se deseja usar mlflow como namespace padrão para o Chart.Para utilizar o console AI Suite, implante no namespace
kube-aicom o nome de release padrãomlflow.Para utilizar o Arena, implante em qualquer namespace com o nome de release padrão
mlflow.
-
Na página Create, configure os parâmetros do Chart.
-
Configure
defaultArtifactRootebackendStore: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_storeSubstitua
backendStore.backendStoreUripelo endpoint do seu banco de dadosmlflow_store.ImportanteSe a instância RDS e o cluster ACK estiverem na mesma VPC, utilize o endpoint interno. Caso contrário, use o endpoint público e garanta que o cluster ACK tenha acesso a ele.
Faça login no console do RDS PostgreSQL. Clique em Instance ID > Database Connection > Internal/External Endpoint para obter o endpoint, por exemplo
pgm-xxxxxxxxxxxxxx.pg.rds.aliyuncs.com.Consulte Connect to a database.
-
(Opcional) Para ativar o 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_storeSubstitua
trackingServer.basicAuth.databaseUripelo endpoint do seu banco de dadosmlflow_basic_auth.Defina
trackingServer.basicAuth.adminUsernameetrackingServer.basicAuth.adminPasswordcom as credenciais de administrador do MLflow. Uma nova conta de administrador será criada apenas se ainda não existir uma.
Todos os parâmetros do Chart estão listados em MLflow.
-
Etapa 2: Acessar a Web UI do MLflow implantada no Kubernetes
-
Encaminhe o service da Web UI do MLflow para a porta local 5000:
kubectl port-forward -n kube-ai services/mlflow 5000Saída esperada:
Forwarding from 127.0.0.1:5000 -> 5000 Forwarding from [::1]:5000 -> 5000 Handling connection for 5000 Handling connection for 5000 ... -
Acesse http://127.0.0.1:5000 para visualize a Web UI do MLflow.
A página do experimento Default será exibida com a mensagem "No runs logged", confirmando que o MLflow está implantado e em execução.
Próximos passos: Gerenciamento de modelos
Gerencie modelos no registro do MLflow usando o console AI Suite ou o Arena. Consulte Manage MLflow registry models using Arena.