Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Comience con la formación distribuida en Amazon SageMaker
La siguiente página proporciona información sobre los pasos necesarios para empezar con la formación distribuida en Amazon SageMaker. Si ya conoce el entrenamiento distribuido, seleccione una de las siguientes opciones que se adapte a su estrategia o marco preferido para empezar. Si desea obtener más información sobre el entrenamiento distribuido en general, consulte Conceptos de formación distribuida.
Las bibliotecas de formación SageMaker distribuidas están optimizadas para el entorno de SageMaker formación, ayudan a adaptar las tareas de formación distribuidas y a SageMaker mejorar la velocidad y el rendimiento de la formación. Las bibliotecas ofrecen estrategias de entrenamiento de paralelismo de datos y paralelismo de modelos. Combinan tecnologías de software y hardware para mejorar las comunicaciones entre nodos GPU y entre ellos, y amplían las capacidades SageMaker de formación con opciones integradas que requieren cambios mínimos en el código de los guiones de formación.
Antes de empezar
SageMaker La formación admite la formación distribuida en una sola instancia y en varias instancias, por lo que puede impartir formación de cualquier tamaño a escala. Le recomendamos que utilice las clases estimadoras del marco, como PyTorchCreateTrainingJob
API en el backend, encuentra la región en la que se está ejecutando la sesión actual y extrae uno de los contenedores de aprendizaje AWS profundo prediseñados y empaquetados con una serie de bibliotecas que incluyen marcos de aprendizaje profundo, marcos de entrenamiento distribuidos y el EFAcontrolador. Si desea montar un sistema de FSx archivos en las instancias de entrenamiento, debe pasar su ID de VPC subred y grupo de seguridad al estimador. Antes de ejecutar su trabajo de formación distribuida SageMaker, lea las siguientes instrucciones generales sobre la configuración básica de la infraestructura.
Zonas de disponibilidad y plano posterior de red
Cuando se utilizan varias instancias (también denominadas nodos), es importante entender la red que conecta las instancias, cómo leen los datos de entrenamiento y cómo comparten la información entre sí. Por ejemplo, cuando ejecuta un trabajo de formación en paralelo con datos distribuidos, varios factores, como la comunicación entre los nodos de un clúster de procesamiento para ejecutar la AllReduce
operación y la transferencia de datos entre los nodos y el almacenamiento de datos en Amazon Simple Storage Service o Amazon FSx for Lustre, desempeñan un papel crucial para lograr un uso óptimo de los recursos informáticos y una velocidad de entrenamiento más rápida. Para reducir la sobrecarga de comunicación, asegúrese de configurar las instancias, la VPC subred y el almacenamiento de datos en la misma zona Región de AWS y en la zona de disponibilidad.
GPUinstancias con una red más rápida y un almacenamiento de alto rendimiento
Técnicamente, puede utilizar cualquier instancia para un entrenamiento distribuido. Para los casos en los que necesite ejecutar trabajos de formación distribuidos en varios nodos para entrenar modelos grandes, como modelos de lenguaje grandes (LLMs) y modelos de difusión, que requieren una conmutación más rápida entre nodos, recomendamos EFA las instancias habilitadas compatibles con. GPU SageMaker
Utilice la biblioteca de paralelismo de datos SageMaker distribuidos () SMDDP
La SMDDP biblioteca mejora la comunicación entre los nodos con implementaciones AllReduce
y operaciones de comunicación AllGather
colectiva optimizadas para la infraestructura de AWS red y la topología de instancias de Amazon SageMaker ML. Puede utilizar la SMDDPbiblioteca como backend de paquetes de formación distribuidos PyTorch basados en datos: PyTorch distributeddata parallel (DDP)PyTorch
estimador para lanzar un trabajo de formación distribuido en dos instancias. ml.p4d.24xlarge
from sagemaker.pytorch import PyTorch estimator = PyTorch( ..., instance_count=
2
, instance_type="ml.p4d.24xlarge
", # Activate distributed training with SMDDP distribution={ "pytorchddp": { "enabled": True } } # mpirun, activates SMDDP AllReduce OR AllGather # distribution={ "torch_distributed": { "enabled": True } } # torchrun, activates SMDDP AllGather # distribution={ "smdistributed": { "dataparallel": { "enabled": True } } } # mpirun, activates SMDDP AllReduce OR AllGather )
Para obtener información sobre cómo preparar el guion de formación y lanzar un trabajo de formación paralelo con datos distribuidos SageMaker, consulteRealice un entrenamiento distribuido con la biblioteca de paralelismo de datos SageMaker distribuidos.
Utilice la biblioteca de SageMaker modelos de paralelismo () SMP
SageMaker proporciona la SMP biblioteca y admite diversas técnicas de entrenamiento distribuidas, como el paralelismo de datos fragmentados, la canalización, el paralelismo tensorial, la fragmentación del estado del optimizador y más. Para obtener más información sobre lo que ofrece la biblioteca, consulte. SMP Características principales de la biblioteca de paralelismo de SageMaker modelos
Para usar SageMaker la biblioteca de paralelismo de modelos, configure el distribution
parámetro de los estimadores del SageMaker marco. Los estimadores de marco compatibles son y. PyTorchTensorFlowml.p4d.24xlarge
.
from sagemaker.
framework
importFramework
distribution={ "smdistributed": { "modelparallel": { "enabled":True, "parameters": { ... # enter parameter key-value pairs here } }, }, "mpi": { "enabled" : True, ... # enter parameter key-value pairs here } } estimator =Framework
( ..., instance_count=2
, instance_type="ml.p4d.24xlarge
", distribution=distribution )
Para aprender a adaptar su script de entrenamiento, configurar los parámetros de distribución en la estimator
clase e iniciar un trabajo de entrenamiento distribuido, consulte la biblioteca SageMaker de modelos de paralelismo (consulte también APIs el entrenamiento distribuido en la documentación
Utilice marcos de entrenamiento distribuido de código abierto
SageMaker también admite las siguientes opciones de funcionamiento mpirun
y torchrun
en el backend.
-
Para usar PyTorch DistributedDataParallel (DDP)
SageMaker con el mpirun
backend, añádelodistribution={"pytorchddp": {"enabled": True}}
a tu PyTorch estimador. Para obtener más información, consulte también PyTorch Distributed Trainingy el distribution
argumento de SageMaker PyTorch Estimatoren la documentación de SageMaker Python SDK. nota
Esta opción está disponible para la versión PyTorch 1.12.0 y versiones posteriores.
from sagemaker.pytorch import PyTorch estimator = PyTorch( ..., instance_count=
2
, instance_type="ml.p4d.24xlarge
", distribution={"pytorchddp": {"enabled": True}} # runs mpirun in the backend ) -
SageMaker admite el PyTorch
torchrun
lanzadorpara el entrenamiento distribuido en instancias de Amazon GPU basadas en EC2 instancias, como P3 y P4, así como Trn1 con tecnología del dispositivo Trainium.AWS Para usar PyTorch DistributedDataParallel (DDP)
con el backend, añádelo SageMaker al estimador torchrun
.distribution={"torch_distributed": {"enabled": True}}
PyTorchnota
Esta opción está disponible para la versión PyTorch 1.13.0 y versiones posteriores.
En el siguiente fragmento de código se muestra un ejemplo de creación de un SageMaker PyTorch estimador para ejecutar un entrenamiento distribuido en dos
ml.p4d.24xlarge
instancias con la opción de distribución.torch_distributed
from sagemaker.pytorch import PyTorch estimator = PyTorch( ..., instance_count=
2
, instance_type="ml.p4d.24xlarge
", distribution={"torch_distributed": {"enabled": True}} # runs torchrun in the backend )Para obtener más información, consulta el
distribution
argumento de Distributed PyTorch Trainingand SageMaker PyTorch Estimator en la documentación de SageMaker Python SDK. Notas para el entrenamiento distribuido en Trn1
Una instancia de Trn1 consta de un máximo de 16 dispositivos Trainium y cada dispositivo de Trainium consta de dos. NeuronCores
Para ver las especificaciones de los dispositivos Trainium, consulte la AWS arquitectura de Trainium en la documentación de Neuron.AWS Para aprender sobre las instancias con tecnología Trainium, solo necesita especificar el código de la instancia Trn1, en cadena con el argumento de la clase
ml.trn1.*
estimador.instance_type
SageMaker PyTorch Para encontrar los tipos de instancias Trn1 disponibles, consulte AWS Arquitectura de Trn1en la documentación de Neuron de AWS . nota
SageMaker Actualmente, la formación sobre las instancias EC2 Trn1 de Amazon solo está disponible para el PyTorch marco de AWS Deep Learning Containers for PyTorch Neuron a partir de la versión 1.11.0. Para obtener una lista completa de las versiones compatibles de PyTorch Neuron, consulte Neuron Containers
en el repositorio de AWS Deep Learning Containers GitHub . Al lanzar un trabajo de formación en instancias Trn1 con SageMaker PythonSDK, selecciona y ejecuta SageMaker automáticamente el contenedor correcto de los contenedores Neuron
proporcionados por AWS Deep Learning Containers. Los contenedores Neuron vienen preempaquetados con la configuración y las dependencias del entorno de formación para facilitar la adaptación del trabajo de formación a la plataforma de SageMaker formación y a las instancias Amazon EC2 Trn1. nota
Para ejecutar su trabajo de PyTorch formación en instancias Trn1 SageMaker, debe modificar el script de formación para inicializar los grupos de procesos con el backend y utilizar/.
xla
PyTorch XLAPara facilitar el proceso de XLA adopción, el AWS Neuron SDK proporciona PyTorch Neuron, que se utiliza XLA para convertir las operaciones en instrucciones de Trainium. PyTorch Para obtener información sobre cómo modificar el guion de entrenamiento, consulte la Guía para desarrolladores sobre el entrenamiento con PyTorch Neuron ( torch-neuronx
) en la documentación de Neuron.AWS Para obtener más información, consulte Entrenamiento distribuido con PyTorch Neuron en instancias Trn1
y el argumento de SageMaker PyTorch Estimator distribution
en la documentación de Python. SageMaker SDK -
Para usarlo, añádelo a MPI tu SageMaker estimador.
distribution={"mpi": {"enabled": True}}
La opción MPI de distribución está disponible para los siguientes marcos: MXNet PyTorch, y. TensorFlow -
Para usar un servidor de parámetros en SageMaker, agréguelo
distribution={"parameter_server": {"enabled": True}}
a su estimador. La opción de servidor de parámetros está disponible para los siguientes marcos: MXNet PyTorch, y. TensorFlowsugerencia
Para obtener más información sobre el uso de las opciones del servidor de parámetros MPI y del servidor de parámetros por marco, utilice los siguientes enlaces a la SDKdocumentación de SageMaker Python.
-
MXNetEntrenamiento distribuido
y argumento de SageMaker MXNetEstimator distribution
-
PyTorch Entrenamiento distribuido y argumento
de SageMaker PyTorch Estimator distribution
-
TensorFlow Entrenamiento distribuido y argumento
de SageMaker TensorFlow Estimator . distribution
-