Domande frequenti sulla libreria di parallelismo dei dati SageMaker distribuiti di Amazon - Amazon SageMaker

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

Domande frequenti sulla libreria di parallelismo dei dati SageMaker distribuiti di Amazon

Utilizza quanto segue per trovare le risposte alle domande più frequenti sulla libreria SMDDP.

D: Quando si utilizza la libreria, come vengono gestite le istanze CPU che supportano allreduce? Devo creare cluster CPU-GPU eterogenei o il SageMaker servizio crea C5 aggiuntivi per i lavori che utilizzano la libreria SMDDP?

La libreria SMDDP supporta solo istanze GPU, in particolare istanze P4d e P4de con GPU NVIDIA A100 ed EFA. Non viene avviata alcuna istanza C5 o CPU aggiuntiva; se il processo di formazione si svolge su un cluster P4d a 8 nodi, vengono utilizzate solo 8 istanze. SageMaker ml.p4d.24xlarge Non viene fornita alcuna istanza aggiuntiva.

D: Ho un processo di addestramento che richiede 5 giorni su una singola istanza ml.p3.24xlarge con una serie di iperparametri H1 (tasso di apprendimento, dimensione del batch, ottimizzatore, ecc.). L'utilizzo SageMaker della libreria di parallelismo dei dati e di un cluster cinque volte più grande sono sufficienti per raggiungere una velocità di circa cinque volte? Oppure devo rivedere i suoi iperparametri di addestramento dopo aver attivato la libreria SMDDP?

La libreria modifica la dimensione complessiva del batch. La nuova dimensione complessiva del batch viene ridimensionata linearmente in base al numero di istanze di addestramento utilizzate. Di conseguenza, gli iperparametri, come il tasso di apprendimento, devono essere modificati per garantire la convergenza.

D: La libreria SMDDP supporta Spot?

Sì. Puoi utilizzare Managed Spot Training. Si specifica il percorso del file di checkpoint nel processo di formazione. SageMaker I checkpoint vengono salvati e ripristinati nel relativo script di addestramento, come indicato negli ultimi passaggi di Usa la libreria SMDDP nello script di formazione (obsoleto) TensorFlow e Utilizzate la libreria SMDDP nello script di addestramento PyTorch .

D: La libreria SMDDP è importante in una configurazione a host singolo e multidispositivo?

La libreria può essere utilizzata per l’addestramento su più dispositivi con host singolo, ma offre miglioramenti delle prestazioni solo nell’addestramento su più host.

D: Dove deve essere archiviato il set di dati di addestramento?

Il set di dati di addestramento può essere archiviato in un bucket Amazon S3 o su un'unità Amazon FSx. Consulta questo documento per conoscere i vari file system di input supportati per un processo di addestramento.

D: Quando si utilizza la libreria SMDDP, è obbligatorio disporre di dati di addestramento in FSx for Lustre? È possibile utilizzare Amazon EFS e Amazon S3?

In genere consigliamo di utilizzare Amazon FSx a causa della sua latenza inferiore e della velocità di trasmissione effettiva maggiore. Se si preferisce, è possibile utilizzare Amazon EFS o Amazon S3.

D: La libreria può essere utilizzata con nodi CPU?

No. Per trovare i tipi di istanza supportati dalla libreria SMDDP, vedere. Tipi di istanze supportati

D: Quali framework e versioni del framework sono attualmente supportati dalla libreria SMDDP al momento del lancio?

la libreria SMDDP attualmente supporta la versione PyTorch 1.6.0 o successiva e la versione 2.3.0 o successiva. TensorFlow Non TensorFlow supporta 1.x. Per ulteriori informazioni su quale versione della libreria SMDDP è inclusa nei contenitori di AWS deep learning, consulta Release Notes for Deep Learning Containers.

D: La libreria supporta AMP?

Sì, la libreria SMDDP supporta automaticamente la tecnologia AMP (Automatic Mixed Precision). Non è necessaria alcuna azione aggiuntiva per usare l'AMP oltre alle modifiche a livello di framework allo script di addestramento. Se i gradienti sono in FP16, la libreria di parallelismo SageMaker dei dati esegue il suo funzionamento in FP16. AllReduce Per ulteriori informazioni sull'implementazione delle API AMP nello script di addestramento, consulta le seguenti risorse:

D: Come posso stabilire se il mio processo di addestramento distribuito è rallentato a causa di un collo di bottiglia di I/O?

Con un cluster più grande, il processo di addestramento richiede una maggiore velocità di I/O e pertanto la velocità di addestramento potrebbe impiegare più tempo (più epoche) per raggiungere le massime prestazioni. Ciò indica che l'I/O è bloccato e che la cache è più difficile da sviluppare man mano che si scalano i nodi (requisiti di velocità di trasmissione effettiva maggiore e topologia di rete più complessa). Per ulteriori informazioni sul monitoraggio del throughput di Amazon FSx su CloudWatch, consulta Monitoring FSx for Lustre nella FSx for Lustre User Guide.

D: Come posso risolvere i problemi di I/O durante l'esecuzione di un processo di addestramento distribuito con parallelismo dei dati?

Ti consigliamo vivamente di utilizzare Amazon FSx come canale dati se utilizzi Amazon S3. Se utilizzi già Amazon FSx ma hai ancora problemi di collo di bottiglia di I/O, potresti aver configurato il tuo file system Amazon FSx con un throughput di I/O basso e una capacità di storage ridotta. Per ulteriori informazioni su come stimare e scegliere la giusta dimensione della capacità di throughput di I/O, consulta Usa Amazon FSx e configura una capacità di storage e throughput ottimale.

D: (Per la libreria v1.4.0 o successiva) Come posso risolvere l'errore Invalid backend durante l'inizializzazione del gruppo di processi.

Se viene visualizzato il messaggio ValueError: Invalid backend: 'smddp' di errore durante la chiamatainit_process_group, ciò è dovuto alla modifica sostanziale nella libreria SMDDP v1.4.0 e versioni successive. È necessario importare il PyTorch client della libreriasmdistributed.dataparallel.torch.torch_smddp, che si registra smddp come backend per. PyTorch Per ulteriori informazioni, vedi Utilizzate la libreria SMDDP nello script di addestramento PyTorch .

D: (Per la libreria SMDDP v1.4.0 o successiva) Vorrei chiamare le primitive collettive dell'interfaccia. torch.distributed Quali primitive supporta il backend smddp?

Nella v1.4.0, la libreria SMDDP supportaall_reduce,, e dell'interfaccia. broadcast reduce all_gather barrier torch.distributed

D: (Per la libreria SMDDP v1.4.0 o successiva) Questa nuova API funziona con altre classi o librerie DDP personalizzate come Apex DDP?

La libreria SMDDP viene testata con altre librerie parallele di dati distribuiti di terze parti e implementazioni di framework che utilizzano i moduli. torch.distribtued L'utilizzo della libreria SMDDP con classi DDP personalizzate funziona purché le operazioni collettive utilizzate dalle classi DDP personalizzate siano supportate dalla libreria SMDDP. Vedi la domanda precedente per un elenco dei collettivi supportati. Se hai questi casi d'uso e hai bisogno di ulteriore assistenza, contatta il SageMaker team tramite il AWS Support Center o i forum per AWS sviluppatori di Amazon SageMaker.

D: La libreria SMDDP supporta l'opzione bring-your-own-container (BYOC)? In tal caso, come posso installare la libreria ed eseguire un processo di addestramento distribuito scrivendo un Dockerfile personalizzato?

Se desideri integrare la libreria SMDDP e le sue dipendenze minime nel tuo contenitore Docker, BYOC è l'approccio giusto. Puoi creare il tuo container utilizzando il file binario della libreria. Il processo consigliato consiste nello scrivere un Dockerfile personalizzato con la libreria e le sue dipendenze, creare il contenitore Docker, ospitarlo in Amazon ECR e utilizzare l'URI dell'immagine ECR per avviare un processo di formazione utilizzando la classe di stima generica. SageMaker Per ulteriori istruzioni su come preparare un Dockerfile personalizzato per la formazione distribuita con la libreria SMDDP, consulta. SageMaker Crea il tuo contenitore Docker con la libreria parallela di dati SageMaker distribuiti