Meccanismo di classificazione quando si utilizza una combinazione di parallelismo di pipeline e parallelismo tensoriale - 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à.

Meccanismo di classificazione quando si utilizza una combinazione di parallelismo di pipeline e parallelismo tensoriale

Questa sezione spiega come funziona il meccanismo di classificazione del parallelismo dei modelli con il parallelismo tensoriale. Si tratta di un'estensione di Ranking Basics per Caratteristiche principali della SageMaker Model Parallelism Library. Con il parallelismo tensoriale, la libreria introduce tre tipi di classificazione e gruppo di processi: APIs per smp.tp_rank() tensor parallel rank, per smp.pp_rank() pipeline parallel rank e per reduced-data parallel rank. smp.rdp_rank() I gruppi di processi di comunicazione corrispondenti sono gruppo parallelo dei tensori (TP_GROUP), gruppo parallelo di pipeline (PP_GROUP) e gruppo parallelo dei dati ridotti (RDP_GROUP). I gruppi sono definiti come segue:

  • Un gruppo parallelo dei tensori (TP_GROUP) è un sottoinsieme divisibile in modo uniforme del gruppo parallelo dei dati, sul quale avviene la distribuzione parallela tensoriale dei moduli. Quando il grado di parallelismo della pipeline è 1, TP_GROUP è uguale al gruppo parallelo del modello (MP_GROUP).

  • Un gruppo parallelo di pipeline (PP_GROUP) è il gruppo di processi su cui avviene il parallelismo della pipeline. Quando il grado di parallelismo tensoriale è 1, PP_GROUP è uguale a MP_GROUP.

  • Un gruppo parallelo dei dati ridotti (RDP_GROUP) è un insieme di processi che contengono sia le stesse partizioni di parallelismo della pipeline che le stesse partizioni parallele tensoriali ed eseguono il parallelismo dei dati tra di loro. Questo è chiamato gruppo parallelo dei dati ridotti perché è un sottoinsieme dell'intero gruppo di parallelismo dei dati DP_GROUP. Per i parametri del modello distribuito all'interno di TP_GROUP, l'operazione allreduce di gradiente viene eseguita solo per il gruppo parallelo dei dati ridotti, mentre per i parametri che non sono distribuiti, il gradiente allreduce avviene sull'intero DP_GROUP.

  • Un gruppo parallelo del modello (MP_GROUP) si riferisce a un gruppo di processi che memorizzano collettivamente l'intero modello. Consiste nell'unione degli PP_GROUP di tutte le classificazioni che fanno parte del processo corrente TP_GROUP. Quando il grado di parallelismo tensoriale è 1, MP_GROUP è equivalente a PP_GROUP È inoltre coerente con la definizione esistente di MP_GROUP delle versioni precedenti smdistributed. Nota che il TP_GROUP corrente è un sottoinsieme sia della DP_GROUP corrente che del MP_GROUP corrente.

Per saperne di più sul processo di comunicazione APIs nella libreria di parallelismo dei SageMaker modelli, consulta Common API e PyTorch-specific APIs nella documentazione di PythonSageMaker . SDK

Meccanismo di classificazione, distribuzione dei parametri e AllReduce operazioni associate del parallelismo tensoriale.

Ad esempio, considerate i gruppi di processi per un singolo nodo con 8GPUs, dove il grado di parallelismo tensoriale è 2, il grado di parallelismo della pipeline è 2 e il grado di parallelismo dei dati è 4. La parte centrale superiore della figura precedente mostra un esempio di modello con 4 livelli. Le parti in basso a sinistra e in basso a destra della figura illustrano il modello a 4 strati distribuito su 4 GPUs utilizzando sia il parallelismo della pipeline che il parallelismo tensoriale, dove il parallelismo tensoriale viene utilizzato per i due strati intermedi. Queste due figure inferiori sono semplici copie che illustrano le diverse linee di confine dei gruppi. Il modello partizionato viene replicato per il parallelismo dei dati su 0-3 e 4-7. GPUs La figura in basso a sinistra mostra le definizioni di MP_GROUP, PP_GROUP, e TP_GROUP. La figura in basso a destra mostraRDP_GROUP, DP_GROUP e sullo stesso set di. WORLD GPUs I gradienti per i livelli e le porzioni di livello che hanno lo stesso colore vengono allreduce assieme per il parallelismo dei dati. Ad esempio, il primo livello (blu chiaro) riceve le operazioni allreduce attraverso DP_GROUP, mentre la sezione arancione scuro del secondo livello trasmette solo le operazioni allreduce all'interno del relativo processo RDP_GROUP. Le frecce in grassetto rosso scuro rappresentano i tensori con il batch del loro insieme TP_GROUP.

GPU0: pp_rank 0, tp_rank 0, rdp_rank 0, dp_rank 0, mp_rank 0 GPU1: pp_rank 1, tp_rank 0, rdp_rank 0, dp_rank 0, mp_rank 1 GPU2: pp_rank 0, tp_rank 1, rdp_rank 0, dp_rank 1, mp_rank 2 GPU3: pp_rank 1, tp_rank 1, rdp_rank 0, dp_rank 1, mp_rank 3 GPU4: pp_rank 0, tp_rank 0, rdp_rank 1, dp_rank 2, mp_rank 0 GPU5: pp_rank 1, tp_rank 0, rdp_rank 1, dp_rank 2, mp_rank 1 GPU6: pp_rank 0, tp_rank 1, rdp_rank 1, dp_rank 3, mp_rank 2 GPU7: pp_rank 1, tp_rank 1, rdp_rank 1, dp_rank 3, mp_rank 3

In questo esempio, il parallelismo della pipeline si verifica tra le GPU coppie (0,1); (2,3); (4,5) e (6,7). Inoltre, il parallelismo dei dati (allreduce) avviene tra GPUs 0, 2, 4, 6 e indipendentemente su 1, 3, 5, 7. GPUs Il parallelismo tensoriale avviene su sottoinsiemi di DP_GROUP s, tra le GPU coppie (0,2); (1,3); (4,6) e (5,7).