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 daFrameworkProfile
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.functional
API Ao escrever um script PyTorch de treinamento, é recomendável usar os torch.nn
mó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 demxnet.gluon.HybridBlock
with F
nahybrid_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)))
-