Acompanhe a execução do treinamento profundo em ML e aprendizagem

O componente de acompanhamento do MLflow permite registrar propriedades de origem, parâmetros, métricas, tags e artefatos relacionados ao treinamento de um modelo machine learning ou aprendizagem profunda. Para começar a usar o MLflow, experimente um dos tutoriais de início rápido do MLflow.

MLflow acompanhamento com experimentos e execução

O acompanhamento do MLflow é baseado em dois conceitos, experimentos e execução:

Observação

A partir de 27 de março de 2024, o site MLflow impõe um limite de cota sobre o número total de parâmetros, tags, e métricas os passos 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.

  • Um experimento MLflow é a unidade primária de organização e controle de acesso para execução MLflow; todas as execuções do MLflow pertencem a um experimento. Os experimentos permitem visualizar, pesquisar e comparar execuções, bem como downloads artefatos de execução e metadados para análise em outras ferramentas.

  • Uma execução do MLflow corresponde a uma única execução do código do modelo.

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

Observação

MLflow é instalado em clusters Databricks Runtime ML. Para usar o MLflow em clusters Databricks Runtime, você deve instalar a biblioteca mlflow. Para obter instruções sobre como instalar uma biblioteca em clusters, consulte Instalar uma biblioteca em clusters. Os pacotes específicos a serem instalados para MLflow são:

  • Para Python, selecione a biblioteca Source PyPI e insira mlflow no campo do pacote .

  • Para R, selecione biblioteca Source CRAN e digite mlflow no campo pacote .

  • Para Scala, instale estes dois pacotes:

    • Selecione a biblioteca Source Maven e digite org.mlflow:mlflow-client:1.11.0 no campo Coordenadas .

    • Selecione a biblioteca Source PyPI e insira mlflow no campo do pacote .

Onde a execução do MLflow são logs

Todas as execuções do MLflow são logs do experimento ativo, que podem ser configurados usando qualquer uma das seguintes formas:

Se nenhum experimento ativo for definido, a execução será logs no experimentoNotebook .

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

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

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

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


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")

Notebook de exemplo de log

Este Notebook mostra como logs a execução de um experimento Notebook e de um experimento workspace . Somente a execução de MLflow iniciada em um Notebook pode ser logs no experimento Notebook . A execução do MLflow lançada de qualquer Notebook ou das APIs pode ser logs em um experimento workspace . Para obter informações sobre como visualizar a execução logs , consulte o experimento View Notebook e o experimento View workspace.

logs Notebook de execução MLflow

Abra o bloco de anotações em outra guia

Você pode usar APIs MLflow Python, Java ou Scala e R para iniciar execuções e registrar dados de execução. Para obter detalhes, consulte o exemplo de Notebook do MLflow.

Acesse o servidor de acompanhamento MLflow de fora do Databricks

Você também pode gravar e ler do servidor de acompanhamento de fora do Databricks, por exemplo, usando a CLI do MLflow. Consulte Acessar o servidor de acompanhamento do MLflow de fora do Databricks.

Analisar a execução do MLflow programaticamente

Você pode acessar os dados de execução do MLflow programaticamente usando as duas APIs DataFrame a seguir:

Este exemplo demonstra como usar o cliente Python do MLflow para criar um painel que visualiza as mudanças 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 saídas de treinamento do modelo podem variar

Muitos dos algoritmos usados em ML possuem um elemento aleatório, como amostragem ou condições iniciais aleatórias dentro do próprio algoritmo. Quando você ensina um modelo usando um desses algoritmos, os resultados podem não ser os mesmos a cada execução, mesmo que você comece a execução com as mesmas condições. Muitas bibliotecas oferecem um mecanismo de propagação para corrigir as condições iniciais desses elementos estocásticos. No entanto, pode haver outras fontes de variação que não são 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 esta 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 repartition e sortWithinPartitions do PySpark.

Exemplos de acompanhamento do MLflow

O Notebook a seguir demonstra como ensinar vários tipos de modelos e rastrear os dados de ensino no MLflow e como armazenar dados de acompanhamento no Delta Lake.