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
ouTrainValidationSplit
é 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.
Depois de executar as ações na última célula do Notebook, sua IU do MLflow deve exibir: