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:

Blocos de anotações de exemplo

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étodo mlflow.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

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

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

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