Treinar e rastrear modelos em notebooks
Como cientista de dados, você usa notebooks para experimentar e treinar modelos. Para agrupar resultados de treinamento de modelo, você usará experimentos. Para acompanhar métricas de modelo com o MLflow ao treinar um modelo em um bloco de anotações, você pode usar os recursos de registro em log do MLflow.
Criar um experimento MLflow
Você pode criar um experimento MLflow, que permite agrupar execuções. Se você não criar um experimento, o MLflow assumirá o experimento padrão com o nome Default
.
Para criar uma experiência, execute o seguinte comando num bloco de notas:
import mlflow
mlflow.set_experiment(experiment_name="heart-condition-classifier")
Registrar resultados com MLflow
Agora, você está pronto para treinar seu modelo. Para iniciar uma execução rastreada pelo MLflow, você usará start_run()
o . Em seguida, para acompanhar o modelo, você pode:
- Habilite o registro automático.
- Use o registro em log personalizado.
Ativar registro automático
O MLflow suporta registro automático para bibliotecas populares de aprendizado de máquina. Se você estiver usando uma biblioteca suportada pelo autolog, o MLflow informará a estrutura que você está usando para registrar todas as métricas, parâmetros, artefatos e modelos que a estrutura considera relevantes.
Você pode ativar o registro automático usando o autolog
método para a estrutura que está usando. Por exemplo, para habilitar o registro automático para modelos XGBoost, você pode usar mlflow.xgboost.autolog()
o .
Gorjeta
Encontre uma lista de todas as estruturas suportadas para registro automático na documentação oficial do MLflow.
Uma célula de bloco de anotações que treina e rastreia um modelo de classificação usando registro automático pode ser semelhante ao exemplo de código a seguir:
from xgboost import XGBClassifier
with mlflow.start_run():
mlflow.xgboost.autolog()
model = XGBClassifier(use_label_encoder=False, eval_metric="logloss")
model.fit(X_train, y_train, eval_set=[(X_test, y_test)], verbose=False)
Assim que mlflow.xgboost.autolog()
for chamado, o MLflow iniciará uma execução dentro de um experimento no Aprendizado de Máquina do Azure para começar a acompanhar a execução do experimento.
Quando o trabalho for concluído, você poderá revisar todas as métricas registradas no estúdio.
Usar registro em log personalizado
Além disso, você pode registrar manualmente seu modelo com MLflow. O registro manual de modelos é útil quando você deseja registrar informações suplementares ou personalizadas que não são registradas por meio do registro automático.
Nota
Você pode optar por usar apenas o log personalizado ou usar o log personalizado em combinação com o registro automático.
As funções comuns usadas com o registro em log personalizado são:
mlflow.log_param()
: Registra um único parâmetro chave-valor. Use essa função para um parâmetro de entrada que você deseja registrar.mlflow.log_metric()
: Registra 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()
: Registra um arquivo. Use esta função para qualquer gráfico que você deseja registrar, salve como arquivo de imagem primeiro.mlflow.log_model()
: Registra um modelo. Use essa função para criar um modelo MLflow, que pode incluir uma assinatura personalizada, ambiente e exemplos de entrada.
Gorjeta
Saiba mais sobre como controlar modelos com MLflow explorando a documentação oficial do MLflow ou a documentação do Azure Machine Learning
Para usar o log personalizado em um bloco de anotações, inicie uma execução e registre qualquer métrica desejada:
from xgboost import XGBClassifier
from sklearn.metrics import accuracy_score
with mlflow.start_run():
model = XGBClassifier(use_label_encoder=False, eval_metric="logloss")
model.fit(X_train, y_train, eval_set=[(X_test, y_test)], verbose=False)
y_pred = model.predict(X_test)
accuracy = accuracy_score(y_test, y_pred)
mlflow.log_metric("accuracy", accuracy)
O registro em log personalizado oferece mais flexibilidade, mas também cria mais trabalho, pois você terá que definir qualquer parâmetro, métrica ou artefato que deseja registrar.
Quando o trabalho for concluído, você poderá revisar todas as métricas registradas no estúdio.