Databricks Registo automático

O Databricks Autologging é uma solução sem código que estende o log automático MLflow para fornecer rastreamento automático de experimentos para sessões de treinamento de aprendizado de máquina no Azure Databricks.

Com o Databricks Autologging, parâmetros de modelo, métricas, arquivos e informações de linhagem são capturados automaticamente quando você treina modelos de uma variedade de bibliotecas populares de aprendizado de máquina. As sessões de treinamento são registradas como execuções de rastreamento MLflow. Os arquivos de modelo também são rastreados para que você possa facilmente registrá-los no Registro de Modelo MLflow e implantá-los para pontuação em tempo real com o Model Serving.

O vídeo a seguir mostra o Databricks Autologging com uma sessão de treinamento de modelo scikit-learn em um notebook Python interativo. As informações de rastreamento são capturadas e exibidas automaticamente na barra lateral Experiment Runs e na interface do usuário MLflow.

Exemplo de registo automático

Requisitos

  • O registro automático do Databricks está geralmente disponível em todas as regiões com o Databricks Runtime 10.4 LTS ML ou superior.
  • O registro automático do Databricks está disponível em regiões de visualização selecionadas com o Databricks Runtime 9.1 LTS ML ou superior.

Como funciona

Quando você anexa um bloco de anotações Python interativo a um cluster do Azure Databricks, o Databricks Autologging chama mlflow.autolog() para configurar o acompanhamento para suas sessões de treinamento de modelo. Quando você treina modelos no notebook, as informações de treinamento do modelo são rastreadas automaticamente com o MLflow Tracking. Para obter informações sobre como essas informações de treinamento de modelo são protegidas e gerenciadas, consulte Segurança e gerenciamento de dados.

A configuração padrão para a chamada mlflow.autolog() é:

mlflow.autolog(
    log_input_examples=False,
    log_model_signatures=True,
    log_models=True,
    disable=False,
    exclusive=False,
    disable_for_unsupported_versions=True,
    silent=False
)

Você pode personalizar a configuração de registro automático.

Utilização

Para usar o Databricks Autologging, treine um modelo de aprendizado de máquina em uma estrutura suportada usando um bloco de anotações Python interativo do Azure Databricks. O Databricks Autologging registra automaticamente informações, parâmetros e métricas de linhagem de modelos no MLflow Tracking. Você também pode personalizar o comportamento do Databricks Autologging.

Nota

O registro automático do Databricks não é aplicado a execuções criadas usando a API fluente do MLflow com mlflow.start_run()o . Nesses casos, você deve chamar mlflow.autolog() para salvar o conteúdo registrado automaticamente na execução MLflow. Consulte Rastrear conteúdo adicional.

Personalizar o comportamento de registro em log

Para personalizar o log, use mlflow.autolog(). Esta função fornece parâmetros de configuração para habilitar o registro em log do modelo (log_models), coletar exemplos de entrada (log_input_examples), configurar avisos (silent) e muito mais.

Rastrear conteúdo adicional

Para controlar métricas, parâmetros, arquivos e metadados adicionais com execuções MLflow criadas pelo Databricks Autologging, siga estas etapas em um bloco de anotações Python interativo do Azure Databricks:

  1. Chame mlflow.autolog() com exclusive=False.
  2. Inicie uma execução MLflow usando mlflow.start_run(). Você pode envolver essa chamada with mlflow.start_run(), quando você fizer isso, a execução será encerrada automaticamente após sua conclusão.
  3. Use métodos de rastreamento MLflow, como mlflow.log_param(), para rastrear o conteúdo de pré-treinamento.
  4. Treine um ou mais modelos de aprendizado de máquina em uma estrutura suportada pelo Databricks Autologging.
  5. Use métodos de rastreamento MLflow, como mlflow.log_metric(), para acompanhar o conteúdo pós-treinamento.
  6. Se você não usou with mlflow.start_run() na Etapa 2, encerre a execução do MLflow usando mlflow.end_run().

Por exemplo:

import mlflow
mlflow.autolog(exclusive=False)

with mlflow.start_run():
  mlflow.log_param("example_param", "example_value")
  # <your model training code here>
  mlflow.log_metric("example_metric", 5)

Desativar o registro automático do Databricks

Para desabilitar o registro automático do Databricks em um bloco de anotações Python interativo do Azure Databricks, chame mlflow.autolog() com disable=True:

import mlflow
mlflow.autolog(disable=True)

Os administradores também podem desativar o registro automático do Databricks para todos os clusters em um espaço de trabalho na guia Avançado da página de configurações de administrador. Os clusters devem ser reiniciados para que essa alteração entre em vigor.

Ambientes e estruturas suportados

O Databricks Autologging é suportado em blocos de anotações Python interativos e está disponível para as seguintes estruturas de ML:

  • scikit-learn
  • MLlib do Apache Spark
  • TensorFlow
  • Keras
  • Relâmpago PyTorch
  • XGBoost
  • LightGBM
  • Glúon
  • Fast.ai (versão 1.x)
  • modelos de estatísticas.

Para obter mais informações sobre cada uma das estruturas suportadas, consulte Log automático MLflow.

Segurança e gestão de dados

Todas as informações de treinamento do modelo rastreadas com o Databricks Autologging são armazenadas no MLflow Tracking e protegidas por permissões do MLflow Experiment. Você pode compartilhar, modificar ou excluir informações de treinamento do modelo usando a API ou a interface do usuário do MLflow Tracking .

Administração

Os administradores podem habilitar ou desabilitar o registro automático do Databricks para todas as sessões interativas do bloco de anotações em seu espaço de trabalho na guia Avançado da página de configurações de administrador. As alterações não entram em vigor até que o cluster seja reiniciado.

Limitações

  • O registro automático do Databricks não é suportado em trabalhos do Azure Databricks. Para usar o registro automático de trabalhos, você pode chamar explicitamente mlflow.autolog().
  • O registro automático do Databricks é habilitado somente no nó do driver do cluster do Azure Databricks. Para usar o registro automático de nós de trabalho, você deve chamar explicitamente mlflow.autolog() de dentro do código em execução em cada trabalhador.
  • A integração scikit-learn XGBoost não é suportada.

Apache Spark MLlib, Hyperopt e rastreamento automatizado de MLflow

O Databricks Autologging não altera o comportamento das integrações automatizadas existentes de rastreamento de MLflow para Apache Spark MLlib e Hyperopt.

Nota

No Databricks Runtime 10.1 ML, desativar a integração automatizada de rastreamento MLflow para Apache Spark MLlib CrossValidator e TrainValidationSplit modelos também desativa o recurso Databricks Autologging para todos os modelos Apache Spark MLlib.