Zero-Bubble-Pipeline
Ein Scheduling-Verfahren, das die Leerlaufzeit im Pipeline-parallelen Training beseitigt, indem es den Rückwärtspass in zwei Hälften teilt und die Hälfte verschiebt, auf die niemand wartet.
Pipeline-Parallelismus teilt das Modell in Stufen über mehrere Knoten auf, und der Preis dafür ist die Bubble: Zu Beginn jedes Batches stehen die späteren Stufen still und warten, bis Daten eintreffen, und am Ende stehen die früheren Stufen still und warten auf Gradienten. Die entscheidende Beobachtung ist, dass der Rückwärtspass eigentlich zwei unabhängige Berechnungen sind — der Gradient bezüglich der Eingaben, auf den die vorgelagerte Stufe tatsächlich wartet, und der Gradient bezüglich der Gewichte, den niemand braucht, bis ein Update ansteht. Berechnet man den Eingabegradienten sofort und schiebt den Gewichtsgradienten in die Lücken, lässt sich der Zeitplan vollständig füllen. Die 2023er-Arbeit von Sea AI Lab zeigte Scheduling-Verfahren, die unter realistischen Annahmen null Bubble erreichen, gegenüber einem Fünftel oder mehr verschwendeter Zeit beim klassischen 1F1B — auf Kosten von mehr Aktivierungsspeicher und einer deutlich kniffligeren Implementierung.