Pular para o conteúdo principal

Acompanhe o desenvolvimento do modelo usando o MLflow

MLflow O acompanhamento permite que o senhor acesse o log Notebook e treine conjuntos de dados, parâmetros, métricas, tags e artefatos relacionados ao treinamento de um modelo de aprendizagem profunda ou de aprendizado de máquina. Para obter um exemplo de Notebook para começar com MLflow, consulte o tutorial: Modelos clássicos de ponta a ponta do ML em Databricks.

MLflow acompanhamento com experimentos, execução e modelos

O processo de desenvolvimento do modelo é iterativo e pode ser difícil acompanhar seu trabalho à medida que você desenvolve e otimiza um modelo. Em Databricks, o senhor pode usar oMLflow acompanhamento para ajudá-lo a acompanhar o processo de desenvolvimento do modelo, inclusive as configurações ou combinações de parâmetros que tentou e como elas afetaram o desempenho do modelo.

MLflow O acompanhamento usa experimentos , execução e modelos para log e rastrear seu desenvolvimento de modelos de aprendizagem profunda e ML. Uma execução é uma única execução do código do modelo. Durante uma execução do MLflow, o senhor pode modelos logged parâmetros e resultados. Um experimento é uma coleção de execuções relacionadas. Em um experimento, o senhor pode comparar e filtrar a execução para entender o desempenho do seu modelo e como esse desempenho depende das configurações dos parâmetros, dos dados de entrada e assim por diante. Um modelo é uma coleção de artefatos que representam um modelo treinado para aprendizado de máquina.

Com o MLflow 3, o LoggedModels eleva o conceito de um modelo produzido por uma execução, estabelecendo-o como uma entidade distinta para rastrear o ciclo de vida do modelo em diferentes treinamentos e execuções de avaliação.

nota

A partir de 27 de março de 2024, o site MLflow impõe um limite de cota para o número total de parâmetros, tags e etapas métricas para todas as execuções existentes e novas, e o número total de execuções para todos os experimentos existentes e novos, consulte limites de recurso. Se o senhor atingir a cota de execuções por experimento, o site Databricks recomenda que exclua as execuções de que não precisa mais usando a opção excluir execução API em Python. Se o senhor atingir outros limites de cota, a Databricks recomenda ajustar sua estratégia de registro para manter-se abaixo do limite. Se precisar de um aumento nesse limite, entre em contato com a equipe Databricks account com uma breve explicação do seu caso de uso, por que as abordagens de atenuação sugeridas não funcionam e o novo limite solicitado.

MLflow acompanhamento API

O MLflow acompanhamento API logs parâmetros, métricas, tags e artefatos de uma execução de modelo. O acompanhamento API se comunica com um MLflow servidor de acompanhamento. Quando o senhor usa Databricks, um servidor de acompanhamento hospedado em Databricks logs os dados. O servidor hospedado MLflow acompanhamento tem Python, Java, e R APIs.

MLflow está pré-instalado no Databricks Runtime ML clustering. Para usar o MLflow em um cluster Databricks Runtime, o senhor deve instalar a biblioteca mlflow. Para obter instruções sobre a instalação de uma biblioteca em um cluster, consulte Instalar uma biblioteca em um cluster. Para usar o MLflow 3 e seus recursos de acompanhamento de última geração, certifique-se de atualizar para a versão mais recente (consulte Instalar o MLflow 3).

Onde MLflow execução são registros

Databricks fornece um servidor de acompanhamento MLflow hospedado que armazena os dados de seus experimentos em seu workspace sem necessidade de configuração. O senhor também pode configurar o site MLflow para usar diferentes servidores de acompanhamento quando necessário.

MLflow O acompanhamento é controlado por duas configurações:

  • acompanhamento URI : Determina qual servidor usar (padrão para o atual Databricks workspace)
  • Experimento : Determina para qual experimento nesse servidor o senhor deve acessar log
Python
import mlflow

# By default MLflow logs to the Databricks-hosted workspace tracking server. You can connect to a different server using the tracking URI.
mlflow.set_tracking_uri("databricks://remote-workspace-url")

# Set experiment in the tracking server
mlflow.set_experiment("/Shared/my-experiment")

Se nenhum experimento ativo for definido, a execução será registrada no experimento do Notebook.

Para obter mais informações sobre como controlar onde os dados do MLflow são armazenados, consulte Choose where your MLflow data is stored (Escolha onde os dados do são armazenados).

log execução e modelos para um experimento

MLflow pode log automaticamente o código de treinamento escrito em muitos frameworks de aprendizagem profunda e aprendizado de máquina. Essa é a maneira mais fácil de começar a usar o MLflow acompanhamento. Veja o exemplo do Notebook.

Para obter mais controle sobre quais parâmetros e métricas são registrados ou para log artefatos adicionais, como arquivos CSV ou graficar, use o MLflow logging API. Veja o exemplo do Notebook.

Use o registro automático para acompanhar o desenvolvimento do modelo

Este exemplo de Notebook mostra como usar o autologging com scikit-learn. Para obter informações sobre autologging com outras Python bibliotecas, consulte a documentação sobre autologging em MLflow.

MLflow Autologging Python Notebook para MLflow 3

Open notebook in new tab

Use a API de registro para acompanhar o desenvolvimento do modelo

Este exemplo de Notebook mostra como usar o Python logging API. O MLflow também tem APIs REST, R e Java.

MLflow Registro API Python Notebook para MLflow 3

Open notebook in new tab

log execução para um experimento workspace

Pelo default, quando o senhor treina um modelo em um Databricks Notebook, a execução é registrada no experimento do Notebook. Somente a MLflow execução iniciada em um Notebook pode ser registrada no experimento do Notebook.

MLflow A execução iniciada a partir de qualquer Notebook ou do site APIs pode ser registrada em um experimento workspace. Para log executar um experimento workspace, use um código semelhante ao seguinte em seu Notebook ou na chamada API:

Python
experiment_name = "/Shared/name_of_experiment/"
mlflow.set_experiment(experiment_name)

Para obter instruções sobre como criar um experimento workspace, consulte Criar experimento workspace. Para obter informações sobre como visualizar a execução de registros, consulte visualizar o experimento do Notebook e visualizar o experimento do workspace.

Analisar MLflow execução de forma programática

O senhor pode acessar os dados de execução do MLflow de forma programática usando as duas APIs DataFrame a seguir:

Este exemplo demonstra como usar o cliente MLflow Python para criar um painel que visualiza as alterações nas métricas de avaliação ao longo do tempo, rastreia o número de execuções iniciadas por um usuário específico e mede o número total de execuções de todos os usuários:

Por que as métricas e os resultados do treinamento do modelo podem variar

Muitos dos algoritmos usados no ML têm um elemento aleatório, como amostragem ou condições iniciais aleatórias dentro do próprio algoritmo. Quando o senhor ensina um modelo usando um desses algoritmos, os resultados podem não ser os mesmos em cada execução, mesmo que o senhor comece a execução com as mesmas condições. Muitas bibliotecas oferecem um mecanismo de semeadura para fixar as condições iniciais desses elementos estocásticos. No entanto, pode haver outras fontes de variação que não sejam controladas pelas sementes. Alguns algoritmos são sensíveis à ordem dos dados, e os algoritmos de ML distribuídos também podem ser afetados pela forma como os dados são particionados. Essa variação não é significativa e não é importante no processo de desenvolvimento do modelo.

Para controlar a variação causada por diferenças na ordenação e no particionamento, use as funções do PySpark repartition e sortWithinPartitions.

MLflow exemplos de acompanhamento

O Notebook a seguir demonstra como acompanhar o desenvolvimento do modelo usando o site MLflow.