Partilhar via


MLlib do Apache Spark e controlo de MLflow automatizado

Nota

O rastreamento automatizado de MLflow MLlib foi preterido em clusters que executam o Databricks Runtime 10.1 ML e superior, e é desabilitado por padrão em clusters que executam o Databricks Runtime 10.2 ML e superior. Em vez disso, use o registro automático MLflow PySpark ML chamando mlflow.pyspark.ml.autolog(), que é habilitado por padrão com o Databricks Autologging.

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

O MLflow é uma plataforma open source para gerir o ciclo de vida completo de machine learning. O MLflow suporta rastreamento para ajuste de modelo de aprendizado de máquina em Python, R e Scala. Apenas para notebooks Python, as versões e compatibilidade das notas de versão do Databricks Runtime e o Databricks Runtime for Machine Learning suportam o rastreamento automatizadode MLflow para ajuste de modelo MLlib do Apache Spark.

Com o acompanhamento MLflow automatizado do 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 automaticamente registrados no MLflow. Sem o rastreamento automatizado do MLflow, você deve fazer chamadas de API explícitas para registrar no MLflow.

Gerenciar execuções do MLflow

CrossValidator ou TrainValidationSplit resultados de ajuste de log à medida que o MLflow aninhado é executado:

  • Execução principal ou principal: as informações para CrossValidator ou TrainValidationSplit são registradas na execução principal. Se já houver uma execução ativa, as informações serão registradas nessa execução ativa e a execução ativa não será interrompida. Se não houver nenhuma execução ativa, o MLflow criará uma nova execução, registrará nela e encerrará a execução antes de retornar.
  • Execuções filhas: Cada configuração de hiperparâmetro testada e a métrica de avaliação correspondente são registradas em uma execução filho sob a execução principal.

Ao chamar fit()o , o Azure Databricks recomenda o gerenciamento ativo de execução do MLflow, ou seja, envolver a chamada dentro fit() de uma instrução "with mlflow.start_run():". Isso garante que as informações sejam registradas em sua própria execução principal do MLflow e facilita o registro de tags, parâmetros ou métricas adicionais nessa execução.

Nota

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

O bloco de anotações Python a seguir demonstra o rastreamento automatizado do MLflow.

Notebook automatizado de rastreamento MLflow

Obter o bloco de notas

Depois de executar as ações na última célula do bloco de anotações, a interface do usuário MLflow deve exibir:

MLlib-MLflow demo