Ultralytics YOLO27:
Licenza YOLO
Torna al glossario di Ultralytics

SwiGLU

SwiGLU moltiplica una proiezione attivata da SiLU per una seconda proiezione lineare, formando il layer feed-forward con gate presente in Llama, PaLM e Qwen. Include il codice.

SwiGLU (unità lineare con gating Swish) è una variante con gating dello strato feed-forward nei transformer. Proietta due volte ogni vettore di token, fa passare una proiezione attraverso la SiLU (Swish), la funzione di attivazione, moltiplica le due proiezioni elemento per elemento e proietta il prodotto di nuovo alla larghezza del modello: FFN(x) = (SiLU(xW) ⊙ xV)W₂. Noam Shazeer l'ha introdotta nel documento del 2020 GLU Variants Improve Transformer e da allora è diventata il blocco feed-forward di modelli linguistici di grandi dimensioni (LLM) come PaLM, Llama, Mistral e Qwen. A differenza di ReLU o GELU, che agiscono su ciascun numero in modo indipendente, SwiGLU contiene pesi appresi, che la rendono un piccolo strato a sé.

Come funziona SwiGLU#

Una rete feed-forward standard (FFN) del transformer espande ogni vettore di token con una matrice di pesi, applica un'attivazione e lo comprime di nuovo con una seconda matrice. SwiGLU sostituisce la prima matrice e l'attivazione con un'unità lineare con gating (GLU), composta da due proiezioni parallele dello stesso input:

  • Proiezione del gate: xW attraversa SiLU, x · σ(x), producendo valori vicini a zero per input fortemente negativi e prossimi all'input per quelli positivi.
  • Proiezione del valore: xV rimane lineare e trasporta il contenuto.
  • Prodotto elemento per elemento: Moltiplicando le due proiezioni, il gate può aumentare, ridurre o portare quasi a zero ogni caratteristica nascosta in base all'input; la proiezione di output W₂ riporta il risultato alla larghezza del modello.

L'idea del gating deriva dalla GLU di Dauphin e colleghi, che nel 2016 hanno usato un gate sigmoide nei modelli linguistici convoluzionali con gating. L'articolo di Shazeer ha testato la stessa struttura con diverse funzioni di gate e ha denominato ogni variante in base alla sua funzione di attivazione: GLU usa la sigmoide, ReGLU usa ReLU, GEGLU usa GELU, SwiGLU usa Swish e uno strato bilineare non applica alcuna funzione di attivazione. Seguendo il codebase T5, questi strati omettono i termini di bias.

Perché SwiGLU ha sostituito ReLU e GELU negli LLM#

Gli strati feed-forward con gating hanno tre matrici di pesi anziché due, perciò Shazeer ha ridotto la larghezza nascosta di un fattore pari a 2/3, mantenendo invariati parametri e calcoli: da 3.072 a 2.048 unità in un modello T5-base. A parità di dimensioni, dopo 524.288 passaggi di addestramento SwiGLU ha raggiunto una log-perplessità di 1,636 sul set di valutazione, contro 1,677 per ReLU e 1,679 per GELU; ha inoltre ottenuto punteggi medi più alti nei benchmark di comprensione del linguaggio GLUE e SuperGLUE. Il documento non offre una teoria per spiegare il vantaggio; nelle conclusioni attribuisce il successo di queste architetture «come ogni altra cosa, alla benevolenza divina».

Il risultato si è confermato anche con i modelli di grandi dimensioni. Google ha adottato SwiGLU in PaLM nel 2022 e Meta ha sostituito ReLU con SwiGLU in LLaMA nel 2023, usando una larghezza nascosta pari a 2/3 × 4d, arrotondata per eccesso a un multiplo di 256. Questo dà 11.008 unità nascoste nel modello 7B con dimensioni 4.096. Llama 2, Llama 3, Mistral e Qwen hanno mantenuto questa architettura; nei modelli mixture-of-experts (MoE) come Mixtral, ogni esperto è un blocco feed-forward SwiGLU.

Implementare SwiGLU in PyTorch#

Il frammento di codice PyTorch qui sotto crea uno strato feed-forward ReLU standard e uno SwiGLU per un modello a 512 dimensioni e ne confronta le dimensioni:

import torch
import torch.nn.functional as F
from torch import nn

d_model = 512
x = torch.randn(4, d_model)  # four token vectors

# Standard transformer FFN: two matrices around a 4x wider ReLU hidden layer
relu_ffn = nn.Sequential(nn.Linear(d_model, 2048, bias=False), nn.ReLU(), nn.Linear(2048, d_model, bias=False))

# SwiGLU FFN: three matrices, hidden width cut to about 2/3 of 2048
w_gate = nn.Linear(d_model, 1365, bias=False)
w_value = nn.Linear(d_model, 1365, bias=False)
w_out = nn.Linear(1365, d_model, bias=False)
y = w_out(F.silu(w_gate(x)) * w_value(x))  # (SiLU(xW) * xV) W2

relu_params = sum(p.numel() for p in relu_ffn.parameters())
swiglu_params = sum(m.weight.numel() for m in (w_gate, w_value, w_out))
print(f"ReLU FFN:   output {tuple(relu_ffn(x).shape)}, {relu_params:,} parameters")
print(f"SwiGLU FFN: output {tuple(y.shape)}, {swiglu_params:,} parameters")

Stampa ReLU FFN: output (4, 512), 2,097,152 parameters e SwiGLU FFN: output (4, 512), 2,096,640 parameters. Con 1.365 unità nascoste, circa 2/3 di 2.048, le tre matrici SwiGLU contengono quasi esattamente lo stesso numero di pesi delle due matrici ReLU, quindi qualsiasi differenza di qualità dipende dal gating. Molte implementazioni fondono le matrici del gate e del valore in un'unica proiezione e dividono a metà l'output, eseguendo una moltiplicazione di matrici più grande anziché due più piccole.

  • SiLU (Swish): SiLU è la funzione elemento per elemento all'interno del gate. SwiGLU è l'intero strato con gating e le sue tre proiezioni.
  • GLU e GEGLU: Varianti correlate che usano rispettivamente un gate sigmoide o GELU. Nei test di Shazeer, GEGLU ha eguagliato SwiGLU con una log-perplessità di 1,633, ed è usata nei modelli Gemma di Google.
  • Attenzione: Anche l'attenzione produce pesi dipendenti dai dati, ma mescola informazioni tra i token. SwiGLU applica il gating alle caratteristiche all'interno di ogni token in modo indipendente.
  • Modelli di visione: Gli strati feed-forward con gating sono presenti anche nei modelli di visione e multimodali. YOLOE, il rilevatore a vocabolario aperto dei ricercatori della Tsinghua University disponibile nel pacchetto Ultralytics, affina gli embedding testuali dei prompt di classe con un blocco SwiGLU residuo eseguito una volta per chiamata set_classes() e rimosso in fase di esportazione, senza quindi aggiungere costi per fotogramma.

Explore solutions

La visione artificiale nello sport

La visione artificiale nello sport

Scopri come Ultralytics YOLO alimenta la computer vision nello sport con il tracciamento di giocatori e palloni, l'analisi delle prestazioni, gli approfondimenti per gli allenatori e la riabilitazione degli atleti.
Scopri di più
Computer vision per immagini aeree

Computer vision per immagini aeree

Trasforma immagini da droni e riprese aeree in informazioni utili in tempo reale per l'agricoltura, l'acquacoltura, il monitoraggio ambientale, la conservazione e l'analisi geospaziale con Ultralytics YOLO.
Scopri di più
Computer vision nel settore aerospaziale

Computer vision nel settore aerospaziale

Porta la vision AI nel monitoraggio aereo con i modelli Ultralytics YOLO. Potenzia droni, flussi di lavoro aerospaziali, conservazione ambientale e settori geospaziali con soluzioni di computer vision.
Scopri di più
Visione artificiale nella sicurezza

Visione artificiale nella sicurezza

Proteggi ogni sito con i modelli Ultralytics YOLO. L'IA visiva alimenta il monitoraggio perimetrale, il rilevamento delle minacce, il riconoscimento delle targhe e la sicurezza sul lavoro.
Scopri di più
Visione artificiale nella robotica

Visione artificiale nella robotica

Dai più potenza alle macchine intelligenti con i modelli Ultralytics YOLO. Nell'ambito della robotica, l'IA visiva alimenta la navigazione autonoma, la percezione, il tracciamento degli oggetti e il controllo in tempo reale.
Scopri di più
Visione artificiale nella logistica

Visione artificiale nella logistica

Semplifica la logistica con i modelli Ultralytics YOLO. L'IA per la visione consente l'ispezione dei pacchi, la selezione, il tracciamento dei veicoli e il monitoraggio della sicurezza nei magazzini in tempo reale.
Scopri di più
Visione artificiale nel commercio al dettaglio

Visione artificiale nel commercio al dettaglio

Ripensa il commercio al dettaglio con i modelli Ultralytics YOLO. L'IA per la visione consente di tracciare le scorte, monitorare gli scaffali, gestire le code e ottenere informazioni più approfondite sui clienti.
Scopri di più
Visione artificiale in ambito sanitario

Visione artificiale in ambito sanitario

Crea soluzioni sanitarie con i modelli Ultralytics YOLO. In ambito sanitario, l'IA per la visione consente di elaborare più rapidamente le immagini mediche, migliorare la diagnostica e monitorare i pazienti.
Scopri di più
Computer vision nella produzione

Computer vision nella produzione

Ottimizza la produzione con i modelli Ultralytics YOLO. La visione basata sull'IA migliora il controllo qualità, il rilevamento dei difetti, la conformità ai requisiti sui DPI e l'automazione delle linee di assemblaggio.
Scopri di più
Computer vision nel settore automobilistico

Computer vision nel settore automobilistico

Applica la computer vision al settore automobilistico con i modelli Ultralytics YOLO. La visione basata sull'IA migliora la sicurezza stradale, i sistemi di assistenza alla guida e l'automazione dei veicoli, per strade più intelligenti.
Scopri di più
Visione artificiale in agricoltura

Visione artificiale in agricoltura

Porta l'IA visiva nell'agricoltura intelligente con i modelli Ultralytics YOLO. Gestisci il monitoraggio delle colture, il tracciamento del bestiame e l'agricoltura di precisione per ottenere raccolti più abbondanti e intelligenti.
Scopri di più
La visione artificiale nello sport

La visione artificiale nello sport

Scopri come Ultralytics YOLO alimenta la computer vision nello sport con il tracciamento di giocatori e palloni, l'analisi delle prestazioni, gli approfondimenti per gli allenatori e la riabilitazione degli atleti.
Scopri di più
Computer vision per immagini aeree

Computer vision per immagini aeree

Trasforma immagini da droni e riprese aeree in informazioni utili in tempo reale per l'agricoltura, l'acquacoltura, il monitoraggio ambientale, la conservazione e l'analisi geospaziale con Ultralytics YOLO.
Scopri di più
Computer vision nel settore aerospaziale

Computer vision nel settore aerospaziale

Porta la vision AI nel monitoraggio aereo con i modelli Ultralytics YOLO. Potenzia droni, flussi di lavoro aerospaziali, conservazione ambientale e settori geospaziali con soluzioni di computer vision.
Scopri di più
Visione artificiale nella sicurezza

Visione artificiale nella sicurezza

Proteggi ogni sito con i modelli Ultralytics YOLO. L'IA visiva alimenta il monitoraggio perimetrale, il rilevamento delle minacce, il riconoscimento delle targhe e la sicurezza sul lavoro.
Scopri di più
Visione artificiale nella robotica

Visione artificiale nella robotica

Dai più potenza alle macchine intelligenti con i modelli Ultralytics YOLO. Nell'ambito della robotica, l'IA visiva alimenta la navigazione autonoma, la percezione, il tracciamento degli oggetti e il controllo in tempo reale.
Scopri di più
Visione artificiale nella logistica

Visione artificiale nella logistica

Semplifica la logistica con i modelli Ultralytics YOLO. L'IA per la visione consente l'ispezione dei pacchi, la selezione, il tracciamento dei veicoli e il monitoraggio della sicurezza nei magazzini in tempo reale.
Scopri di più
Visione artificiale nel commercio al dettaglio

Visione artificiale nel commercio al dettaglio

Ripensa il commercio al dettaglio con i modelli Ultralytics YOLO. L'IA per la visione consente di tracciare le scorte, monitorare gli scaffali, gestire le code e ottenere informazioni più approfondite sui clienti.
Scopri di più
Visione artificiale in ambito sanitario

Visione artificiale in ambito sanitario

Crea soluzioni sanitarie con i modelli Ultralytics YOLO. In ambito sanitario, l'IA per la visione consente di elaborare più rapidamente le immagini mediche, migliorare la diagnostica e monitorare i pazienti.
Scopri di più
Computer vision nella produzione

Computer vision nella produzione

Ottimizza la produzione con i modelli Ultralytics YOLO. La visione basata sull'IA migliora il controllo qualità, il rilevamento dei difetti, la conformità ai requisiti sui DPI e l'automazione delle linee di assemblaggio.
Scopri di più
Computer vision nel settore automobilistico

Computer vision nel settore automobilistico

Applica la computer vision al settore automobilistico con i modelli Ultralytics YOLO. La visione basata sull'IA migliora la sicurezza stradale, i sistemi di assistenza alla guida e l'automazione dei veicoli, per strade più intelligenti.
Scopri di più
Visione artificiale in agricoltura

Visione artificiale in agricoltura

Porta l'IA visiva nell'agricoltura intelligente con i modelli Ultralytics YOLO. Gestisci il monitoraggio delle colture, il tracciamento del bestiame e l'agricoltura di precisione per ottenere raccolti più abbondanti e intelligenti.
Scopri di più
La visione artificiale nello sport

La visione artificiale nello sport

Scopri come Ultralytics YOLO alimenta la computer vision nello sport con il tracciamento di giocatori e palloni, l'analisi delle prestazioni, gli approfondimenti per gli allenatori e la riabilitazione degli atleti.
Scopri di più
Computer vision per immagini aeree

Computer vision per immagini aeree

Trasforma immagini da droni e riprese aeree in informazioni utili in tempo reale per l'agricoltura, l'acquacoltura, il monitoraggio ambientale, la conservazione e l'analisi geospaziale con Ultralytics YOLO.
Scopri di più
Computer vision nel settore aerospaziale

Computer vision nel settore aerospaziale

Porta la vision AI nel monitoraggio aereo con i modelli Ultralytics YOLO. Potenzia droni, flussi di lavoro aerospaziali, conservazione ambientale e settori geospaziali con soluzioni di computer vision.
Scopri di più
Visione artificiale nella sicurezza

Visione artificiale nella sicurezza

Proteggi ogni sito con i modelli Ultralytics YOLO. L'IA visiva alimenta il monitoraggio perimetrale, il rilevamento delle minacce, il riconoscimento delle targhe e la sicurezza sul lavoro.
Scopri di più
Visione artificiale nella robotica

Visione artificiale nella robotica

Dai più potenza alle macchine intelligenti con i modelli Ultralytics YOLO. Nell'ambito della robotica, l'IA visiva alimenta la navigazione autonoma, la percezione, il tracciamento degli oggetti e il controllo in tempo reale.
Scopri di più
Visione artificiale nella logistica

Visione artificiale nella logistica

Semplifica la logistica con i modelli Ultralytics YOLO. L'IA per la visione consente l'ispezione dei pacchi, la selezione, il tracciamento dei veicoli e il monitoraggio della sicurezza nei magazzini in tempo reale.
Scopri di più
Visione artificiale nel commercio al dettaglio

Visione artificiale nel commercio al dettaglio

Ripensa il commercio al dettaglio con i modelli Ultralytics YOLO. L'IA per la visione consente di tracciare le scorte, monitorare gli scaffali, gestire le code e ottenere informazioni più approfondite sui clienti.
Scopri di più
Visione artificiale in ambito sanitario

Visione artificiale in ambito sanitario

Crea soluzioni sanitarie con i modelli Ultralytics YOLO. In ambito sanitario, l'IA per la visione consente di elaborare più rapidamente le immagini mediche, migliorare la diagnostica e monitorare i pazienti.
Scopri di più
Computer vision nella produzione

Computer vision nella produzione

Ottimizza la produzione con i modelli Ultralytics YOLO. La visione basata sull'IA migliora il controllo qualità, il rilevamento dei difetti, la conformità ai requisiti sui DPI e l'automazione delle linee di assemblaggio.
Scopri di più
Computer vision nel settore automobilistico

Computer vision nel settore automobilistico

Applica la computer vision al settore automobilistico con i modelli Ultralytics YOLO. La visione basata sull'IA migliora la sicurezza stradale, i sistemi di assistenza alla guida e l'automazione dei veicoli, per strade più intelligenti.
Scopri di più
Visione artificiale in agricoltura

Visione artificiale in agricoltura

Porta l'IA visiva nell'agricoltura intelligente con i modelli Ultralytics YOLO. Gestisci il monitoraggio delle colture, il tracciamento del bestiame e l'agricoltura di precisione per ottenere raccolti più abbondanti e intelligenti.
Scopri di più

Costruiamo insieme il futuro dell'IA!

Inizia il tuo percorso verso il futuro del machine learning