MLflow e Azure Machine Learning
APLICA-SE A:Extensão de ML da CLI do Azure v2 (atual)SDK do Python azure-ai-ml v2 (atual)
Esse artigo descreve as funcionalidades do MLflow, uma estrutura de código aberto projetada para gerenciar todo o ciclo de vida do aprendizado de máquina. O MLflow usa um conjunto consistente de ferramentas para treinar e servir modelos em diferentes plataformas. Você pode usar o MLflow, independentemente de seus experimentos estarem sendo executados localmente ou em um destino de computação remota, máquina virtual ou instância de computação do Azure Machine Learning.
Os workspaces do Azure Machine Learning são compatíveis com o MLflow, o que significa que você pode usar um workspace do Azure Machine Learning da mesma forma que usa um servidor MLflow. Essa compatibilidade tem as seguintes vantagens:
- O Azure Machine Learning não hospeda instâncias de servidores MLflow, mas pode usar as APIs do MLflow diretamente.
- Você pode usar um workspace do Azure Machine Learning como seu servidor de acompanhamento para qualquer código MLflow, independentemente de ele ser executado no Azure Machine Learning ou não. Você só precisa configurar o MLflow para apontar para o workspace em que o acompanhamento deve ocorrer.
- Você pode executar qualquer rotina de treinamento que use o MLflow no Azure Machine Learning sem fazer alterações.
Dica
Ao contrário do SDK v1 do Azure Machine Learning, não há funcionalidade de registro em log no SDK v2 do Azure Machine Learning. Você pode usar o registro em log do MLflow para garantir que suas rotinas de treinamento sejam independentes da nuvem, portáteis e sem dependências do Azure Machine Learning.
O que está acompanhando
Quando você trabalha com trabalhos, o Azure Machine Learning rastreia automaticamente algumas informações sobre experimentos, como dados de código, ambiente e entrada e saída. No entanto, modelos, parâmetros e métricas são específicos para o cenário, portanto, os construtores de modelos devem configurar seu acompanhamento.
Os metadados de acompanhamento salvos variam de acordo com o experimento e podem incluir:
- Código
- Detalhes do ambiente, como a versão do sistema operacional e pacotes do Python
- Dados de entrada
- Configurações de parâmetro
- Modelos
- Métricas da avaliação
- Visualizações de avaliação, como matrizes de confusão e gráficos de importância
- Resultados da avaliação, incluindo algumas previsões de avaliação
Benefícios de acompanhar experimentos
Se você treinar modelos com trabalhos no Azure Machine Learning ou interativamente em notebooks, o acompanhamento de experimentos ajuda você a:
- Organize todos os experimentos de aprendizado de máquina em um único lugar. Em seguida, você pode pesquisar e filtrar experimentos e fazer drill down para ver detalhes sobre experimentos anteriores.
- Compare facilmente experimentos, analise resultados e depure o treinamento do modelo.
- Reproduza ou execute novamente experimentos para validar os resultados.
- Melhore a colaboração, pois você pode ver o que outros colegas de equipe estão fazendo, compartilhar resultados de experimentos e acessar dados de experimentos programaticamente.
Acompanhamento com o MLflow
Os workspaces do Azure Machine Learning são compatíveis com MLflow. Essa compatibilidade significa que você pode usar o MLflow para acompanhar execuções, métricas, parâmetros e artefatos em workspaces sem precisar alterar suas rotinas de treinamento ou injetar qualquer sintaxe específica da nuvem. Para saber como usar o MLflow para acompanhar experimentos e execuções em workspaces do Azure Machine Learning, consulte Acompanhar experimentos e modelos com o MLflow.
O Azure Machine Learning usa o acompanhamento do MLflow para registrar métricas e armazenar artefatos para seus experimentos. Quando você está conectado ao Azure Machine Learning, todo o acompanhamento do MLflow se materializa no workspace em que você está trabalhando.
Para saber como habilitar o registro em log para monitorar métricas de execução em tempo real com o MLflow, consulte métricas de log, parâmetros e arquivos com MLflow. Você também pode consultar e comparar experimentos e execuções com MLflow.
O MLflow no Azure Machine Learning fornece uma maneira de centralizar o acompanhamento. Você pode conectar o MLflow aos workspaces do Azure Machine Learning mesmo quando estiver trabalhando localmente ou em uma nuvem diferente. O workspace do Azure Machine Learning fornece um local centralizado, seguro e escalonável para armazenar métricas de treinamento e modelos.
O MLflow no Azure Machine Learning pode:
- Acompanhar experimentos e modelos de machine learning em execução localmente ou na nuvem.
- Acompanhar os experimentos de machine learning do Azure Databricks.
- Acompanhar os experimentos de machine learning do Azure Synapse Analytics.
Acompanhamento com o MLflow no R
O suporte ao MLflow no R tem as seguintes limitações:
- O acompanhamento do MLflow é limitado ao acompanhamento de métricas, parâmetros e modelos de experimentos em trabalhos do Azure Machine Learning.
- Não há suporte para treinamento interativo no RStudio, Posit ( anteriormente RStudio Workbench) ou notebooks Jupyter com kernels R.
- Não há suporte para o gerenciamento e registro de modelos. Use a CLI do Azure Machine Learning ou o Estúdio do Azure Machine Learning para o registro e gerenciamento de modelos.
Para exemplos de uso do cliente de acompanhamento do MLflow com modelos R no Azure Machine Learning, confira Treinar modelos R usando a CLI do Azure Machine Learning (v2).
Acompanhamento com o MLflow no Java
O suporte do MLflow no Java tem as seguintes limitações:
- O acompanhamento do MLflow é limitado ao acompanhamento de métricas e parâmetros de experimentos em trabalhos do Azure Machine Learning.
- Artefatos e modelos não podem ser acompanhados. Em vez disso, use o método
mlflow.save_model
com a pastaoutputs
em trabalhos para salvar os modelos ou artefatos que você deseja capturar.
Para um exemplo em Java que usa o cliente de acompanhamento do MLflow com o servidor de acompanhamento do Azure Machine Learning, confira azuremlflow-java.
Notebooks de exemplo para acompanhamento do MLflow
- Treinamento e acompanhamento de um classificador XGBoost com MLflow demonstra como usar o MLflow para acompanhar experimentos, registrar modelos e combinar vários formatos em pipelines.
- Treinamento e acompanhamento de um classificador XGBoost com MLflow usando autenticação de entidade de serviço demonstra como usar o MLflow para acompanhar experimentos a partir de uma computação fora do Azure Machine Learning. O exemplo mostra como se autenticar nos serviços do Azure Machine Learning usando uma entidade de serviço.
- Otimização de hiperparâmetros usando HyperOpt e execuções aninhadas no MLflow demonstra como usar execuções filhas para realizar otimização de hiperparâmetros para modelos utilizando a popular biblioteca HyperOpt. O exemplo mostra como transferir métricas, parâmetros e artefatos de execuções filho para execuções pai.
- Registrar modelos com MLflow demonstra como usar o conceito de modelos em vez de artefatos com o MLflow. O exemplo também mostra como construir modelos personalizados.
- Gerenciar execuções e experimentos com MLflow demonstra como usar o MLflow para consultar experimentos, execuções, métricas, parâmetros e artefatos no Azure Machine Learning.
Registro de modelos com o MLflow
O Azure Machine Learning dá suporte ao MLflow para gerenciamento de modelos. Esse suporte é uma forma conveniente para usuários familiarizados com o cliente MLflow gerenciarem todo o ciclo de vida do modelo. Para mais informações sobre como gerenciar modelos usando a API do MLflow no Azure Machine Learning, confira Gerenciar registros de modelos no Azure Machine Learning com o MLflow.
Notebook de exemplo para registro de modelos no MLflow
Gerenciamento de modelos com o MLflow demonstra como gerenciar modelos em registros.
Implantação de modelo com o MLflow
Você pode implantar modelos do MLflow no Azure Machine Learning para usufruir de uma experiência aprimorada. O Azure Machine Learning dá suporte à implantação de modelos do MLflow em pontos de extremidade em tempo real e em lote sem precisar especificar um ambiente ou um script de pontuação.
O SDK do MLflow, a CLI do Azure Machine Learning, o SDK do Azure Machine Learning para Python e o Estúdio do Azure Machine Learning dão suporte a implantação de modelos do MLflow. Para mais informações sobre a implantação de modelos do MLflow no Azure Machine Learning para inferência em tempo real e em lote, confira Diretrizes para implantar modelos do MLflow.
Notebooks de exemplo para implantação de modelos do MLflow
- Implantar o MLflow em pontos de extremidade online demonstra como implantar modelos do MLflow em pontos de extremidade online usando o SDK do MLflow.
- Distribuição progressiva de implantações do MLflow demonstra como implantar modelos do MLflow em pontos de extremidade online usando o SDK do MLflow com distribuição progressiva de modelos. O exemplo também mostra a implantação de várias versões de um modelo no mesmo ponto de extremidade.
- Implantar modelos do MLflow em serviços Web herdados demonstra como implantar modelos do MLflow em serviços Web herdados (Instâncias de Contêiner do Azure ou Serviço de Kubernetes do Azure v1) usando o SDK do MLflow.
- Treinar modelos no Azure Databricks e implantá-los no Azure Machine Learning demonstra como treinar modelos no Azure Databricks e implantá-los no Azure Machine Learning. O exemplo também aborda o acompanhamento de experimentos com a instância do MLflow no Azure Databricks.
Treinamento com Projetos do MLflow (versão prévia)
Aviso
O suporte para arquivos MLproject
(Projetos do MLflow) no Azure Machine Learning será totalmente desativado em setembro de 2026. O MLflow ainda tem suporte total e ainda é a maneira recomendada de acompanhar cargas de trabalho de aprendizado de máquina no Azure Machine Learning.
À medida que você continua a usar o MLflow, recomendamos fazer a transição de arquivos para MLproject
trabalhos do Azure Machine Learning, usando a CLI do Azure ou o SDK do Azure Machine Learning para Python (v2). Para obter mais informações sobre os trabalhos do Azure Machine Learning, confira Acompanhar os experimentos e modelos de ML com MLflow.
Importante
Esse recurso está atualmente em visualização pública. Essa versão prévia é fornecida sem um contrato de nível de serviço e não é recomendada para cargas de trabalho de produção. Alguns recursos podem não ter suporte ou podem ter restrição de recursos.
Para obter mais informações, consulte Termos de Uso Complementares de Versões Prévias do Microsoft Azure.
Você pode enviar trabalhos de treinamento para o Azure Machine Learning usando Projetos do MLflow. Você pode enviar trabalhos localmente com o acompanhamento do Azure Machine Learning ou migrar seus trabalhos para a nuvem, por exemplo, por meio de uma Computação do Azure Machine Learning.
Para saber como enviar trabalhos de treinamento que usam Projetos do MLflow para workspaces do Azure Machine Learning para acompanhamento, confira Treinar com Projetos do MLflow no Azure Machine Learning (versão prévia).
Notebooks de exemplo para Projetos do MLflow
- Treinar com Projetos do MLflow na computação local.
- Treinar com Projetos do MLflow na computação do Azure Machine Learning.
Funcionalidades das ferramentas cliente do MLflow vs Azure Machine Learning
A tabela a seguir mostra as operações do ciclo de vida de aprendizado de máquina possíveis com o SDK do MLflow e as ferramentas cliente do Azure Machine Learning.
Recurso | MLflow SDK | CLI/SDK v2 do Azure Machine Learning | Azure Machine Learning Studio |
---|---|---|---|
Acompanhar e registrar métricas, parâmetros e modelos | ✓ | ||
Recuperar métricas, parâmetros e modelos | ✓ | Apenas artefatos e modelos podem ser baixados. | ✓ |
Enviar trabalhos de treinamento | Possível usando Projetos do MLflow (versão prévia). | ✓ | ✓ |
Enviar trabalhos de treinamento com ativos de dados do Azure Machine Learning | ✓ | ✓ | |
Enviar trabalhos de treinamento usando pipelines de machine learning | ✓ | ✓ | |
Gerenciar experimentos e execuções | ✓ | ✓ | ✓ |
Gerenciar modelos do MLflow | Pode não haver suporte para algumas operações.1 | ✓ | ✓ |
Gerenciar modelos não MLflow | ✓ | ✓ | |
Implantar modelos do MLflow no Azure Machine Learning (online e em lote) | Atualmente, não há suporte para a implantação de modelos do MLflow para inferência em lote.2 | ✓ | ✓ |
Implantar modelos não MLflow no Azure Machine Learning | ✓ | ✓ |
1 Para mais informações, confira Gerenciar registros de modelos no Azure Machine Learning com o MLflow.
2 Para uma alternativa, confira Implantar e executar modelos do MLflow em trabalhos do Spark.