Seleccione sus preferencias de cookies

Usamos cookies esenciales y herramientas similares que son necesarias para proporcionar nuestro sitio y nuestros servicios. Usamos cookies de rendimiento para recopilar estadísticas anónimas para que podamos entender cómo los clientes usan nuestro sitio y hacer mejoras. Las cookies esenciales no se pueden desactivar, pero puede hacer clic en “Personalizar” o “Rechazar” para rechazar las cookies de rendimiento.

Si está de acuerdo, AWS y los terceros aprobados también utilizarán cookies para proporcionar características útiles del sitio, recordar sus preferencias y mostrar contenido relevante, incluida publicidad relevante. Para aceptar o rechazar todas las cookies no esenciales, haga clic en “Aceptar” o “Rechazar”. Para elegir opciones más detalladas, haga clic en “Personalizar”.

Conceptos de paralelismo de modelos

Modo de enfoque
Conceptos de paralelismo de modelos - Amazon SageMaker AI

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.

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.

El paralelismo de modelos es un método de entrenamiento distribuido en el que el modelo de aprendizaje profundo (DL) se divide en múltiples instancias. GPUs La biblioteca paralela de SageMaker modelos v2 (SMP v2) es compatible con las capacidades PyTorch APIs y nativas. Esto le permite adaptar cómodamente su script de entrenamiento PyTorch Fully Sharded Data Parallel (FSDP) a la plataforma de SageMaker entrenamiento y aprovechar la mejora del rendimiento que ofrece la SMP v2. Esta página de introducción proporciona una descripción general sobre el paralelismo de modelos y cómo puede ayudar a superar los problemas que surgen al entrenar modelos de aprendizaje profundo (DL) que suelen ser de gran tamaño. También proporciona ejemplos de lo que ofrece la biblioteca paralela de SageMaker modelos para ayudar a gestionar las estrategias paralelas de los modelos y el consumo de memoria.

¿Qué es el paralelismo de modelos?

Al aumentar el tamaño de los modelos de aprendizaje profundo (capas y parámetros), se obtiene mayor precisión en tareas complejas, como la visión artificial y el procesamiento del lenguaje natural. Sin embargo, existe un límite en el tamaño máximo de modelo que puede caber en una sola GPU. Al entrenar modelos de DL, las limitaciones de memoria de la GPU pueden ser cuellos de botella de las siguientes maneras:

  • Limitan el tamaño del modelo que se puede entrenar, ya que el consumo de memoria de un modelo se amplía proporcionalmente al número de parámetros.

  • Limitan el tamaño del lote por GPU durante el entrenamiento, lo que reduce el uso de la GPU y la eficiencia del entrenamiento.

Para superar las limitaciones asociadas con el entrenamiento de un modelo en una sola GPU, la SageMaker IA proporciona la biblioteca de modelos parallel para ayudar a distribuir y entrenar los modelos DL de manera eficiente en varios nodos de cómputo. Además, con la biblioteca, puede lograr un entrenamiento distribuido optimizado utilizando dispositivos compatibles con EFA, que mejoran el rendimiento de la comunicación entre nodos con baja latencia, alto rendimiento y omisión del sistema operativo.

Cálculo de los requisitos de memoria antes de utilizar el paralelismo de modelos

Antes de utilizar la biblioteca de SageMaker modelos parallel, tenga en cuenta lo siguiente para hacerse una idea de los requisitos de memoria necesarios para el entrenamiento de modelos DL de gran tamaño.

Para un trabajo de entrenamiento que utilice precisión mixta automática, como los optimizadores float16 bfloat16 (FP16BF16) o () y Adam, la memoria de GPU requerida por parámetro es de unos 20 bytes, que podemos desglosar de la siguiente manera:

  • Un BF16 parámetro FP16 or: ~ 2 bytes

  • Un BF16 gradiente FP16 OR de ~ 2 bytes

  • Un estado del FP32 optimizador de ~ 8 bytes basado en los optimizadores Adam

  • Una FP32 copia del parámetro de ~ 4 bytes (necesaria para la operación optimizer apply (OA))

  • Una FP32 copia del gradiente de aproximadamente 4 bytes (necesaria para la operación OA)

Incluso para un modelo DL relativamente pequeño con 10 000 millones de parámetros, puede requerir al menos 200 GB de memoria, que es mucho más grande que la memoria típica de una GPU (por ejemplo, la NVIDIA A100 con 40 GB/80 GB de memoria) disponible en una sola GPU. Además de los requisitos de memoria para los estados del modelo y del optimizador, hay otros consumidores de memoria, como las activaciones que se generan en la transferencia directa. La memoria requerida puede superar con creces los 200 GB.

Para la formación distribuida, le recomendamos que utilice instancias Amazon EC2 P4 y P5 que tengan NVIDIA A100 y H100 Tensor Core, respectivamente. GPUs Para obtener más información sobre especificaciones como los núcleos de la CPU, la RAM, el volumen de almacenamiento adjunto y el ancho de banda de la red, consulte la sección Computación acelerada de la página de tipos de EC2 instancias de Amazon. Para ver los tipos de instancia que admite SMP v2, consulte Tipos de instancias admitidas.

Incluso con las instancias de computación acelerada, los modelos con unos 10 000 millones de parámetros, como Megatron-LM y la T5, e incluso modelos más grandes con cientos de miles de millones de parámetros, como el GPT-3, no caben réplicas de modelos en cada dispositivo con GPU.

Cómo emplea la biblioteca el paralelismo de modelos y las técnicas de ahorro de memoria

La biblioteca consta de varios tipos de funciones de paralelismo de modelos y funciones de ahorro de memoria, como la fragmentación del estado del optimizador, los puntos de control de activación y la descarga de la activación. Todas estas técnicas se pueden combinar para entrenar de manera eficiente modelos grandes que constan de cientos de miles de millones de parámetros.

Paralelismo de datos particionados

El paralelismo de datos fragmentados es una técnica de entrenamiento distribuido que ahorra memoria y que divide el estado de un modelo (parámetros del modelo, gradientes y estados del optimizador) dentro de un grupo de datos paralelos. GPUs

SMP v2 implementa el paralelismo de datos particionados mediante FSDP y lo amplía para implementar la estrategia de particionamiento híbrido con reconocimiento de escala que se analiza en la publicación del blog Near-linear scaling of gigantic-model training en AWS.

Puede aplicar el paralelismo de datos particionados a su modelo como estrategia independiente. Además, si utilizas las instancias de GPU de mayor rendimiento equipadas con NVIDIA A100 Tensor Core GPUs, puedes aprovechar la mayor velocidad de entrenamiento gracias a la operación que ml.p4d.24xlarge ofrece ml.p4de.24xlarge la biblioteca de paralelismo de datos (SMDDP). AllGather SageMaker

Para profundizar en el paralelismo de datos particionados y aprender a configurarlo o utilizar una combinación de paralelismo de datos particionados con otras técnicas, como paralelismo de tensores y entrenamiento de precisión mixta, consulte Paralelismo híbrido de datos particionados.

Paralelismo experto

SMP v2 se integra con NVIDIA Megatron para implementar un paralelismo experto, además de su compatibilidad con el FSDP nativo. PyTorch APIs Puedes mantener el código de entrenamiento del PyTorch FSDP tal y como está y aplicar el paralelismo experto del SMP para entrenar modelos de mezcla de expertos (MoE) en IA. SageMaker

Un modelo de MoE es un tipo de modelo de transformador que consta de varios expertos, cada uno de los cuales se compone de una red neuronal, normalmente una red prealimentada (FFN). Una red de puertas llamada router determina qué tokens se envían a cada experto. Estos expertos se especializan en procesar aspectos específicos de los datos de entrada, lo que permite que el modelo se entrene más rápido, se reduzcan los costos de cómputo y, al mismo tiempo, se logre la misma calidad de rendimiento que su modelo denso homólogo. Además, el paralelismo experto es una técnica de paralelismo que permite dividir a los expertos de un modelo de MoE entre dispositivos de GPU.

Para obtener información sobre cómo entrenar modelos MoE con SMP v2, consulte Paralelismo experto.

Paralelismo de tensores

El paralelismo de tensores divide capas individuales, o nn.Modules, entre dispositivos, para que se ejecuten en paralelo. La siguiente figura muestra el ejemplo más simple de cómo la biblioteca de SMP divide un modelo con cuatro capas para lograr un paralelismo de tensores bidireccional ("tensor_parallel_degree": 2). En la siguiente figura, las anotaciones para el grupo de paralelismo de modelos, el grupo de paralelismo de tensores y el grupo de paralelismo de datos son MP_GROUP, TP_GROUP y DP_GROUP, respectivamente. Las capas de cada réplica del modelo están divididas en dos y distribuidas en dos. GPUs La biblioteca gestiona la comunicación entre las réplicas del modelo distribuido por tensores.

El ejemplo más simple de cómo la biblioteca de SMP divide un modelo con cuatro capas para lograr un paralelismo de tensores bidireccional ("tensor_parallel_degree": 2).

Para profundizar en el paralelismo tensorial y otras funciones que ahorran memoria y aprender a configurar una combinación de las funciones principales PyTorch, consulte. Paralelismo de tensores

Puntos de comprobación de activación y descarga

Para ahorrar memoria en la GPU, la biblioteca admite puntos de control de activación para evitar almacenar las activaciones internas en la memoria de la GPU para los módulos especificados por el usuario durante la transferencia. La biblioteca vuelve a calcular estas activaciones durante la pasada hacia atrás. Además, con la descarga de activaciones, transfiere las activaciones almacenadas a la memoria de la CPU y las recupera en la GPU durante la transferencia hacia atrás para reducir aún más el consumo de memoria de activación. Para obtener más información sobre el uso de estas características, consulte Puntos de control de activación y Descarga de activación.

Elegir las técnicas adecuadas para su modelo

Para obtener más información sobre cómo elegir las técnicas y configuraciones correctas de, consulte SageMaker mejores prácticas de paralelismo de modelos distribuidos.

PrivacidadTérminos del sitioPreferencias de cookies
© 2025, Amazon Web Services, Inc o sus afiliados. Todos los derechos reservados.