Die Entwicklung moderner Techniken seit ‘Attention Is All You Need’
In den letzten Jahren hat die Forschung im Bereich der neuronalen Netze und insbesondere der Transformer-Architekturen enorme Fortschritte gemacht. Viele moderne Techniken wurden seit der Veröffentlichung des wegweisenden Papiers ‘Attention Is All You Need’ entwickelt. In diesem Artikel werfen wir einen Blick auf einige der wichtigsten Innovationen, die im Laufe der Jahre entstanden sind, und versuchen, die grundlegenden Ideen so prägnant wie möglich zu implementieren. Die meisten Beispiele werden im PyTorch-Framework präsentiert.
1. Group Query Attention
Group Query Attention (GQA) ist eine Technik zur Reduzierung des Speicherverbrauchs des KV-Caches während der Inferenz. GQA ist eine architektonische Optimierung des standardmäßigen Multi-Head Attention-Mechanismus. Die Grundidee von GQA basiert auf der Beobachtung, dass der Rechenengpass und der Speicherbedarf in der Multi-Head Attention (MHA) stark von der Größe der K- und V-Projektionen und ihren entsprechenden Caches beeinflusst werden.
GQA schlägt vor, diese Kosten zu reduzieren, indem eine einzige Menge von K- und V-Projektionen über mehrere Q-Köpfe geteilt wird. Anstatt N_h unterschiedliche Köpfe für Q, K und V zu haben (wie in MHA), verwendet GQA N_h Abfrageköpfe, aber nur N_kv Schlüssel/Wert-Köpfe, wobei N_kv < N_h und N_h typischerweise ein Vielfaches von N_kv ist.
2. Multi-head Latent Attention
Multi-head Latent Attention führt eine Reihe von lernbaren “latent” Vektoren ein, die als Zwischenpuffer zwischen den Eingabesequenzelementen fungieren. Die Grundidee besteht darin, die quadratische Rechenkomplexität O(L²), wobei L die Sequenzlänge ist, die in standardmäßigen Selbstaufmerksamkeitsmechanismen vorhanden ist, zu verringern. Anstatt dass jedes Eingabeelement direkt mit jedem anderen Element interagiert, interagieren die Eingaben zunächst mit einer festen Anzahl von latenten Einheiten.
3. Flash Attention
Flash Attention adressiert das signifikante Speicherengpassproblem, das in standardmäßigen Selbstaufmerksamkeitsmechanismen innerhalb von Transformern besteht, insbesondere bei langen Sequenzen. Der konventionelle Ansatz berechnet die vollständige Aufmerksamkeitsmatrix S = QK^T, was eine Speicherung der N x N Matrix S erfordert, was bei großen N prohibitiv wird.
4. Ring Attention
Ring Attention verwendet blockweise Berechnung der Selbstaufmerksamkeit auf mehreren GPUs und ermöglicht das Training und die Inferenz von Sequenzen, die für ein einzelnes Gerät zu lang wären. Es adressiert das signifikante Speicherengpassproblem, das in standardmäßigen Selbstaufmerksamkeitsmechanismen besteht.
5. Pre-normalization
Pre-normalization war eine Verschiebung im architektonischen Design von Residualblöcken. Anstatt die Normalisierungsschicht nach der Hauptoperation anzuwenden, wird sie davor angewendet. Diese scheinbar kleine Änderung hat erhebliche Auswirkungen auf die Trainingsdynamik.
6. RMSNorm
RMSNorm ist eine Vereinfachung der weit verbreiteten LayerNorm, die darauf abzielt, den Rechenaufwand zu reduzieren und gleichzeitig vergleichbare Leistung zu erhalten. Im Gegensatz zu LayerNorm, das die Aktivierungen zentriert, indem der Mittelwert subtrahiert wird, lässt RMSNorm diesen Schritt weg.
7. SwiGLU
SwiGLU ist eine Aktivierungsfunktion, die aus der Familie der Gated Linear Units (GLU) abgeleitet ist und speziell zur Verbesserung der Leistung von neuronalen Netzen entwickelt wurde. Der Kern des Konzepts hinter GLU-Varianten ist die Einführung eines Gating-Mechanismus, der den Fluss von Informationen durch das Netzwerk adaptiv steuert.
8. Rotary Positional Embedding
Rotary Positional Embedding (RoPE) führt eine elegante Methode zur Einbeziehung von Positionsinformationen direkt in den Selbstaufmerksamkeitsmechanismus von Transformer-Modellen ein, um relative Positionsabhängigkeiten effektiv zu erfassen.
9. Mixture of Experts
Mixture of Experts (MoE) ist eine Modellarchitektur, die darauf abzielt, die Anzahl der Parameter erheblich zu erhöhen, ohne dass während der Inferenz oder des Trainings ein proportional massiver Anstieg der Rechenkosten entsteht.
10. Learning Rate Warmup
Learning Rate Warmup ist eine weit verbreitete Heuristik, die während der Anfangsphase des Trainings neuronaler Netze eingesetzt wird, um die Stabilität zu erhöhen und eine Divergenz zu verhindern.
11. Cosine Schedule
Cosine Scheduling ist eine Technik zur Planung der Lernrate. Ihr Kernprinzip besteht darin, die Lernrate im Verlauf des Trainings allmählich zu senken, wobei die Form einer Kosinuskurve verfolgt wird.
12. AdamW Optimizer
AdamW (Adam mit entkoppeltem Gewichtungsverfall) adressiert ein subtilen Problem in der standardmäßigen Implementierung des Gewichtungsverfalls innerhalb adaptiver Optimierer wie Adam.
13. Multi-token Prediction
Multi-token Prediction ist eine Technik, die entwickelt wurde, um die Inferenzgeschwindigkeit autoregressiver Sprachmodelle zu beschleunigen. Normalerweise sagt die autoregressive Generierung Token nacheinander voraus.
14. Speculative Decoding
Speculative Decoding ist eine clevere Technik, die darauf abzielt, den Inferenzprozess großer autoregressiver Sprachmodelle zu beschleunigen, indem die benötigte Zeit zur Generierung von Text erheblich reduziert wird.
Quellenliste:
- Quelle: ATTENTION WASN’T ALL WE NEEDED
- Repeat Interleave in PyTorch
- Rotary Positional Embedding
- Cosine Annealing Warm Restarts in PyTorch
- Flash Attention GitHub Repository
Hinterlasse einen Kommentar
An der Diskussion beteiligen?Hinterlasse uns deinen Kommentar!