KI-Hardware und Software-Stack

Die Inferenz großer Sprachmodelle gliedert sich in eine Phase, in der der Eingabetext gebündelt verarbeitet wird (Prefill), und eine Phase, in der die Ausgabe Token für Token erzeugt wird (Decode). Welche Kombination der jeweils leistungsbestimmenden Größen ist richtig (bei kleinem Batch)?

  1. APrefill: Speicherbandbreite, Decode: Rechenleistung
  2. BPrefill: Rechenleistung, Decode: Speicherbandbreite
  3. CFür beide die Geschwindigkeit des Speichermediums (Storage)
Antwort und Erläuterung anzeigen

Antwort: B. Prefill: Rechenleistung, Decode: Speicherbandbreite

Beim Prefill werden einige hundert bis tausend Eingabe-Token gemeinsam berechnet, sodass die Gewichte für viele Token wiederverwendet werden; es handelt sich um Matrix-Matrix-Produkte, und die Verarbeitung ist rechenbegrenzt. Beim Decode müssen für jedes erzeugte Token alle Gewichte gelesen werden, obwohl nur die Berechnung für ein Token anfällt; die arithmetische Intensität ist niedrig, und die Verarbeitung ist speicherbegrenzt. Die Decode-Geschwindigkeit wird daher im Wesentlichen durch Speicherbandbreite ÷ Gewichtsgröße bestimmt.

Dieses Thema üben Zur Themenseite

Weitere Fragen zu KI-Hardware und Software-Stack

  1. Welche Aussage zur Rolle des bei der Inferenz großer Sprachmodelle verwendeten KV-Cache ist richtig?
  2. Was wird bei der Inferenz großer Sprachmodelle mit langen Texten oder großen Batches leicht zum Problem?
  3. Ein Modell mit ca. 14 GB Gewichten in FP16 wird auf einer GPU mit 2 TB/s Speicherbandbreite bei Batchgröße 1 dekodiert. Welcher Wert kommt der unteren Grenze der Zeit für die Erzeugung eines Tokens am nächsten?
  4. Wie wächst der Rechenaufwand der Self-Attention eines Transformers mit der Eingabesequenzlänge n?
  5. Was ist die Grundidee schneller Attention-Implementierungen wie FlashAttention?