KI-Training vs. Inferenz: die wichtigsten Unterschiede

Beim Training werden die Gewichte eines Modells festgelegt, indem in großer Zahl wiederholt wird: Daten vorwärts durch das Netz schicken und den Verlust berechnen, per Backpropagation die Gradienten berechnen und mit einem Optimierer die Gewichte aktualisieren. Bei der Inferenz wird mit festen Gewichten nur der Vorwärtsdurchlauf ausgeführt, um für neue Eingaben eine Antwort zu liefern. Im Training werden neben den Gewichten auch Gradienten, Optimiererzustände und Aktivierungen für den Rückwärtsdurchlauf gespeichert, daher braucht es weit mehr Speicher und Rechenleistung als die Inferenz desselben Modells. Die einzelne Inferenzberechnung ist klein, wird aber bei jeder Nutzung ausgeführt, und es kommt auf schnelle Antworten an.

MerkmalTrainingInferenz
ZweckDie Gewichte des Modells aus Daten bestimmenMit festen Gewichten Antworten auf neue Eingaben liefern
BerechnungenWiederholung von Vorwärtsdurchlauf → Verlustberechnung → Gradientenberechnung per Backpropagation → Gewichtsaktualisierung durch den OptimiererNur Vorwärtsdurchlauf
Typischer RechenaufwandPro Eingabe etwa das Dreifache des Vorwärtsdurchlaufs (Rückwärtsdurchlauf etwa das Doppelte des Vorwärtsdurchlaufs). Bei Transformern insgesamt etwa 6 × Parameterzahl × TokenzahlBei einem Modell mit N Parametern etwa 2N pro Token
SpeicherbedarfGewichte, Gradienten, Optimiererzustände (bei Adam zwei), Aktivierungen für den Rückwärtsdurchlauf. Alles in FP32 ergibt 16 Byte pro Parameter plus AktivierungenGewichte und Aktivierungen während der Berechnung (bei großen Sprachmodellen auch der KV-Cache). In FP16 2 Byte pro Parameter
ZahlenformatGemischte Genauigkeit mit BF16 oder FP16 (Master-Gewichte in FP32)FP16 oder BF16 sowie auf INT8, INT4 u. Ä. quantisierte Formate
BatchgrößeGroße Batches erhöhen die Auslastung der RecheneinheitenKlein, wenn schnelle Antworten gefragt sind (teils 1). Server bündeln mehrere Anfragen, um die Effizienz zu steigern
Wichtigste LeistungsgrößeDurchsatz (Zeit bis zum Abschluss des Trainings, Auslastung der Recheneinheiten)Ausgewogenes Verhältnis von Latenz (Antwortzeit pro Anfrage) und Durchsatz, Kosten pro Verarbeitung
HardwareViele GPUs oder Beschleuniger mit großem HBM und hoher Rechenleistung, über schnelle Netzwerke verbundenGroße Bandbreite: von Rechenzentrums-GPUs und Inferenzbeschleunigern bis zu Smartphone-NPUs und Mikrocontrollern
ParallelisierungDaten-, Tensor- und Pipeline-Parallelität. Gradienten werden per All-Reduce zusammengeführtMehrere Anfragen werden parallel verarbeitet. Große Modelle werden per Tensor-Parallelität u. Ä. auf mehrere Chips verteilt
EnergieEin Trainingslauf betreibt viele Chips über lange Zeit und verbraucht viel StromPro Durchlauf gering, wird aber bei jeder Nutzung ausgeführt; bei intensiver Nutzung ist die Summe groß

Die Zahlenwerte sind typische Größenordnungen und variieren je nach Prozessgeneration und Produkt.

Wann welche Variante?

Training
Wenn ein neues Modell erstellt oder ein bestehendes Modell durch zusätzliches Training (Fine-Tuning) an eigene Daten angepasst werden soll.
Inferenz
Wenn ein trainiertes Modell in einem Dienst oder Produkt eingesetzt wird: Bilderkennung, Textgenerierung, Spracherkennung u. Ä.
Optimierungen
Bei der Inferenz werden Modelle durch Quantisierung, Pruning und Wissensdestillation verkleinert. Beim Training sparen gemischte Genauigkeit und Gradient Checkpointing Speicher und Rechenaufwand.

Häufige Fragen

Warum braucht Training so viel mehr Speicher als Inferenz?

Beim Training hält man neben den Gewichten ebenso viele Gradienten sowie die Optimiererzustände (bei Adam zwei) und speichert zusätzlich die Zwischenaktivierungen des Vorwärtsdurchlaufs für den Rückwärtsdurchlauf. Bei einem Modell mit 7 Milliarden Parametern ergibt das, alles in FP32 gehalten, ohne Aktivierungen etwa 112 GB, während für die Inferenz nur mit FP16-Gewichten etwa 14 GB genügen.

Was passiert, wenn man bei der Inferenz die Batchgröße erhöht?

Einmal geladene Gewichte lassen sich für die Berechnung mehrerer Eingaben nutzen, daher werden die Recheneinheiten effizient ausgelastet und der Gesamtdurchsatz steigt. Andererseits wachsen die Wartezeit, bis genug Eingaben vorliegen, und die Dauer einer einzelnen Verarbeitung, sodass die Antwort auf eine einzelne Anfrage (Latenz) langsamer wird; zudem wird mehr Speicher belegt.

Kann man für Training und Inferenz dieselbe Hardware verwenden?

Ja. GPUs werden sowohl für Training als auch für Inferenz eingesetzt. Für reine Inferenz sind jedoch weder Backpropagation noch großer Speicher nötig, daher kommt auch auf Energieeffizienz ausgelegte Hardware zum Einsatz, etwa Inferenzbeschleuniger mit vielen Recheneinheiten niedriger Genauigkeit wie INT8 oder Smartphone-NPUs.

Wie viel Rechenaufwand erfordert das Training?

Für Transformer-Modelle wird häufig die Näherung verwendet, dass die Gesamtzahl der Rechenoperationen etwa 6ND beträgt, wobei N die Parameterzahl und D die Zahl der Trainings-Tokens ist. Der Grund: Der Vorwärtsdurchlauf kostet pro Token etwa 2N, der Rückwärtsdurchlauf etwa das Doppelte davon.

Verständnis prüfen

Welche Aussage zum Unterschied zwischen „Training“ und „Inferenz“ eines neuronalen Netzes ist richtig?

  1. ABeim Training werden Forward Pass, Backward Pass und Gewichtsaktualisierung wiederholt, um die Gewichte zu bestimmen; bei der Inferenz erzeugt allein der Forward Pass mit festen Gewichten die Antwort
  2. BSowohl Training als auch Inferenz führen nur den Forward Pass aus
  3. CDie Inferenz aktualisiert die Gewichte, das Training verwendet keine Gewichte
Antwort und Erläuterung anzeigen

Antwort: A. Beim Training werden Forward Pass, Backward Pass und Gewichtsaktualisierung wiederholt, um die Gewichte zu bestimmen; bei der Inferenz erzeugt allein der Forward Pass mit festen Gewichten die Antwort

Beim Training wird mit großen Datenmengen wiederholt: Die Eingabe wird schichtweise zur Ausgabe verrechnet (Forward Pass), der Fehler gegenüber der richtigen Antwort wird von der Ausgabe zur Eingabe zurückverfolgt, um den Gradienten jedes Gewichts zu bestimmen (Backward Pass), und die Gewichte werden entsprechend dem Gradienten schrittweise korrigiert. Bei der Inferenz wird mit den beim Training bestimmten Gewichten nur der Forward Pass ausgeführt. Der Backward Pass erfordert etwa den doppelten Rechenaufwand des Forward Pass und benötigt zudem gespeicherte Zwischenergebnisse; das Training ist daher deutlich aufwendiger als die Inferenz.

Welcher der folgenden Gründe erklärt nicht, warum das Training deutlich mehr Speicher benötigt als die Inferenz desselben Modells?

  1. AWeil sich die Zahl der Gewichte beim Training gegenüber der Inferenz vervielfacht
  2. BWeil für den Backward Pass Zwischenergebnisse des Forward Pass (Aktivierungen) gespeichert werden müssen
  3. CWeil ebenso viele Gradienten wie Gewichte sowie Optimizer-Zustände vorgehalten werden müssen
Antwort und Erläuterung anzeigen

Antwort: A. Weil sich die Zahl der Gewichte beim Training gegenüber der Inferenz vervielfacht

Die Zahl der Modellgewichte ist beim Training und bei der Inferenz gleich. Beim Training werden jedoch für die Gradientenberechnung im Backward Pass die Zwischenergebnisse des Forward Pass in jeder Schicht gespeichert; hinzu kommen ebenso viele Gradienten wie Gewichte sowie gewichtsbezogene Werte des Optimizers (z. B. Adam mit zwei gleitenden Mittelwerten). Der Speicherbedarf des Trainings ist daher ein Vielfaches des Bedarfs der Inferenz, die nur die Gewichte braucht, und für das Training großer Modelle sind viele GPUs erforderlich.

Ein Modell mit 7 Milliarden (7B) Parametern wird trainiert, wobei Gewichte, Gradienten und beide Adam-Zustände jeweils in FP32 (4 Byte) gehalten werden. Welcher Wert kommt dem Speicherbedarf ohne Aktivierungen am nächsten?

  1. Aca. 28 GB
  2. Bca. 112 GB
  3. Cca. 14 GB
Antwort und Erläuterung anzeigen

Antwort: B. ca. 112 GB

Pro Parameter werden 4 Byte für das Gewicht, 4 Byte für den Gradienten sowie je 4 Byte für den ersten und zweiten gleitenden Mittelwert von Adam benötigt, insgesamt 16 Byte. 7 Mrd. × 16 Byte = 112 Mrd. Byte, also ca. 112 GB; dazu kommt der Speicher für die Aktivierungen. Da dies oft nicht in den Speicher einer einzelnen GPU passt, werden Maßnahmen eingesetzt, etwa die Optimizer-Zustände auf mehrere GPUs zu verteilen oder mit geringerer Genauigkeit zu halten.

  1. Warum steigt die Effizienz der Gesamtverarbeitung bei der Inferenz tendenziell, wenn die Batchgröße (Zahl der gemeinsam verarbeiteten Eingaben) erhöht wird?
  2. Welcher Nachteil entsteht, wenn die Batchgröße bei der Inferenz zu groß gewählt wird?
  3. Welche Näherung wird häufig als Richtwert für die Zahl der Operationen verwendet, die für das Training eines Transformer-Modells nötig sind, wenn N die Parameterzahl und D die Zahl der Trainings-Token ist?

Übungsfragen zu KI-Hardware und Software-Stack

Wichtige Begriffe erklärt

Inferenz
KI-Verarbeitung, die mit den beim Training bestimmten Gewichten nur Vorwärtsdurchlauf ausführt, um aus der Eingabe eine Antwort zu erhalten. Braucht weniger Rechenleistung und Speicher als das Training.
Backpropagation
Berechnung beim Training neuronaler Netze, bei der der Fehler zwischen Ausgabe und Sollwert von der Ausgabe- zur Eingabeseite zurückpropagiert wird, um den Gradienten jedes Gewichts zu bestimmen.
Batchgröße
Anzahl der Eingaben, die gemeinsam verarbeitet werden. Eine größere Batchgröße erhöht die Effizienz durch Wiederverwendung der Gewichte, steigert aber Antwortlatenz und Speicherbedarf.
Gemischte Genauigkeit (Mixed Precision)
Verwendung von Zahlen unterschiedlicher Genauigkeit in verschiedenen Teilen der Berechnung. Multiplikationen z. B. in FP16, Akkumulation in FP32, um Geschwindigkeit und Genauigkeit zu vereinen.
Gradient Checkpointing
Verfahren, bei dem nur ein Teil der Zwischenergebnisse der Vorwärtsrechnung gespeichert und der Rest bei Bedarf in der Rückwärtsrechnung neu berechnet wird; es spart Speicher auf Kosten von mehr Rechenaufwand.

Verwandte Vergleiche