Bedeutung von Parallelität und Checkpoints

Herausforderungen bei der Speicherung von Large Language Models (LLMs)

Large Language Models, LLMs, Storage

Dimensionierung von Checkpoints: Sprechen wir in Zahlen

Die Dimensionierung der Infrastruktur war in den letzten Jahren ein häufiges Gesprächsthema, da immer mehr AI-Technologien auf den Markt kamen. Daher ist GPT-3 das perfekte Beispiel, um zu erörtern, wie die Infrastruktur für Deep Learning im Allgemeinen und LLMs im Besonderen angemessen bereitgestellt werden kann. Gehen wir dieses Beispiel durch und rechnen wir aus, wie ein solches System zu dimensionieren ist:

  • GPT-3 hat 175 Milliarden Hyperparameter, und nehmen wir an, dass wir alle drei Arten der Parallelität bei der Bereitstellung dieses LLMs verwenden werden und dass wir es auf 1.024 Grafikprozessoren bereitstellen werden, was 128 NVIDIA DGX-A100-Maschinen entspricht (jede enthält 8 Grafikprozessoren).
  • Wie bereits erwähnt, ist das ~500 Gigabyte große Modell selbst zu groß, um in den 80 Gigabyte großen Speicher eines einzelnen Grafikprozessors zu passen. Daher verwenden wir tensor-basierte Modellparallelität, um das Modell auf die 8 Grafikprozessoren in einem DGX-Node zu verteilen.
  • Um die Pipeline-Parallelität zu implementieren, wird das Modell auf Gruppen von 8 DGXs oder Oktetts repliziert. Man beachte, dass das hier beschriebene Pipeline-Parallel-Oktett in sich geschlossen ist und das gesamte Modell und die Pipeline für ein LLM enthält. Daher muss nur ein Oktett pro System geprüft werden, unabhängig von der Gesamtgröße des Clusters, da es eine vollständige Darstellung des Systems ist.
  • Jede GPU wird daher als 1 Thread bereitgestellt, 8 Threads pro 8-GPU DGX und 64 Threads pro 8-DGX-Oktett. Dies führt zu gepufferten sequenziellen Schreibvorgängen für große Blöcke, die in eine Prüfpunktdatei pro Thread geschrieben werden.
  • Schließlich parallelisiert man die Daten in 16 Gruppen von 8 pipeline-parallelen Systemen (128 Nodes).

Die Kombination aus Tensor-Modell, Pipeline und Datenparallelität ermöglicht eine lineare Skalierung im Megatron-Muster bis hin zu Modellen mit 1 Billion Parametern und einer Flop-Effizienz von nahezu 50 Prozent der theoretischen Werte.

Anzeige

Die Quintessenz dieses Beispiels besteht darin, dass die Größe eines Checkpoints überhaupt nicht von der Größe der Daten oder der Anzahl der GPUs abhängt, sondern nur von der Größe des Modells. Bei der Bereitstellung der Infrastruktur für LLMs besteht die einzige Überlegung in Bezug auf das Checkpointing darin, die Größe der Modelle zu kennen, die man einsetzen wird, und dann sicherzustellen, dass genügend Bandbreite vorhanden ist, um Checkpoints zu schreiben und einen Checkpoint zu lesen, wenn die E/A-Grenzen erreicht sind.

Wie lange dauert ein Wiederherstellungsvorgang?

Die für die Wiederherstellung benötigte Lesebandbreite ergibt sich aus der Datenparallelität (6 in diesem Beispiel) multipliziert mit den Schreibvorgängen, also 6×273 Gigabyte/s= 1.638 Terabyte/s. Die Schreibbandbreite beträgt 17 Prozent der für die Wiederherstellung erforderlichen Lesebandbreite. Solange ein Speichersubsystem 1,64 Terabyte/s für Lesevorgänge und 280 Gigabyte/s für Schreibvorgänge liefern kann, ist die Checkpoint-Zeit optimal und entspricht etwa 50 Sekunden für einen 13,8-Terabyte-Modellzustand.

Newsletter
Newsletter Box

Mit Klick auf den Button "Jetzt Anmelden" stimme ich der Datenschutzerklärung zu.

Der Checkpoint für Checkpoints

In letzter Zeit wurde auf dem Markt auch darüber diskutiert, dass ein System für Checkpoints 1 Gigabyte/s pro GPU für alle GPUs im Cluster benötigt. Klar ist, basiert dies nicht auf realistischen Berechnungen. Wie gezeigt wurde, sind für einen Checkpoint-Vorgang nicht mehr als 8 Gigabyte/s pro DGX in einem Oktett erforderlich. Daher muss nicht jede GPU zur gleichen Zeit einen Checkpoint durchführen, wodurch eine Überbelegung der Speicher-Hardware für solche Trainings-Cluster vermieden wird.

Man sollte daran denken, dass ein Checkpoint nicht absolut alles im System widerspiegeln muss. Er muss lediglich eine kohärente Aufzeichnung des Zustands eines Systems sein, von der aus man dieses System wiederherstellen kann. Mit anderen Worten: Man muss einen Snapshot des Modells und der Pipelines in einem konsistenten Zustand erstellen. Es ist wichtig zu erkennen, dass dies nicht von den Daten abhängt, sondern nur von den Gewichtungen und Verzerrungen, die im aktuellen Zustand des Modells vorhanden sind.

Colleen Tartow VAST Data

Colleen

Tartow

VAST Data

Field CTO und Head of Strategy

Anzeige

Weitere Artikel

Newsletter
Newsletter Box

Mit Klick auf den Button "Jetzt Anmelden" stimme ich der Datenschutzerklärung zu.