XYZNOT

Paper · arXiv 1701.06538

Outrageously Large Neural Networks: The Sparsely-Gated Mixture-of-Experts Layer

Veröffentlicht cs.LGcs.CLcs.NEstat.ML arXivPDF

Mit Übersetzung und KI lesen

Zusammenfassung in drei Zeilen

  1. 🎯 Dichte neuronale Netze leiden unter einer quadratischen Kostenexplosion, wenn die Modellkapazität für massive Datensätze skaliert wird.
  2. 🔧 Führt einen Sparsely-Gated Mixture-of-Experts (MoE) Layer mit Noisy Top-K Gating und Auxiliary-Losses zum Load-Balancing über verteilte GPU-Shards ein.
  3. 📈 Skaliert Sprach- und Übersetzungsmodelle auf bis zu 137 Milliarden Parameter und schlägt die beste publizierte LM-Perplexität um 24 % bis 39 % bei geringeren Rechenkosten.

Abstract

Die Kapazität eines neuronalen Netzes, Informationen aufzunehmen, ist durch seine Parameteranzahl begrenzt. Conditional Computation, bei dem Teile des Netzwerks beispielabhängig aktiv sind, wurde theoretisch vorgeschlagen, um die Modellkapazität drastisch zu erhöhen, ohne die Rechenleistung proportional zu steigern. In der Praxis gibt es jedoch erhebliche algorithmische und performanzbezogene Herausforderungen. In dieser Arbeit adressieren wir diese Herausforderungen und lösen das Versprechen von Conditional Computation endlich ein: Wir erreichen eine mehr als 1000-fache Steigerung der Modellkapazität bei nur geringen Einbußen der Recheneffizienz auf modernen GPU-Clustern. Wir stellen einen Sparsely-Gated Mixture-of-Experts-Layer (MoE) vor, der aus bis zu Tausenden von Feed-Forward-Subnetzwerken besteht. Ein trainierbares Gating-Netzwerk bestimmt für jedes Beispiel eine spärliche Kombination dieser Experten. Wir wenden das MoE auf Sprachmodellierung und maschinelle Übersetzung an, wo Modellkapazität entscheidend ist, um das enorme Wissen aus Trainingskorpora aufzunehmen. Wir präsentieren Modellarchitekturen, bei denen ein MoE mit bis zu 137 Milliarden Parametern faltungsartig zwischen gestapelten LSTM-Schichten eingesetzt wird. Auf großen Benchmarks für Sprachmodellierung und maschinelle Übersetzung erzielen diese Modelle deutlich bessere Ergebnisse als der Stand der Technik bei geringeren Rechenkosten.

Original-Abstract (Englisch)

The capacity of a neural network to absorb information is limited by its number of parameters. Conditional computation, where parts of the network are active on a per-example basis, has been proposed in theory as a way of dramatically increasing model capacity without a proportional increase in computation. In practice, however, there are significant algorithmic and performance challenges. In this work, we address these challenges and finally realize the promise of conditional computation, achieving greater than 1000x improvements in model capacity with only minor losses in computational efficiency on modern GPU clusters. We introduce a Sparsely-Gated Mixture-of-Experts layer (MoE), consisting of up to thousands of feed-forward sub-networks. A trainable gating network determines a sparse combination of these experts to use for each example. We apply the MoE to the tasks of language modeling and machine translation, where model capacity is critical for absorbing the vast quantities of knowledge available in the training corpora. We present model architectures in which a MoE with up to 137 billion parameters is applied convolutionally between stacked LSTM layers. On large language modeling and machine translation benchmarks, these models achieve significantly better results than state-of-the-art at lower computational cost.

Leseleitfaden

Problem und Motivation

Deep-Learning-Modelle profitieren stark von einer hohen Parameterkapazität, wenn sie auf großen Datensätzen trainiert werden. Standardarchitekturen aktivieren jedoch das gesamte Netzwerk für jedes einzelne Eingabetoken bzw. Beispiel. Dies führt zu einem unpraktikablen Anstieg der Rechenkosten, sobald Modellgröße und Datenvolumen steigen.

Obwohl Conditional Computation (die beispielabhängige Aktivierung von nur Teilmengen eines Modells) theoretisch vorgeschlagen wurde, hatten frühere Implementierungen auf modernen Beschleunigern erhebliche Probleme aufgrund von:

  • GPUs, die einheitliche Arithmetik gegenüber Verzweigungen bevorzugen.
  • Dem „Shrinking Batch Problem“, bei dem das Aufteilen von Beispielen dazu führt, dass einzelne Subnetzwerke winzige, ineffiziente Batchgrößen erhalten.
  • Bandbreitenengpässen bei der Kommunikation zwischen Geräten.
  • Ungleichmäßigem Routing, bei dem wenige Subnetzwerke dominieren, während andere verhungern.

Kernideen

  • Sparsely-Gated MoE-Layer: Feed-Forward-Subnetzwerke („Experten“) werden zwischen rekurrente Schichten (wie gestapelte LSTMs) platziert. Pro Position wird nur eine spärliche Top--Auswahl an Experten ausgewertet.
  • Noisy Top-K Gating: Den Gating-Logits wird vor der Top--Auswahl und dem Softmax ein anpassbares Gaußsches Rauschen hinzugefügt, um kontinuierliche, rückpropagierbare Gradienten bereitzustellen und eine ausgewogene Exploration über Experten hinweg zu fördern.
  • Kombinierte Daten- und Modellparallelität: Standardschichten und das Gating laufen datenparallel über Geräte, während Experten modellparallel über GPUs partitioniert sind. Batches aller Geräte werden zusammengeführt, sodass Experten hinreichend große aggregierte Mini-Batches erhalten.
  • Balancing-Constraints: Explizite Auxiliary-Losses für Experten-Wichtigkeit und Experten-Auslastung verhindern, dass das Gating-Netzwerk zu degenerierten Lösungen kollabiert, die nur eine Handvoll Experten übernutzen.

Methode (mit den Schlüsselgleichungen)

Ein MoE-Layer besteht aus Feed-Forward-Expertennetzwerken und einem Gating-Netzwerk . Die Schichtausgabe lautet: Berechnungen entfallen immer dann, wenn ist.

Noisy Top-K Gating

Um Sparsity mit differenzierbarem Gating zu kombinieren, wird Rauschen in die linearen Projektionen eingebracht:

Load-Balancing-Losses

Um gleiche Gesamt-Gating-Gewichte zu erzwingen, wird ein Importance Loss über einen Batch mittels des Variationskoeffizienten () definiert: Um eine gleiche Anzahl von Beispielen pro Experte sicherzustellen, verwendet der glatte Lastschätzer die Standardnormal-CDF :

Ergebnisse (mit den wichtigsten Zahlen)

  • 1 Billion Word Benchmark: Ein rechentechnisch angeglichenes MoE-4096-h-Modell erreichte eine Test-Perplexität von 34,1 (eine Reduktion um 24 % im Vergleich zu computationally matched Baseline-LSTMs). Ein MoE-Modell mit hohem Budget erreichte eine Test-Perplexität von 28,0 in 47 Stunden auf 32 K40-GPUs und übertraf damit das bisherige SOTA-Ergebnis von 34,7 (das 59 Stunden auf 32 K40-GPUs benötigte).
  • 100 Billion Word Corpus: Die Skalierung auf bis zu 65.536 Experten (68 Milliarden Parameter) senkte die Test-Perplexität im Vergleich zur dichten Baseline um 39 % (28,9 vs. 47,0), bei Beibehaltung von 0,72 TFLOPS/GPU.
  • Maschinelle Übersetzung: MoE-erweitertes GNMT erreichte 40,56 BLEU auf WMT'14 EnFr (+1,34 BLEU gegenüber GNMT ohne RL) und 26,03 BLEU auf WMT'14 EnDe (+1,12 BLEU), während weniger als die Hälfte der Ops pro Zeitschritt benötigt wurden.
  • Mehrsprachige Übersetzung: Ein einziges mehrsprachiges MoE-Modell übertraf eine mehrsprachige GNMT-Baseline bei 11 von 12 Sprachpaaren (bis zu +5,84 BLEU auf KoreanischEnglisch) und reduzierte die Dev-Perplexität um 19 %.

Grenzen und offene Fragen

  • Extreme Sparsity kann zu sinkenden Grenzerträgen oder Performanzrückgängen führen; die Perplexität verschlechterte sich bei der Skalierung von 65.536 auf 131.072 Experten auf dem 100-Milliarden-Wörter-Datensatz.
  • Der verteilte Kommunikations-Overhead hängt weiterhin vom Verhältnis von Hidden-Dimension zu Input/Output ab, was kleine Expertenkapazitäten weniger bandbreiteneffizient macht.
  • Der rekurrente Einsatz von MoE innerhalb von RNN-Schritten bricht die Batch-Unrolling-Optimierung über Sequenzpositionen hinweg, was Verfahren zur Aktivierungsneuberechnung erfordert.

Schlüsselbegriffe

Sparsely-Gated Mixture-of-Experts Layer (MoE)
Eine neuronale Netzwerkschicht mit mehreren parallelen Experten-Subnetzwerken, bei der ein trainierbares Gating-Netzwerk für jedes Eingabebeispiel nur eine spärliche Teilmenge von Experten auswählt.
Conditional Computation
Ein Architekturparadigma, bei dem Teile des neuronalen Netzes beispielabhängig dynamisch aktiviert oder deaktiviert werden, um die Parameterkapazität ohne proportionalen Rechenmehraufwand zu vergrößern.
Noisy Top-K Gating
Ein Gating-Mechanismus, der den Logits anpassbares Gaußsches Rauschen hinzufügt, bevor nur die obersten k Werte beibehalten und ein Softmax angewendet werden, was Backpropagation ermöglicht und Routing-Kollapse verhindert.
Shrinking Batch Problem
Die Reduktion der effektiven Batchgröße bei einzelnen Subnetzwerken, wenn Eingaben spärlich auf viele Experten aufgeteilt werden, was die arithmetische Hardwareeffizienz verringert.
Importance Loss
Ein Auxiliary Loss, der den quadrierten Variationskoeffizienten der Summe der Gate-Werte pro Experte über einen Batch bestraft, um eine gleichmäßige Zuweisung zu fördern.
Load Loss
Ein Auxiliary-Ziel, das die Varianz der geschätzten, wahrscheinlichkeitsgewichteten Token-Zuweisungen über alle Experten hinweg minimiert, um die Hardwareauslastung auszugleichen.
Hierarchical Mixture of Experts
Eine zweistufige MoE-Struktur, bei der ein primäres Gating-Netzwerk Eingaben an sekundäre MoE-Cluster weiterleitet, um den Verzweigungsgrad und den verteilten Kommunikationsaufwand zu reduzieren.

Fragen

Wie ermöglicht das Gating-Netzwerk Backpropagation durch das diskrete Top-k-Routing?

Da die Top-k-Auswahl vor dem Softmax erfolgt, behalten die Gate-Werte ungleich null für die ausgewählten Experten kontinuierliche Ableitungen bezüglich der Eingabegewichte, sodass Gradienten durch das Gating-Netzwerk zurückfließen können.

Wie wird das Shrinking Batch Problem über verteilte Geräte hinweg gelöst?

Das Modell kombiniert Daten- und Modellparallelität: Standardschichten verarbeiten unabhängige Mini-Batches auf den einzelnen Geräten, Tokens aller Geräte werden jedoch vor dem Routing zu stationären Experten auf verschiedenen GPUs zusammengeführt.

Warum ist Rauschen im Gating-Netzwerk notwendig?

Das injizierte Gaußsche Rauschen fördert die Exploration über verschiedene Experten zu Beginn des Trainings und liefert einen glatten Schätzer für den Load-Balancing-Loss, was einen sich selbst verstärkenden Experten-Kollaps verhindert.

Was passiert, wenn das Modell auf 131.072 Experten skaliert wird?

Die Perplexität verschlechterte sich leicht von 28,9 (bei 65.536 Experten) auf 29,2 (bei 131.072 Experten), und die Recheneffizienz fiel auf 0,30 TFLOPS/GPU, wahrscheinlich bedingt durch extreme Sparsity und feste, nicht mit skalierte Batchgrößen.

Die Übersicht auf dieser Seite wurde von einer KI aus dem Paper erstellt und kann Fehler enthalten. Details stehen im Paper.

Mit Übersetzung und KI lesen