Acompanhe métricas com o MLflow
Ao treinar um modelo com um script, você pode incluir MLflow nos scripts para controlar quaisquer parâmetros, métricas e artefatos. Ao executar o script como um trabalho no Aprendizado de Máquina do Azure, você pode revisar todos os parâmetros de entrada e saídas para cada execução.
Entenda o MLflow
O MLflow é uma plataforma de código aberto, projetada para gerenciar todo o ciclo de vida do aprendizado de máquina. Como é de código aberto, pode ser usado quando modelos de treinamento em diferentes plataformas. Aqui, exploramos como podemos integrar o MLflow com trabalhos do Azure Machine Learning.
Há duas opções para rastrear trabalhos de aprendizado de máquina com MLflow:
- Habilite o registro automático usando
mlflow.autolog()
- Use funções de registro para rastrear métricas personalizadas usando
mlflow.log_*
Antes de usar qualquer uma dessas opções, você precisa configurar o ambiente para usar o MLflow.
Incluir MLflow no ambiente
Para usar o MLflow durante o trabalho de treinamento, os mlflow
pacotes e azureml-mlflow
pip precisam ser instalados na computação que executa o script. Portanto, você precisa incluir esses dois pacotes no ambiente. Você pode criar um ambiente referindo-se a um arquivo YAML que descreve o ambiente Conda. Como parte do ambiente Conda, você pode incluir esses dois pacotes.
Por exemplo, neste ambiente mlflow
personalizado e azureml-mlflow
são instalados usando pip:
name: mlflow-env
channels:
- conda-forge
dependencies:
- python=3.8
- pip
- pip:
- numpy
- pandas
- scikit-learn
- matplotlib
- mlflow
- azureml-mlflow
Uma vez que o ambiente é definido e registrado, certifique-se de consultá-lo ao enviar um trabalho.
Ativar registro automático
Ao trabalhar com uma das bibliotecas comuns para aprendizado de máquina, você pode habilitar o registro automático no MLflow. O registro automático registra parâmetros, métricas e artefatos de modelo sem que ninguém precise especificar o que precisa ser registrado.
O registro automático é suportado para as seguintes bibliotecas:
- Scikit-learn
- TensorFlow e Keras
- XGBoost
- LightGBM
- Spark
- Fastai
- Pytorch
Para habilitar o registro automático, adicione o seguinte código ao seu script de treinamento:
import mlflow
mlflow.autolog()
Registrar métricas com MLflow
Em seu script de treinamento, você pode decidir qualquer métrica personalizada que deseja registrar com o MLflow.
Dependendo do tipo de valor que você deseja registrar, use o comando MLflow para armazenar a métrica com a execução do experimento:
mlflow.log_param()
: Registrar o parâmetro key-value único. Use essa função para um parâmetro de entrada que você deseja registrar.mlflow.log_metric()
: Registre uma única métrica chave-valor. O valor deve ser um número. Use esta função para qualquer saída que você deseja armazenar com a execução.mlflow.log_artifact()
: Registre um arquivo. Use esta função para qualquer gráfico que você deseja registrar, salve como arquivo de imagem primeiro.
Para adicionar MLflow a um script de treinamento existente, você pode adicionar o seguinte código:
import mlflow
reg_rate = 0.1
mlflow.log_param("Regularization rate", reg_rate)
Gorjeta
Para obter uma visão geral completa de como usar o MLflow Tracking, leia a documentação do MLflow.
Submeter o trabalho
Finalmente, você precisa enviar o script de treinamento como um trabalho no Azure Machine Learning. Quando você usa MLflow em um script de treinamento e o executa como um trabalho, todos os parâmetros, métricas e artefatos controlados são armazenados com o trabalho executado.
Configure o trabalho como de costume. Você só precisa se certificar de que o ambiente ao qual você se refere no trabalho inclui os pacotes necessários e o script descreve quais métricas você deseja registrar.