Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Rangfolgemechanismus bei Verwendung einer Kombination aus Pipeline-Parallelität und Tensor-Parallelität
In diesem Abschnitt wird erklärt, wie der Rangfolgemechanismus der Modellparallelität mit der Tensor-Parallelität funktioniert. Dies ist die erweiterte Form der Grundlagen der Rangfolgesmp.tp_rank()
für den parallelen Tensorrang, für den parallel Pipeline-Rang und smp.pp_rank()
smp.rdp_rank()
für den parallel Rang mit reduzierten Daten. Die entsprechenden Kommunikationsprozessgruppen sind die Tensor-Parallelgruppe (TP_GROUP
), die Pipeline-Parallelgruppe (PP_GROUP
) und die Parallelgruppe für reduzierte Daten (RDP_GROUP
). Diese Gruppen sind wie folgt definiert:
-
Eine Tensor-Parallelgruppe (
TP_GROUP
) ist eine gleichmäßig teilbare Teilmenge der Daten-Parallelgruppe, über die die tensorparallele Verteilung von Modulen erfolgt. Wenn der Grad der Pipeline-Parallelität 1 ist, entsprichtTP_GROUP
der Modell-Parallelgruppe (MP_GROUP
). -
Eine Pipeline-Parallelgruppe (
PP_GROUP
) ist die Gruppe von Prozessen, über die die Pipeline-Parallelität erfolgt. Wenn der Grad der Tensor-Parallelität 1 ist, so istPP_GROUP
das Gleiche wieMP_GROUP
. -
Eine Parallelgruppe für reduzierte Daten (
RDP_GROUP
) ist eine Menge von Prozessen, die sowohl dieselben Pipeline-Parallelitätspartitionen als auch dieselben Tensor-Parallelitätspartitionen enthalten und untereinander Datenparallelität durchführen. Eine solche Gruppe wird als Parallelgruppe für reduzierte Daten bezeichnet, da es sich dabei um eine Teilmenge der gesamten DatenparallelitätsgruppeDP_GROUP
handelt. Für die Modellparameter, die innerhalb derTP_GROUP
verteilt sind, erfolgt dieallreduce
Steigungsoperation nur für die Parallelgruppe mit reduzierten Daten, während für die Parameter, die nicht verteilt sind, die Steigungallreduce
über die gesamteDP_GROUP
erfolgt. -
Eine Modell-Parallelgruppe (
MP_GROUP
) bezieht sich auf eine Gruppe von Prozessen, die gemeinsam das gesamte Modell speichern. Sie besteht aus der Vereinigung derPP_GROUP
s aller Ränge, die sich imTP_GROUP
der aktuellen Prozess befinden. Wenn der Grad der Tensor-Parallelität 1 ist, entsprichtMP_GROUP
PP_GROUP
. Sie entspricht auch der bestehenden Definition vonMP_GROUP
aus früherensmdistributed
Versionen. Beachten Sie, dass die aktuelleTP_GROUP
eine Teilmenge sowohl des aktuellenDP_GROUP
als auch des aktuellenMP_GROUP
ist.
Weitere Informationen zum Kommunikationsprozess APIs in der SageMaker Modellparallelismus-Bibliothek finden Sie unter Common API

Stellen Sie sich beispielsweise Prozessgruppen für einen einzelnen Knoten mit 8 vor GPUs, wobei der Grad der Tensorparallelität 2, der Grad der Pipeline-Parallelität 2 und der Grad der Datenparallelität 4 ist. Der obere mittlere Teil der Abbildung weiter oben zeigt ein Beispiel für ein Modell mit 4 Layers. Die unteren linken und unteren rechten Teile der Abbildung veranschaulichen das 4-Schichten-Modell, das auf 4 verteilt ist und sowohl Pipeline-Parallelität als auch Tensorparallelität GPUs verwendet, wobei Tensorparallelität für die beiden mittleren Schichten verwendet wird. Diese beiden unteren Abbildungen sind einfache Kopien zur Veranschaulichung der Grenzlinien zwischen den verschiedenen Gruppen. Das partitionierte Modell wird aus Gründen der Datenparallelität zwischen 0-3 und 4-7 repliziert. GPUs Die Abbildung unten links zeigt die Definitionen von MP_GROUP
, PP_GROUP
und TP_GROUP
. Die Abbildung unten rechts zeigt RDP_GROUP
DP_GROUP
, und WORLD
über demselben Satz von. GPUs Die Steigungen für die Ebenen und Layer-Slices, die dieselbe Farbe haben, werden aus Gründen der Datenparallelität zusammengefasstallreduce
. z. B. erhält die erste Layer (hellblau) die allreduce
Operationen über DP_GROUP
. Dagegen erhält die dunkelorangefarbene Layer in der zweiten Layer nur die allreduce
Operationen innerhalb der RDP_GROUP
ihres Prozesses. Die fetten dunkelroten Pfeile stehen für Tensoren mit dem Batch aus ihren gesamten 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 diesem Beispiel tritt Pipeline-Parallelität zwischen den GPU-Paaren (0,1); (2,3); (4,5) und (6,7) auf. Darüber hinaus findet Datenparallelität (allreduce
) über GPUs 0, 2, 4, 6 und unabhängig über GPUs 1, 3, 5, 7 statt. Tensor-Parallelität tritt über Teilmengen von DP_GROUP
s auf, über die GPU-Paare (0,2); (1,3); (4,6) und (5,7).