MLflow e Azure Machine Learning
APLICA-SE A:Azure CLI ml extension v2 (current)Python SDK azure-ai-ml v2 (current)
O MLflow é uma estrutura de código aberto projetada para gerenciar todo o ciclo de vida do aprendizado de máquina. Sua capacidade de treinar e servir modelos em diferentes plataformas permite que você use um conjunto consistente de ferramentas, independentemente de onde seus experimentos estão sendo executados: seja localmente em seu computador, em um destino de computação remoto, em uma máquina virtual ou em uma instância de computação do Azure Machine Learning.
Os espaços de trabalho do Azure Machine Learning são compatíveis com MLflow, o que significa que você pode usar os espaços de trabalho do Azure Machine Learning da mesma forma que usaria um servidor MLflow. Esta compatibilidade tem as seguintes vantagens:
- O Azure Machine Learning não hospeda instâncias de servidor MLflow nos bastidores; em vez disso, o espaço de trabalho pode falar a linguagem da API MLflow.
- Você pode usar espaços de trabalho do Azure Machine Learning como seu servidor de rastreamento para qualquer código MLflow, seja ele executado no Azure Machine Learning ou não. Você só precisa configurar o MLflow para apontar para o espaço de trabalho onde o rastreamento deve acontecer.
- Você pode executar qualquer rotina de treinamento que use o MLflow no Aprendizado de Máquina do Azure sem qualquer alteração.
Gorjeta
Ao contrário do SDK do Azure Machine Learning v1, não há nenhuma funcionalidade de registro em log no SDK v2. Recomendamos que você use o MLflow para registro, para que suas rotinas de treinamento sejam independentes da nuvem e portáteis, removendo qualquer dependência que seu código tenha do Aprendizado de Máquina do Azure.
Rastreando com MLflow
O Azure Machine Learning usa o controle de MLflow para registrar métricas e armazenar artefatos para seus experimentos. Quando você está conectado ao Aprendizado de Máquina do Azure, todo o acompanhamento realizado usando MLflow é materializado no espaço de trabalho em que você está trabalhando. Para saber mais sobre como configurar seus experimentos para usar o MLflow para acompanhar experimentos e rotinas de treinamento, consulte Registrar métricas, parâmetros e arquivos com MLflow. Você também pode usar MLflow para consultar & comparar experimentos e execuções.
O MLflow no Azure Machine Learning fornece uma maneira de centralizar o rastreamento. Você pode conectar o MLflow aos espaços de trabalho do Azure Machine Learning mesmo quando estiver trabalhando localmente ou em uma nuvem diferente. O espaço de trabalho fornece um local centralizado, seguro e escalável para armazenar métricas e modelos de treinamento.
O uso do MLflow no Aprendizado de Máquina do Azure inclui os recursos para:
- Acompanhe experimentos e modelos de aprendizado de máquina executados localmente ou na nuvem.
- Acompanhe os experimentos de aprendizado de máquina do Azure Databricks.
- Acompanhe os experimentos de aprendizado de máquina do Azure Synapse Analytics.
Blocos de notas de exemplo
- Treinamento e acompanhamento de um classificador XGBoost com MLflow: demonstra como rastrear experimentos usando MLflow, modelos de log e combinar vários sabores em pipelines.
- Treinamento e acompanhamento de um classificador XGBoost com MLflow usando a autenticação da entidade de serviço: demonstra como controlar experimentos usando MLflow de uma computação que está sendo executada fora do Aprendizado de Máquina do Azure. O exemplo mostra como 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 em MLflow: Demonstra como usar execuções filho no MLflow para fazer otimização de hiperparâmetros para modelos usando a biblioteca
Hyperopt
popular . O exemplo mostra como transferir métricas, parâmetros e artefatos de execuções filho para execuções pai. - Registrando modelos com MLflow: Demonstra como usar o conceito de modelos, em vez de artefatos, com MLflow. O exemplo também mostra como construir modelos personalizados.
- Gerenciar execuções e experimentos com MLflow: demonstra como consultar experimentos, execuções, métricas, parâmetros e artefatos do Aprendizado de Máquina do Azure usando MLflow.
Rastreamento com MLflow em R
O suporte a MLflow em R tem as seguintes limitações:
- O acompanhamento do MLflow está limitado ao acompanhamento de métricas, parâmetros e modelos de experiências em trabalhos do Azure Machine Learning.
- Não há suporte para treinamento interativo em notebooks RStudio, Posit (anteriormente RStudio Workbench) ou Jupyter com kernels R.
- O gerenciamento e o registro de modelos não são suportados usando o SDK do MLflow R. Em vez disso, use a CLI do Azure Machine Learning ou o estúdio do Azure Machine Learning para registro e gerenciamento de modelos.
Para saber mais sobre como usar o cliente de rastreamento MLflow com o Azure Machine Learning, exiba os exemplos em Treinar modelos R usando a CLI do Azure Machine Learning (v2).
Rastreando com MLflow em Java
O suporte a MLflow em 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 rastreados usando o MLflow Java SDK. Em vez disso, use a
Outputs
pasta em trabalhos junto com omlflow.save_model
método para salvar modelos (ou artefatos) que você deseja capturar.
Para saber mais sobre como usar o cliente de rastreamento MLflow com o Azure Machine Learning, exiba o exemplo Java que usa o cliente de rastreamento MLflow com o Azure Machine Learning.
Modelos de registos com MLflow
O Azure Machine Learning dá suporte ao MLflow para gerenciamento de modelos. Esse suporte representa uma maneira conveniente de oferecer suporte a todo o ciclo de vida do modelo para usuários que estão familiarizados com o cliente MLflow.
Para saber mais sobre como gerenciar modelos usando a API MLflow no Azure Machine Learning, consulte Gerenciar registros de modelo no Azure Machine Learning com MLflow.
Bloco de notas de exemplo
- Gerenciar registros de modelo com MLflow: Demonstra como gerenciar modelos em registros usando MLflow.
Implantação de modelo com MLflow
Você pode implantar modelos MLflow no Azure Machine Learning e aproveitar a experiência aprimorada ao usar modelos MLflow. O Azure Machine Learning dá suporte à implantação de modelos MLflow em pontos de extremidade em tempo real e em lote sem precisar especificar um ambiente ou um script de pontuação. A implantação é suportada usando o SDK do MLflow, a CLI do Azure Machine Learning, o SDK do Azure Machine Learning para Python ou o estúdio do Azure Machine Learning.
Para saber mais sobre como implantar modelos MLflow no Azure Machine Learning para inferência em tempo real e em lote, consulte Diretrizes para implantar modelos MLflow.
Blocos de notas de exemplo
- Implantar o MLflow em pontos de extremidade online: demonstra como implantar modelos no formato MLflow em pontos de extremidade online usando o SDK do MLflow.
- Implantar o MLflow em pontos de extremidade online com distribuição segura: demonstra como implantar modelos no formato 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.
- Deploy MLflow to Web services (V1): Demonstra como implantar modelos no formato MLflow para serviços Web (ACI/AKS v1) usando o SDK MLflow.
- Implantar modelos treinados no Azure Databricks no Azure Machine Learning com MLflow: demonstra como treinar modelos no Azure Databricks e implantá-los no Azure Machine Learning. O exemplo também aborda como lidar com casos em que você também deseja acompanhar os experimentos com a instância MLflow no Azure Databricks.
Formação com projetos MLflow (pré-visualização)
Importante
Os itens marcados (visualização) neste artigo estão atualmente em visualização pública. A versão de visualização é fornecida sem um contrato de nível de serviço e não é recomendada para cargas de trabalho de produção. Algumas funcionalidades poderão não ser suportadas ou poderão ter capacidades limitadas. Para obter mais informações, veja Termos Suplementares de Utilização para Pré-visualizações do Microsoft Azure.
Você pode enviar trabalhos de treinamento para o Azure Machine Learning usando projetos MLflow (visualização). Você pode enviar trabalhos localmente com o acompanhamento do Azure Machine Learning ou migrar seus trabalhos para a nuvem por meio da computação do Azure Machine Learning.
Para saber como enviar trabalhos de treinamento com projetos MLflow que usam espaços de trabalho do Azure Machine Learning para rastreamento, consulte Treinar modelos de aprendizado de máquina com projetos MLflow e Azure Machine Learning.
Blocos de notas de exemplo
- Acompanhe um projeto MLflow nos espaços de trabalho do Azure Machine Learning.
- Treine e execute um projeto MLflow em trabalhos do Azure Machine Learning.
SDK do MLflow, Azure Machine Learning v2 e recursos do estúdio Azure Machine Learning
A tabela a seguir mostra as operações possíveis, usando cada uma das ferramentas de cliente disponíveis no ciclo de vida do aprendizado de máquina.
Caraterística | MLflow SDK | Azure Machine Learning CLI/SDK | Azure Machine Learning Studio |
---|---|---|---|
Rastreie e registre métricas, parâmetros e modelos | ✓ | ||
Recuperar métricas, parâmetros e modelos | ✓ | 1 | ✓ |
Submeter trabalhos de formação | ✓ 2 | ✓ | ✓ |
Enviar trabalhos de treinamento com ativos de dados do Azure Machine Learning | ✓ | ✓ | |
Envie trabalhos de treinamento com pipelines de aprendizado de máquina | ✓ | ✓ | |
Gerencie experimentos e execuções | ✓ | ✓ | ✓ |
Gerenciar modelos MLflow | ✓3 | ✓ | ✓ |
Gerenciar modelos não-MLflow | ✓ | ✓ | |
Implantar modelos MLflow no Azure Machine Learning (Online & Batch) | ✓4 | ✓ | ✓ |
Implantar modelos não-MLflow no Azure Machine Learning | ✓ | ✓ |
Nota
- 1 Somente artefatos e modelos podem ser baixados.
- 2 Possível usando projetos MLflow (visualização).
- 3 Algumas operações podem não ser suportadas. Veja Gerir registos de modelo no Azure Machine Learning com MLflow para obter detalhes.
- 4 A implantação de modelos MLflow para inferência em lote usando o SDK MLflow não é possível no momento. Como alternativa, consulte Implantar e executar modelos MLflow em trabalhos do Spark.