Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
O rastreamento de experiências e a observabilidade estão integrados no tempo de execução da IA. O MLflow é um único local para os parâmetros de uma execução, métricas, métricas do sistema GPU, logs e artefactos. Cada execução está num experimento MLflow que podes partilhar com a tua equipa, e um painel de recursos da GPU integrado mostra a utilização em tempo real da GPU, memória e temperatura enquanto o teu código corre.
Pontos-chave nesta página:
- O MLflow é a interface unificada para experiências em tempo de execução de IA: métricas, parâmetros, métricas do sistema, registos e artefactos.
- Cargas de trabalho submetidas com a CLI Databricks recebem automaticamente uma execução MLflow. Em cadernos e guiões, chamar
mlflow.start_run()oumlflow.autolog(). - Um painel de recursos da GPU incorporado mostra utilização, memória e temperatura.
O que o MLflow oferece para aprendizagem profunda
- Métricas e parâmetros: Registar a perda de treino, métricas de avaliação, taxa de aprendizagem e hiperparâmetros, e compará-los entre execuções na interface do MLflow.
- Métricas do sistema: a utilização da GPU, da CPU e da memória é registada a par das suas métricas de treino no separador Métricas do sistema da execução.
- Registos: Saída do controlador da execução da tarefa no separador Registos da execução.
- Artefactos e modelos: Armazena ficheiros de modelo, configurações e outras saídas durante a execução. Os artefactos podem ser armazenados num volume do Unity Catalog.
- Partilha e colaboração: As experiências são objetos de espaço de trabalho. Conceda aos colegas de equipa acesso a uma experiência para partilhar corridas e comparar resultados. Consulte Organize treinos com experimentos do MLflow.
- Integrações de frameworks: Hugging Face Transformers, PyTorch Lightning e outras bibliotecas fazem login diretamente no MLflow.
Para padrões de deep learning no MLflow 3, veja o fluxo de trabalho de aprendizagem profunda do MLflow 3.
Preciso de adicionar código MLflow?
Depende de como submetes a carga de trabalho:
| Como corres | A corrida MLflow foi criada automaticamente? | O que adiciona |
|---|---|---|
Databricks CLI (databricks air run) |
Yes.
experiment_name no YAML da carga de trabalho configura o experimento, e as métricas e os registos do sistema são captados sem escrever código. |
Optional. Registar métricas personalizadas na execução MLFLOW_RUN_ID.
Veja Track runs com MLflow e a página de Jobs run. |
API de GPU serverless (@distributed) |
Yes. Cada chamada a .distributed() cria uma execução. |
Optional. Regista métricas personalizadas dentro da função. |
| Caderno ou script num único nó | No. O autologging não está ativado automaticamente em computação serverless. | Chamar mlflow.start_run() e registar métricas, ou chamar mlflow.autolog(). |
Introdução
Usa MLflow 3.7 e superiores. Os exemplos seguintes estão prontos para copiar para uma célula de caderno ou para um script Python.
Registar métricas de um ciclo de treino
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)
Usar autologging
No PyTorch Lightning, chame mlflow.pytorch.autolog() antes do treino. Para outras bibliotecas suportadas, contacte mlflow.autolog().
import mlflow
mlflow.pytorch.autolog()
with mlflow.start_run(run_name="lightning-baseline"):
trainer.fit(model, datamodule=datamodule)
Registo do Hugging Face Transformers
Defina report_to="mlflow". O argumento run_name define o nome da execução MLflow.
from transformers import TrainingArguments
args = TrainingArguments(
output_dir="/Volumes/<catalog>/<schema>/<volume>/checkpoints",
report_to="mlflow",
run_name="llama7b-sft-lr3e5",
logging_steps=50,
)
Registo de várias GPUs
No treino distribuído, todos os processos executam o seu código de treino. Registar apenas do rank 0 para que cada métrica seja registada apenas uma vez:
import os
import mlflow
if int(os.environ.get("RANK", "0")) == 0:
mlflow.log_metric("train_loss", loss, step=step)
Melhores práticas
- Defina
steppara um valor significativo, como o lote global ou época, e registre a intervalos (por exemplo, a cada 50 passos) em vez de a cada lote. O MLflow limita o número de passos de métricas por execução. Consulte Limites de recursos. - Use caminhos experimentais absolutos, como
/Users/<username>/my-experimentou/Workspace/Shared/<team>/my-experiment. Coloque os experimentos que pretende partilhar numa pasta partilhada. - Para retomar uma execução anterior, passe o seu ID:
mlflow.start_run(run_id="<previous-run-id>").
Serverless GPU API
Quando utiliza a API Serverless GPU, cada chamada para .distributed() cria automaticamente uma execução do MLflow. O experimento padrão é /Users/{WORKSPACE_USER}/{notebook-name}.
Se chamar
.distributed()dentro de uma execução MLflow ativa, cria-se uma execução filha aninhada sob essa execução:import mlflow with mlflow.start_run() as outer_run: run_train.distributed() # creates a nested child run under outer_runPara usar um experimento diferente, chame
mlflow.set_experiment()antes de.distributed(), ou defina a variável de ambienteMLFLOW_EXPERIMENT_NAME. Usa sempre caminhos absolutos.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_IDantes de chamar.distributed():os.environ["MLFLOW_RUN_ID"] = "<previous-run-id>" run_train.distributed()
Registos de visualização
- Saída do notebook: A saída padrão e os erros padrão do seu código de treino são apresentados na saída da célula do notebook.
- Registos MLflow: A interface do experimento MLflow apresenta métricas de treino, parâmetros e artefactos.
Se não conseguires ver registos
O separador Logs na página de execução do MLflow transmite os logs da execução de trabalhos Databricks associada à execução do MLflow, pelo que o acesso é governado pelas permissões desse trabalho. Se o separador mostrar Não tem acesso a estes registos, então não tem permissões suficientes.
O acesso à execução no MLflow não implica acesso ao trabalho. Pode ter a permissão da experiência do MLflow e, ainda assim, ser-lhe negado o acesso aos registos. Para obter acesso, pede a um utilizador com permissões de Gestão Possível ou a um administrador de espaço de trabalho para te conceder pelo menos a Visualização Pode no trabalho. Consulte Acesso de Controlo a um trabalho para saber como as permissões são concedidas.
Monitorizar recursos da GPU
O painel de recursos da GPU é uma funcionalidade de conveniência para sessões de notebook. Mostra a saúde e utilização da GPU em tempo real sem qualquer configuração de MLflow, por isso é especialmente útil quando a tua sessão de notebook não cria uma experiência MLflow. Para um registo persistente de métricas de GPU, CPU e memória associadas a uma execução, use antes o separador Métricas do sistema do MLflow. O painel suporta tanto cargas de trabalho de nó único como de múltiplos nós.
Para abrir o painel, liga o teu portátil ao AI Runtime e depois clica no Recursos da GPU no painel lateral direito.
O painel mostra as seguintes métricas para cada GPU:
- Percentagem de utilização da GPU
- Utilização da memória da GPU
- Temperatura
O painel consulta as métricas a cada 10 segundos e mantém até 2 horas de histórico. Clica Atualize para obter imediatamente os valores mais recentes. Após 5 minutos de inatividade, o vidro faz uma pausa; Reabra para retomar a monitorização.
Limites globais no Azure Databricks
Consulte Limites de recursos.