Considerações sobre o Amazon Debugger SageMaker - Amazon SageMaker

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Considerações sobre o Amazon Debugger SageMaker

Considere o seguinte ao usar o Amazon SageMaker Debugger.

Considerações para o treinamento distribuído

A listagem a seguir mostra o escopo de validade e as considerações sobre o uso do Depurador em trabalhos de treinamento com frameworks de aprendizado profundo e várias opções de treinamento distribuído.

  • Horovod

    Escopo de validade do uso do Depurador para trabalhos de treinamento com Horovod

    Frameworks de aprendizado profundo Apache MXNet TensorFlow 1.x TensorFlow 2. x TensorFlow 2.x com Keras PyTorch
    Gargalos do sistema de monitoramento Sim Sim Sim Sim Sim
    Operações de framework perfilador Não Não Não Sim Sim
    Tensores de saída do modelo de depuração Sim Sim Sim Sim Sim
  • SageMaker dados distribuídos paralelamente

    Escopo de validade do uso do Debugger para trabalhos de treinamento com SageMaker dados distribuídos paralelamente

    Frameworks de aprendizado profundo TensorFlow 2. x TensorFlow 2.x com Keras PyTorch
    Gargalos do sistema de monitoramento Sim Sim Sim
    Operações de framework perfilador Não* Não* Sim
    Tensores de saída do modelo de depuração Sim Sim Sim

    * O depurador não oferece suporte à criação de perfis de estrutura para 2.x. TensorFlow

    ** SageMaker distributed data parallel não suporta TensorFlow 2.x com a implementação do Keras.

  • SageMaker distributed model parallel — O Debugger não oferece suporte ao treinamento paralelo de SageMaker modelos distribuídos.

  • Treinamento distribuído com SageMaker pontos de verificação — O Debugger não está disponível para trabalhos de treinamento quando a opção de treinamento distribuído e SageMaker os pontos de verificação estão habilitados. Você verá um erro parecido com o seguinte:

    SMDebug Does Not Currently Support Distributed Training Jobs With Checkpointing Enabled

    Para usar o Debugger para trabalhos de treinamento com opções de treinamento distribuídas, você precisa desativar o ponto de SageMaker verificação e adicionar funções de ponto de verificação manual ao seu script de treinamento. Para obter mais informações sobre como usar o Depurador com opções de treinamento e pontos de verificação distribuídos, consulte Usando dados SageMaker distribuídos paralelamente com o Amazon SageMaker Debugger e os pontos de verificação e Salvando pontos de verificação.

  • Servidor de parâmetros – O depurador não oferece suporte ao treinamento distribuído baseado em servidor de parâmetros.

  • O perfil das operações da estrutura de treinamento distribuído, como a AllReduced operação paralela de dados SageMaker distribuídos e as operações do Horovod, não está disponível.

Considerações sobre gargalos do sistema de monitoramento e operações do framework do perfilador

  • Pois AWS TensorFlow, as métricas do carregador de dados não podem ser coletadas usando a local_path configuração padrão da FrameworkProfile classe. O caminho deve ser configurado manualmente e terminar em "/". Por exemplo:

    FrameworkProfile(local_path="/opt/ml/output/profiler/")
  • Pois AWS TensorFlow, a configuração de perfil do carregador de dados não pode ser atualizada durante a execução de um trabalho de treinamento.

  • Pois AWS TensorFlow, pode ocorrer um NoneType erro ao usar ferramentas de análise e exemplos de cadernos com TensorFlow 2.3 trabalhos de treinamento e a opção de criação de perfil detalhada.

  • A criação de perfil em Python e a criação de perfil detalhada só são suportadas pelo Keras. API

  • Para acessar o recurso de criação de perfil profundo para TensorFlow e PyTorch, atualmente, você deve especificar as imagens de contêiner de aprendizado AWS profundo mais recentes com CUDA 11. Por exemplo, você deve especificar a imagem específica URI no PyTorch estimador TensorFlow and da seguinte forma:

    • Para TensorFlow

      image_uri = f"763104351884.dkr.ecr.{region}.amazonaws.com/tensorflow-training:2.3.1-gpu-py37-cu110-ubuntu18.04"
    • Para PyTorch

      image_uri = f"763104351884.dkr.ecr.{region}.amazonaws.com/pytorch-training:1.6.0-gpu-py36-cu110-ubuntu18.04"

Considerações para depuração de tensores de saída do modelo

  • Evite usar API operações funcionais. O depurador não pode coletar tensores de saída do modelo PyTorch e scripts de MXNet treinamento compostos por operações funcionais. API

    • O depurador não pode coletar tensores de saída do modelo das operações. torch.nn.functionalAPI Ao escrever um script PyTorch de treinamento, é recomendável usar os torch.nnmódulos em vez disso.

    • O depurador não pode coletar tensores de saída do modelo de objetos MXNet funcionais em blocos híbridos. Por exemplo, as saídas de ReLu activation (F.relu) não podem ser coletadas do exemplo a seguir de mxnet.gluon.HybridBlockwith F na hybrid_forward função.

      import mxnet as mx from mxnet.gluon import HybridBlock, nn class Model(HybridBlock): def __init__(self, **kwargs): super(Model, self).__init__(**kwargs) # use name_scope to give child Blocks appropriate names. with self.name_scope(): self.dense0 = nn.Dense(20) self.dense1 = nn.Dense(20) def hybrid_forward(self, F, x): x = F.relu(self.dense0(x)) return F.relu(self.dense1(x)) model = Model() model.initialize(ctx=mx.cpu(0)) model.hybridize() model(mx.nd.zeros((10, 10), ctx=mx.cpu(0)))