Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Importante
O AI Runtime para tarefas de nó único está na Visualização Pública. A API de treinamento distribuído para cargas de trabalho de várias GPUs permanece em Beta.
Este artigo descreve como usar o MLflow, monitorar a integridade da GPU, exibir logs e gerenciar pontos de verificação de modelo no AI Runtime.
Integração com o MLflow
O AI Runtime integra-se nativamente ao MLflow para acompanhamento de experimentos, registro em log de modelos e visualização de métricas.
Recomendações de instalação:
Atualize o MLflow para a versão 3.7 ou mais recente e siga os padrões de fluxo de trabalho de aprendizado profundo.
Habilitar o registro automático para pyTorch Lightning:
import mlflow mlflow.pytorch.autolog()Personalize o nome da execução do MLflow ao encapsular o código de treinamento do modelo dentro do escopo da API
mlflow.start_run(). Isso fornece controle sobre o nome da execução e permite que você reinicie a partir de uma execução anterior. Você pode personalizar o nome da execução usando o parâmetrorun_nameemmlflow.start_run(run_name="your-custom-name")ou em bibliotecas de terceiros que dão suporte ao MLflow (por exemplo, Hugging Face Transformers). Caso contrário, o nome de execução padrão serájobTaskRun-xxxxx.from transformers import TrainingArguments args = TrainingArguments( report_to="mlflow", run_name="llama7b-sft-lr3e5", # <-- MLflow run name logging_steps=50, )A API de GPU sem servidor inicia automaticamente um experimento do MLflow com o nome
/Users/{WORKSPACE_USER}/{get_notebook_name()}padrão. Os usuários podem substituí-la com a variável de ambienteMLFLOW_EXPERIMENT_NAME. Sempre use caminhos absolutos para a variável de ambienteMLFLOW_EXPERIMENT_NAME.import os os.environ["MLFLOW_EXPERIMENT_NAME"] = "/Users/<username>/my-experiment"Retome o treinamento anterior ajustando a configuração
MLFLOW_RUN_IDda execução anterior.mlflow.start_run(run_id="<previous-run-id>")Configure o parâmetro
stepemMLFlowLoggerpara números de lote razoáveis. O MLflow tem um limite de 10 milhões de etapas de métricas: o registro de cada lote em treinamentos em larga escala pode atingir esse limite. Confira Limites de recursos.
Exibindo logs
- Saída do notebook — A saída padrão e os erros do código de treinamento aparecem na saída da célula do notebook.
- Logs de driver – acessíveis por meio do painel de computação para depuração de problemas de inicialização, problemas de configuração de ambiente e erros de runtime.
- Registros do MLflow — Métricas de treinamento, parâmetros e artefatos podem ser exibidos na interface de experimento do MLflow.
Ponto de verificação de modelo
Salve pontos de verificação de modelo em volumes do Catálogo do Unity, que fornecem a mesma governança que outros objetos do Catálogo do Unity. Use o seguinte formato de caminho para fazer referência a arquivos em volumes de um notebook do Databricks:
/Volumes/<catalog>/<schema>/<volume>/<path>/<file-name>
Salve pontos de verificação em volumes da mesma maneira que você os salva no armazenamento local.
O exemplo a seguir mostra como gravar um ponto de verificação do PyTorch em volumes do Catálogo do Unity:
import torch
checkpoint = {
"epoch": epoch, # last finished epoch
"model_state_dict": model.state_dict(), # weights & buffers
"optimizer_state_dict": optimizer.state_dict(), # optimizer state
"loss": loss, # optional current loss
"metrics": {"val_acc": val_acc}, # optional metrics
# Add scheduler state, RNG state, and other metadata as needed.
}
checkpoint_path = "/Volumes/my_catalog/my_schema/model/checkpoints/ckpt-0001.pt"
torch.save(checkpoint, checkpoint_path)
Essa abordagem também funciona para pontos de verificação distribuídos. O exemplo a seguir mostra o ponto de verificação de modelo distribuído com a API de Ponto de Verificação Distribuído da Tocha:
import torch.distributed.checkpoint as dcp
def save_checkpoint(self, checkpoint_path):
state_dict = self.get_state_dict(model, optimizer)
dcp.save(state_dict, checkpoint_id=checkpoint_path)
trainer.save_checkpoint("/Volumes/my_catalog/my_schema/model/checkpoints")
Colaboração de vários usuários
- Para garantir que todos os usuários possam acessar o código compartilhado (por exemplo, módulos auxiliares ou arquivos YAML do ambiente), armazene-os em
/Workspace/Sharedvez de pastas específicas do usuário, como/Workspace/Users/<your_email>/. - Para o código que está em desenvolvimento ativo, use diretórios Git em pastas específicas
/Workspace/Users/<your_email>/do usuário e faça push para repositórios Git remotos. Isso permite que vários usuários tenham um clone e branch específicos do usuário, enquanto ainda usam um repositório Git remoto para controle de versão. Consulte as práticas recomendadas para usar o Git no Databricks. - Os colaboradores podem compartilhar e comentar em blocos de anotações.
Limites globais no Databricks
Confira Limites de recursos.