Pular para o conteúdo principal

Acompanhamento de experimentos e observabilidade

info

Visualização

Este recurso está em Pré-visualização Pública.

Experiment acompanhamento and observability are built into AI Runtime. MLflow é um único local para parâmetros, métricas, métricas do sistema GPU, logs e artefatos de uma execução. Every execução lives in an MLflow experiment that you can share with your team, and a built-in GPU recursos pane shows live GPU utilization, memory, and temperature while your code runs.

Pontos-key nesta página:

  • O MLflow é a interface unificada para experimentos do AI Runtime: métricas, parâmetros, métricas do sistema, logs e artefatos.
  • Cargas de trabalho enviadas com a CLI do Databricks recebem uma execução do MLflow automaticamente. Em notebooks e scripts, chame mlflow.start_run() ou mlflow.autolog().
  • Um painel de recursos de GPU integrada mostra a utilização, a memória e a temperatura.

O que o MLflow fornece para a aprendizagem profunda​

  • Metrics and parameters : registre a perda de treinamento, as métricas de avaliação, a taxa de aprendizado e os hiperparâmetros, e compare-os entre execuções na UI do MLflow.
  • Métricas do sistema : utilização de GPU, CPU e memória registrada junto com suas métricas de treinamento na Métricas do sistema tab da execução.
  • Logs : saída do Driver da execução do job na tab Logs da execução.
  • Artefatos e modelos : Armazene arquivos de modelo, configurações e outras saídas com a execução. Os artefatos podem ser armazenados em um volume do Unity Catalog.
  • Compartilhamento and collaboration : experimentos são objetos do workspace. Conceda aos colegas de equipe acesso a um experimento para compartilhar execuções e comparar resultados. Consulte Organize execuções de treinamento com experimentos do MLflow.
  • Integrações de frameworks : Hugging Face Transformers, PyTorch Lightning e outras bibliotecas registram logs diretamente no MLflow.

Para padrões de aprendizagem profunda no MLflow 3, consulte fluxo de trabalho de aprendizagem profunda do MLflow 3.

Preciso adicionar código do MLflow?​

It depends on how you submit the workload:

Como fazer a execução

MLflow execução created automatically?

What you add

Databricks CLI (databricks air run)

Sim. experiment_name no YAML da carga de trabalho define o experimento, e as métricas do sistema e os logs são capturados sem código.

Opcional. Registre métricas personalizadas na execução em MLFLOW_RUN_ID. Consulte Rastrear execuções com o MLflow e a página de execução de jobs.

API de GPU Serverless (@distributed)

Sim. Cada chamada de .distributed() cria uma execução.

Opcional. Registre métricas personalizadas de dentro da função.

Notebook ou script em um nó único

Não. O autologging não é ativado automaticamente no compute serverless.

Chame mlflow.start_run() e registre métricas, ou chame mlflow.autolog().

Como fazer a execução

MLflow execução created automatically?

What you add

Databricks CLI (databricks air run)

Sim. experiment_name no YAML da carga de trabalho define o experimento, e as métricas do sistema e os logs são capturados sem código.

Opcional. Registre métricas personalizadas na execução em MLFLOW_RUN_ID. Consulte Rastrear execuções com o MLflow e a página de execução de jobs.

API de GPU Serverless (@distributed)

Sim. Cada chamada de .distributed() cria uma execução.

Opcional. Registre métricas personalizadas de dentro da função.

Notebook ou script em um nó único

Não. O autologging não é ativado automaticamente no compute serverless.

Chame mlflow.start_run() e registre métricas, ou chame mlflow.autolog().

Introdução​

Use o MLflow 3.7 ou acima. Os exemplos a seguir estão prontos para serem copiados para uma célula de notebook ou um script Python.

Log métricas de um loop de treinamento​

Python
import mlflow

mlflow.set_experiment("/Users/<username>/my-experiment")

with mlflow.start_run(run_name="baseline-lr3e-4"):
mlflow.log_params({"learning_rate": 3e-4, "batch_size": 32, "epochs": 3})
for epoch in range(3):
train_loss = train_one_epoch(model, train_loader, optimizer) # your training code
val_loss = evaluate(model, val_loader)
mlflow.log_metrics({"train_loss": train_loss, "val_loss": val_loss}, step=epoch)

Use o registro automático​

For PyTorch Lightning, call mlflow.pytorch.autolog() before treinamento. For other supported bibliotecas, call mlflow.autolog().

Python
import mlflow

mlflow.pytorch.autolog()

with mlflow.start_run(run_name="lightning-baseline"):
trainer.fit(model, datamodule=datamodule)

Logs do Hugging Face Transformers​

Defina report_to="mlflow". O argumento run_name define o nome da execução do MLflow.

Python
from transformers import TrainingArguments

args = TrainingArguments(
output_dir="/Volumes/<catalog>/<schema>/<volume>/checkpoints",
report_to="mlflow",
run_name="llama7b-sft-lr3e5",
logging_steps=50,
)

Registrar de várias GPUs​

No treinamento distribuído, cada processo execução seu código de treinamento. Faça o log apenas a partir da classificação 0 para que cada métrica seja registrada uma vez:

Python
import os

import mlflow

if int(os.environ.get("RANK", "0")) == 0:
mlflow.log_metric("train_loss", loss, step=step)

Práticas recomendadas​

  • Defina step para um valor significativo, como o lotes global ou a época, e faça o log em um intervalo (por exemplo, a cada 50 os passos) em vez de a cada lotes. O MLflow limita o número de os passos de métricas por execução. Consulte Limites de recursos.
  • Use caminhos de experimento absolutos, como /Users/<username>/my-experiment ou /Workspace/Shared/<team>/my-experiment. Coloque os experimentos que deseja compartilhar em uma pasta compartilhada.
  • Para retomar uma execução anterior, passe o ID dela: mlflow.start_run(run_id="<previous-run-id>").

API do Serverless GPU​

Quando você usa a API de GPU Serverless, cada chamada para .distributed() cria automaticamente uma execução do MLflow. O default experiment é /Users/{WORKSPACE_USER}/{notebook-name}.

  • Se você chamar .distributed() dentro de uma execução ativa do MLflow, ele criará uma execução secundária aninhada sob essa execução:

    Python
    import mlflow

    with mlflow.start_run() as outer_run:
    run_train.distributed() # creates a nested child run under outer_run
  • Para usar um experimento diferente, chame mlflow.set_experiment() antes de .distributed(), ou defina a variável de ambiente MLFLOW_EXPERIMENT_NAME. Sempre use caminhos absolutos.

    Python
    import os

    import mlflow

    mlflow.set_experiment("/Users/<username>/my-experiment")
    # or: os.environ["MLFLOW_EXPERIMENT_NAME"] = "/Users/<username>/my-experiment"
    run_train.distributed()
  • Para retomar uma execução anterior, defina MLFLOW_RUN_ID antes de chamar .distributed():

    Python
    os.environ["MLFLOW_RUN_ID"] = "<previous-run-id>"
    run_train.distributed()

logsde visualização​

  • **Saída do Notebook**: A saída padrão e os erros do seu código de treinamento aparecem na saída da célula do notebook.
  • **Logs do MLflow**: A interface do usuário do experimento do MLflow exibe métricas de treinamento, parâmetros e artefatos.

Se você não puder ver os logs​

A tab Logs na página de execução do MLflow transmite logs da execução do Job do Databricks associada à execução do MLflow, portanto, o acesso é regido pelas permissões desse Job. Se a tab exibir Você não tem acesso a estes logs , você não terá permissões suficientes.

O acesso à execução no MLflow não implica acesso ao job. Você pode ter a permissão de experimento do MLflow e ainda assim ter os logs negados. Para obter acesso, peça a um usuário com permissões Can gerenciar ou a um administrador do Workspace para conceder a você pelo menos a permissão Can View no Job. Consulte Control access to a job para saber como as permissões de job são concedidas.

Monitorar recursos de GPU​

O painel Recursos de GPU é um recurso de conveniência para sessões de Notebooks . Ele mostra a integridade e a utilização da GPU em tempo real sem nenhuma configuração do MLflow, por isso é especialmente útil quando sua sessão de notebook não cria um experimento do MLflow. Para obter um registro persistente de métricas de GPU, CPU e memória vinculadas a uma execução, use a tab Métricas do sistema do MLflow. O painel oferece suporte a cargas de trabalho de nó único e de vários nós.

Para abrir o painel, conecte seu Notebook ao AI Runtime e clique em Ícone de chip. Recurso de GPU no painel lateral direito.

Painel de recursos da GPU mostrando métricas de utilização, memória e temperatura para cada GPU.

O painel exibe as seguintes métricas para cada GPU:

  • porcentagem de utilização da GPU
  • uso de memória da GPU
  • Temperatura

O painel consulta dados a cada 10 segundos e armazena até 2 horas de histórico. Clique ícone de atualização. Atualize a página para obter os valores mais recentes imediatamente. Após 5 minutos de inatividade, o painel pausa; abra-o novamente para retomar o monitoramento.

Limites globais no Databricks​

Consulte os limites de recursos.