Acompanhe métricas com MLflow
Quando treinas um modelo com um script, podes incluir o MLflow nos scripts para acompanhar quaisquer parâmetros, métricas e artefactos. Quando executas o script como um job no Azure Machine Learning, consegues rever todos os parâmetros de entrada e saídas de cada execução.
Compreender MLflow
O MLflow é uma plataforma open-source, concebida para gerir todo o ciclo de vida da aprendizagem automática. Por ser open source, pode ser usado ao treinar modelos em diferentes plataformas. Aqui, exploramos como podemos integrar o MLflow com empregos de Machine Learning em Azure.
Existem duas opções para acompanhar empregos de aprendizagem automática com MLflow:
- Ativar o autologging usando
mlflow.autolog() - Use funções de registo para acompanhar métricas personalizadas usando
mlflow.log_*
Antes de poderes usar qualquer uma destas opções, precisas de configurar o ambiente para usar o MLflow.
Incluir MLflow no ambiente
Para usar o MLflow durante o treino, os pacotes mlflow e azureml-mlflow pip devem ser instalados no sistema de computação que executa o script. Por isso, deve incluir estes dois pacotes no ambiente. Pode criar um ambiente referindo-se a um ficheiro YAML que descreve o ambiente Conda. Como parte do ambiente Conda, pode incluir estes dois pacotes.
Por exemplo, neste ambiente personalizado, mlflow e azureml-mlflow são instalados usando pip.
name: mlflow-env
channels:
- conda-forge
dependencies:
- python=3.10
- pip
- pip:
- numpy
- pandas
- scikit-learn
- matplotlib
- mlflow
- azureml-mlflow
Depois de o ambiente estar definido e registado, certifique-se de o consultar ao submeter uma vaga.
Ativar o registo automático
Ao trabalhar com uma das bibliotecas comuns para aprendizagem automática, pode ativar o autolog no MLflow. O autologging regista parâmetros, métricas e artefactos do modelo sem que ninguém precise de especificar o que precisa de ser registado.
O autologging é suportado para as seguintes bibliotecas:
- Scikit-learn
- TensorFlow e Keras
- XGBoost
- LightGBM
- Spark
- Fastai
- Pytorch
Para ativar o autolog, adicione o seguinte código ao seu script de treino:
import mlflow
mlflow.autolog()
Métricas logarítmicas com MLflow
No teu script de treino, podes decidir qual métrica personalizada queres registar com o MLflow.
Dependendo do tipo de valor que pretende registar, use o comando MLflow para armazenar a métrica com a execução do experimento:
-
mlflow.log_param(): Registar parâmetro chave-valor único. Usa esta função para um parâmetro de entrada que queres registar. -
mlflow.log_metric(): Registar métrica chave-valor única. O valor tem de ser um número. Usa esta função para qualquer saída que queiras armazenar com a execução. -
mlflow.log_figure(): Registar uma figura do matplotlib diretamente como artefacto. Use esta função para registar gráficos sem os guardar primeiro no disco. -
mlflow.log_image(): Registar um objeto de imagem numpy ou PIL como artefacto. Use esta função para registar imagens diretamente sem as guardar primeiro no disco.
Para adicionar MLflow a um script de treino existente, pode adicionar o seguinte código:
import mlflow
reg_rate = 0.1
mlflow.log_param("Regularization rate", reg_rate)
Sugestão
Para uma visão geral completa de como usar o MLflow Tracking, leia a documentação do MLflow.
Submeter o trabalho
Por fim, precisas de submeter o script de treino como um trabalho no Azure Machine Learning. Quando usas MLflow num script de treino, todos os parâmetros, métricas e artefactos monitorizados são armazenados na execução do trabalho. Podes revisá-los em cada tentativa depois de submeteres o trabalho.
Configuras o trabalho como de costume. Só precisas de garantir que o ambiente a que te referes no trabalho inclui os pacotes necessários, e que o script descreve quais as métricas que queres registar.