Databricks Registo automático
Esta página aborda como personalizar o Databricks Autologging, que captura automaticamente parâmetros de modelo, métricas, arquivos e informações de linhagem 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 registrá-los facilmente no Registro de Modelo MLflow.
Nota
Para habilitar o log de rastreamento para cargas de trabalho de IA generativas, o MLflow suporta o registro automático do OpenAI.
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.
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 log de modelo (log_models
), conjuntos de dados de log (log_datasets
), coletar exemplos de entrada (log_input_examples
), assinaturas de modelo de log (log_model_signatures
), 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:
- Chame mlflow.autolog() com
exclusive=False
. - 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. - Use métodos de rastreamento MLflow, como mlflow.log_param(), para rastrear o conteúdo de pré-treinamento.
- Treine um ou mais modelos de aprendizado de máquina em uma estrutura suportada pelo Databricks Autologging.
- Use métodos de rastreamento MLflow, como mlflow.log_metric(), para acompanhar o conteúdo pós-treinamento.
- 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
- statsmodels
- PaddlePaddle
- OpenAI
- LangChain
Para obter mais informações sobre cada uma das estruturas suportadas, consulte Log automático MLflow.
Ativação do MLflow Tracing
O MLflow Tracing utiliza o autolog
recurso dentro das respetivas integrações de estrutura de modelo para controlar a habilitação ou desativação do suporte de rastreamento para integrações que suportam rastreamento.
Por exemplo, para habilitar o rastreamento ao usar um modelo LlamaIndex, utilize mlflow.llama_index.autolog() com log_traces=True
:
import mlflow
mlflow.llama_index.autolog(log_traces=True)
As integrações suportadas que têm ativação de rastreamento em suas implementações de log automático são:
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.