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)
O MLflow é uma estrutura de código aberto projetada para gerenciar o ciclo de vida completo 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 os experimentos estão sendo executados: seja localmente no computador, em um destino de computação remota, em uma máquina virtual ou em uma 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 workspaces do Azure Machine Learning da mesma forma que usa um servidor do MLflow. Essa compatibilidade tem as seguintes vantagens:
- O Azure Machine Learning não hospeda as instâncias de servidor do MLflow nos bastidores; em vez disso, o espaço de trabalho pode falar a linguagem da API do MLflow.
- Você pode usar os workspaces do Azure Machine Learning como o servidor de acompanhamento de código do MLflow, seja para execuções no Azure Machine Learning ou não. Você só precisa configurar o MLflow para apontar para o workspace em que o acompanhamento deve acontecer.
- Você pode executar qualquer rotina de treinamento que use o MLflow no Azure Machine Learning sem alterações.
Dica
Ao contrário do SDK v1 do Azure Machine Learning, não há funcionalidade de registro em log no SDK v2. Recomendamos que você use o MLflow para registro em log, para que suas rotinas de treinamento sejam independentes de nuvem e portáteis, removendo qualquer dependência que seu código tenha no Azure Machine Learning.
Acompanhamento com o MLflow
O Azure Machine Learning usa o acompanhamento do MLflow para registrar métricas e armazenar artefatos para seus experimentos. Quando você estiver conectado ao Azure Machine Learning, todo o acompanhamento executado usando o MLflow será materializado no workspace no qual você está trabalhando. Para saber mais sobre como configurar seus experimentos para usar o MLflow para acompanhar experimentos e rotinas de treinamento, confira Registrar métricas, parâmetros e arquivos com MLflow. Você também pode usar o MLflow para consulta e comparar experimentos e execuções.
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 fornece um local centralizado, seguro e escalável para armazenar métricas e modelos de treinamento.
O uso do MLflow no Azure Machine Learning inclui os recursos para:
- 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.
Blocos de anotações de exemplo
- Treinamento e acompanhamento de um classificador XGBoost com o MLflow: demonstra como acompanhar experimentos usando MLflow, modelos de log e combinar vários tipos em pipelines.
- Treinamento e acompanhamento de um classificador XGBoost com o MLflow usando a autenticação da entidade de serviço: demonstra como acompanhar experimentos usando o MLflow por meio de uma computação que está sendo executada 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 hiper parâmetros usando o HyperOpt e execuções aninhadas no MLflow: demonstra como usar execuções filho no MLflow para fazer otimização de hiper parâmetro para os modelos que usam a biblioteca popular
Hyperopt
. O exemplo mostra como transferir métricas, parâmetros e artefatos de execuções filho para execuções pai. - Modelos de registro em log com o 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 o MLflow: demonstra como consultar experimentos, execuções, métricas, parâmetros e artefatos do Azure Machine Learning usando o MLflow.
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 Jupyter Notebooks com kernels do R.
- O gerenciamento e o registro de modelos não têm suporte com o uso do SDK do R do MLflow. Como alternativa, 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 acompanhamento do MLflow com o Azure Machine Learning, veja os exemplos em Treinar modelos do 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 usando o SDK do Java para MLflow. Nesse caso, use a pasta
Outputs
em trabalhos junto com o métodomlflow.save_model
para salvar modelos (ou artefatos) que você deseja capturar.
Para saber mais sobre como usar o cliente de acompanhamento do MLflow com o Azure Machine Learning, veja o Exemplo de Java que usa o cliente de acompanhamento do MLflow com o Azure Machine Learning.
Registros de Modelo com o MLflow
O Azure Machine Learning dá suporte ao MLflow para gerenciamento de modelos. Isso representa uma forma conveniente de dar suporte a todo o ciclo de vida do modelo para usuários familiarizados com o cliente MLFlow.
Para saber mais sobre como gerenciar modelos usando a API do MLflow no Azure Machine Learning, veja Gerenciar registros de modelo no Azure Machine Learning com o MLflow.
Caderno de exemplo
- Gerenciar registros de modelo com o MLflow: demonstra como gerenciar modelos em registros usando o MLflow.
Implantação de modelo com o MLflow
Você pode implantar modelos do MLflow no Azure Machine Learning e aproveitar a experiência aprimorada ao usar os modelo do MLflow. 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. Há suporte para implantação com 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 do MLflow no Azure Machine Learning para inferência em tempo real e em lote, confira Diretrizes para implantar modelos do MLflow.
Blocos de anotações 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.
- Implantar o MLflow em serviços Web (V1): demonstra como implantar modelos no formato MLflow em serviços Web (ACI/AKS v1) usando o SDK do MLflow.
- Implantar modelos treinados no Azure Databricks no Azure Machine Learning com o 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 do MLflow no Azure Databricks.
Treinamento com os projetos do MLflow (versão prévia)
Importante
Os itens marcados (versão prévia) neste artigo estão atualmente em versão prévia pública. A 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 os Projetos do MLflow (versão prévia). 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 com projetos do MLflow que usam workspaces do Azure Machine Learning para acompanhamento, confira Treinar modelos de machine learning com os projetos do MLflow e do Azure Machine Learning.
Blocos de anotações de exemplo
- Acompanhar um projeto do MLflow em workspaces do Azure Machine Learning.
- Treinar e executar um projeto do MLflow em trabalhos do Azure Machine Learning.
Funcionalidades do SDK do MLflow, do Azure Machine Learning v2 e do Estúdio do 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 machine learning.
Recurso | MLflow SDK | CLI/SDK do Azure Machine Learning | Azure Machine Learning Studio |
---|---|---|---|
Acompanhar e registrar métricas, parâmetros e modelos | ✓ | ||
Recuperar métricas, parâmetros e modelos | ✓ | 1 | ✓ |
Enviar trabalhos de treinamento | ✓2 | ✓ | ✓ |
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 | ✓3 | ✓ | ✓ |
Gerenciar modelos não MLflow | ✓ | ✓ | |
Implantar modelos do MLflow no Azure Machine Learning (online e em lote) | ✓4 | ✓ | ✓ |
Implantar modelos não MLflow no Azure Machine Learning | ✓ | ✓ |
Observação
- 1 Somente artefatos e modelos podem ser baixados.
- 2 Possível usando projetos do MLflow (versão prévia).
- 3 Algumas operações podem não ter suporte. Consulte Gerenciar registros de modelo no Azure Machine Learning com o MLflow para obter detalhes.
- 4 A implantação de modelos do MLflow para inferência em lote usando o SDK do MLflow não é possível no momento. Como alternativa, confira Implantar e executar modelos do MLflow em trabalhos do Spark.