Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
In questa pagina, imparerai come utilizzare la libreria di parallelismo dei SageMaker modelli v2 APIs e come iniziare a eseguire un processo di formazione PyTorch Fully Sharded Data Parallel (FSDP) nella piattaforma di formazione o su un cluster. SageMaker SageMaker HyperPod
Esistono vari scenari per l'esecuzione di un PyTorch processo di formazione con SMP v2.
-
Per la SageMaker formazione, utilizza uno dei SageMaker Framework Containers predefiniti per la versione PyTorch 2.0.1 e successive, preconfezionati con SMP v2.
-
Utilizzate il file binario SMP v2 per configurare un ambiente Conda per l'esecuzione di un carico di lavoro di formazione distribuito su un cluster. SageMaker HyperPod
-
Estendi i SageMaker Framework Containers predefiniti per la PyTorch versione 2.0.1 e successive per installare eventuali requisiti funzionali aggiuntivi per il tuo caso d'uso. Per informazioni su come estendere un contenitore predefinito, consulta. Estensione di un container predefinito
-
Puoi anche portare il tuo contenitore Docker e configurare manualmente tutto l'ambiente di SageMaker formazione utilizzando il toolkit di SageMaker formazione
e installare il file binario SMP v2. Questa è l'opzione meno consigliata a causa della complessità delle dipendenze. Per informazioni su come gestire il tuo contenitore Docker, consulta Adattamento del tuo contenitore di formazione.
Questa guida introduttiva copre i primi due scenari.
Argomenti
Fase 1: Adattate lo script di PyTorch formazione FSDP
Per attivare e configurare la libreria SMP v2, iniziate con l'importazione e l'aggiunta del torch.sagemaker.init()
modulo nella parte superiore dello script. Questo modulo include il dizionario di configurazione SMP Parametri di configurazione delle funzionalità principali di SMP v2 che utilizzerai per prepararlo. Fase 2: Avviare un lavoro di formazione Inoltre, per utilizzare le varie funzionalità principali offerte da SMP v2, potrebbe essere necessario apportare qualche altra modifica per adattare lo script di formazione. Istruzioni più dettagliate sull'adattamento dello script di formazione per l'utilizzo delle funzionalità principali di SMP v2 sono disponibili all'indirizzo. Caratteristiche principali della libreria di parallelismo dei SageMaker modelli v2
Nello script di addestramento, aggiungete le seguenti due righe di codice, che rappresentano il requisito minimo per iniziare la formazione con SMP v2. InFase 2: Avviare un lavoro di formazione, imposterai un oggetto della classe SageMaker PyTorch
estimator con un dizionario di configurazione SMP tramite l'distribution
argomento della classe estimator.
import torch.sagemaker as tsm
tsm.init()
Nota
Puoi anche passare direttamente un dizionario di configurazione Parametri di configurazione delle funzionalità principali di SMP v2 al modulo. torch.sagemaker.init()
Tuttavia, i parametri passati allo PyTorch stimatore hanno la priorità e sostituiscono quelli specificati nel Fase 2: Avviare un lavoro di formazione modulo. torch.sagemaker.init()
Fase 2: Avviare un lavoro di formazione
Scopri come configurare le opzioni di distribuzione SMP per avviare un processo di formazione PyTorch FSDP con le funzionalità principali di SMP.
Quando imposti un oggetto training job launcher della classe PyTorch framework estimatordistribution
Nota
La distribution
configurazione per SMP v2 è integrata nell'SDK SageMaker Python a partire dalla v2.200. Assicurati di utilizzare SageMaker Python SDK v2.200 o successivo.
Nota
In SMP v2, è necessario configurare smdistributed
con torch_distributed
per l'argomento dello stimatore. distribution
SageMaker PyTorch
Contorch_distributed
, SageMaker AI runtorchrun
, che è il job launcher multi-nodo predefinito di Distributed. PyTorch
from sagemaker.pytorch import PyTorch
estimator = PyTorch(
framework_version=2.2.0
,
py_version="310
"
# image_uri="<smp-docker-image-uri>" # For using prior versions, specify the SMP image URI directly.
entry_point="your-training-script.py
", # Pass the training script you adapted with SMP from Step 1.
... # Configure other required and optional parameters
distribution={
"torch_distributed": { "enabled": True },
"smdistributed": {
"modelparallel": {
"enabled": True,
"parameters": {
"hybrid_shard_degree": Integer
,
"sm_activation_offloading": Boolean
,
"activation_loading_horizon": Integer
,
"fsdp_cache_flush_warnings": Boolean
,
"allow_empty_shards": Boolean
,
"tensor_parallel_degree": Integer
,
"expert_parallel_degree": Integer
,
"random_seed": Integer
}
}
}
}
)
Importante
Per utilizzare una delle versioni precedenti PyTorch o SMP anziché la più recente, è necessario specificare l'immagine SMP Docker direttamente utilizzando l'image_uri
argomento anziché la coppia and. framework_version
py_version
Di seguito è riportato un esempio di
estimator = PyTorch(
...,
image_uri="658645717510.dkr.ecr.us-west-2.amazonaws.com/smdistributed-modelparallel:2.2.0-gpu-py310-cu121"
)
Per trovare l'immagine SMP Docker URIs, vedere. Framework supportati