Die gängigsten numerischen Formate für LLMs
Der effiziente Betrieb von großen Sprachmodellen (LLMs) hängt maßgeblich von der geeigneten Speicherung und Verarbeitung ihrer Gewichte ab. Das gewählte numerische Format beeinflusst direkt den Speicherbedarf, die Rechengeschwindigkeit und die Genauigkeit des Modells. Im Laufe der Jahre wurde FP32 beim Training zunehmend durch FP16 und BF16 ergänzt oder ersetzt, während INT8 und sogar quantisierte Formate mit noch geringerer Bit-Tiefe immer häufiger zur Optimierung der Inferenz eingesetzt werden.

Künstliche Intelligenz, insbesondere Deep Learning, erfordert enorme Rechenleistungen. Die in diesen Berechnungen verwendeten numerischen Formate (d. h. wie Zahlen vom Computer gespeichert und verarbeitet werden) beeinflussen direkt:
- Geschwindigkeit: Formate mit geringerer Präzision (weniger Bits) ermöglichen schnellere Berechnungen.
- Speicherbedarf: Weniger Bits erfordern weniger Speicher, was entscheidend für das Laden und Ausführen großer Modelle ist.
- Energieverbrauch: Die Verarbeitung von weniger Bits erfordert im Allgemeinen weniger Energie.
- Genauigkeit: Formate mit höherer Präzision (mehr Bits) liefern genauere Ergebnisse, oft aber auf Kosten von Geschwindigkeit, Speicher und Energie.
Das Ziel ist es, das optimale Gleichgewicht zwischen Genauigkeit und Effizienz zu finden. Für LLMs sind die gängigsten numerischen Formate zur Speicherung von Gewichten Half-Precision Floating-Point (FP16) und bfloat16 (BF16). Für die Inferenzoptimierung durch Quantisierung werden zunehmend INT8 und sogar Formate mit noch geringerer Bit-Tiefe eingesetzt.
Wichtige numerische Formate in der KI:
- FP32 (32-Bit-Gleitkommazahl)
- Historisch gesehen war dies das Standardformat im Deep Learning.
- Bietet hohe Präzision, erfordert aber erhebliche Speicher- und Rechenressourcen.
- Wird in modernen großen LLMs selten direkt zur Speicherung von Gewichten verwendet.
- FP16 (16-Bit-Gleitkommazahl / halbe Präzision)
- Von Nvidia mit der Pascal-Architektur (2016) eingeführt.
- Wird von Nvidia Tensor Cores und anderen GPUs unterstützt, was schnellere Berechnungen ermöglicht.
- Reduziert den Speicherbedarf und die Rechenanforderungen im Vergleich zu FP32. Die Verringerung der Präzision ist oft akzeptabel für das Training und den Betrieb von Deep-Learning-Modellen.
- Präzise genug für viele große Modelle, aber in einigen Fällen (z. B. bei sehr kleinen Gradienten) kann der Präzisionsverlust Probleme wie Underflow verursachen.
- BF16 (bfloat16 / Brain Floating Point)
- Ebenfalls 16 Bit wie FP16, aber mit einer anderen internen Struktur: mehr Bits für den Exponenten und weniger für die Mantisse (Nachkommastellen).
- Dadurch hat BF16 einen Dynamikbereich (die Differenz zwischen der größten und kleinsten darstellbaren Zahl), der näher an FP32 liegt als FP16.
- Dies mildert Underflow-Probleme und ermöglicht den effektiven Einsatz von BF16 während des Trainings mit geringerem Präzisionsverlust im Vergleich zu FP16 in bestimmten Szenarien.
- Nvidia führte die BF16-Unterstützung mit der Ampere-Architektur (2020) ein.
- FP8 (8-Bit-Gleitkommazahl)
- Debütierte in Nvidias Hopper- (H100) und Blackwell-Architekturen (B100, B200, GB200).
- Kommt in zwei Varianten: E4M3 (4 Exponentenbits, 3 Mantissenbits) und E5M2 (5 Exponentenbits, 2 Mantissenbits).
- E4M3 bietet eine höhere Präzision, während E5M2 einen größeren Dynamikbereich bietet.
- Beschleunigt sowohl Training als auch Inferenz erheblich, oft mit akzeptablem Präzisionsverlust im Vergleich zu FP16.
- INT8 (8-Bit-Integer, für quantisierte Modelle)
- Hocheffizient in Bezug auf Speicher und Rechenleistung, potenziell bis zu 4x schneller als FP16-Operationen.
- Verursacht einen gewissen Präzisionsverlust, der aber durch sorgfältige Quantisierungstechniken effektiv beherrscht werden kann.
- Üblich auf Edge-Geräten und mobilen Plattformen und wird von dedizierten KI-Beschleunigern unterstützt (z. B. Nvidia TensorRT, Qualcomm AI Engine).
- Weniger gebräuchlich beim Training, da der Präzisionsverlust bei Gradientenberechnungen problematischer sein kann.
- Es ist üblich, Modelle zu quantisieren, die ursprünglich in FP32 oder FP16 trainiert wurden, und Gewichte und Aktivierungen für die Inferenz in INT8 umzuwandeln.
- INT4 / INT2 (quantisiert, Low-Bit-Formate)
- Immer häufiger in neueren Modellen und Optimierungen (z. B. für Llama-Modelle, GPT-4).
- Reduziert den Speicherbedarf drastisch und beschleunigt die Inferenz.
- Hauptsächlich für die Inferenz verwendet; im Allgemeinen nicht für das Training geeignet.
Die Bedeutung der Hardware-Unterstützung für numerische Formate
Die Hardware-Unterstützung für numerische Formate ist für GPUs (und andere KI-Beschleuniger) von entscheidender Bedeutung, da sie die Recheneffizienz grundlegend bestimmt.
- Optimierte Ausführungseinheiten: Wenn eine GPU ein Format in Hardware unterstützt (z. B. FP16, BF16, FP8), bedeutet dies, dass dedizierte Schaltkreise (Ausführungseinheiten, wie Multiply-Accumulate-Einheiten) auf dem Chip speziell für dieses Format entwickelt wurden. Diese Schaltkreise führen Operationen direkt in Hardware aus, was um Größenordnungen schneller ist als Software-Emulation.
- Effiziente Datenbewegung: Die Hardware-Unterstützung optimiert nicht nur die Berechnung, sondern auch die Datenbewegung. Das Speichersystem der GPU (Register, Caches, globaler Speicher) und die Datenbusse sind auf die unterstützten Formate ausgerichtet. Das bedeutet, dass weniger Bits bewegt werden müssen, was den Bedarf an Speicherbandbreite, Latenz und Energieverbrauch reduziert.
- Maximierung der Parallelität: GPUs beziehen ihre Leistung aus massiver Parallelität. Die Hardware-Unterstützung ermöglicht es, mehr Operationen gleichzeitig mit Daten im unterstützten Format durchzuführen. Wenn eine GPU beispielsweise 16-Bit-Operationen in Hardware unterstützt, kann sie möglicherweise zwei 16-Bit-Operationen parallel anstelle einer 32-Bit-Operation ausführen, wodurch der Durchsatz für diese Operationen potenziell verdoppelt wird.
- Energieeffizienz: Dedizierte Schaltkreise sind nicht nur schneller, sondern auch energieeffizienter. Es müssen weniger Transistoren schalten, um die gleiche Operation im Vergleich zu weniger spezialisierter Hardware oder Software-Emulation durchzuführen, was zu einem geringeren Energieverbrauch und geringerer Wärmeentwicklung führt.
Zusammenfassung
Für das Training sind FP16 oder BF16 weit verbreitet. Für die Inferenz verwenden viele Modelle inzwischen INT8- oder sogar INT4-Quantisierung für eine schnellere Ausführung und einen geringeren Speicherbedarf. Die Entwicklung numerischer Formate in der KI ist ein fortlaufender Optimierungsprozess. Formate mit geringerer Präzision ermöglichen den Bau schnellerer, effizienterer und potenziell kostengünstigerer KI-Systeme, aber die Kompromisse zwischen Präzision, Dynamikbereich und Genauigkeit müssen sorgfältig abgewogen werden. Neuere Hardware-Architekturen (wie Ampere, Ada Lovelace, Hopper, Blackwell) unterstützen eine wachsende Anzahl effizienter numerischer Formate und beschleunigen die KI-Entwicklung weiter. In Zukunft können wir die Entstehung noch spezialisierterer numerischer Formate erwarten, die auf KI-Workloads zugeschnitten sind.