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 ML de ponta a ponta em Databricks.

MLflow acompanhamento com experimentos e execução

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 e execução para log e rastrear seu desenvolvimento do modelo ML e aprendizagem profunda. Uma execução é uma única execução do código do modelo. Durante a execução de um MLflow, o senhor pode usar os modelos logpara obter 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.

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.

Onde MLflow execução são registros

Todas as execuções do MLflow são registradas no experimento ativo, que pode ser definido de uma das seguintes formas:

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

Para log os resultados do seu experimento para um servidor de acompanhamento MLflow hospedado remotamente em um workspace diferente daquele em que o senhor está executando o experimento, defina o URI de acompanhamento para fazer referência ao workspace remoto com mlflow.set_tracking_uri() e defina o caminho para o seu experimento no workspace remoto usando mlflow.set_experiment().

Python
mlflow.set_tracking_uri(<uri-of-remote-workspace>)
mlflow.set_experiment("path to experiment in remote workspace")

Se estiver executando experimentos localmente e quiser log os resultados do experimento para o servidor de acompanhamento Databricks MLflow , forneça sua instância Databricks workspace (DATABRICKS_HOST) e os tokens de acesso pessoal Databricks (DATABRICKS_TOKEN). Em seguida, o senhor pode definir o URI de acompanhamento para fazer referência ao workspace com mlflow.set_tracking_uri() e definir o caminho para o seu experimento usando mlflow.set_experiment(). Consulte Executar autenticação de tokens de acesso pessoal em Databricks para obter detalhes sobre onde encontrar valores para as variáveis de ambiente DATABRICKS_HOST e DATABRICKS_TOKEN.

O exemplo de código a seguir demonstra a configuração desses valores:

Python

os.environ["DATABRICKS_HOST"] = "https://dbc-1234567890123456.cloud.databricks.com" # set to your server URI
os.environ["DATABRICKS_TOKEN"] = "dapixxxxxxxxxxxxx"

mlflow.set_tracking_uri("databricks")
mlflow.set_experiment("/your-experiment")

log execução 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

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

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.

Acesse o servidor de acompanhamento MLflow de fora Databricks

O senhor também pode gravar e ler no servidor de acompanhamento de fora do site Databricks, por exemplo, usando o endereço MLflow CLI. Consulte Acessar o servidor de acompanhamento MLflow de fora do site Databricks.

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 treina 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. Geralmente, 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.