Saltar a contenido

Traducción automática

Este artículo se tradujo automáticamente a partir de la versión original en inglés.

Hyper-Conexiones Restringidas a la Variedad (mHC): explicado el escalado residual de DeepSeek

El aprendizaje profundo moderno se apoya en la conexión residual. Después de una década apilando capas cada vez más profundas, los investigadores de DeepSeek plantearon una pregunta distinta: ¿y si escaláramos la anchura en su lugar? Su respuesta, Manifold-Constrained Hyper-Connections (mHC), corrige un problema histórico de estabilidad en el escalado por anchura.

En este artículo voy a recorrer la evolución desde los residuos básicos hasta mHC, explicando por qué cada paso era necesario y cómo funciona realmente la solución de DeepSeek a escala.

TL;DR: Hyper-Connections expanden los flujos residuales en múltiples trayectorias paralelas para converger más rápido, pero rompen el mapeo identidad que mantiene estable el entrenamiento. mHC restaura la estabilidad restringiendo las matrices de mezcla al politopo de Birkhoff (matrices doblemente estocásticas) mediante el algoritmo diferenciable de Sinkhorn-Knopp. Resultado: 4 flujos paralelos con solo un 6,7% de sobrecoste de entrenamiento.


Por qué funcionan las conexiones residuales

Antes de entrar en lo que corrige mHC, hay que entender en qué se basa.

El problema de la profundidad

Apilar más capas debería aumentar la capacidad de un modelo. En la práctica, las redes muy profundas se vuelven más difíciles de entrenar. La capacidad está ahí. Lo que falla es la optimización basada en gradientes: los gradientes se desvanecen (se reducen hasta casi cero) o explotan (crecen sin límite) al propagarse por muchas capas.

La solución residual

El artículo de ResNet introdujo una solución elegante. En vez de aprender un mapeo directo, aprende el residuo, la diferencia respecto a la identidad:

Conexión residual estándar

El truco es el atajo identidad. Cuando la función residual F(x) produce cero, la capa se convierte en un paso directo perfecto. De ahí se siguen dos consecuencias:

  1. Autopista para el gradiente: Los gradientes fluyen directamente por el atajo, evitando el desvanecimiento.
  2. Optimización sencilla: Si la identidad es óptima, la red simplemente aprende F(x) → 0.

Este único cambio arquitectónico hizo entrenables redes con cientos de capas.


La complicación en Transformers: colocación de Layer Normalization

Los Transformers añadieron una nueva variable: dónde colocar Layer Normalization (LN). La decisión parece menor, y no lo es.

Compromisos entre Post-LN y Pre-LN

Variante Colocación de LN Ventaja Limitación clave
Post-LN Después del bloque residual Alta capacidad del modelo Desvanecimiento del gradiente: LN en la ruta principal reescala los gradientes en cada capa
Pre-LN Antes del bloque residual Estabilidad excelente Colapso de representación: las características se vuelven similares entre capas

La arquitectura ResiDual intentó resolver esto con rutas residuales duales, una Pre-LN para estabilidad y otra Post-LN para capacidad. Aun así, seguía habiendo un único flujo residual. ¿Y si pudieras tener múltiples flujos paralelos?


Hyper-Connections: la revolución de la anchura

Hyper-Connections (HC) tomó otra vía. No te limites a añadir profundidad: expande la anchura del flujo residual.

Arquitectura de Hyper-Connections

¿Qué es un "flujo"?

En los transformers estándar, los embeddings de tokens de entrada forman un único vector de dimensión \(d\) que representa las características del token. Esta única secuencia de vectores es el "flujo residual" que atraviesa todos los bloques.

En Hyper-Connections, un flujo es una de las \(n\) instancias paralelas de ese estado.

¿Cómo se obtienen? Al inicio de la red, el embedding de entrada inicial se replica \(n\) veces (donde \(n\) es la "tasa de expansión", normalmente 4). El estado oculto estándar de dimensión \(d\) se convierte en una "matriz hiperoculta" de tamaño \(n \\times d\).

Estos \(n\) flujos idénticos atraviesan las capas transformer de la red, donde los mecanismos siguientes los agregan, enrutan y expanden de forma distinta. Así que divergen de inmediato y capturan trayectorias de representación diferenciadas.

Mecanismos principales

En lugar de una única ruta residual, HC mantiene \(n\) flujos paralelos circulando por toda la red. En cada bloque transformer se ejecutan tres operaciones, cada una controlada por pequeños pesos aprendibles:

  1. Agregación (\(H_{pre}\), pre-mapping): Los \(n\) flujos entrantes se comprimen en un único vector para el bloque transformer, usando una matriz aprendible \(H_{pre}\). Cada flujo se multiplica por un peso de importancia aprendible, así que esto actúa como un filtro de entrada.
  2. Expansión (\(H_{post}\), post-mapping): Después del bloque transformer principal (Attention o MLP), su salida se difunde a \(n\) flujos separados mediante una matriz aprendible \(H_{post}\). Actúa como una puerta de salida, con cada flujo escalado por un peso aprendible distinto.
  3. Mezcla (enrutamiento entre flujos): Los flujos recién expandidos se fusionan con los flujos residuales originales. Una matriz aprendible de "router de características" de tamaño \(n \\times n\) (\(\\mathbf{H}^{res}\)) decide cómo la información de cada flujo se propaga a los demás, polinizando características de forma cruzada antes de la siguiente capa.

La matriz de mezcla H es el controlador de tráfico: enruta características entre flujos según patrones aprendidos. La información fluye de forma mucho más rica que por una única ruta residual.

Los resultados

Rendimiento de HC

HC converge aproximadamente 1,8× más rápido que los residuos estándar. Los flujos paralelos dan a los gradientes más rutas y permiten que la red mantenga representaciones más diversas.

La trampa

Hay un problema crítico: HC es inestable a gran escala.


Por qué se rompen las Hyper-Connections

La flexibilidad que da potencia a HC es también lo que lo rompe. Destruye el mapeo identidad que hace entrenables a los residuos en primer lugar.

Problema de inestabilidad de HC

La matemática de la inestabilidad

En residuos estándar:

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

Cuando \(F(x) \\rightarrow 0\), esto es identidad: \(x_{l+1} = x_l\). La señal pasa sin cambios.

En Hyper-Connections, la ruta residual incluye una multiplicación matricial:

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

A lo largo de L capas, la señal se convierte en:

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

Si los valores de H se desvían aunque sea ligeramente de 1.0, este producto:

  • Explota: los valores > 1.0 se componen exponencialmente.
  • Se desvanece: los valores < 1.0 decaen exponencialmente.

El equipo de DeepSeek midió esto con "Amax Gain Magnitude", que sigue la relación máxima entre la magnitud de la señal de salida y la de entrada a lo largo de todas las capas. En HC estándar, esto alcanza ~3000 en redes profundas. A partir de ese punto, el entrenamiento deja de ser viable.

La causa raíz: pérdida de identidad

El problema central: las matrices no restringidas pueden tomar cualquier valor (números negativos, magnitudes grandes, lo que sea). Necesitamos una forma de mantenerlas dentro del conjunto "bien comportado", donde preserven la energía de la señal como hace la identidad.


La solución mHC: restricciones geométricas

La idea clave de mHC es que puedes tener enrutamiento flexible y estabilidad si restringes las matrices de mezcla a una estructura matemática concreta: el politopo de Birkhoff, el conjunto de todas las matrices doblemente estocásticas, donde cada fila y cada columna suman 1 y todos los elementos son no negativos.

La solución mHC

Las tres restricciones

mHC restringe la matriz de mezcla H^res para que sea doblemente estocástica: todas las entradas no negativas, y cada fila y columna sumando exactamente 1. Eso impone tres propiedades a la vez:

Restricción Regla Por qué importa
Positividad Todos los elementos > 0 Evita la oscilación de signo que desestabiliza los gradientes
Suma de fila = 1 Cada fila suma 1.0 Normaliza la contribución de salida; ningún flujo domina por sí solo
Suma de columna = 1 Cada columna suma 1.0 Normaliza la distribución de entrada; todos los flujos contribuyen de forma justa

El resultado crítico: Energía de entrada = Energía de salida. La magnitud de la señal se preserva hasta capas muy profundas, lo que elimina el problema de explosión exponencial.

Esta restricción también tiene consecuencias matemáticas útiles:

  1. Norma espectral ≤ 1: La norma espectral (el mayor valor singular) acota la amplificación de señal. Las matrices doblemente estocásticas son matemáticamente no expansivas.
  2. Cerradas bajo multiplicación: La composición de matrices doblemente estocásticas da otra matriz doblemente estocástica.
  3. Promediado ponderado: La operación se convierte en una combinación convexa (una media ponderada donde los pesos suman 1) de las entradas, preservando la magnitud total de la señal.

El algoritmo de Sinkhorn-Knopp

El reto es: ¿cómo forzar que una matriz aprendible sea doblemente estocástica sin perder diferenciabilidad? El algoritmo de Sinkhorn-Knopp lo hace. Es una proyección iterativa que converge a la forma doblemente estocástica en solo unos pocos pasos.

Algoritmo de Sinkhorn en detalle

Un recorrido con un ejemplo concreto:

Paso 1: Positividad. Aplica exp() a los pesos en bruto para que todos los elementos sean estrictamente positivos:

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

Paso 2: Normalización por filas. Divide cada fila por su suma:

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

Paso 3: Normalización por columnas. Divide cada columna por su suma:

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

Paso 4: Iterar. Repite los pasos 2-3 durante t_max iteraciones (normalmente 20) hasta la convergencia.

Todo el proceso es diferenciable, así que los gradientes fluyen durante el entrenamiento. Sinkhorn-Knopp también es barato, añadiendo un sobrecoste mínimo al bucle de entrenamiento.

La inicialización también importa.

Ajustes de inicialización

Para que el entrenamiento arranque de forma estable:

  • Sigmoid en lugar de Tanh: Los coeficientes se mantienen no negativos y acotados (de 0 a 1).
  • Multiplicador escalar 2: Sigmoid produce ~0.5 en la inicialización. Multiplicar por 2 da un peso inicial de ~1.0, igualando el comportamiento identidad.

Arquitectura completa de mHC

Todo junto:

Arquitectura completa de mHC

El flujo a través de cada bloque:

  1. Entrada: \(n\) flujos residuales paralelos entran en la capa.
  2. Agregación (\(H_{pre}\)): Los \(n\) flujos se combinan en un único vector mediante una suma ponderada usando la matriz \(H_{pre}\). En mHC estos pesos de agregación están restringidos localmente (\(\\sigma(\\cdot)\)) a ser no negativos, lo que evita escalados no naturales e interferencias destructivas.
  3. Cálculo: El bloque Transformer estándar (Attention o MLP) procesa el único vector agregado.
  4. Expansión (\(H_{post}\)): La única salida del bloque se difunde y escala hacia \(n\) flujos de actualización separados usando la matriz \(H_{post}\), que también está restringida a ser no negativa.
  5. Mezcla (enrutamiento \(H_{res}\)): Los flujos comparten información mediante una matriz de mezcla \(\\mathbf{H}^{res}\) de tamaño \(n \\times n\). En mHC esta matriz está estrictamente restringida al politopo de Birkhoff (doblemente estocástica), por lo que se conserva la energía de la señal.
  6. Salida: Los \(n\) flujos actualizados pasan a la siguiente capa sin explotar ni desvanecerse.

La diferencia clave frente a HC estándar: toda operación de mezcla y agregación pasa por una restricción Sinkhorn o una normalización similar. Eso es lo que mantiene estable la señal a lo largo de cientos de capas.


Infraestructura: hacerlo práctico

Expandirse a n=4 flujos crea sobrecostes reales. Cada flujo necesita su propia memoria, y Sinkhorn añade 20 iteraciones por capa. El equipo de DeepSeek lo resolvió con varias optimizaciones.

Fusión de kernels

Usando TileLang, fusionaron las iteraciones de Sinkhorn con multiplicaciones en precisión mixta en kernels CUDA especializados. Eso reduce los viajes de ida y vuelta a la memoria de alto ancho de banda (HBM), que suele ser el verdadero cuello de botella en hardware moderno.

Recomputación selectiva

Guardar cada estado intermedio de Sinkhorn para la retropropagación dispararía el uso de memoria. En su lugar, mHC:

  • Libera las activaciones intermedias después del forward pass.
  • Las recomputa al vuelo durante el backward pass.

Una planificación DualPipe modificada solapa esa recomputación con la comunicación de gradientes, por lo que el coste de recomputación queda casi oculto.

Resultados

Con estas optimizaciones, la tasa de expansión n=4 funciona con solo un 6,7% de sobrecoste de entrenamiento frente al baseline. El enrutamiento topológico complejo es práctico a escala.


Validación empírica

¿Se traducen realmente las garantías teóricas en mejoras reales?

La dinámica bruta del entrenamiento es clara. Sin restricciones, las redes profundas que usan Hyper-Connections estándar ven cómo su magnitud de señal (Amax Gain) se dispara hasta alrededor de 3.000, con una inestabilidad enorme y picos de pérdida frecuentes. Con la restricción doblemente estocástica aplicada, mHC mantiene Amax Gain cerca de ~1.6 durante todo el entrenamiento.

Pero la estabilidad no importa si el rendimiento del modelo empeora. Para comprobar la capacidad de representación, el equipo evaluó un modelo mHC-27B (construido sobre la arquitectura DeepSeek-V3) frente a baselines de ResNet estándar y HC no restringido. En benchmarks de razonamiento como GSM8K y MATH, mHC gana de forma consistente. Las mejoras de rendimiento derivadas del enrutamiento por flujos paralelos son reales, y con las restricciones de Sinkhorn por fin se pueden entrenar estas rutas residuales muy anchas sin que el entrenamiento se venga abajo.


Trade-offs y consideraciones

mHC no es gratis. Hay tres puntos que merece la pena señalar:

  1. Sobrecoste computacional: 6,7% es poco para lo que aporta, pero sigue siendo un coste extra respecto a los residuos estándar.
  2. Complejidad de implementación: No puedes escribir esto en PyTorch puro y esperar que sea rápido. El bajo sobrecoste requiere kernels CUDA personalizados y muy afinados.
  3. Sesgo inductivo fuerte: La restricción doblemente estocástica impone una conservación estricta de la señal. Si tu tarea realmente necesita amplificación de señal en capas profundas, esta restricción juega activamente en tu contra.

Ideas clave

  1. Las conexiones residuales funcionan por el mapeo identidad: la capacidad de dejar pasar señales sin modificarlas.
  2. Hyper-Connections escalan la anchura en lugar de la profundidad, permitiendo convergencia más rápida mediante enrutamiento multi-flujo.
  3. La flexibilidad de HC destruye el mapeo identidad, causando explosión de señal en redes profundas.
  4. mHC restringe las matrices de mezcla al politopo de Birkhoff, garantizando matemáticamente la estabilidad.
  5. Sinkhorn-Knopp hace que la restricción sea diferenciable, permitiendo entrenamiento end-to-end.
  6. El trabajo de infraestructura (fusión de kernels, recomputación selectiva) es lo que hace práctico todo el enfoque.

Para quienes lo aplican en la práctica: si estás llegando al límite del escalado en profundidad y tienes acceso a desarrollo de kernels personalizados, mHC es una forma fundamentada de escalar capacidad mediante anchura manteniendo la estabilidad del entrenamiento.


Referencias