1 Punkte von GN⁺ 2024-06-29 | 1 Kommentare | Auf WhatsApp teilen

Infrastrukturaufbau und Skript-Setup

Einführung

  • Über mehrere Monate hinweg trainierten ein kleines Forschungsteam und ein Engineering-Team auf ihrer eigenen Infrastruktur ein Modell mit 70 Milliarden Parametern von Grund auf und übertrafen bei Reasoning-bezogenen Aufgaben Zero-Shot-GPT-4o.
  • Heute teilen sie einen umfassenden Leitfaden zu den nötigen Infrastruktur-Setups – von der anfänglichen Cluster-Einrichtung über die Installation des Betriebssystems bis hin zur automatischen Fehlerbehebung bei Ausfällen während des Trainings.
  • Sie erläutern detailliert die Herausforderungen und Lösungen in jedem Schritt und veröffentlichen ihre Infrastruktur-Skripte, damit andere Teams leichter eine stabile Infrastruktur aufbauen können.

Hintergrund: Wie dieses System funktioniert

  • Um Experimente mit großen Sprachmodellen schnell durchführen zu können, werden schnelle GPUs benötigt.
  • Verwendet wird ein Cluster mit 4.092 H100-GPUs, verteilt auf 511 Rechner.
  • Über ein InfiniBand-Netzwerk wird Hochgeschwindigkeitskommunikation zwischen den GPUs ermöglicht.

Prozess: Von Bare Metal zu einem vollständig betriebsfähigen Cluster

Bereitstellung einzelner Maschinen

  • Über das Management-Netzwerk wird zunächst eine Ethernet-Verbindung zum Cluster eingerichtet und auf den BMC (Baseboard Management Controller) zugegriffen.
  • Mit iDRAC wird Ubuntu 22.04 auf dem ersten Server installiert, der anschließend zur Konfiguration der übrigen Server genutzt wird.

Installation des Betriebssystems auf allen Maschinen

  • Mit der MAAS-Software werden die übrigen Server bereitgestellt.
  • Mittels PXE-Boot und automatisierter iDRAC-Tools wird der Netzwerk-Boot eingerichtet und MAAS so konfiguriert, dass es auf PXE-Boot-Anfragen antwortet.

Diagnose defekter Maschinen

  • Etwa 10 % der Maschinen schlagen beim Booten fehl, meist aufgrund physischer Probleme.
  • Durch automatisierte Checks werden Probleme erkannt, anschließend wird Dell um einen erneuten Test gebeten oder ein Ticket für das Rechenzentrumspersonal erstellt.

Minimales beobachtbares Metal-Setup

  • Auf allen Servern werden Docker, GPU-Treiber für Rechenzentren, Prometheus Node Exporter und weitere Komponenten installiert.
  • Es werden grundlegende GPU-Diagnosen ausgeführt, um zu prüfen, ob die meisten GPUs ordnungsgemäß funktionieren.

GPU-Training auf einem einzelnen Node

  • Es wird überprüft, ob jede Maschine eigenständig GPU-Workloads ausführen kann.
  • GPU-bezogene Fehler werden behoben, ebenso Verbindungsprobleme zwischen dem PCIe-Bus und Netzwerkkarten.

InfiniBand-Bereitstellung

  • UFM (Unified Fabric Manager) wird installiert, Netzwerkswitches werden erkannt und anhand ihrer physischen Position benannt.
  • Probleme bei der Netzwerkverkabelung sowie Temperaturwarnungen werden behoben.

Sicherstellen vollständig gesunder Maschinen

  • Durch verschiedene Health Checks wird festgestellt, welche Hosts gesund genug für das Training sind.
  • Es werden diverse Prüfungen durchgeführt, darunter GPU, Speicherplatz, Docker, dmesg, iDRAC, Festplatten, InfiniBand, NVLink, GDR, VBIOS, Flint und PSB.

Diagnose typischer Trainingsprobleme

  • Sobald die Hardware korrekt funktioniert, beginnt das Training.
  • Es werden Probleme wie Abstürze beim Start, Abstürze während des Trainings, Hänger ohne Stack-Trace-Informationen und sinkende Trainingsgeschwindigkeit behoben.

Verbesserung der Infrastruktur-Tools

  • Es werden verschiedene Tools und Systeme entwickelt, damit das Training reibungslos läuft.
  • Defekte Maschinen und Netzwerkkomponenten werden automatisch deaktiviert und Reparaturanfragen automatisiert.
  • Ein lokales Mirror-Dateisystem und eine lokale verteilte Docker-Registry werden aufgebaut.
  • Performance-Monitoring-Tools werden eingerichtet, und es werden Werkzeuge erstellt, um langsame Trainings-Batches zu erkennen und deren Ursachen zu verstehen.

Meinung von GN⁺

  • Dieser Artikel ist äußerst nützlich, weil er praktische Erfahrungen und Lösungsansätze für die Einrichtung und den Betrieb großer Cluster liefert.
  • Er erklärt anschaulich die Komplexität des Infrastrukturaufbaus, der für das Training großer Sprachmodelle erforderlich ist.
  • Er bietet verschiedene Skripte und Tools, an denen sich andere Teams beim Aufbau einer ähnlichen Infrastruktur orientieren können.
  • Er beschreibt überzeugend die Bedeutung von InfiniBand-Netzwerken und die Probleme, die bei ihrer Einrichtung auftreten können.
  • Er erläutert auch gut, welche Punkte sowie Vor- und Nachteile bei der Einführung neuer Technologien oder Open Source berücksichtigt werden sollten.

1 Kommentare

 
GN⁺ 2024-06-29
Hacker-News-Kommentare
  • Ein kleines Forschungsteam trainierte auf eigener Infrastruktur ein Modell mit 70B Parametern und übertraf bei Reasoning-bezogenen Aufgaben Zero-shot-GPT-4.

    • InfiniBand, Ethernet, GPU, Nodes und alle anderen Komponenten müssen perfekt funktionieren.
    • Wenn auch nur eine von mehr als 12.000 Verbindungen instabil ist, kann sich das gesamte Training verlangsamen.
    • Es wurde ein umfassender Leitfaden zu Open-Source-Skripten und zum Infrastruktur-Setup veröffentlicht.
    • Dies ist einer von drei Teilen zum Training eines 70B-Modells; die anderen zwei konzentrieren sich auf Evaluierung und CARBS-Hyperparameter-Optimierung.
  • In einem Cluster sind 4.092 H100-GPUs auf 511 Rechner verteilt.

    • Das entspricht GPU-Kosten von über 100 Millionen US-Dollar.
    • Es wird gefragt, ob so etwas mit dem Budget eines Gaming-PCs möglich wäre.
  • Dieses Thema wurde vor ein paar Tagen im Latent Space Podcast besprochen.

    • Es ist eine gute Episode, um die Hintergründe der Entscheidungen zu hören.
  • Es wird gefragt, warum dafür so viel PC-Hardware nötig ist.

    • Man fragt sich, ob man es nicht mit einem PCI- + InfiniBand-Backend, GPUs und kleinen ARM-Controllern aufbauen könnte.
    • Es wird überlegt, ob das an der Trägheit früherer Designs oder am fehlenden Markt für spezialisierte GPU-Controller liegt.
  • Es wäre interessant, auf derselben Hardware das Training statt mit tokenisierten Trainingsdaten mit rohem Unicode zu wiederholen.

    • Man würde gern die Unterschiede bei Rechtschreibung und Reimleistung sehen.
  • 4.092 H100-GPUs

    • Man arbeitet an „self-coding“.
    • Möglicherweise handelt es sich um eine No-code- oder Minimal-code-Lösung.
    • Auf der Website gibt es viele interessante Artikel und Materialien.
  • Es gibt Interesse am gesamten Stromverbrauch, der für den Bau des Modells nötig ist.

    • Es wird gefragt, ob es Zahlen zu Strom und Kühlung gibt.
    • Es wird erwähnt, dass Mark Zuckerberg das nächste 1GW-Modell plane.
  • Es wird gefragt, wie hoch die Gesamtkosten sind.

    • Einschließlich Hardwarekosten, Entwicklungszeit sowie Strom- und Kühlungskosten.
  • Cisco arbeitet bei Geschwindigkeiten von 800G pro Port an einer neuen Zusammenarbeit mit NVIDIA.

    • Es wird gefragt, ob InfiniBand für GPUs zugänglich ist.
    • Außerdem wird für das Teilen gedankt.
  • Es wird gefragt, was nach dem Training des Modells mit der Hardware und der Infrastruktur geschieht.