Transformer architecture (CS)
Architektura Transformer je architektura neuronové sítě představená v roce 2017 výzkumníky společnosti Google v článku „Attention Is All You Need"[1]. Způsobila revoluci v oblasti zpracování přirozeného jazyka (NLP) a stala se základem pro většinu moderních velkých jazykových modelů (LLM), jako jsou BERT, GPT a Gemini. Klíčovou inovací Transformeru je mechanismus samopozornosti (self‑attention), který umožňuje modelu vážit důležitost různých částí vstupních dat a zpracovávat sekvence paralelně, přičemž upouští od rekurence typické pro RNN a LSTM.
Historický kontext a předpoklady
Před rokem 2017 byly dominantními architekturami pro zpracování sekvenčních dat, jako je text, rekurentní neuronové sítě (RNN) a jejich vylepšená varianta — sítě s dlouhou krátkodobou pamětí (LSTM).
Problémy RNN/LSTM řešené Transformerem
- Omezení sekvenčního zpracování: RNN a LSTM zpracovávají data token po tokenu, což vylučuje vnitro-sekvenční paralelismus a zpomaluje trénování na velkých objemech dat.
- Problém mizejících a explodujících gradientů: V dlouhých sekvencích mohou gradienty šířené zpět přes mnoho kroků buď slábnout, nebo narůstat, což ztěžuje trénování na dlouhodobých závislostech.
- Dlouhodobé závislosti: Informace ze začátku sekvence se mohou ke konci ztratit.
Přístup Transformeru spočívá v úplném opuštění rekurence ve prospěch mechanismu pozornosti. Zajišťuje konstantní délku cesty závislostí mezi libovolnými pozicemi (), což usnadňuje modelování vzdálených závislostí, přičemž základní implementace samopozornosti má kvadratickou výpočetní složitost vzhledem k délce sekvence ()[1][2]. Problém mizejících/explodujících gradientů „nezmizí", ale je zmírněn díky reziduálním spojením, LayerNorm a tréninkového režimu; v moderních implementacích se často používá varianta Pre‑LayerNorm (Pre‑LN) jako stabilnější při trénování[3].
Architektura a klíčové komponenty
Originální architektura Transformer se skládá ze dvou hlavních částí: enkodéru a dekodéru. Obě komponenty jsou zásobníky identických vrstev ( v původním článku)[1].
- Struktura vrstvy enkodéru: (1) vícehlávková samopozornost (MHA), (2) pozičně‑prvková FFN; každá podvrstva je obklopena reziduálním spojením a LayerNorm[1].
- Struktura vrstvy dekodéru: (1) maskovaná samopozornost (kauzální maska zakazuje přístup k budoucím pozicím), (2) cross‑attention k výstupům enkodéru, (3) FFN — také s reziduály a LayerNorm[1].
Mechanismus pozornosti a Self‑Attention
Mechanismus pozornosti vypočítává vážený součet vektorů hodnot (Value), kde váhy jsou určeny mírou kompatibility klíčů (Key) s dotazy (Query). V Transformeru se používá škálované skalární součinové pozornosti (Scaled Dot‑Product Attention):
Kde je dimenze klíčů/dotazů; dělení zabraňuje saturaci softmax[1]. Když , a pocházejí ze stejné sekvence, mechanismus se nazývá samopozornost (self‑attention).
Multi‑Head Attention (vícehlávková pozornost)
Místo jedné sady matic se používá paralelních „hlav", z nichž každá promítá do podprostorů nižší dimenze, nezávisle vypočítává pozornost, poté jsou výsledky konkatenováni a promítnuty[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).}
Varianty pro zrychlení inference:
- MQA (Multi‑Query Attention): všechny hlavy sdílejí jeden klíč/hodnotu → výrazně se snižuje objem a provoz KV‑cache při dekódování[4].
- GQA (Grouped‑Query Attention): kompromis mezi MHA a MQA — několik skupin hlav sdílí K/V; kvalita blízká MHA při rychlosti MQA[5].
Poziční kódování (Positional Encoding)
Protože self‑attention je invariantní vůči pořadí tokenů, ke vstupním embeddingům se přidávají poziční kódování.
- Původní sinusoidální kódování (PE) z[1]:
- Moderní relativní/rotační varianty:
Prvková FFN, reziduály a normalizace
Každá vrstva enkodéru a dekodéru obsahuje kromě pozornosti také pozičně‑prvkovou FFN:
Kolem každé podvrstvy se používají reziduální spojení (residual connections) a Layer Normalization: . V originále byl použit variant Post‑LN[1]; v moderních LLM se často používá Pre‑LN pro lepší stabilitu trénování a menší závislost na dlouhém warm‑upu[3].
Evoluce a moderní varianty
Rané metody založené na rekurentních neuronových sítích (RNN) a jejich pokročilých variantách, jako je LSTM, zpracovávaly text sekvenčně, jeden token najednou. Ačkoli tento přístup intuitivně odpovídal struktuře jazyka, vytvářel výrazné omezení: ztěžoval paralelní výpočty a znesnadňoval odhalování závislostí mezi prvky, které byly v textu daleko od sebe. V roce 2017 skupina výzkumníků ze společnosti Google představila článek nazvaný „Attention Is All You Need". V něm popsali novou architekturu — Transformer. Tento model se jako první zcela vzdal rekurentních neuronových sítí a nahradil je mechanismem pozornosti (attention). Hlavní novinka spočívala v tom, že mechanismus pozornosti umožňoval Transformeru hodnotit důležitost každého slova ve vstupní sekvenci pro generování odpovídajícího slova na výstupu. Přitom model mohl zpracovávat všechna slova současně. Tato schopnost paralelního zpracování umožnila trénovat mnohem větší modely na obrovských objemech dat. Výsledkem jsou moderní velké jazykové modely (LLM).
Architektura Transformer se stala základem pro množství modelů, které lze přibližně rozdělit do tří tříd.
1. Modely pouze s enkodérem (Encoder‑only)
- Příklad: BERT (a RoBERTa, ALBERT)[8].
- Princip: předtrénování na úloze maskovaného jazykového modelování (MLM) s obousměrným kontextem.
- Použití: úlohy porozumění (klasifikace, NER atd.).
2. Modely pouze s dekodérem (Decoder‑only)
- Příklad: série GPT (GPT‑1/2/3)[9][10], LLaMA[11], Claude.
- Princip: kauzální jazykové modelování (CLM) — predikce dalšího tokenu; na pozornost je aplikována kauzální maska[1].
- Použití: generování textu, dialogy, kód.
3. Modely enkodér‑dekodér (Encoder‑decoder)
- Příklad: původní Transformer, T5, BART[1][12].
- Princip: enkodér vytváří reprezentaci vstupu, dekodér generuje výstup a využívá cross‑attention k příznakům enkodéru[1].
- Použití: seq2seq úlohy (překlad, sumarizace aj.).
4. Multimodální a alternativní architektury
- Vision Transformer (ViT) — adaptace pro obrázky (rozdělení na patche)[13]; Swin Transformer — hierarchický model se shifted windows[14].
- Alternativy pro dlouhé sekvence:
Techniky trénování a optimalizace
Efektivita Transformeru úzce souvisí s technikou trénování a infrastrukturou.
- Strategie předtrénování: CLM a MLM; také kontrastivní a denoisingové cíle (ELECTRA, T5)[12].
- Techniky doladění (Fine‑tuning):
- Úplné doladění všech parametrů.
- Parametricky efektivní doladění (PEFT): LoRA zavádí nízkorangové adaptéry při zmrazených základních vahách[18].
- Sladění chování: RLHF — Reinforcement Learning na základě zpětné vazby od člověka[19].
- Systémové optimalizace inference: PagedAttention/vLLM zvyšují propustnost servingu prostřednictvím stránkové správy KV‑cache; zvláště užitečné při dlouhých sekvencích a velkých dávkách[20].
Odkazy
- The Illustrated Transformer — vizuální vysvětlení 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.
Poznámky
- ↑ 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.