Zum Inhalt

Automatische Übersetzung

Dieser Artikel wurde automatisch aus der englischen Originalversion übersetzt.

Manifold-Constrained Hyper-Connections (mHC): Residual-Scaling bei DeepSeek erklärt

Modernes Deep Learning basiert auf der Residualverbindung. Nach einem Jahrzehnt immer tiefer gestapelter Layer stellten Forschende bei DeepSeek eine andere Frage: Was wäre, wenn wir stattdessen die Breite skalieren? Ihre Antwort, Manifold-Constrained Hyper-Connections (mHC), behebt ein lange bestehendes Stabilitätsproblem bei der Breiten-Skalierung.

In diesem Beitrag gehe ich die Entwicklung von einfachen Residualverbindungen bis hin zu mHC durch, erkläre, warum jeder Schritt nötig war, und wie DeepSeeks Lösung im großen Maßstab tatsächlich funktioniert.

Kurzfassung: Hyper-Connections erweitern Residual-Streams zu mehreren parallelen Flüssen für schnellere Konvergenz, zerstören dabei aber das Identity Mapping, das das Training stabil hält. mHC stellt die Stabilität wieder her, indem Mischmatrizen auf das Birkhoff-Polytope (doppelt stochastische Matrizen) beschränkt werden, mithilfe des differenzierbaren Sinkhorn-Knopp-Algorithmus. Ergebnis: 4 parallele Streams bei nur 6,7 % Trainings-Overhead.


Warum Residualverbindungen funktionieren

Bevor wir dazu kommen, was mHC behebt, brauchen wir die Grundlage, auf der es aufbaut.

Das Tiefenproblem

Mehr Layer zu stapeln sollte die Kapazität eines Modells erhöhen. In der Praxis werden sehr tiefe Netze jedoch schwerer zu trainieren. Die Kapazität ist vorhanden. Was scheitert, ist die gradientenbasierte Optimierung: Gradienten verschwinden (schrumpfen gegen null) oder explodieren (wachsen unbegrenzt), wenn sie sich durch viele Layer propagieren.

Die Residual-Lösung

Die ResNet-Arbeit führte eine elegante Lösung ein. Anstatt eine direkte Abbildung zu lernen, lernt man das Residual, also die Abweichung von der Identität:

Standard-Residualverbindung

Der Trick ist der Identity Shortcut. Wenn die Residualfunktion F(x) null ausgibt, wird der Layer zu einem perfekten Durchleiter. Daraus folgen zwei Konsequenzen:

  1. Gradient Highway: Gradienten fließen direkt durch den Shortcut und umgehen so das Verschwinden.
  2. Einfache Optimierung: Wenn die Identität optimal ist, lernt das Netz einfach F(x) → 0.

Diese eine Architekturänderung machte Netze mit Hunderten von Layern trainierbar.


Die Transformer-Komplikation: Platzierung von Layer Normalization

Transformer fügten eine neue Variable hinzu: wo Layer Normalization (LN) platziert wird. Die Entscheidung wirkt klein und ist es nicht.

Post-LN vs. Pre-LN Trade-offs

Variante LN-Platzierung Vorteil Zentrale Einschränkung
Post-LN Nach dem Residualblock Hohe Modellkapazität Verschwindende Gradienten: LN im Hauptpfad skaliert Gradienten pro Layer neu
Pre-LN Vor dem Residualblock Exzellente Stabilität Repräsentationskollaps: Features werden über die Layer hinweg ähnlicher

Die Architektur ResiDual versuchte das mit dualen Residualpfaden zu lösen, einem Pre-LN-Pfad für Stabilität und einem Post-LN-Pfad für Kapazität. Trotzdem weiterhin nur ein einzelner Residual-Stream. Was wäre, wenn man mehrere parallele Streams haben könnte?


Hyper-Connections: Die Breiten-Revolution

Hyper-Connections (HC) wählten einen anderen Weg. Nicht nur Tiefe hinzufügen, sondern die Breite des Residual-Streams erweitern.

Hyper-Connections-Architektur

Was ist ein „Stream“?

In Standard-Transformern bilden die Eingabe-Token-Embeddings einen einzelnen \(d\)-dimensionalen Vektor, der die Features des Tokens repräsentiert. Diese einzelne Vektorsequenz ist der „Residual-Stream“, der jeden Block durchläuft.

In Hyper-Connections ist ein Stream eine von \(n\) parallelen Instanziierungen dieses Zustands.

Wie erhalten wir sie? Am Anfang des Netzwerks wird das initiale Input-Embedding \(n\)-mal repliziert (wobei \(n\) die „expansion rate“ ist, typischerweise 4). Der standardmäßige \(d\)-dimensionale Hidden State wird zu einer \(n \\times d\) großen „Hyper Hidden Matrix“.

Diese \(n\) identischen Streams laufen durch die Transformer-Layer des Netzwerks, wo sie durch die unten beschriebenen Mechanismen unterschiedlich aggregiert, geroutet und expandiert werden. Sie divergieren also sofort und erfassen unterschiedliche Repräsentationspfade.

Kernmechanismen

Anstatt eines Residualpfads hält HC über das gesamte Netzwerk hinweg \(n\) parallele Streams aufrecht. In jedem Transformer-Block laufen drei Operationen, jeweils gesteuert durch kleine lernbare Gewichte:

  1. Aggregation (\(H_{pre}\), Pre-Mapping): Die \(n\) eingehenden Streams werden mit einer lernbaren Matrix \(H_{pre}\) zu einem einzelnen Vektor komprimiert. Jeder Stream wird mit einem lernbaren Wichtigkeitsgewicht multipliziert, was als Eingabefilter wirkt.
  2. Expansion (\(H_{post}\), Post-Mapping): Nach dem eigentlichen Transformer-Block (Attention oder MLP) wird dessen Ausgabe mit einer lernbaren Matrix \(H_{post}\) auf \(n\) separate Streams verteilt. Das wirkt als Output-Gate, wobei jeder Stream mit einem eigenen lernbaren Gewicht skaliert wird.
  3. Mischung (Inter-Stream-Routing): Die neu expandierten Streams werden mit den ursprünglichen Residual-Streams zusammengeführt. Eine lernbare \(n \\times n\)-„Feature-Router“-Matrix (\(\\mathbf{H}^{res}\)) entscheidet, wie Information eines Streams in die anderen übergeht und Features vor dem nächsten Layer gegenseitig befruchtet.

Die Mischmatrix H ist der Traffic-Controller: Sie routet Features zwischen Streams auf Basis gelernter Muster. Information fließt deutlich reichhaltiger als über einen einzelnen Residualpfad.

Die Ergebnisse

HC-Performance

HC konvergiert ungefähr 1,8× schneller als Standard-Residualverbindungen. Die parallelen Streams geben Gradienten mehr Pfade und erlauben dem Netzwerk, vielfältigere Repräsentationen beizubehalten.

Der Haken

Es gibt ein kritisches Problem: HC ist im großen Maßstab instabil.


Warum Hyper-Connections brechen

Die Flexibilität, die HC stark macht, ist auch das, was es bricht. Sie zerstört das Identity Mapping, das Residualverbindungen überhaupt erst trainierbar macht.

HC-Instabilitätsproblem

Die Mathematik der Instabilität

Bei Standard-Residualverbindungen gilt:

\[x_{l+1} = x_l + F(x_l)\]

Wenn \(F(x) \\rightarrow 0\), ist das die Identität: \(x_{l+1} = x_l\). Das Signal passiert unverändert.

Bei Hyper-Connections enthält der Residualpfad eine Matrixmultiplikation:

\[x_{l+1} = \\mathbf{H}^{res}_l \\cdot x_l + \\dots\]

Über L Layer wird das Signal zu:

\[x_L = \\mathbf{H}^{res}_L \\times \\mathbf{H}^{res}_{L-1} \\times \\dots \\times \\mathbf{H}^{res}_1 \\times x_0\]

Wenn Werte in H auch nur leicht von 1,0 abweichen, führt dieses Produkt entweder zu:

  • Explosion: Werte > 1,0 verstärken sich exponentiell.
  • Verschwinden: Werte < 1,0 zerfallen exponentiell.

Das DeepSeek-Team maß das mit „Amax Gain Magnitude“, das das maximale Verhältnis von Ausgangs- zu Eingangs-Signalmagnitude über alle Layer verfolgt. In Standard-HC erreicht dieser Wert in tiefen Netzen ~3000. Ab diesem Punkt ist Training nicht mehr praktikabel.

Die Grundursache: Verlust der Identität

Das Kernproblem: unbeschränkte Matrizen können beliebige Werte annehmen (negative Zahlen, große Beträge, alles). Wir brauchen eine Möglichkeit, sie in der „gutartigen“ Menge zu halten, in der sie Signalenergie so erhalten wie die Identität.


Die mHC-Lösung: Geometrische Constraints

Die zentrale Einsicht von mHC ist, dass man flexibles Routing und Stabilität haben kann, wenn man die Mischmatrizen auf eine bestimmte mathematische Struktur beschränkt: das Birkhoff-Polytope, die Menge aller doppelt stochastischen Matrizen, bei denen jede Zeile und jede Spalte zu 1 summiert und alle Elemente nichtnegativ sind.

Die mHC-Lösung

Die drei Constraints

mHC beschränkt die Mischmatrix H^res auf doppelte Stochastizität: alle Einträge nichtnegativ, jede Zeile und jede Spalte summiert sich exakt zu 1. Das erzwingt drei Eigenschaften gleichzeitig:

Constraint Regel Warum das wichtig ist
Positivität Alle Elemente > 0 Verhindert die Vorzeichenoszillation, die Gradienten destabilisiert
Zeilensumme = 1 Jede Zeile summiert zu 1,0 Normalisiert den Output-Beitrag; kein einzelner Stream dominiert
Spaltensumme = 1 Jede Spalte summiert zu 1,0 Normalisiert die Eingangsverteilung; alle Streams tragen fair bei

Das kritische Ergebnis: Energy In = Energy Out. Die Signalmagnitude bleibt tief im Netzwerk erhalten, was das Problem exponentieller Explosion eliminiert.

Dieses Constraint hat auch nützliche mathematische Folgen:

  1. Spektralnorm ≤ 1: Die Spektralnorm (größter Singulärwert) begrenzt Signalverstärkung. Doppelt stochastische Matrizen sind mathematisch nicht expandierend.
  2. Abgeschlossen unter Multiplikation: Die Komposition doppelt stochastischer Matrizen ergibt wieder eine doppelt stochastische Matrix.
  3. Gewichtetes Mittel: Die Operation wird zu einer konvexen Kombination (ein gewichteter Mittelwert, bei dem die Gewichte zu 1 summieren) der Eingaben und erhält damit die gesamte Signalmagnitude.

Der Sinkhorn-Knopp-Algorithmus

Die Herausforderung: Wie erzwingt man, dass eine lernbare Matrix doppelt stochastisch ist, und hält den Prozess dabei differenzierbar? Der Sinkhorn-Knopp-Algorithmus löst genau das. Er ist eine iterative Projektion, die in nur wenigen Schritten zur doppelt stochastischen Form konvergiert.

Sinkhorn-Algorithmus im Detail

Ein Walkthrough mit einem konkreten Beispiel:

Schritt 1: Positivität. Wende exp() auf rohe Gewichte an, damit alle Elemente strikt positiv sind:

Raw Matrix           →    Positive Matrix
[-0.5  2.1  0.8]          [0.6   7.9   2.2]  Σ=10.7
[ 1.3 -4.0  1.9]    exp   [3.7   0.02  6.7]  Σ=10.4
[ 0.1  0.6 -0.2]    →     [1.1   1.8   0.8]  Σ=3.7

Schritt 2: Zeilennormalisierung. Teile jede Zeile durch ihre Summe:

Positive Matrix      →    Row Normalized
[0.6   7.9   2.2]         [0.25  0.65  0.10]  Σ=1.0
[3.7   0.02  6.7]   /row  [0.35  0.01  0.64]  Σ=1.0
[1.1   1.8   0.8]    →    [0.30  0.45  0.25]  Σ=1.0
                           Σ=0.9 Σ=1.1 Σ=0.99  ← columns not yet =1

Schritt 3: Spaltennormalisierung. Teile jede Spalte durch ihre Summe:

Row Normalized       →    Doubly Stochastic
[0.25  0.65  0.10]        [0.28  0.45  0.27]  Σ=1.0
[0.35  0.01  0.64]  /col  [0.40  0.09  0.51]  Σ=1.0
[0.30  0.45  0.25]   →    [0.32  0.46  0.22]  Σ=1.0
                           Σ=1.0 Σ=1.0 Σ=1.0  ← converges in few iterations

Schritt 4: Iteration. Wiederhole die Schritte 2–3 für t_max Iterationen (typischerweise 20) bis zur Konvergenz.

Der gesamte Prozess ist differenzierbar, sodass Gradienten während des Trainings hindurchfließen. Sinkhorn-Knopp ist außerdem günstig und fügt der Trainingsschleife nur minimalen Overhead hinzu.

Auch die Initialisierung ist wichtig.

Verfeinerungen bei der Initialisierung

Damit das Training stabil startet:

  • Sigmoid statt Tanh: Koeffizienten bleiben nichtnegativ und beschränkt (0 bis 1).
  • Skalarer Multiplikator 2: Sigmoid gibt bei der Initialisierung ~0,5 aus. Die Multiplikation mit 2 ergibt ein Anfangsgewicht von ~1,0 und entspricht damit dem Verhalten der Identität.

Vollständige mHC-Architektur

Alles zusammen:

Vollständige mHC-Architektur

Der Ablauf durch jeden Block:

  1. Input: \(n\) parallele Residual-Streams treten in den Layer ein.
  2. Aggregation (\(H_{pre}\)): Die \(n\) Streams werden über eine gewichtete Summe mit der Matrix \(H_{pre}\) zu einem einzelnen Vektor kombiniert. In mHC sind diese Aggregationsgewichte lokal beschränkt (\(\\sigma(\\cdot)\)), also nichtnegativ, was unnatürliche Skalierung und destruktive Interferenz verhindert.
  3. Berechnung: Der Standard-Transformer-Block (Attention oder MLP) verarbeitet den einzelnen aggregierten Vektor.
  4. Expansion (\(H_{post}\)): Die einzelne Ausgabe des Blocks wird mit der Matrix \(H_{post}\) auf \(n\) separate Update-Streams verteilt und skaliert; auch diese Matrix ist auf Nichtnegativität beschränkt.
  5. Mischung (\(H_{res}\)-Routing): Die Streams teilen Information über eine \(n \\times n\)-Mischmatrix \(\\mathbf{H}^{res}\). In mHC ist diese Matrix strikt auf das Birkhoff-Polytope (doppelt stochastisch) beschränkt, sodass Signalenergie erhalten bleibt.
  6. Output: Die aktualisierten \(n\) Streams gehen ohne Explosion oder Verschwinden in den nächsten Layer über.

Der zentrale Unterschied zu Standard-HC: Jede Misch- und Aggregationsoperation läuft durch ein Sinkhorn-Constraint oder eine ähnliche Normalisierung. Genau das hält das Signal über Hunderte von Layern hinweg stabil.


Infrastruktur: Wie es praktisch wird

Die Erweiterung auf n=4 Streams erzeugt realen Overhead. Jeder Stream benötigt eigenen Speicher, und Sinkhorn fügt pro Layer 20 Iterationen hinzu. Das DeepSeek-Team umging das mit mehreren Optimierungen.

Kernel Fusion

Mit TileLang fusionierten sie Sinkhorn-Iterationen mit Mixed-Precision-Multiplikationen in spezialisierte CUDA-Kernel. Das reduziert Round-Trips zum High-Bandwidth Memory (HBM), das auf moderner Hardware normalerweise der eigentliche Bottleneck ist.

Selektive Rekomputation

Jeden Zwischenzustand von Sinkhorn für Backpropagation zu speichern, würde den Speicherverbrauch explodieren lassen. Stattdessen macht mHC Folgendes:

  • Gibt Zwischenaktivierungen nach dem Forward-Pass frei.
  • Berechnet sie während des Backward-Passes on-the-fly neu.

Ein modifizierter DualPipe-Schedule überlappt diese Rekomputation mit Gradient-Kommunikation, sodass die Kosten der Rekomputation größtenteils verborgen bleiben.

Ergebnisse

Mit diesen Optimierungen läuft expansion rate n=4 bei nur 6,7 % Trainings-Overhead gegenüber der Baseline. Komplexes topologisches Routing ist im großen Maßstab praktikabel.


Empirische Validierung

Übersetzen sich die theoretischen Garantien tatsächlich in reale Verbesserungen?

Die rohen Trainingsdynamiken sind eindeutig. Ohne Constraints explodiert bei tiefen Netzen mit Standard-Hyper-Connections die Signalmagnitude (Amax Gain) auf ungefähr 3.000, mit massiver Instabilität und häufigen Loss-Spikes. Mit erzwungenem doppelt stochastischem Constraint hält mHC den Amax Gain während des Trainings nahe bei ~1,6.

Aber Stabilität ist wertlos, wenn die Modellleistung leidet. Um die Repräsentationskapazität zu testen, evaluierte das Team ein mHC-27B-Modell (auf Basis der DeepSeek-V3-Architektur) sowohl gegen Standard-ResNet- als auch gegen unbeschränkte HC-Baselines. Auf Reasoning-Benchmarks wie GSM8K und MATH gewinnt mHC konsistent. Die Leistungsgewinne durch paralleles Stream-Routing sind real, und mit Sinkhorn-Constraints lassen sich diese sehr breiten Residualpfade endlich trainieren, ohne dass der Trainingslauf auseinanderfällt.


Trade-offs und Überlegungen

mHC ist kein Free Lunch. Drei Punkte sollte man im Blick behalten:

  1. Rechen-Overhead: 6,7 % sind wenig für das, was man gewinnt, aber es sind immer noch zusätzliche Kosten gegenüber Standard-Residualverbindungen.
  2. Implementierungskomplexität: Man kann das nicht in reinem PyTorch schreiben und erwarten, dass es schnell ist. Der geringe Overhead erfordert maßgeschneiderte, fein abgestimmte CUDA-Kernel.
  3. Starker induktiver Bias: Das doppelt stochastische Constraint erzwingt strikte Signalerhaltung. Wenn die Aufgabe tatsächlich Signalverstärkung in tieferen Teilen des Netzwerks benötigt, arbeitet dieses Constraint aktiv dagegen.

Die wichtigsten Erkenntnisse

  1. Residualverbindungen funktionieren wegen des Identity Mapping: der Fähigkeit, Signale unverändert durchzuleiten.
  2. Hyper-Connections skalieren Breite statt Tiefe und ermöglichen schnellere Konvergenz durch Multi-Stream-Routing.
  3. Die Flexibilität von HC zerstört das Identity Mapping, was in tiefen Netzen zu Signalexplosion führt.
  4. mHC beschränkt Mischmatrizen auf das Birkhoff-Polytope und garantiert damit mathematisch Stabilität.
  5. Sinkhorn-Knopp macht das Constraint differenzierbar und ermöglicht End-to-End-Training.
  6. Infrastrukturarbeit (Kernel Fusion, selektive Rekomputation) macht den gesamten Ansatz erst praktikabel.

Für Praktiker gilt: Wenn ihr bei der Tiefenskalierung an Grenzen stoßt und Zugang zu Custom-Kernel-Entwicklung habt, ist mHC ein prinzipientreuer Weg, Kapazität über Breite zu skalieren und das Training dabei stabil zu halten.


Referenzen