SwiGLU
Explora SwiGLU, la función de activación avanzada utilizada en LLMs y en Ultralytics YOLO26. Aprende cómo su mecanismo de compuerta mejora el entrenamiento y la eficiencia de las redes neuronales.
SwiGLU (Swish Gated Linear Unit) es una función de activación y un bloque arquitectónico de red neuronal avanzado que mejora la red prealimentada (FFN, por sus siglas en inglés) tradicional utilizada en el aprendizaje profundo. Al combinar las propiedades suaves y no monótonas de la función de activación Swish con un mecanismo de unidad lineal con compuerta (GLU), SwiGLU proporciona un enrutamiento de características dinámico y dependiente de los datos. Al aplicar una proyección lineal a una entrada, pasar una rama a través de una activación Swish y multiplicarla elemento a elemento con otra rama lineal, la red obtiene un poder expresivo superior. Esto permite que las arquitecturas de IA modernas capturen dependencias complejas y no lineales mucho más eficazmente que las capas estáticas estándar utilizadas en modelos de aprendizaje profundo más antiguos.
Link to this sectionCómo funciona SwiGLU#
A diferencia de las redes prealimentadas tradicionales que simplemente mapean una entrada a una dimensión superior, aplican una no linealidad básica y la proyectan de nuevo hacia abajo, SwiGLU introduce un mecanismo de compuerta multiplicativa. La entrada se divide en dos proyecciones parametrizadas: una "compuerta" y un "valor". La rama de la compuerta se activa utilizando la función SiLU / Swish, la cual preserva pequeños valores negativos y asegura derivadas suaves y distintas de cero en casi todas partes. Esta compuerta activada se multiplica entonces elemento a elemento con la rama del valor. Este filtrado dinámico permite a la red neuronal controlar inteligentemente el flujo de información, evitando los problemas de "neuronas muertas" comunes en arquitecturas más antiguas mientras estabiliza la señal del gradiente durante el proceso de entrenamiento del modelo, un concepto ampliamente estudiado en mecanismos de atención.
Link to this sectionDiferenciación de SwiGLU de otras funciones de activación#
Mientras que las funciones de activación estándar como ReLU usan un umbral fijo para recortar los valores negativos a cero, SwiGLU ajusta dinámicamente las activaciones basándose en los propios datos de entrada. En comparación con GELU, que pondera las entradas por su probabilidad bajo una distribución gaussiana, SwiGLU aprovecha específicamente capas lineales parametrizadas para aprender cómo filtrar la información. En esencia, SwiGLU no es solo un cálculo matemático elemento a elemento; funciona como un componente estructural integral que a menudo reemplaza todo el mecanismo de capa oculta dentro de un bloque Transformer. Para una comparación extensa de las propiedades matemáticas, los investigadores a menudo consultan guías de funciones de activación exhaustivas.
Link to this sectionAplicaciones en el mundo real#
Debido a su eficiencia computacional y a sus importantes ganancias de rendimiento, SwiGLU se ha convertido en un componente fundamental en los sistemas de IA modernos.
- Modelos de lenguaje grandes (LLMs): Las aplicaciones líderes de IA generativa dependen en gran medida de SwiGLU. Por ejemplo, Meta integra SwiGLU en su arquitectura Llama 3 para reemplazar las capas prealimentadas basadas en GeLU tradicionales, permitiendo una mejor estabilidad en el entrenamiento y manejando ventanas de contexto masivas. Arquitecturas similares se despliegan en el modelo de lenguaje Pathways de Google (PaLM) y se analizan ampliamente en las discusiones de aprendizaje profundo de Kaggle.
- Visión artificial avanzada: Los modelos multimodales y los sistemas avanzados de visión artificial utilizan SwiGLU dentro de sus bloques Transformer para procesar eficientemente relaciones complejas entre imagen y texto. Los marcos de trabajo de visión innovadores, incluido el Ultralytics YOLO26 nativamente de extremo a extremo, exploran continuamente bloques arquitectónicos optimizados y el ajuste de hiperparámetros para maximizar la eficiencia de los parámetros para tareas como la Detección de Objetos.
Link to this sectionImplementación de SwiGLU en PyTorch#
Para los desarrolladores que construyen redes personalizadas o adaptan modelos de visión para dispositivos de borde utilizando la Plataforma Ultralytics, implementar SwiGLU a través de la documentación de PyTorch es sencillo. (Alternativamente, los desarrolladores en otros ecosistemas podrían usar implementaciones de TensorFlow). El siguiente fragmento de Python conciso demuestra un módulo básico de SwiGLU utilizando la función incorporada F.silu de PyTorch:
import torch
import torch.nn as nn
import torch.nn.functional as F
class SwiGLU(nn.Module):
def __init__(self, in_features, hidden_features):
super().__init__()
# SwiGLU requires two projections: one for the gate, one for the value
self.gate_proj = nn.Linear(in_features, hidden_features)
self.value_proj = nn.Linear(in_features, hidden_features)
self.out_proj = nn.Linear(hidden_features, in_features)
def forward(self, x):
# Element-wise multiplication of the SiLU-activated gate and the linear value
hidden = F.silu(self.gate_proj(x)) * self.value_proj(x)
return self.out_proj(hidden)
# Example usage with a dummy input tensor
module = SwiGLU(in_features=512, hidden_features=1365)
output = module(torch.randn(1, 512))Este enfoque estructural para los bloques de activación asegura que las arquitecturas neuronales de vanguardia extraigan representaciones más ricas de los datos de entrenamiento complejos, ya sea aplicado al Procesamiento de Lenguaje Natural (NLP) o al análisis espacial en tiempo real. Para una comprensión más profunda de la construcción y aceleración de modelos eficientes, los desarrolladores suelen referirse a la investigación fundamental sobre las variantes originales de GLU en arXiv, los repositorios de código abierto de Meta y la documentación de optimización de PyTorch para maximizar el rendimiento del hardware.






