Architektura Transformer
Architektura Transformer — to architektura sieci neuronowej, przedstawiona w 2017 roku przez badaczy Google w artykule „Attention Is All You Need"[1]. Zrewolucjonizowała ona dziedzinę przetwarzania języka naturalnego (NLP) i stała się podstawą dla większości współczesnych dużych modeli językowych (LLM), takich jak BERT, GPT i Gemini. Kluczową innowacją Transformer jest mechanizm samouwagi (self‑attention), który pozwala modelowi ważyć znaczenie różnych części danych wejściowych i przetwarzać sekwencje równolegle, rezygnując z rekurencyjności właściwej RNN i LSTM.
Kontekst historyczny i przesłanki
Przed 2017 rokiem dominującymi architekturami do przetwarzania danych sekwencyjnych, takich jak tekst, były rekurencyjne sieci neuronowe (RNN) i ich udoskonalony wariant — sieci z długą pamięcią krótkoterminową (LSTM).
Problemy RNN/LSTM zaadresowane przez Transformer
- Ograniczenia przetwarzania sekwencyjnego: RNN i LSTM przetwarzają dane token po tokenie, co wyklucza równoległość wewnątrz sekwencji i spowalnia uczenie na dużych zbiorach danych.
- Problem zanikających i eksplodujących gradientów: W długich sekwencjach gradienty propagowane wstecz przez wiele kroków mogą zanikać lub rosnąć, co utrudnia uczenie długoterminowych zależności.
- Długoterminowe zależności: Informacja z początku sekwencji może zostać utracona przed jej końcem.
Podejście Transformer to całkowita rezygnacja z rekurencyjności na rzecz mechanizmu uwagi. Zapewnia ono stałą długość ścieżki zależności między dowolnymi pozycjami (), co ułatwia modelowanie dalekich zależności, przy czym bazowa implementacja samouwagi ma kwadratową złożoność obliczeniową względem długości sekwencji ()[1][2]. Problem zanikania/eksplozji gradientów nie „znika", lecz jest łagodzony dzięki połączeniom rezydualnym, LayerNorm i trybowi uczenia; we współczesnych implementacjach często stosuje się wariant Pre‑LayerNorm (Pre‑LN) jako bardziej stabilny podczas uczenia[3].
Architektura i kluczowe komponenty
Oryginalna architektura Transformer składa się z dwóch głównych części: enkodera i dekodera. Oba komponenty to stosy identycznych warstw ( w oryginalnym artykule)[1].
- Struktura warstwy enkodera: (1) wielogłowowa samouwaga (MHA), (2) FFN pozycyjnie-elementarny; każda podwarstwa otoczona jest połączeniem rezydualnym i LayerNorm[1].
- Struktura warstwy dekodera: (1) maskowana samouwaga (maska kauzalna zabrania dostępu do przyszłych pozycji), (2) cross‑attention do wyjść enkodera, (3) FFN — również z rezydualami i LayerNorm[1].
Mechanizm uwagi i Self‑Attention
Mechanizm uwagi oblicza ważoną sumę wektorów wartości (Value), gdzie wagi są określane przez stopień zgodności kluczy (Key) z zapytaniami (Query). W Transformer stosowane jest skalowane iloczyn skalarny uwagi (Scaled Dot‑Product Attention):
Gdzie — wymiarowość kluczy/zapytań; dzielenie przez zapobiega nasyceniu softmax[1]. Gdy , i pochodzą z tej samej sekwencji, mechanizm nazywany jest samouwagą (self‑attention).
Multi‑Head Attention (wielogłowowa uwaga)
Zamiast jednego zestawu macierzy stosuje się równoległych „głów", z których każda rzutuje w podprzestrzenie o mniejszej wymiarowości, niezależnie oblicza uwagę, a następnie wyniki są konkatenowane i rzutowane[1]:
- Failed to parse (syntax error): {\displaystyle \mathrm{MultiHead}(Q,K,V)=\mathrm{Concat}( ext{head}_1,\dots, ext{head}_h)W^O,\quad ext{где } ext{head}_i=\mathrm{Attention}(QW_i^Q,KW_i^K,VW_i^V).}
Warianty przyspieszające inferencję:
- MQA (Multi‑Query Attention): wszystkie głowy współdzielą jeden klucz/wartość → znacznie zmniejsza się rozmiar i ruch KV‑cache podczas dekodowania[4].
- GQA (Grouped‑Query Attention): kompromis między MHA a MQA — kilka grup głów współdzieli K/V; jakość zbliżona do MHA przy szybkości MQA[5].
Kodowanie pozycyjne (Positional Encoding)
Ponieważ self‑attention jest niezmiennicze względem kolejności tokenów, do wejściowych embeddingów dodawane są kodowania pozycyjne.
- Oryginalne sinusoidalne kodowania (PE) z[1]:
- Współczesne warianty względne/rotacyjne:
Pozycyjne FFN, rezyduale i normalizacja
Każda warstwa enkodera i dekodera, oprócz uwagi, zawiera pozycyjno‑elementarną FFN:
Wokół każdej podwarstwy stosowane są połączenia rezydualne (residual connections) i Layer Normalization: . W oryginale stosowano wariant Post‑LN[1]; we współczesnych LLM często stosuje się Pre‑LN dla lepszej stabilności uczenia i mniejszej zależności od długiego warm‑up[3].
Ewolucja i współczesne warianty
Wczesne metody oparte na rekurencyjnych sieciach neuronowych (RNN) i ich zaawansowanych wariantach, takich jak LSTM, przetwarzały tekst sekwencyjnie, po jednym tokenie na raz. Chociaż takie podejście intuicyjnie odpowiadało strukturze języka, stwarzało istotne ograniczenie: utrudniało obliczenia równoległe i komplikowało wykrywanie zależności między elementami znajdującymi się daleko od siebie w tekście. W 2017 roku grupa badaczy z Google przedstawiła artykuł zatytułowany „Attention Is All You Need". Opisali w nim nową architekturę — Transformer. Model ten po raz pierwszy całkowicie zrezygnował z rekurencyjnych sieci neuronowych, zastępując je mechanizmem uwagi (attention). Główną nowością było to, że mechanizm uwagi pozwalał Transformerowi oceniać wagę każdego słowa w sekwencji wejściowej przy generowaniu odpowiedniego słowa na wyjściu. Jednocześnie model mógł przetwarzać wszystkie słowa równocześnie. Ta zdolność do równoległego przetwarzania umożliwiła uczenie znacznie większych modeli na ogromnych zbiorach danych. W rezultacie pojawiły się współczesne duże modele językowe (LLM).
Architektura Transformer stała się podstawą dla wielu modeli, umownie podzielonych na trzy klasy.
1. Modele tylko‑enkoder (Encoder‑only)
- Przykład: BERT (oraz RoBERTa, ALBERT)[8].
- Zasada: przeduczanie w zadaniu maskowanego modelowania językowego (MLM) z dwukierunkowym kontekstem.
- Zastosowanie: zadania rozumienia (klasyfikacja, NER itp.).
2. Modele tylko‑dekoder (Decoder‑only)
- Przykład: seria GPT (GPT‑1/2/3)[9][10], LLaMA[11], Claude.
- Zasada: kauzalne modelowanie językowe (CLM) — przewidywanie następnego tokenu; na uwagę nakładana jest maska kauzalna[1].
- Zastosowanie: generowanie tekstu, dialogi, kod.
3. Modele enkoder‑dekoder (Encoder‑decoder)
- Przykład: oryginalny Transformer, T5, BART[1][12].
- Zasada: enkoder buduje reprezentację wejścia, dekoder generuje wyjście i używa cross‑attention do cech enkodera[1].
- Zastosowanie: zadania seq2seq (tłumaczenie, streszczanie itp.).
4. Architektury multimodalne i alternatywne
- Vision Transformer (ViT) — adaptacja do obrazów (podział na patche)[13]; Swin Transformer — hierarchiczny model z shifted windows[14].
- Alternatywy dla długich sekwencji:
Techniki uczenia i optymalizacji
Efektywność Transformer jest ściśle związana z techniką uczenia i infrastrukturą.
- Strategie przeduczania: CLM i MLM; a także cele kontrastywne i odszumiające (ELECTRA, T5)[12].
- Techniki fine‑tuningu:
- Pełny fine‑tuning wszystkich parametrów.
- Parametrycznie‑efektywny fine‑tuning (PEFT): LoRA wprowadza niskorzędowe adaptery przy zamrożonych wagach bazowych[18].
- Wyrównywanie zachowania: RLHF — uczenie ze wzmocnieniem na podstawie informacji zwrotnej od człowieka[19].
- Systemowe optymalizacje inferencji: PagedAttention/vLLM zwiększają przepustowość serwowania dzięki stronicowemu zarządzaniu KV‑cache; szczególnie przydatne przy długich sekwencjach i dużych batchach[20].
Odnośniki
- The Illustrated Transformer — wizualne wyjaśnienie architektury Transformer
Literatura
- 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.
Przypisy
- ↑ 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.