Ejecución de cargas de trabajo de entrenamiento distribuido con Slurm en HyperPod
La consola de SageMaker HyperPod está especializada en cargas de trabajo de entrenamiento de modelos de lenguaje grande (LLM) y modelos fundacionales (FM). Estas cargas de trabajo suelen requerir el uso de varias técnicas de paralelismo y operaciones optimizadas para la infraestructura y los recursos de ML. Con SageMaker HyperPod, puede utilizar los siguientes marcos de entrenamiento distribuido de SageMaker AI:
-
La biblioteca de paralelismo de datos distribuidos de SageMaker AI (SMDDP), que ofrece operaciones de comunicación colectiva optimizadas para AWS.
-
La biblioteca de paralelismo de modelos de SageMaker AI (SMP), que implementa varias técnicas de paralelismo de modelos.
Uso de SMDDP en un SageMaker HyperPod
La biblioteca de SMDDP es una biblioteca de comunicación colectiva que mejora el rendimiento de computación del entrenamiento de paralelismo de datos distribuidos. La biblioteca de SMDDP funciona con los siguientes marcos de entrenamiento distribuido de código abierto:
La biblioteca de SMDDP aborda la sobrecarga de comunicaciones de las principales operaciones de comunicación colectiva al ofrecer lo siguiente para SageMaker HyperPod.
-
La biblioteca ofrece la operación
AllGatheroptimizada para AWS.AllGatheres una operación clave utilizada en el entrenamiento paralelo de datos particionados, que es una técnica de paralelismo de datos eficiente en términos de memoria que ofrecen las bibliotecas más populares. Estas incluyen la biblioteca de paralelismo de modelos (SMP) de SageMaker AI, el optimizador de redundancia cero (ZeRO) de DeepSpeed y el Paralelismo de datos totalmente particionados (FSDP) de PyTorch. -
La biblioteca establece una comunicación optimizada de nodo a nodo utilizando toda la infraestructura de red de AWS y la topología de instancias de ML de SageMaker AI.
Ejecución de ejemplos de trabajos de entrenamiento de paralelismo de datos
Explore las siguientes muestras de entrenamiento distribuido que implementan técnicas de paralelismo de datos mediante la biblioteca de SMDDP.
Configuración de un entorno para utilizar la biblioteca de SMDDP en SageMaker HyperPod
A continuación se detallan los requisitos del entorno de entrenamiento para utilizar la biblioteca de SMDDP en SageMaker HyperPod.
-
PyTorch v2.0.1 y versiones posteriores
-
CUDA v11.8 y posteriores
-
Versión de tiempo de ejecución
libstdc++superior a 3 -
Python v3.10.x y posteriores
-
ml.p4d.24xlargeyml.p4de.24xlarge, que son tipos de instancia compatibles con la biblioteca de SMDDP -
imdsv2habilitado en el host de entrenamiento
Según cómo desee ejecutar el trabajo de entrenamiento distribuido, hay dos opciones para instalar la biblioteca de SMDDP:
-
Una instalación directa mediante el archivo binario de SMDDP.
-
Uso de los Contenedores de aprendizaje profundo (DLC) de SageMaker AI preinstalados en la biblioteca de SMDDP.
Las imágenes de Docker preinstaladas con la biblioteca de SMDDP o las direcciones URL de los archivos binarios de SMDDP aparecen en la sección Marcos compatibles de la documentación de la biblioteca de SMDDP.
Instalación de la biblioteca de SMDDP en la DLAMI de 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.whlnota
Si trabaja en un entorno Conda, asegúrese de instalar PyTorch utilizando
conda installen lugar depip.conda install pytorch==X.Y.Ztorchvision==X.Y.Ztorchaudio==X.Y.Zpytorch-cuda=X.Y.Z-c pytorch -c nvidia
Uso de la biblioteca de SMDDP en un contenedor de Docker
-
La biblioteca de SMDDP está preinstalada en los Contenedores de aprendizaje profundo (DLC) de SageMaker AI. Para encontrar la lista de los DLC de marco de SageMaker AI para PyTorch con la biblioteca de SMDDP, consulte Marcos compatibles en la documentación de la biblioteca de SMDDP. También puede traer su propio contenedor de Docker con las dependencias necesarias instaladas para usar la biblioteca de SMDDP. Para obtener más información sobre cómo configurar un contenedor de Docker personalizado para usar la biblioteca de SMDDP, consulte también Creación de contenedor de Docker propio con la biblioteca de paralelismo de datos distribuidos de SageMaker AI.
importante
Para usar la biblioteca de SMDDP en un contenedor de Docker, monte el directorio
/var/logde la máquina host en/var/logen el contenedor. Esto se puede hacer añadiendo la siguiente opción al ejecutar el contenedor.docker run<OTHER_OPTIONS>-v /var/log:/var/log ...
Para obtener más información sobre cómo ejecutar trabajos de entrenamiento de paralelismo de datos con SMDDP en general, consulte Entrenamiento distribuido con la biblioteca de paralelismo de datos distribuidos de SageMaker AI.
Uso de SMP en un clúster de SageMaker HyperPod
La biblioteca de paralelismo de modelos de SageMaker AI (SMP) ofrece varias técnicas de paralelismo de modelos de última generación, entre las que se incluyen las siguientes:
-
paralelismo de datos totalmente particionados
-
paralelismo experto
-
entrenamiento de precisión mixto con los tipos de datos FP16/BF16 y FP8
-
paralelismo de tensores
La biblioteca de SMP también es compatible con marcos de código abierto como PyTorch FSDP, NVIDIA Megatron y NVIDIA Transformer Engine.
Ejecución de un ejemplo de carga de trabajo de entrenamiento de paralelismo de modelos
Los equipos de servicio de SageMaker AI ofrecen ejemplos de trabajos de entrenamiento que implementan el paralelismo de modelos con la biblioteca de SMP en awsome-distributed-training/3.test_cases/17.SM-modelparallelv2