Veni AI
Apprendimento Profondo

Architettura Transformer e Meccanismo di Attenzione: Analisi Tecnica

Un'analisi completa dei dettagli tecnici dell'architettura Transformer, del meccanismo di self-attention, della multi-head attention e delle strutture che costituiscono la base dei moderni LLM.

Veni AI Technical Team14 Ocak 20255 dk okuma
Architettura Transformer e Meccanismo di Attenzione: Analisi Tecnica

Architettura Transformer e Meccanismo di Attention: Analisi Tecnica

Introdotta da Google nel paper del 2017 "Attention Is All You Need", l’architettura Transformer costituisce la spina dorsale dell’intelligenza artificiale moderna. Tutti i principali modelli linguistici come GPT, Claude e Gemini si basano su questa architettura.

Prima dei Transformer: Limitazioni di RNN e LSTM

Prima dell’era dei Transformer, i compiti di NLP si basavano su Recurrent Neural Networks (RNN) e Long Short-Term Memory (LSTM):

Problemi di RNN/LSTM:

  • Necessità di elaborazione sequenziale → L’elaborazione in parallelo è impossibile.
  • Gradienti che svaniscono/esplodono nelle sequenze lunghe.
  • Difficoltà nell’apprendere dipendenze a lungo raggio.
  • Tempi di addestramento molto lunghi.

Meccanismo di Self-Attention

La self-attention è un meccanismo che calcola la relazione tra ogni elemento in una sequenza e tutti gli altri elementi.

Formulazione Matematica

Attention(Q, K, V) = softmax(QK^T / √d_k) × V

Parametri:

  • Q (Query): Il vettore di interrogazione.
  • K (Key): Il vettore chiave da confrontare.
  • V (Value): Il vettore contenente l’informazione effettiva.
  • d_k: La dimensione del vettore Key.

Calcolo Step-by-Step

  1. Proiezione: Input → matrici Q, K, V
1Q = X × W_Q 2K = X × W_K 3V = X × W_V
  1. Attention Scores: Prodotto scalare tra Q e K
scores = Q × K^T
  1. Scaling: Divisione per √d_k per stabilità del gradiente
scaled_scores = scores / √d_k
  1. Softmax: Conversione in una distribuzione di probabilità
attention_weights = softmax(scaled_scores)
  1. Somma Ponderata: Moltiplicazione con Value
output = attention_weights × V

Multi-Head Attention

Invece di una singola testa di attention, vengono utilizzate più teste in parallelo:

1MultiHead(Q, K, V) = Concat(head_1, ..., head_h) × W_O 2 3where head_i = Attention(QW_Q^i, KW_K^i, VW_V^i)

Vantaggi della Multi-Head Attention

  • Apprendimento in differenti sotto-spazi di rappresentazione.
  • Cattura di vari tipi di relazioni contestuali.
  • Estrazione di feature più ricca.

Configurazioni tipiche:

  • GPT-3: 96 teste di attention, d_model = 12288.
  • GPT-4: Stimate oltre 120 teste.

Positional Encoding

Poiché i Transformer elaborano i dati in parallelo, viene aggiunta informazione posizionale per preservare il contesto sequenziale:

Sinusoidal Positional Encoding

PE(pos, 2i) = sin(pos / 10000^(2i/d_model)) PE(pos, 2i+1) = cos(pos / 10000^(2i/d_model))

Rotary Positional Embedding (RoPE)

Un metodo più avanzato usato nei modelli moderni:

f(x, pos) = x × e^(i × pos × θ)

Vantaggi di RoPE:

  • Codifica naturalmente l’informazione di posizione relativa.
  • Migliore capacità di estrapolazione per sequenze più lunghe.
  • Utilizzato nei modelli GPT-NeoX, LLaMA e Mistral.

Feed-Forward Network

Un livello MLP che segue ogni livello di attention:

FFN(x) = GELU(xW_1 + b_1)W_2 + b_2

Dimensioni tipiche:

  • d_model = 4096.
  • d_ff = 4 × d_model = 16384.

Funzioni di Attivazione

  • ReLU: Classica e semplice.
  • GELU: Preferita nei modelli tipo GPT.
  • SwiGLU: Utilizzata nei modelli LLaMA e PaLM.

Layer Normalization

Fondamentale per la stabilità dell’addestramento:

Pre-LN vs Post-LN

Post-LN (Originale):

x = x + Attention(LayerNorm(x))

Pre-LN (Moderno):

x = LayerNorm(x + Attention(x))

Il Pre-LN garantisce un addestramento più stabile ed è diventato lo standard industriale.

Architetture Encoder vs Decoder

Encoder-Only (stile BERT)

  • Attention bidirezionale.
  • Utilizzato per Classification, NER e similarità semantica.
  • Masked Language Modeling.

Decoder-Only (stile GPT)

  • Attention causale/autoregressiva.
  • Utilizzato per generazione di testo e chat.
  • Predizione del token successivo.

Encoder-Decoder (T5, BART)

  • Compiti sequence-to-sequence.
  • Traduzione e riassunto.

Causal Masking

Mascheramento dei token futuri nei modelli decoder:

mask = triu(ones(seq_len, seq_len), diagonal=1) masked_scores = scores + mask × (-inf)

Questo garantisce che il modello guardi solo ai token precedenti durante la generazione.

Ottimizzazione della KV-Cache

Per evitare calcoli ridondanti durante l'inferenza:

1Step 1: Calculate K_1, V_1 → save to cache 2Step 2: Calculate K_2, V_2 → K = [K_1, K_2], V = [V_1, V_2] 3Step n: Calculate only for the new token, retrieve old values from cache

Risparmio di memoria: O(n²) → O(n) per i passaggi di elaborazione.

Flash Attention

Un'implementazione di attention a uso di memoria ottimizzato:

Problemi della Standard Attention:

  • Uso di memoria O(n²).
  • Collo di bottiglia della HBM (high bandwidth memory).

Soluzione Flash Attention:

  • Tiling: suddivisione dell’attention in blocchi.
  • Online Softmax: calcolo incrementale.
  • I/O Aware: ottimizzazione della gerarchia di memoria della GPU.

Risultato: accelerazione di 2-4x, risparmio di memoria del 5-20%.

Varianti di Sparse Attention

Riduzione della complessità dell’attention per contesti lunghi:

Local Attention

Focalizzazione solo sui token vicini.

Dilated Attention

Applicazione dell’attention a intervalli specifici.

Longformer Pattern

Combinazione di Local + Global attention.

Varianti Moderne dei Transformer

ModelFeatureContext Length
GPT-4MoE, long context128K
Claude 3Constitutional AI200K
Gemini 1.5Sparse MoE1M
MistralSliding window32K

Conclusione

L'architettura Transformer è il blocco fondamentale dell'AI moderna. Il suo meccanismo di self-attention, la capacità di elaborazione parallela e la capacità di apprendere dipendenze a lungo raggio hanno reso questa architettura rivoluzionaria.

In Veni AI utilizziamo efficacemente modelli basati su Transformer nelle nostre soluzioni enterprise. Contattaci per consulenza tecnica.

İlgili Makaleler