EMZETT.
Login

Training im Großen: GPUs, Parallelität und Speicher

Kurz: Große Modelle passen nicht auf eine GPU. Sie werden auf Tausende GPUs verteilt, mit mehreren Arten von Parallelität, schnellen Verbindungen und gemischter Genauigkeit.

Genauer: Beim Training braucht jedes Gewicht außer dem Wert auch Gradient und Optimizer-Zustände. Mit Adam in gemischter Genauigkeit sind das etwa 16 Byte pro Parameter. Ein Modell mit 70 Milliarden Parametern braucht dann über 1 Terabyte nur für diese Daten.

Im Detail

  • Datenparallelität (DP): Jede GPU hat eine Kopie, bekommt andere Daten, Gradienten werden gemittelt.
  • ZeRO/FSDP: Verteilt Gewichte, Gradienten und Optimizer-Zustände auf die GPUs, jede holt bei Bedarf.
  • Tensorparallelität: Einzelne Matrizen werden auf GPUs aufgeteilt, siehe multi-gpu-und-tensor-parallelismus.
  • Pipeline-Parallelität: Verschiedene Schichten auf verschiedenen GPUs, Mikro-Batches fließen durch.
  • Expertenparallelität: Bei mixture-of-experts-(moe) liegen Experten auf verschiedenen GPUs.
  • Gemischte Genauigkeit: Rechnen mit BF16/FP8, Hauptgewichte in FP32, siehe zahlenformate-fp32-fp16-bf16-und-fp8.
  • Verbindungen: NVLink innerhalb eines Servers, InfiniBand oder Ethernet dazwischen. Die Kommunikation ist oft der Engpass.
  • Ausfälle: Bei Tausenden GPUs fällt täglich etwas aus, deshalb Checkpoints.
  • Hardware: NVIDIA H100/B200, Google TPU, AMD MI300, siehe npu-und-ki-beschleuniger.
  • Auslastung (MFU): Der Anteil der theoretischen Rechenleistung, der genutzt wird, typisch 30 bis 50 %.

Siehe auch: Wie ein Sprachmodell trainiert wird, energieverbrauch-von-ki