16 Punkte von GN⁺ 2024-12-30 | 1 Kommentare | Auf WhatsApp teilen
  • Aus Interesse an ChatGPT entstand der Entschluss, selbst ein Training durchzuführen, um die Funktionsweise von LLMs tiefgehend zu verstehen
  • Anfangs wurde ein M1-Chip verwendet, doch aufgrund seiner Grenzen wurde eine eigene Hardware mit NVIDIA-4090-GPUs aufgebaut

1. Zieldefinition und Budgetplanung

  • Zieldefinition: Je nach Größe und Typ des zu trainierenden Modells unterscheiden sich die Hardware-Anforderungen
  • Budgetplanung: Das Gleichgewicht zwischen Leistung und Kosten berücksichtigen und die Kosten hochleistungsfähiger Komponenten im Blick behalten

2. Hardware-Auswahl

  • Mainboard: SuperMicro M12SWA-TF empfohlen. Bietet ausreichend PCIe-Lanes für den Einsatz mehrerer GPUs
  • CPU: AMD Threadripper PRO 5955WX gewählt. Unterstützt 128 PCIe-Lanes und löst damit Bandbreitenprobleme
  • RAM: 128 GB Arbeitsspeicher empfohlen. Geeignet für große Datensätze und Rechenaufgaben
  • GPU: NVIDIA 4090 GPU – ideal für das Training von LLMs
    • 24 GB VRAM ermöglichen die Verarbeitung großer Modelle und Datensätze
    • BFloat16-Leistung optimiert für AI-Workloads
    • 16.384 CUDA-Kerne stärken die Parallelverarbeitung
  • Speicher: Konfiguration mit 6 TB NVMe-SSD und 8 TB HDD
  • Netzteil: 2 x 1500-W-PSU für eine stabile Stromversorgung
  • Gehäuse und Kühlsystem: Ein Gehäuse mit Unterstützung für mehrere GPUs und ein effektives Kühlsystem verwenden

3. Zusammenbau des Systems

  • Dual-PSU-Setup: Eine PSU versorgt Mainboard und CPU, die andere die GPUs
  • Kompatibilität prüfen: Die Kompatibilität zwischen den Komponenten gründlich überprüfen
  • Wie man mit 4 4090-GPUs ein eigenes LLM trainiert
  • Kabel sauber verlegen, um den Luftstrom zu verbessern und die Wartung zu vereinfachen

4. Software-Konfiguration

  • Betriebssystem: Linux-basiertes OS (z. B. Ubuntu) für eine stabile Trainingsumgebung verwenden
  • Treiber und Abhängigkeiten: Aktuelle GPU-Treiber sowie CUDA- und cuDNN-Bibliotheken installieren
  • Trainings-Framework: PyTorch oder TensorFlow installieren
  • Custom Kernel: Einen von Tinygrad bereitgestellten Kernel verwenden, um die P2P-Kommunikation zwischen GPUs zu aktivieren

5. LLM-Training

  • Datenvorbereitung: Datensätze bereinigen und vorverarbeiten, um hochwertige Eingabedaten sicherzustellen
  • Modellauswahl: Ein zur Hardware passendes Modell wie Llama2 oder GPT auswählen
  • Trainingsprozess: Ressourcennutzung überwachen und optimieren

6. Optimierung und Skalierung

  • Multi-GPU-Training: Distributed Data Parallel (DDP) oder ZeRO-Techniken nutzen
  • Kernel-Patches einsetzen, die P2P-Kommunikation auf NVIDIA-4xxx-GPUs ermöglichen
  • Performance-Tuning: Hyperparameter, Batch-Größe und Lernrate optimieren, um bessere Konvergenz und Effizienz zu erreichen

7. Wartung und Monitoring

  • Regelmäßige Updates: System und Software auf dem neuesten Stand halten
  • Systemüberwachung: Mit nvidia-smi, Prometheus usw. den Systemzustand prüfen

Zentrale Erkenntnisse und Tipps

  • Hardware-Alternativen: GPUs wie A100 oder H100 bieten mehr VRAM, aber Consumer-GPUs wie die 4090 liefern in kostenbewussten Setups hervorragende Leistung
  • Cloud-Nutzung abwägen: Für langfristige Projekte ist On-Premises geeignet, für kurzfristige Aufgaben die Cloud
  • Community-Ressourcen nutzen: Auf Leitfäden von Hugging Face und Andrej Karpathy zurückgreifen

Der Aufbau eines Systems für das LLM-Training ist eine anspruchsvolle, aber lohnende Aufgabe und kann ein leistungsstarkes Werkzeug sein, um neue Möglichkeiten in der AI-Entwicklung zu erkunden

1 Kommentare

 
GN⁺ 2024-12-30
Hacker-News-Kommentare
  • Dieser Build ist großartig und der beste Build mit 6 RTX 4090

    • Spezifikationen: 6 x 24GB NVIDIA GeForce RTX 4090, Intel Xeon W7-3465X, 256GB DDR5 ECC, 2TB Samsung 980 PRO NVMe SSD, 4TB Samsung 870 EVO SSD, Ubuntu 20.04
    • Die Wahl von 256GB DDR5-ECC-Arbeitsspeicher ist interessant; man könnte auch 1TB RAM anpeilen
    • Die Kosten sind astronomisch
  • Dieser Beitrag wirkt, als wäre er von einem AI-Modell geschrieben, und besonders der letzte Teil hat einen starken AI-Ton

    • Ein Folgeartikel über Datenaufbereitung, Bereinigung und Training wäre interessanter als die Hardware-Auswahl
  • Ein Beitrag darüber, welches Training man mit solcher Ausrüstung durchführen kann, wäre interessanter

  • Jemand teilt persönliche Erfahrungen damit, zu Hause ML-Hardware aufgebaut und ein LLM vortrainiert zu haben

  • Es stellt sich die Frage, welche Hardware man braucht, um mittelgroße Modelle feinzujustieren

    • Es gibt viele Guides, aber sie konzentrieren sich auf das Einrichten der Toolchain, und es gibt zu wenig Informationen über Datensätze für gutes Fine-Tuning
  • Für die meisten Menschen sollte die Software-Seite des Modelltrainings interessanter und zugänglicher sein

    • Die "vollständige" Auslastung der GPU ist weiterhin ein offenes Thema, und es kann sinnvoller sein, Ressourcen in der Cloud zu mieten und dort zu arbeiten
    • Dieser Prozess war eine gute inspirierende Ressource, und https://efficientml.ai/ wird empfohlen
  • Man möchte lieber einen direkt geschriebenen Text lesen und keinen von einem AI-Modell verfassten

  • Es soll über Riser-Kabel gesprochen werden

    • Es gibt Probleme mit Riser-Steckverbindern, die behaupten, PCIe 4.0 zu unterstützen, aber schlechte Leistung liefern
    • Beim Anschluss eines NVMe-Laufwerks treten Probleme auf, sodass das System nicht bootet
    • NVMe scheint hohe Bitfehlerraten nicht gut zu tolerieren
  • Für wohlhabende Hobbyisten ist das unterhaltsam, aber für echte Arbeit ist es besser, bei Runpod zu mieten

    • Guter Blog
  • Man braucht nur 4 4090-GPUs und einen dedizierten 30-Ampere-Stromkreis