Utilice la biblioteca SMDDP en su guion de formación PyTorch - 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.

Utilice la biblioteca SMDDP en su guion de formación PyTorch

A partir de la biblioteca de paralelismo de datos SageMaker distribuido (SMDDP) v1.4.0, puede utilizar la biblioteca como una opción de backend para el paquete distribuido. PyTorch Para usar el SMDDP AllReduce y las operaciones AllGather colectivas, solo necesita importar la biblioteca SMDDP al principio del guion de entrenamiento y configurar SMDDP como el servidor de los módulos distribuidos durante la inicialización del grupo de procesos. PyTorch Con la especificación de backend de una sola línea, puede mantener intactos todos los módulos distribuidos nativos PyTorch y todo el guion de formación. Los siguientes fragmentos de código muestran cómo utilizar la biblioteca SMDDP como backend de los paquetes de formación distribuidos PyTorch basados en PyTorch datos: distributed data parallel (DDP), PyTorch fullded data paralelism (FSDP) y Megatron-. DeepSpeedDeepSpeed

PyTorch Para DDP o FSDP

Inicialice el grupo de procesos de la siguiente manera.

import torch.distributed as dist import smdistributed.dataparallel.torch.torch_smddp dist.init_process_group(backend="smddp")
nota

(Solo para trabajos de PyTorch DDP) Actualmente, el smddp backend no admite la creación de grupos de subprocesos con la API. torch.distributed.new_group() Tampoco puedes usar el smddp backend simultáneamente con otros backends de grupos de procesos, como y. NCCL Gloo

Para DeepSpeed o Megatron- DeepSpeed

Inicialice el grupo de procesos de la siguiente manera.

import deepspeed import smdistributed.dataparallel.torch.torch_smddp deepspeed.init_distributed(dist_backend="smddp")
nota

Para usar SMDDP AllGather con los lanzadores mpirun basados (smdistributedypytorchddp) integradosPaso 2: Inicie un trabajo de formación distribuido con el SDK de SageMaker Python, también debes configurar la siguiente variable de entorno en tu script de entrenamiento.

export SMDATAPARALLEL_OPTIMIZE_SDP=true

Para obtener una guía general sobre cómo escribir un guion de entrenamiento del PyTorch FSDP, consulte Capacitación avanzada de modelos con datos completamente fragmentados en paralelo (FSDP) en la documentación. PyTorch

Para obtener orientación general sobre cómo escribir un guion de formación sobre PyTorch DDP, consulte Introducción a los datos distribuidos en paralelo en la PyTorch documentación.

Cuando haya terminado de adaptar su script de entrenamiento, continúe con Paso 2: Inicie un trabajo de formación distribuido con el SDK de SageMaker Python.