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”.

Estrategias de entrenamiento distribuido

Modo de enfoque
Estrategias de entrenamiento distribuido - 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 entrenamiento distribuido suele dividirse en dos enfoques: paralelismo de datos y paralelismo de modelos. Los datos paralelos son el enfoque más común para el entrenamiento distribuido: se tienen muchos datos, se agrupan y se envían bloques de datos a varios CPUs o GPUs (nodos) para que los procese la red neuronal o el algoritmo de aprendizaje automático y, a continuación, se combinan los resultados. La red neuronal es la misma en todos los nodos. El enfoque de paralelismo de modelos se utiliza con modelos grandes que no caben en la memoria de un nodo de una sola pieza; divide el modelo y coloca diferentes partes en diferentes nodos. En esta situación, es necesario enviar los lotes de datos a cada nodo para que los datos se procesen en todas las partes del modelo.

Los términos red y modelo suelen usarse indistintamente: un modelo grande es en realidad una red grande con muchas capas y parámetros. El entrenamiento con una red grande produce un modelo grande, y la carga del modelo de nuevo en la red con todos sus parámetros preentrenados y sus ponderaciones carga un modelo grande en la memoria. Cuando divide un modelo en nodos, también divide la red subyacente. Una red se compone de capas y, para dividirla, se colocan capas en diferentes dispositivos de procesamiento.

Un error común de dividir las capas entre los dispositivos de forma ingenua es la grave infrautilización de la GPU. El entrenamiento es inherentemente secuencial tanto en las pasadas hacia adelante como hacia atrás y, en un momento dado, solo una GPU puede realizar el procesamiento activo, mientras que las demás esperan a que se envíen las activaciones. Las bibliotecas paralelas de modelos modernos resuelven este problema mediante el uso de programas de ejecución de canalizaciones para mejorar la utilización de los dispositivos. Sin embargo, solo la biblioteca paralela de modelos distribuidos de Amazon SageMaker AI incluye la división automática de modelos. Las dos características principales de la biblioteca, la división automática de modelos y la programación de ejecución de canalización, simplifican el proceso de implementación del paralelismo de modelos al tomar decisiones automatizadas que conducen a una utilización eficiente del dispositivo.

Entrenamiento con paralelismo de datos y paralelismo de modelos

Si está entrenando con un conjunto de datos grande, comience con un enfoque de paralelismo de datos. Si se queda sin memoria durante el entrenamiento, es posible que quiera cambiar a un enfoque de paralelismo de modelos o probar el paralelismo híbrido de datos y modelos. También puede intentar lo siguiente para mejorar el rendimiento con el paralelismo de datos.

  • Cambiar los hiperparámetros de su modelo.

  • Reducir el tamaño del lote.

  • Seguir reduciendo el tamaño del lote hasta que tenga suficiente memoria. Si reduce el tamaño del lote a 1 y aun así se queda sin memoria, debería intentar el entrenamiento de paralelismo de modelos.

Pruebe la compresión de gradiente (FP16, INT8):

Intente reducir el tamaño de la entrada:

  • Reduzca la longitud de la secuencia de PNL si aumenta el enlace de la secuencia, si necesita ajustar el tamaño del lote hacia abajo o ajustarlo hacia GPUs arriba para repartir el lote.

  • Reduzca la resolución de la imagen.

Compruebe si utiliza la normalización por lotes, ya que esto puede afectar a la convergencia. Al utilizar la formación distribuida, el lote se divide GPUs y el efecto de un tamaño de lote mucho menor puede provocar una mayor tasa de error, lo que impide la convergencia del modelo. Por ejemplo, si creaste un prototipo de tu red en una sola GPU con un tamaño de lote de 64 y luego la ampliaste hasta usar cuatro p3dn.24xlarge, ahora tienes 32 GPUs y el tamaño del lote por GPU se reduce de 64 a 2. Es probable que esto rompa la convergencia que pudo observar con un solo nodo.

Comience con el entrenamiento de paralelismo de modelos cuando:

  • Su modelo no quepa en un solo dispositivo.

  • Debido al tamaño del modelo, experimentará limitaciones a la hora de elegir tamaños de lote más grandes, por ejemplo, si el peso del modelo ocupa la mayor parte de la memoria de la GPU y tiene que elegir un tamaño de lote más pequeño y subóptimo. 

Para obtener más información sobre las bibliotecas distribuidas de IA, consulta lo siguiente: SageMaker

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