Preguntas frecuentes sobre la SageMaker biblioteca de paralelismo de datos distribuidos de Amazon - Amazon SageMaker

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.

Preguntas frecuentes sobre la SageMaker biblioteca de paralelismo de datos distribuidos de Amazon

Utilice lo siguiente para encontrar respuestas a las preguntas más frecuentes acerca de la biblioteca SMDDP.

P: Cuando utiliza la biblioteca, ¿cómo se gestionan las instancias de CPU compatibles con allreduce? ¿Debo crear clústeres de CPU-GPU heterogéneos o el SageMaker servicio crea C5 adicionales para los trabajos que utilizan la biblioteca SMDDP?

La biblioteca SMDDP solo admite instancias de GPU, más específicamente, instancias P4d y P4de con GPU NVIDIA A100 y EFA. No se lanzan instancias C5 o CPU adicionales; si su trabajo de SageMaker formación se realiza en un clúster P4d de 8 nodos, solo se utilizan 8 instancias. ml.p4d.24xlarge No se aprovisionan instancias adicionales.

P: Tengo un trabajo de entrenamiento que tarda 5 días en una sola instancia de ml.p3.24xlarge con un conjunto de hiperparámetros H1 (tasa de aprendizaje, tamaño de lote, optimizador, etc.). ¿Es suficiente usar SageMaker la biblioteca de paralelismo de datos y un clúster cinco veces más grande para lograr una aceleración aproximada de cinco veces? ¿O tengo que revisar sus hiperparámetros de entrenamiento después de activar la biblioteca SMDDP?

La biblioteca cambia el tamaño total del lote. El nuevo tamaño general del lote se escala linealmente con la cantidad de instancias de entrenamiento utilizadas. Como resultado de esto, hay que cambiar los hiperparámetros, como la tasa de aprendizaje, para garantizar la convergencia.

P: ¿La biblioteca SMDDP es compatible con Spot?

Sí. Cómo utilizar el entrenamiento puntual gestionado. La ruta al archivo de puntos de control se especifica en el SageMaker trabajo de formación. Se habilitan los puntos de control para guardar y restaurar en su script de entrenamiento, tal como se menciona en los últimos pasos de Utilice la SMDDP biblioteca en su script TensorFlow de entrenamiento (obsoleto) y Utilice la SMDDP biblioteca en su guion de formación PyTorch .

P: ¿La biblioteca SMDDP es relevante en una configuración de un solo host y varios dispositivos?

Es posible utilizar la biblioteca en el entrenamiento con un solo host y varios dispositivos, pero solo ofrece mejoras de rendimiento en el entrenamiento con varios hosts.

P: ¿Dónde debe almacenarse el conjunto de datos de entrenamiento?

El conjunto de datos de entrenamiento puede almacenarse en un bucket de Amazon S3 o en una unidad de Amazon FSx. Consulte este documento para conocer varios sistemas de archivos de entrada compatibles para un trabajo de entrenamiento.

P: Cuando se utiliza la biblioteca SMDDP, ¿es obligatorio tener datos de entrenamiento en FSx for Lustre? ¿Se pueden utilizar Amazon EFS y Amazon S3?

Por lo general, le recomendamos que utilice Amazon FSx debido a su menor latencia y mayor rendimiento. Si lo prefiere, puede utilizar Amazon EFS o Amazon S3.

P: ¿Se puede utilizar la biblioteca con nodos de CPU?

No. Para encontrar los tipos de instancias compatibles con la biblioteca SMDDP, consulte. Tipos de instancias admitidas

P: ¿Qué marcos y versiones de marcos admite actualmente la biblioteca SMDDP en el momento del lanzamiento?

la biblioteca SMDDP admite actualmente la PyTorch versión 1.6.0 o posterior y la versión 2.3.0 o posterior. TensorFlow No es compatible con la versión 1.x. TensorFlow Para obtener más información sobre qué versión de la biblioteca SMDDP se incluye en los contenedores de AWS deep learning, consulte Release Notes for Deep Learning Containers.

P: ¿La biblioteca admite AMP?

Sí, la biblioteca SMDDP es compatible con la precisión mixta automática (AMP) desde el primer momento. No se necesita ninguna acción adicional para habilitar AMP que no sean las modificaciones a nivel de marco de su script de entrenamiento. Si los gradientes están en la FP16, la biblioteca de paralelismo de SageMaker datos ejecuta su operación en la FP16. AllReduce Para obtener más información sobre la implementación de API de AMP en su script de entrenamiento, consulte los siguientes recursos:

P: ¿Cómo identifico si mi trabajo de entrenamiento distribuido se ralentiza debido a un cuello de botella de E/S?

Con un clúster más grande, el trabajo de entrenamiento requiere más rendimiento de E/S y, por lo tanto, el rendimiento del entrenamiento podría tardar más (más épocas) en aumentar el rendimiento máximo. Esto indica que E/S está teniendo cuellos de botella y que el caché es más difícil de crear a medida que aumenta la escala de los nodos (mayor requerimiento de rendimiento, topología de red más compleja). Para obtener más información sobre la supervisión del rendimiento de Amazon FSx activado CloudWatch, consulte Monitoring FSx for Lustre en la Guía del usuario de FSx for Lustre.

P: ¿Cómo puedo resolver los cuellos de botella de E/S al ejecutar un trabajo de entrenamiento distribuido con paralelismo de datos?

Le recomendamos encarecidamente que utilice Amazon FSx como canal de datos si utiliza Amazon S3. Si ya utiliza Amazon FSx pero sigue teniendo problemas de cuello de botella de E/S, es posible que haya configurado el sistema de archivos Amazon FSx con un bajo rendimiento de E/S y una pequeña capacidad de almacenamiento. Para obtener más información sobre cómo estimar y elegir el tamaño correcto de la capacidad de rendimiento de E/S, consulteUtilice Amazon FSx y configure una capacidad óptima de almacenamiento y rendimiento.

P: (Para la biblioteca v1.4.0 o versiones posteriores) ¿Cómo puedo resolver el error Invalid backend al inicializar el grupo de procesos?

Si aparece el mensaje de error ValueError: Invalid backend: 'smddp' al llamarinit_process_group, se debe a un cambio radical en la biblioteca SMDDP, versión 1.4.0 y versiones posteriores. Debe importar el PyTorch cliente de la bibliotecasmdistributed.dataparallel.torch.torch_smddp, que se registra smddp como servidor. PyTorch Para obtener más información, consulte Utilice la SMDDP biblioteca en su guion de formación PyTorch .

P: (Para la biblioteca SMDDP v1.4.0 o posterior) me gustaría llamar a las primitivas colectivas de la interfaz. torch.distributed ¿Qué primitivas admite el backend de smddp?

En la versión 1.4.0, la biblioteca SMDDP admite,all_reduce, broadcast y de la interfaz. reduce all_gather barrier torch.distributed

P: (Para la biblioteca SMDDP v1.4.0 o posterior) ¿Funciona esta nueva API con otras clases o bibliotecas de DDP personalizadas, como Apex DDP?

La biblioteca SMDDP se prueba con otras bibliotecas paralelas de datos distribuidas de terceros e implementaciones de marcos que utilizan los módulos. torch.distribtued El uso de la biblioteca SMDDP con clases DDP personalizadas funciona siempre que las operaciones colectivas utilizadas por las clases DDP personalizadas sean compatibles con la biblioteca SMDDP. Consulte la pregunta anterior para ver una lista de los colectivos compatibles. Si tienes estos casos de uso y necesitas más ayuda, ponte en contacto con el SageMaker equipo a través del AWS Support Center o los foros de AWS desarrolladores de Amazon SageMaker.

P: ¿La biblioteca SMDDP admite la opción bring-your-own-container (BYOC)? Si es así, ¿cómo instalo la biblioteca y ejecuto un trabajo de entrenamiento distribuido escribiendo un Dockerfile personalizado?

Si desea integrar la biblioteca SMDDP y sus dependencias mínimas en su propio contenedor de Docker, BYOC es el enfoque correcto. Puede crear su propio contenedor utilizando el archivo binario de la biblioteca. El proceso recomendado consiste en escribir un Dockerfile personalizado con la biblioteca y sus dependencias, crear el contenedor Docker, alojarlo en Amazon ECR y utilizar el URI de la imagen ECR para lanzar un trabajo de formación con la clase genérica estimador. SageMaker Para obtener más instrucciones sobre cómo preparar un Dockerfile personalizado para una formación distribuida con la biblioteca SMDDP, consulte. SageMaker Cree su propio contenedor Docker con la biblioteca paralela de datos SageMaker distribuidos