Esegui carichi di lavoro di formazione distribuiti con Slurm on SageMaker HyperPod - Amazon SageMaker

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Esegui carichi di lavoro di formazione distribuiti con Slurm on SageMaker HyperPod

SageMaker HyperPod è specializzato per carichi di lavoro di formazione di modelli linguistici di grandi dimensioni (LLM) e modelli di base (FM). Tali carichi di lavoro richiedono spesso l'adozione di varie tecniche di parallelismo e operazioni ottimizzate per l'infrastruttura e le risorse ML. Utilizzando SageMaker HyperPod, è possibile sfruttare i framework di formazione SageMaker distribuiti gratuiti: la libreria SageMaker Distributed Data Parallelism (SMDDP) che offre operazioni di comunicazione collettiva ottimizzate per e la libreria di parallelismo dei modelli (SMP) che AWS implementa varie tecniche di parallelismo dei SageMaker modelli.

Utilizzo di SMDDP su un SageMaker HyperPod

La libreria SMDDP è una libreria di comunicazione collettiva che migliora le prestazioni di calcolo dell'addestramento parallelo di dati distribuiti. La libreria SMDDP funziona con framework di formazione distribuiti open source: distributed PyTorch data parallel (DDP), PyTorch Fully Sharded Data Parallelism (FSDP) e Megatron-. DeepSpeedDeepSpeed La libreria SMDDP affronta il sovraccarico di comunicazione delle principali operazioni di comunicazione collettiva offrendo quanto segue per. SageMaker HyperPod

  • La libreria offre offerte AllGather ottimizzate per. AWSAllGatherè un'operazione chiave utilizzata nello sharded data parallel training, una tecnica di parallelismo dei dati efficiente in termini di memoria offerta da librerie popolari come la libreria SageMaker Model Parallelism (SMP), DeepSpeed Zero Redundancy Optimizer (Zero) e Fully Sharded Data Parallelism (FSDP). PyTorch

  • La libreria esegue comunicazioni ottimizzate utilizzando appieno l'infrastruttura di rete e la topologia dell'istanza ML. node-to-node AWS SageMaker

Per eseguire esempi di lavori di formazione in parallelo con i dati

Esplora i seguenti esempi di formazione distribuiti che implementano tecniche di parallelismo dei dati utilizzando la libreria SMDDP.

Per configurare un ambiente per l'utilizzo della libreria SMDDP su SageMaker HyperPod

Di seguito sono riportati i requisiti dell'ambiente di formazione per l'utilizzo della libreria SMDDP su. SageMaker HyperPod

  • PyTorch v2.0.1 e versioni successive

  • CUDA v11.8 e versioni successive

  • libstdc++versione di runtime superiore a 3

  • Python v3.10.x e versioni successive

  • ml.p4d.24xlargeeml.p4de.24xlarge, che sono tipi di istanza supportati dalla libreria SMDDP

  • imdsv2abilitato sull'host di formazione

A seconda di come si desidera eseguire il processo di formazione distribuito, esistono due opzioni per installare la libreria SMDDP: un'installazione diretta utilizzando il file binario SMDDP e l'utilizzo dei SageMaker Deep Learning Containers (DLC) preinstallati con la libreria SMDDP. Le immagini Docker preinstallate con la libreria SMDDP o gli URL dei file binari SMDDP sono elencati nella sezione Supported Frameworks nella documentazione della libreria SMDDP.

Per installare la libreria SMDDP su DLAMI SageMaker HyperPod
  • 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 lavori in un ambiente Conda, assicurati di installare PyTorch using instead of. conda install pip

    conda install pytorch==X.Y.Z torchvision==X.Y.Z torchaudio==X.Y.Z pytorch-cuda=X.Y.Z -c pytorch -c nvidia
Per utilizzare la libreria SMDDP su un contenitore Docker
  • La libreria SMDDP è preinstallata nei SageMaker Deep Learning Containers (DLC). Per trovare l'elenco dei DLC del SageMaker framework per PyTorch la libreria SMDDP, consulta Supported Frameworks nella documentazione della libreria SMDDP. Puoi anche portare il tuo contenitore Docker con le dipendenze richieste installate per utilizzare la libreria SMDDP. Per ulteriori informazioni sulla configurazione di un contenitore Docker personalizzato per l'utilizzo della libreria SMDDP, consulta anche. Crea il tuo contenitore Docker con la libreria parallela di dati SageMaker distribuiti

    Importante

    Per utilizzare la libreria SMDDP in un contenitore Docker, è necessario montare la /var/log directory dal computer host all'interno del contenitore. /var/log Questo può essere fatto aggiungendo la seguente opzione durante l'esecuzione del contenitore.

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

Per informazioni su come eseguire lavori di formazione in parallelo ai dati con SMDDP in generale, vedere. Come eseguire un processo di formazione distribuito con la libreria di parallelismo dei dati SageMaker distribuiti

Utilizzo di SMP su un cluster SageMaker HyperPod

La libreria di parallelismo dei SageMaker modelli (SMP) offre varie tecniche di parallelismo dei state-of-the-art modelli come il parallelismo dei dati completamente condiviso, il parallelismo esperto, l'addestramento di precisione mista con tipi di dati FP16/BF16 e FP8 e il parallelismo tensoriale. La libreria SMP è anche compatibile con framework open source come FSDP, NVIDIA Megatron e NVIDIA Transformer Engine. PyTorch

Per eseguire un esempio di carico di lavoro di formazione in parallelo al modello

I team SageMaker di assistenza forniscono esempi di lavori di formazione sull'implementazione del parallelismo dei modelli con la libreria SMP all'indirizzo. awsome-distributed-training/3.test_cases/17.SM-modelparallelv2