Wie LLM-Inferenz funktioniert
Die Funktionsweise von großen Sprachmodellen (LLMs) ist ein faszinierendes Thema, das die Grundlagen der modernen KI-Technologie beleuchtet. In diesem Artikel werden wir die verschiedenen Phasen der LLM-Inferenz untersuchen, von der Tokenisierung bis zur Generierung von Text, und die zugrunde liegenden Mechanismen und Optimierungen erläutern.
Was sind große Sprachmodelle?
LLMs sind komplexe neuronale Netzwerke, die auf der Transformer-Architektur basieren. Im Gegensatz zu früheren Architekturen, die Texte sequenziell verarbeiteten, können Transformer ganze Sequenzen parallel analysieren, was sie effizienter in der Ausbildung und Bereitstellung macht. Der grundlegende Baustein dieser Modelle ist die Transformer-Schicht, die aus zwei Hauptkomponenten besteht: einem Selbstaufmerksamkeitsmechanismus und einem Feed-Forward-Neuronalen Netzwerk.
Tokenisierung
Bevor Berechnungen stattfinden, muss das Modell den Texteingang in Zahlen umwandeln. Dieser Prozess, bekannt als Tokenisierung, zerlegt den Text in kleinere Einheiten, die als Tokens bezeichnet werden. Der am häufigsten verwendete Tokenisierungsansatz in modernen LLMs ist die Byte Pair Encoding (BPE). BPE beginnt mit einem Vokabular einzelner Zeichen und kombiniert iterativ die häufigsten benachbarten Tokens zu neuen Tokens.
Beispiel für den Tokenisierungsprozess
Input-Text: “unhappiness”
Initial: [‘u’, ‘n’, ‘h’, ‘a’, ‘p’, ‘p’, ‘i’, ‘n’, ‘e’, ‘s’, ‘s’]
Nach den Zusammenführungen: [‘un’, ‘happi’, ‘ness’]
Durch BPE werden gängige Wörter als einzelne Tokens dargestellt, während seltene oder unbekannte Wörter in vertraute Subwortteile zerlegt werden. Der Tokenisierungsprozess kodiert den Eingabetext in UTF-8-Bytes und wendet dann die gelernten Zusammenführungsregeln an, um die Byte-Sequenz in Tokens zu komprimieren.
Token-Embeddings
Sobald der Text in Tokens umgewandelt wurde, transformiert der nächste Schritt diese diskreten Token-IDs in kontinuierliche Vektorrepräsentationen, die neuronale Netzwerke verarbeiten können. Dies geschieht durch eine Embedding-Schicht, die im Wesentlichen eine Lookup-Tabelle ist, die jede Token-ID einem hochdimensionalen Vektor zuordnet.
Die Transformer-Architektur
Der Transformer verarbeitet die Embedding-Vektoren durch seine Schichten. Jede Transformer-Schicht führt zwei Hauptoperationen durch: Multi-Head-Selbstaufmerksamkeit und Feed-Forward-Netzwerke. Der Selbstaufmerksamkeitsmechanismus berechnet drei Matrizen für jedes Token: Query (Q), Key (K) und Value (V).
Selbstaufmerksamkeitsberechnung
Q = Eingabe @ W_query
K = Eingabe @ W_key
V = Eingabe @ W_value
Die Gewichtungsmatrizen W_query, W_key und W_value werden während des Trainings gelernt. Der Aufmerksamkeitsmechanismus berechnet dann, wie viel jedes Token auf jedes andere Token achten sollte.
Inferenzphasen – Prefill und Decode
Die Prefill-Phase tritt auf, wenn Sie zuerst einen Prompt eingeben. Das Modell verarbeitet alle Eingabetokens parallel und berechnet die Q-, K- und V-Matrizen für jedes Token gleichzeitig. Diese Phase ist rechenintensiv, was bedeutet, dass der Durchsatz der GPU die Leistung bestimmt.
Die Decode-Phase beginnt, nachdem das erste Token generiert wurde. Das Modell produziert Tokens nacheinander, autoregressiv. Jedes neue Token wird basierend auf allen vorherigen Tokens berechnet.
Der KV-Cache
Der KV-Cache stellt eine der wichtigsten Optimierungen in der Transformer-Inferenz dar. Ohne ihn würde die Generierung von 100 Tokens erfordern, dass die Aufmerksamkeit für alle vorherigen Tokens 100 Mal neu berechnet wird, was enorme Rechenressourcen verschwenden würde.
Matrizenmultiplikation
Die Matrizenmultiplikation bildet das rechnerische Herzstück der Transformer-Inferenz. Jede Schicht führt mehrere Matrizenmultiplikationen durch: Berechnung von Q, K, V aus den Eingaben, Anwendung der Aufmerksamkeit und Ausführung des Feed-Forward-Netzwerks.
Präzision und Quantisierung in der Inferenz
Die LLM-Inferenz arbeitet oft mit reduzierter Präzision im Vergleich zum Training. Während das Training typischerweise FP32 oder BF16 verwendet, kann die Inferenz FP16, INT8 oder sogar INT4 mit minimalem Qualitätsverlust verwenden.
End-to-End-Inferenzfluss
Der gesamte Inferenzprozess umfasst mehrere Schritte, beginnend mit der Tokenisierung des Prompts bis hin zur Detokenisierung der generierten Tokens zurück in Text.
Leistungsmetriken und Überwachung
Das Verständnis und die Überwachung der Inferenzleistung erfordern die Verfolgung mehrerer wichtiger Metriken, einschließlich der Zeit bis zum ersten Token (TTFT) und der Inter-Token-Latenz (ITL).
Fazit
Die Inferenz von LLMs transformiert Texteingaben in Antworten durch einen Prozess, der Tokenisierung, Transformer-Schichten mit Selbstaufmerksamkeitsmechanismen und autoregressive Token-Generierung umfasst. Zu den wichtigsten Optimierungen gehören KV-Caching, um redundante Berechnungen zu vermeiden, Batching zur Verbesserung der GPU-Nutzung und Quantisierung zur Reduzierung des Speicherbedarfs.
Quellenliste:
- Quelle: How LLM Inference Works
- Attention is All You Need
- Byte Pair Encoding
- Rotary Position Embeddings
- GPTQ: Accurate Post-Training Quantization for Generative Models










Hinterlasse einen Kommentar
An der Diskussion beteiligen?Hinterlasse uns deinen Kommentar!