Registro Automático do Databricks

O Databricks Autologging é uma solução sem código que estende o registro automático do MLflow para fornecer acompanhamento automático de experimentos para sessões de treinamento machine learning no Databricks.

Com Databricks Autologging, parâmetros de modelo, métricas, arquivos e informações de linhagem são capturados automaticamente quando você ensina modelos de uma variedade de bibliotecas populares de machine learning. As sessões de treinamento são registradas como acompanhamento de execução do MLflow. Os arquivos de modelo também são rastreados para que você possa logs los facilmente no MLflow Model Registry e aprimorá-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 Python Notebook interativo. A informação de acompanhamento é automaticamente capturada e exibida na barra lateral de execução do Experimento e na IU do MLflow.

Exemplo de registro automático

Requisitos

  • O Databricks Autologging está geralmente disponível em todas as regiões com Databricks Runtime 10.4 LTS ML ou acima.

  • Databricks Autologging está disponível em regiões de visualização selecionadas com Databricks Runtime 9.1 LTS ML ouacima.

Como funciona

Quando você anexa um Python Notebook interativo a clusters Databricks, Databricks Autologging chama mlflow.autolog() para configurar o acompanhamento para suas sessões de treinamento de modelo. Quando você ensina modelos no Notebook, a informação de ensino do modelo é rastreada automaticamente com o acompanhamento do MLflow. Para obter informações sobre como este modelo de informação de treinamento é protegido e gerenciado, consulte Segurança e gerenciamento de dados.

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

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.

Uso

Para usar o Databricks Autologging, ensine a versão do machine learning em uma estrutura com suporte usando um Databricks Python Notebook interativo. Databricks Autologging registra automaticamente informações, parâmetros e métricas de linhagem de modelo para acompanhamento de MLflow. Você também pode personalizar o comportamento do Databricks Autologging.

Observação

Databricks Autologging não é aplicado à execução criada usando a API fluente do MLflow com mlflow.start_run(). Nesses casos, você deve chamar mlflow.autolog() para salvar o conteúdo registrado automaticamente na execução do MLflow. Consulte Rastrear conteúdo adicional.

Personalizar o comportamento de registro

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

Rastrear conteúdo adicional

Para rastrear métricas, parâmetros, arquivos e metadados adicionais com a execução MLflow criada pelo Databricks Autologging, siga estes passos em um Databricks Python Notebook interativo:

  1. Chame mlflow.autolog() com exclusive=False.

  2. começar uma execução do MLflow usando mlflow.começar(). Você pode agrupar esta chamada em with mlflow.start_run(); quando você fizer isso, a execução será encerrada automaticamente após sua conclusão.

  3. Use métodos de acompanhamento do MLflow, como mlflow.logs(), para rastrear o conteúdo pré-treinamento.

  4. ensino um ou mais modelo do machine learning em uma estrutura suportada pelo Databricks Autologging.

  5. Use métodos de acompanhamento do MLflow, como mlflow.logs(), para rastrear o conteúdo pós-treinamento.

  6. Se você não usou with mlflow.start_run() na passo 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)

Desabilitar Databricks Autologging

Para desabilitar o Databricks Autologging em um Databricks Python Notebook interativo, chame mlflow.autolog() com disable=True:

import mlflow
mlflow.autolog(disable=True)

Os administradores também podem desabilitar o Databricks Autologging para todos os clusters em um workspace 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 compatíveis

Databricks Autologging tem suporte no Python Notebook interativo e está disponível para as seguintes estruturas de ML:

  • Scikit-Learn

  • Apache Spark MLlibName

  • TensorFlow

  • Keras

  • Relâmpago PyTorch

  • XGBoostGenericName

  • Light GBM

  • glúon

  • Fast.IA (versão 1.x)

  • statsmodels.

Para obter mais informações sobre cada uma das estruturas suportadas, consulte MLflow automatic logging.

Segurança e gestão de dados

Todas as informações de treinamento de modelos rastreadas com Databricks Autologging são armazenadas em MLflow acompanhamento e são protegidas por MLflow Permissões de experiência. O senhor pode compartilhar, modificar ou excluir informações de treinamento de modelos usando o MLflow acompanhamento API ou UI.

Administração

Os administradores podem habilitar ou desabilitar o Databricks Autologging para todas as sessões interativas Notebook em seu workspace na guia Avançado da página de configurações do administrador. As alterações não entram em vigor até que os clusters sejam reiniciados.

Limitações

  • Databricks Autologging não tem suporte no Databricks Job. Para usar o registro automático de Job, você pode chamar explicitamente mlflow.autolog().

  • Databricks Autologging é habilitado apenas no nó do driver de seus clusters Databricks. Para usar o registro automático de nós worker , você deve chamar explicitamente mlflow.autolog() de dentro do código em execução em cada worker.

  • A integração XGBoost Scikit-Learn não é suportada.

Acompanhamento Apache Spark MLlib, Hyperopt e MLflow automatizado

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

Observação

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