Execute cargas de trabalho de treinamento distribuídas com o Slurm on HyperPod - 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á.

Execute cargas de trabalho de treinamento distribuídas com o Slurm on HyperPod

SageMaker HyperPod é especializada em cargas de trabalho de treinamento de grandes modelos de linguagem (LLMs) e modelos básicos (FMs). Essas cargas de trabalho geralmente exigem o uso de várias técnicas de paralelismo e operações otimizadas para infraestrutura e recursos de ML. Usando SageMaker HyperPod, você pode usar as seguintes estruturas de treinamento SageMaker distribuídas:

Usando SMDDP em um SageMaker HyperPod

A SMDDPbiblioteca é uma biblioteca de comunicação coletiva que melhora o desempenho computacional do treinamento paralelo de dados distribuídos. A SMDDP biblioteca funciona com as seguintes estruturas de treinamento distribuídas de código aberto:

A SMDDP biblioteca aborda a sobrecarga de comunicação das principais operações de comunicação coletiva, oferecendo o seguinte para SageMaker HyperPod.

  • A biblioteca oferece opções AllGather otimizadas para AWS. AllGatheré uma operação chave usada no treinamento paralelo de dados fragmentados, que é uma técnica de paralelismo de dados com eficiência de memória oferecida por bibliotecas populares. Isso inclui a biblioteca SageMaker Model Parallelism (SMP), o DeepSpeed Zero Redundancy Optimizer (Zero) e o PyTorch Fully Sharded Data Parallelism (). FSDP

  • A biblioteca realiza uma node-to-node comunicação otimizada utilizando totalmente a infraestrutura de AWS rede e a topologia da instância SageMaker de ML.

Para executar exemplos de trabalhos de treinamento em paralelo com dados

Explore os seguintes exemplos de treinamento distribuído implementando técnicas de paralelismo de dados usando a biblioteca. SMDDP

Para configurar um ambiente para usar a SMDDP biblioteca em SageMaker HyperPod

A seguir estão os requisitos do ambiente de treinamento para usar a SMDDP biblioteca em SageMaker HyperPod.

  • PyTorch v2.0.1 e versões posteriores

  • CUDAv11.8 e versões posteriores

  • libstdc++versão de tempo de execução maior que 3

  • Python v3.10.x e versões posteriores

  • ml.p4d.24xlargeeml.p4de.24xlarge, que são tipos de instância compatíveis com a SMDDP biblioteca

  • imdsv2ativado no host de treinamento

Dependendo de como você deseja executar o trabalho de treinamento distribuído, há duas opções para instalar a SMDDP biblioteca:

  • Uma instalação direta usando o arquivo SMDDP binário.

  • Usando os SageMaker Deep Learning Containers (DLCs) pré-instalados com a SMDDP biblioteca.

As imagens do Docker pré-instaladas com a SMDDP biblioteca ou os URLs arquivos SMDDP binários estão listadas em Estruturas suportadas na documentação da SMDDP biblioteca.

Para instalar a SMDDP biblioteca no SageMaker HyperPod DLAMI
  • pip install --no-cache-dir https://smdataparallel.s3.amazonaws.com/binary/pytorch/<pytorch-version>/cuXYZ/YYYY-MM-DD/smdistributed_dataparallel-X.Y.Z-cp310-cp310-linux_x86_64.whl

    nota

    Se você trabalha em um ambiente Conda, certifique-se de instalar PyTorch usando conda install em vez depip.

    conda install pytorch==X.Y.Z torchvision==X.Y.Z torchaudio==X.Y.Z pytorch-cuda=X.Y.Z -c pytorch -c nvidia
Para usar a SMDDP biblioteca em um contêiner Docker
  • A SMDDP biblioteca está pré-instalada nos SageMaker Deep Learning Containers (DLCs). Para encontrar a lista de SageMaker estruturas DLCs para PyTorch a SMDDP biblioteca, consulte Estruturas suportadas na documentação da SMDDP biblioteca. Você também pode trazer seu próprio contêiner Docker com as dependências necessárias instaladas para usar a SMDDP biblioteca. Para saber mais sobre como configurar um contêiner Docker personalizado para usar a SMDDP biblioteca, consulte tambémCrie seu próprio contêiner Docker com a biblioteca paralela de dados SageMaker distribuídos.

    Importante

    Para usar a SMDDP biblioteca em um contêiner Docker, monte o /var/log diretório da máquina host /var/log no contêiner. Isso pode ser feito adicionando a seguinte opção ao executar seu contêiner.

    docker run <OTHER_OPTIONS> -v /var/log:/var/log ...

Para saber como executar trabalhos de treinamento em paralelo com dados SMDDP em geral, consulte. Treinamento distribuído com a biblioteca de SageMaker paralelismo de dados distribuídos

Usando SMP em um SageMaker HyperPod cluster

A biblioteca SageMaker model parallelism (SMP) oferece várias técnicas de paralelismo de state-of-the-art modelos, incluindo:

  • paralelismo de dados totalmente fragmentado

  • paralelismo especializado

  • treinamento misto de precisão comFP16/BF16e tipos de FP8 dados

  • paralelismo tensorial

A SMP biblioteca também é compatível com estruturas de código aberto PyTorch FSDP, como NVIDIA Megatron e NVIDIA Transformer Engine.

Para executar um exemplo de carga de trabalho de treinamento paralelo ao modelo

As equipes SageMaker de serviço fornecem exemplos de trabalhos de treinamento implementando o paralelismo de modelos com a SMP biblioteca em. awsome-distributed-training/3.test_cases/17.SM-modelparallelv2