Acompanhamento Apache Spark MLlib e MLflow automatizado

Observação

O acompanhamento de MLflow automatizado de MLlib foi preterido em clusters que executam Databricks Runtime 10.1 MLe acima e está desabilitado por default em clusters que executam Databricks Runtime 10.2 MLe acima. Em vez disso, use o log automático do MLflow PySpark ML chamando mlflow.pyspark.ml.autolog(), que é habilitado por default com Databricks Autologging.

Para usar o antigo acompanhamento de MLflow automatizado MLlib no Databricks Runtime 10.2 ML ouacima, habilite-o definindo as configurações do Spark spark.databricks.mlflow.trackMLlib.enabled true e spark.databricks.mlflow.autologging.enabled false.

MLflow é uma plataforma de código aberto para gerenciar o ciclo de vida machine learning de ponta a ponta. MLflow suporta acompanhamento para ajuste de modelo de machine learning em Python, R e Scala. Apenas para Python Notebook , Databricks Runtime notas sobre a versão versões e compatibilidade e Databricks Runtime for Machine Learning suportam acompanhamento automatizado de MLflow para ajuste de modelo Apache Spark MLlib.

Com o acompanhamento automatizado do MLflow da MLlib, quando você executa o código de ajuste que usa CrossValidator ou TrainValidationSplit, os hiperparâmetros e as métricas de avaliação são log in MLflow. Sem o acompanhamento automatizado do MLflow, você deve fazer chamadas de API explícitas para logs no MLflow.

Gerencia MLflow execução

CrossValidator ou TrainValidationSplit logs resultados de ajuste como execução de MLflow aninhada:

  • Execução principal ou pai: A informação para CrossValidator ou TrainValidationSplit é logs na execução principal. Se já houver uma execução ativa, as informações serão logs nessa execução ativa e a execução ativa não será interrompida. Se não houver nenhuma execução ativa, o MLflow cria uma nova execução, logs nela e encerra a execução antes de retornar.

  • Execuções filhas: cada configuração de hiperparâmetro testada e os indicadores de avaliação correspondentes são logs para uma execução filha na execução principal.

Ao chamar fit(), o Databricks recomenda o gerenciamento ativo de execução do MLflow; ou seja, envolva a chamada para fit() dentro de uma instrução “with mlflow.start_run():”. Isso garante que a informação logss em sua própria execução principal do MLflow e facilita o logs tags, parâmetros ou métricas adicionais para essa execução.

Observação

Quando fit() é chamado várias vezes na mesma execução ativa do MLflow, ele logs essas várias execuções na mesma execução principal. Para resolver conflitos de nome para parâmetros e tags do MLflow, o MLflow anexa um UUID aos nomes com conflitos.

O seguinte Python Notebook demonstra o acompanhamento automatizado do MLflow.

Notebook de acompanhamento MLflow automatizado

Abra o bloco de anotações em outra guia

Depois de executar as ações na última célula do Notebook, sua IU do MLflow deve exibir:

Demonstração do MLlib-MLflow