Architettura Transformer
L'architettura Transformer è un'architettura di rete neurale presentata nel 2017 dai ricercatori di Google nell'articolo «Attention Is All You Need»[1]. Ha rivoluzionato il campo dell'elaborazione del linguaggio naturale (NLP) ed è diventata la base per la maggior parte dei moderni modelli linguistici di grandi dimensioni (LLM), come BERT, GPT e Gemini. L'innovazione chiave del Transformer è il meccanismo di self‑attention, che consente al modello di pesare l'importanza delle diverse parti dei dati in ingresso ed elaborare le sequenze in parallelo, abbandonando la ricorrenza tipica delle RNN e LSTM.
Contesto storico e premesse
Prima del 2017, le architetture dominanti per l'elaborazione di dati sequenziali, come il testo, erano le reti neurali ricorrenti (RNN) e la loro variante migliorata — le reti con memoria a lungo e breve termine (LSTM).
Problemi di RNN/LSTM affrontati dal Transformer
- Limiti dell'elaborazione sequenziale: RNN e LSTM elaborano i dati token per token, il che esclude il parallelismo all'interno della sequenza e rallenta l'addestramento su grandi volumi di dati.
- Problema della scomparsa e dell'esplosione dei gradienti: In sequenze lunghe, i gradienti propagati all'indietro attraverso molti passi possono attenuarsi o crescere, rendendo difficile l'apprendimento delle dipendenze a lungo termine.
- Dipendenze a lungo termine: Le informazioni dall'inizio della sequenza possono andare perse verso la fine.
L'approccio del Transformer consiste nell'abbandono completo della ricorrenza in favore del meccanismo di attenzione. Garantisce una lunghezza costante del percorso delle dipendenze tra qualsiasi coppia di posizioni (), facilitando la modellazione delle dipendenze a lungo raggio, sebbene l'implementazione base del self‑attention abbia una complessità computazionale quadratica rispetto alla lunghezza della sequenza ()[1][2]. Il problema della scomparsa/esplosione dei gradienti non «scompare», ma viene attenuato grazie alle connessioni residuali, alla LayerNorm e alla modalità di addestramento; nelle implementazioni moderne viene spesso adottata la variante Pre‑LayerNorm (Pre‑LN) come più stabile durante l'addestramento[3].
Architettura e componenti chiave
L'architettura originale del Transformer è composta da due parti principali: l'encoder e il decoder. Entrambi i componenti sono stack di strati identici ( nell'articolo originale)[1].
- Struttura dello strato dell'encoder: (1) multi-head self‑attention (MHA), (2) FFN posizionale elemento per elemento; ogni sottolivello è circondato da una connessione residuale e da LayerNorm[1].
- Struttura dello strato del decoder: (1) self‑attention mascherato (la maschera causale impedisce l'accesso alle posizioni future), (2) cross‑attention verso le uscite dell'encoder, (3) FFN — anch'essa con connessioni residuali e LayerNorm[1].
Meccanismo di attenzione e Self‑Attention
Il meccanismo di attenzione calcola una somma ponderata dei vettori Value, dove i pesi sono determinati dal grado di compatibilità dei Key con i Query. Nel Transformer viene utilizzata l'attenzione a prodotto scalare scalato (Scaled Dot‑Product Attention):
Dove è la dimensione dei Key/Query; la divisione per previene la saturazione della softmax[1]. Quando , e sono generati dalla stessa sequenza, il meccanismo è chiamato self‑attention.
Multi‑Head Attention (attenzione multi-testa)
Invece di un unico insieme di matrici , vengono utilizzate «teste» parallele, ognuna delle quali proietta in sottospazi di dimensione inferiore, calcola l'attenzione in modo indipendente, quindi i risultati vengono concatenati e proiettati[1]:
Varianti per accelerare l'inferenza:
- MQA (Multi‑Query Attention): tutte le teste condividono un unico key/value → riduce significativamente il volume e il traffico della KV‑cache durante la decodifica[4].
- GQA (Grouped‑Query Attention): compromesso tra MHA e MQA — più gruppi di teste condividono K/V; qualità vicina a MHA con la velocità di MQA[5].
Codifica posizionale (Positional Encoding)
Poiché il self‑attention è invariante all'ordine dei token, agli embedding in ingresso vengono aggiunte delle codifiche posizionali.
- Codifiche sinusoidali originali (PE) da[1]:
- Varianti relative/rotazionali moderne:
FFN elemento per elemento, connessioni residuali e normalizzazione
Ogni strato dell'encoder e del decoder, oltre all'attenzione, contiene una FFN posizionale elemento per elemento:
Attorno a ogni sottolivello vengono utilizzate connessioni residuali e Layer Normalization: . Nell'originale veniva applicata la variante Post‑LN[1]; nei moderni LLM si usa spesso Pre‑LN per una migliore stabilità dell'addestramento e una minore dipendenza da un lungo warm‑up[3].
Evoluzione e varianti moderne
I primi metodi basati su reti neurali ricorrenti (RNN) e le loro varianti avanzate, come le LSTM, elaboravano il testo in modo sequenziale, un token alla volta. Sebbene questo approccio corrispondesse intuitivamente alla struttura del linguaggio, creava un limite significativo: ostacolava i calcoli paralleli e rendeva più difficile l'individuazione delle dipendenze tra elementi distanti nel testo. Nel 2017, un gruppo di ricercatori di Google presentò l'articolo intitolato «Attention Is All You Need». In esso descrissero una nuova architettura — il Transformer. Questo modello abbandonò per la prima volta completamente l'uso delle reti neurali ricorrenti, sostituendole con il meccanismo di attenzione. La principale novità consisteva nel fatto che il meccanismo di attenzione permetteva al Transformer di valutare l'importanza di ogni parola nella sequenza di ingresso per generare la parola corrispondente nell'uscita. Allo stesso tempo, il modello poteva elaborare tutte le parole simultaneamente. Questa capacità di elaborazione parallela rese possibile l'addestramento di modelli molto più grandi su enormi volumi di dati. Il risultato fu la nascita dei moderni modelli linguistici di grandi dimensioni (LLM).
L'architettura Transformer ha costituito la base per una moltitudine di modelli, convenzionalmente suddivisi in tre classi.
1. Modelli solo-encoder (Encoder‑only)
- Esempio: BERT (e RoBERTa, ALBERT)[8].
- Principio: pre-addestramento con il task di modellazione del linguaggio mascherato (MLM) con contesto bidirezionale.
- Applicazione: task di comprensione (classificazione, NER, ecc.).
2. Modelli solo-decoder (Decoder‑only)
- Esempio: serie GPT (GPT‑1/2/3)[9][10], LLaMA[11], Claude.
- Principio: modellazione del linguaggio causale (CLM) — predizione del token successivo; all'attenzione viene applicata una maschera causale[1].
- Applicazione: generazione di testo, dialoghi, codice.
3. Modelli encoder‑decoder (Encoder‑decoder)
- Esempio: Transformer originale, T5, BART[1][12].
- Principio: l'encoder costruisce la rappresentazione dell'ingresso, il decoder genera l'uscita e utilizza il cross‑attention verso le caratteristiche dell'encoder[1].
- Applicazione: task seq2seq (traduzione, riassunto, ecc.).
4. Architetture multimodali e alternative
- Vision Transformer (ViT) — adattamento alle immagini (suddivisione in patch)[13]; Swin Transformer — modello gerarchico con shifted windows[14].
- Alternative per sequenze lunghe:
Tecniche di addestramento e ottimizzazione
L'efficienza del Transformer è strettamente legata alla tecnica di addestramento e all'infrastruttura.
- Strategie di pre-addestramento: CLM e MLM; anche obiettivi contrastivi e di denoising (ELECTRA, T5)[12].
- Tecniche di fine‑tuning:
- Fine‑tuning completo di tutti i parametri.
- Fine‑tuning efficiente in termini di parametri (PEFT): LoRA introduce adattatori a basso rango con i pesi base congelati[18].
- Allineamento del comportamento: RLHF — Reinforcement Learning dal feedback umano[19].
- Ottimizzazioni di sistema per l'inferenza: PagedAttention/vLLM aumenta la capacità di throughput del serving tramite la gestione paginata della KV‑cache; particolarmente utile con sequenze lunghe e batch di grandi dimensioni[20].
Riferimenti
- The Illustrated Transformer — spiegazione visiva dell'architettura Transformer
Bibliografia
- Vaswani, A., Shazeer, N., Parmar, N., et al. (2017). Attention Is All You Need. NeurIPS. arXiv:1706.03762.
- Devlin, J., Chang, M.‑W., Lee, K., Toutanova, K. (2019). BERT: Pre‑training of Deep Bidirectional Transformers for Language Understanding. arXiv:1810.04805.
- Radford, A., Narasimhan, K., Salimans, T., Sutskever, I. (2018). Improving Language Understanding by Generative Pre‑Training. OpenAI Technical Report.
- Brown, T. B., Mann, B., Ryder, N., et al. (2020). Language Models Are Few‑Shot Learners. NeurIPS. arXiv:2005.14165.
- Raffel, C., Shazeer, N., Roberts, A., et al. (2019). Exploring the Limits of Transfer Learning with a Unified Text‑to‑Text Transformer. arXiv:1910.10683.
- Dosovitskiy, A., Beyer, L., Kolesnikov, A., et al. (2020). An Image is Worth 16×16 Words: Transformers for Image Recognition at Scale. arXiv:2010.11929.
- Liu, Z., Lin, Y., Cao, Y., et al. (2021). Swin Transformer: Hierarchical Vision Transformer using Shifted Windows. arXiv:2103.14030.
- Tay, Y., Dehghani, M., Bahri, D., Metzler, D. (2020). Efficient Transformers: A Survey. arXiv:2009.06732.
- Xiong, R., Yang, Y., He, D., et al. (2020). On Layer Normalization in the Transformer Architecture. ICML. arXiv:2002.04745.
- Su, J., Lu, Y., Pan, S., et al. (2021). RoFormer: Rotary Position Embedding. arXiv:2104.09864.
- Press, O., Smith, N. A., Lewis, M. (2021). Train Short, Test Long: Attention with Linear Biases (ALiBi). arXiv:2108.12409.
- Shazeer, N. (2019). Fast Transformer Decoding: One Write‑Head is All You Need (MQA). arXiv:1911.02150.
- Ainslie, J., Lee‑Thorp, J., de Jong, M., et al. (2023). GQA: Training Generalized Multi‑Query Transformer Models from Multi‑Head Checkpoints. EMNLP. arXiv:2305.13245.
- Kwon, W., Li, Z., Zhuang, S., et al. (2023). Efficient Memory Management for LLM Serving with PagedAttention (vLLM). arXiv:2309.06180.
- Touvron, H., Lavril, T., Izacard, G., et al. (2023). LLaMA: Open and Efficient Foundation Language Models. arXiv:2302.13971.
- Gu, A., Dao, T. (2023). Mamba: Linear‑Time Sequence Modeling with Selective State Spaces. arXiv:2312.00752.
- Peng, B., et al. (2023). RWKV: Reinventing RNNs for the Transformer Era. arXiv:2305.13048.
- Lieber, O., Lenz, B., Bata, H., et al. (2024). Jamba: A Hybrid Transformer‑Mamba Language Model. arXiv:2403.19887.
- Hu, E. J., Shen, Y., Wallis, P., et al. (2021). LoRA: Low‑Rank Adaptation of Large Language Models. arXiv:2106.09685.
- Ouyang, L., Wu, J., Jiang, X., et al. (2022). Training language models to follow instructions with human feedback. OpenReview.
Note
- ↑ 1.00 1.01 1.02 1.03 1.04 1.05 1.06 1.07 1.08 1.09 1.10 1.11 Vaswani, A., Shazeer, N., Parmar, N., et al. (2017). Attention Is All You Need. NeurIPS. arXiv:1706.03762.
- ↑ Tay, Y., Dehghani, M., Bahri, D., Metzler, D. (2020). Efficient Transformers: A Survey. arXiv:2009.06732.
- ↑ 3.0 3.1 Xiong, R., Yang, Y., He, D., et al. (2020). On Layer Normalization in the Transformer Architecture. ICML. arXiv:2002.04745.
- ↑ Shazeer, N. (2019). Fast Transformer Decoding: One Write‑Head is All You Need. arXiv:1911.02150.
- ↑ Ainslie, J., Lee‑Thorp, J., de Jong, M., et al. (2023). GQA: Training Generalized Multi‑Query Transformer Models from Multi‑Head Checkpoints. EMNLP. arXiv:2305.13245.
- ↑ Su, J., Lu, Y., Pan, S., et al. (2021). RoFormer: Rotary Position Embedding. arXiv:2104.09864.
- ↑ Press, O., Smith, N. A., Lewis, M. (2021). Train Short, Test Long: Attention with Linear Biases (ALiBi). arXiv:2108.12409.
- ↑ Devlin, J., Chang, M.‑W., Lee, K., Toutanova, K. (2019). BERT: Pre‑training of Deep Bidirectional Transformers for Language Understanding. arXiv:1810.04805.
- ↑ Radford, A., Narasimhan, K., Salimans, T., Sutskever, I. (2018). Improving Language Understanding by Generative Pre‑Training. OpenAI.
- ↑ Brown, T. B., Mann, B., Ryder, N., et al. (2020). Language Models Are Few‑Shot Learners. NeurIPS. arXiv:2005.14165.
- ↑ Touvron, H., Lavril, T., Izacard, G., et al. (2023). LLaMA: Open and Efficient Foundation Language Models. arXiv:2302.13971.
- ↑ 12.0 12.1 Raffel, C., Shazeer, N., Roberts, A., et al. (2019). Exploring the Limits of Transfer Learning with a Unified Text‑to‑Text Transformer. JMLR. arXiv:1910.10683.
- ↑ Dosovitskiy, A., Beyer, L., Kolesnikov, A., et al. (2020). An Image is Worth 16×16 Words: Transformers for Image Recognition at Scale. ICLR. arXiv:2010.11929.
- ↑ Liu, Z., Lin, Y., Cao, Y., et al. (2021). Swin Transformer: Hierarchical Vision Transformer using Shifted Windows. ICCV. arXiv:2103.14030.
- ↑ Gu, A., Dao, T. (2023). Mamba: Linear‑Time Sequence Modeling with Selective State Spaces. arXiv:2312.00752.
- ↑ Peng, B., et al. (2023). RWKV: Reinventing RNNs for the Transformer Era. arXiv:2305.13048.
- ↑ Lieber, O., Lenz, B., Bata, H., et al. (2024). Jamba: A Hybrid Transformer‑Mamba Language Model. arXiv:2403.19887.
- ↑ Hu, E. J., Shen, Y., Wallis, P., et al. (2021). LoRA: Low‑Rank Adaptation of Large Language Models. arXiv:2106.09685.
- ↑ Ouyang, L., Wu, J., Jiang, X., et al. (2022). Training language models to follow instructions with human feedback. OpenReview.
- ↑ Kwon, W., Li, Z., Zhuang, S., et al. (2023). Efficient Memory Management for LLM Serving with PagedAttention. arXiv:2309.06180.