Yolo Vision Shenzhen
Shenzhen
Únete ahora
Glosario

SwiGLU

Explora SwiGLU, la función de activación avanzada utilizada en los LLM y Ultralytics . Descubre 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 avanzada y un bloque arquitectónico de red neuronal que mejora la red tradicional Feed-Forward Network (FFN) utilizada en el aprendizaje automático profundo. Al combinar las propiedades suaves y no monótonas de la función de activación Swish con un mecanismo Gated Linear Unit (GLU), SwiGLU proporciona un enrutamiento 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 por elemento con otra rama lineal, la red gana un poder expresivo superior. Esto permite a las arquitecturas modernas de IA capturar dependencias complejas y no lineales de forma mucho más eficaz que las capas estáticas estándar utilizadas en los modelos de aprendizaje profundo más antiguos.

Cómo funciona SwiGLU

A diferencia de las redes feed-forward tradicionales, que simplemente asignan 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 activación multiplicativo. La entrada se divide en dos proyecciones parametrizadas: una «puerta» y un «valor». La rama de la puerta se activa utilizando la función SiLU / Swish, que conserva los valores negativos pequeños y garantiza derivadas suaves y distintas de cero en casi todas partes. A continuación, esta puerta activada se multiplica elemento por elemento con la rama de valor. Este filtrado dinámico permite a la red neuronal controlar de forma inteligente el flujo de información, evitando los problemas de «neuronas muertas» comunes en arquitecturas más antiguas, al tiempo que estabiliza la señal de gradiente durante el proceso de entrenamiento del modelo, un concepto ampliamente estudiado en los mecanismos de atención.

Diferenciación de SwiGLU respecto a otras funciones de activación

Mientras que las funciones de activación estándar como ReLU utilizan 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 según su probabilidad bajo una distribución gaussiana, SwiGLU aprovecha específicamente las capas lineales parametrizadas para aprender cómo filtrar la información. En esencia, SwiGLU no es solo un cálculo matemático por elementos, sino que funciona como un componente estructural integral que a menudo sustituye todo el mecanismo de la capa oculta dentro de un bloque Transformer. Para realizar una comparación exhaustiva de las propiedades matemáticas, los investigadores suelen consultar guías completas sobre funciones de activación.

Aplicaciones en el mundo real

Debido a su eficiencia computacional y a las importantes mejoras de rendimiento, SwiGLU se ha convertido en un componente fundamental de los sistemas modernos de IA.

Implementación de SwiGLU en PyTorch

Para los desarrolladores que crean redes personalizadas o adaptan modelos de visión para dispositivos periféricos utilizando el Plataforma Ultralytics, implementando SwiGLU a través del PyTorch es sencillo. (Alternativamente, los desarrolladores de otros ecosistemas podrían utilizar TensorFlow). El siguiente Python conciso Python muestra un módulo básico de SwiGLU utilizando la función integrada PyTorch F.silu función:

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 de los bloques de activación garantiza que las arquitecturas neuronales de vanguardia extraigan representaciones más ricas de datos de entrenamiento complejos, ya sea aplicados al procesamiento del lenguaje natural (NLP) o al análisis espacial en tiempo real. Para comprender mejor cómo crear y acelerar modelos eficientes, los desarrolladores suelen consultar 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ónPyTorch para maximizar el rendimiento del hardware.

Potencia con Ultralytics YOLO

Obtenga visión artificial avanzada para sus proyectos. Encuentre la licencia adecuada para sus objetivos hoy mismo.

Explore las opciones de licencia