Perguntas frequentes sobre a biblioteca de paralelismo de dados distribuídos do Amazon SageMaker AI - SageMaker IA da Amazon

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á.

Perguntas frequentes sobre a biblioteca de paralelismo de dados distribuídos do Amazon SageMaker AI

Use o seguinte para encontrar respostas às perguntas mais frequentes sobre a biblioteca SMDDP:

P: Ao usar a biblioteca, como as instâncias allreduce de CPU compatíveis são gerenciadas? Preciso criar clusters heterogêneos de CPU-GPU ou o serviço SageMaker AI cria C5s extras para tarefas que usam a biblioteca de SMDDP?

A biblioteca de SMDDP atende apenas a instâncias de GPU, mais especificamente instâncias P4d e P4de com GPUs NVIDIA A100 e EFA. Nenhuma instância adicional de C5 ou CPU é iniciada. Se sua tarefa de treinamento do SageMaker AI for em um cluster P4d de oito nós, serão usadas somente oito instâncias ml.p4d.24xlarge. Nenhuma instância adicional é provisionada.

P: Tenho um trabalho de treinamento que leva 5 dias em uma única instância ml.p3.24xlarge com um conjunto de hiperparâmetros H1 (taxa de aprendizado, tamanho do lote, otimizador, etc.). Usar a biblioteca de paralelismo de dados do SageMaker AI e um cluster cinco vezes maior é suficiente para alcançar uma aceleração aproximada de cinco vezes? Ou eu tenho que revisitar seus hiperparâmetros de treinamento depois de ativar a biblioteca SMDDP?

A biblioteca altera o tamanho geral do lote. O novo tamanho geral do lote é dimensionado linearmente com o número de instâncias de treinamento usadas. Como resultado disso, hiperparâmetros, como a taxa de aprendizado, precisam ser alterados para garantir a convergência.

P: A biblioteca SMDDP oferece apoio ao Spot?

Sim. Você pode usar o treinamento gerenciado de spots Você especifica o caminho para o arquivo do ponto de verificação no trabalho de treinamento do SageMaker. Você salva e restaura os pontos de verificação no seu script de treinamento, conforme mencionado nas últimas etapas de Use a biblioteca SMDDP em seu script de treinamento do TensorFlow (obsoleto) e Use a biblioteca SMDDP em seu script de treinamento do PyTorch.

P: A biblioteca SMDDP é relevante em uma configuração de um único host e vários dispositivos?

A biblioteca pode ser usada no treinamento de vários dispositivos com um único host, mas a biblioteca oferece melhorias de desempenho somente no treinamento com vários hosts.

P: Onde o conjunto de dados de treinamento deve ser armazenado?

O conjunto de dados de treinamento pode ser armazenado em um bucket do Amazon S3 ou em um drive do Amazon FSx. Consulte este documento para conhecer vários sistemas de arquivos de entrada compatíveis para um trabalho de treinamento.

P: Ao usar a biblioteca SMDDP, é obrigatório ter dados de treinamento no FSx para Lustre? O Amazon EFS e o Amazon S3 podem ser usados?

Geralmente, recomendamos que você use o Amazon FSx por causa de sua menor latência e maior taxa de throughput. Se você preferir, poderá usar o Amazon EFS ou o Amazon S3.

P: A biblioteca pode ser usada com nós de CPU?

Não. Para encontrar os tipos de instância compatíveis com a biblioteca SMDDP, consulte Tipos de instâncias compatíveis.

P: Quais frameworks e versões de frameworks são atualmente compatíveis com a biblioteca SMDDP na inicialização?

Atualmente, a biblioteca SMDDP é compatível com PyTorch v1.6.0, ou posterior e TensorFlow v2.3.0, ou posterior. Ela não oferece apoio ao TensorFlow 1.x. Para obter mais informações sobre qual versão da biblioteca SMDDP está empacotada em contêineres de aprendizado profundo da AWS, consulte Notas de lançamento de contêineres de aprendizado profundo.

P: A biblioteca tem compatibilidade com AMP?

Sim, a biblioteca SMDDP oferece apoio imediato para Precisão mista automática (AMP). Nenhuma ação adicional é necessária para usar o AMP além das modificações no nível do framework no seu script de treinamento. Se os gradientes estiverem em FP16, a biblioteca de paralelismo de dados do SageMaker AI executará a operação AllReduce em FP16. Para obter mais informações sobre como implementar as APIs de AMP no seu script de treinamento, consulte os seguintes recursos:

P: Como posso identificar se meu trabalho de treinamento distribuído está lento devido ao gargalo de E/S?

Com um cluster maior, o trabalho de treinamento exige mais throughput de E/S e, portanto, a throughput de treinamento pode levar mais tempo (mais períodos) para atingir o desempenho máximo. Isso indica que a I/O está sendo congestionada e que o cache é mais difícil de construir à medida que você aumenta a escala dos nós (maior exigência de throughput e topologia de rede mais complexa). Para obter mais informações sobre o monitoramento da throughput do Amazon FSx no CloudWatch, consulte Monitoramento do FSx for Lustre no Guia do usuário do FSx for Lustre.

P: Como resolvo gargalos de E/S ao executar um trabalho de treinamento distribuído com paralelismo de dados?

É altamente recomendável que você use o Amazon FSx como seu canal de dados se estiver usando o Amazon S3. Se você já usa o Amazon FSx, mas ainda tem problemas de gargalo de E/S, talvez tenha configurado seu sistema de arquivos Amazon FSx com uma baixa throughput de E/S e uma pequena capacidade de armazenamento. Para obter mais informações sobre como calcular e escolher o dimensionamento certo da capacidade de throughput de E/S, consulte Use o Amazon FSx e configure uma capacidade de throughput e de armazenamento ideal.

P: (Para a biblioteca v1.4.0 ou posterior) Como resolvo o erro Invalid backend ao inicializar o grupo de processos.

Se você encontrar a mensagem de erro ValueError: Invalid backend: 'smddp' ao chamar init_process_group, é devido a uma alteração interruptiva na biblioteca SMDDP v1.4.0 e versões posteriores. Você deve importar o cliente PyTorch da biblioteca, smdistributed.dataparallel.torch.torch_smddp, que registra smddp como backend do PyTorch. Para saber mais, consulte Use a biblioteca SMDDP em seu script de treinamento do PyTorch.

P: (Para a biblioteca SMDDP v1.4.0 ou posterior), gostaria de chamar os coletivos primitivos da interface torch.distributed. Quais primitivas são compatíveis com o backend smddp?

Na v1.4.0, a biblioteca SMDDP é compatível com all_reduce, broadcast, reduce, all_gather, e barrier da interface torch.distributed.

P: (Para a biblioteca SMDDP v1.4.0 ou posterior) Essa nova API funciona com outras classes ou bibliotecas personalizadas de DDP como o Apex DDP?

A biblioteca SMDDP é testada com outras bibliotecas de paralelismo de dados distribuídos de terceiros e implementações de framework que usam os módulos torch.distribtued. É possível usar a biblioteca SMDDP com classes personalizadas de DDP desde que a biblioteca seja compatível com as operações de coletivos usadas pelas classes personalizadas de DDP com a biblioteca SMDDP. Consulte a pergunta anterior para obter uma lista dos coletivos compatíveis. Se você tiver esses casos de uso e precisar de compatibilidade adicional, entre em contato com a equipe do SageMaker AI por meio do AWS Support Center ou dos fóruns de desenvolvedores da AWS para o Amazon SageMaker AI.

P: A biblioteca SMDDP é compatível com a opção ‘traga seu próprio contêiner’ (BYOC)? Em caso afirmativo, como faço para instalar a biblioteca e executar um trabalho de treinamento distribuído escrevendo um Dockerfile personalizado?

Se você quiser integrar a biblioteca SMDDP e suas dependências mínimas em seu próprio contêiner do Docker, o BYOC é a abordagem certa. Você pode criar seu próprio contêiner usando o arquivo binário da biblioteca. O processo recomendado é escrever um Dockerfile personalizado com a biblioteca e as respectivas dependências, criar o contêiner do Docker, hospedá-lo no Amazon ECR e usar o URI da imagem do ECR para iniciar uma tarefa de treinamento usando a classe genérica de estimadores do SageMaker AI. Para ter mais instruções sobre como preparar um Dockerfile personalizado para treinamento distribuído no SageMaker AI com a biblioteca de SMDDP, consulte Criar seu próprio contêiner do Docker com a biblioteca de paralelismo de dados distribuídos do SageMaker AI.