Transformer architektúra

From Systems analysis Wiki
Jump to navigation Jump to search

A Transformer architektúra egy neurális hálózati architektúra, amelyet 2017-ben mutattak be a Google kutatói az „Attention Is All You Need" című cikkben[1]. Forradalmasította a természetes nyelvfeldolgozás (NLP) területét, és a legtöbb modern nagy nyelvi modell (LLM) – például a BERT, a GPT és a Gemini – alapjává vált. A Transformer kulcsinnovációja a önfigyelem (self‑attention) mechanizmusa, amely lehetővé teszi a modell számára, hogy mérlegelje a bemeneti adatok különböző részeinek fontosságát, és párhuzamosan dolgozza fel a sorozatokat, elhagyva az RNN-ekre és LSTM-ekre jellemző rekurzivitást.

Történeti háttér és előzmények

2017 előtt a szekvenciális adatok – például szöveg – feldolgozásának domináns architektúrái a rekurrens neurális hálózatok (RNN) és azok fejlettebb változatai, a hosszú rövid távú memóriahálózatok (LSTM) voltak.

Az RNN/LSTM problémái, amelyeket a Transformer megold

  • A szekvenciális feldolgozás korlátai: Az RNN-ek és az LSTM-ek tokenenként dolgozzák fel az adatokat, ami kizárja a sorozaton belüli párhuzamosítást, és lelassítja a tanítást nagy adatmennyiségek esetén.
  • Az eltűnő és robbanó gradiensek problémája: Hosszú sorozatoknál a sok lépésen visszaterjedő gradiensek vagy elhalnak, vagy megnőnek, ami megnehezíti a hosszú távú függőségek megtanulását.
  • Hosszú távú függőségek: A sorozat elejéről származó információ elveszhet a sorozat végére.

A Transformer megközelítése a rekurzivitás teljes elhagyása a figyelemmechanizmus javára. Biztosítja a függőségi úthossz konstans értékét bármely két pozíció között (O(1)), ami megkönnyíti a távoli függőségek modellezését, miközben az önfigyelem alapimplementációja négyzetes számítási komplexitással rendelkezik a sorozat hossza tekintetében (O(n2))[1][2]. A gradiensek eltűnésének/robbanásának problémája nem „tűnik el", hanem enyhítésre kerül a reziduális kapcsolatok, a LayerNorm és a tanítási mód révén; a modern implementációkban gyakran alkalmazzák a Pre‑LayerNorm (Pre‑LN) változatot, amely stabilabb tanítást tesz lehetővé[3].

Architektúra és kulcskomponensek

Az eredeti Transformer architektúra két fő részből áll: az enkóderből és a dekóderből. Mindkét komponens azonos rétegek egymásra épített csoportja (N=6 az eredeti cikkben)[1].

  • Az enkódеrréteg szerkezete: (1) többfejű önfigyelem (MHA), (2) pozíciónként alkalmazott FFN; minden alréteg reziduális kapcsolattal és LayerNorm-mal van körülvéve[1].
  • A dekóderréteg szerkezete: (1) maszkolt önfigyelem (a kauzális maszk tiltja a jövőbeli pozíciókhoz való hozzáférést), (2) cross‑attention az enkóder kimeneteihez, (3) FFN – szintén reziduálisokkal és LayerNorm-mal[1].

A figyelemmechanizmus és a Self‑Attention

A figyelemmechanizmus az értékvektorok (Value) súlyozott összegzését számítja ki, ahol a súlyokat a kulcsok (Key) és a lekérdezések (Query) közötti kompatibilitás foka határozza meg. A Transformerben skálázott skaláris szorzatú figyelmet (Scaled Dot‑Product Attention) alkalmaznak:

Attention(Q,K,V)=softmax(QKopdk)V

Ahol dk a kulcsok/lekérdezések dimenziószáma; az dk-val való osztás megakadályozza a softmax telítődését[1]. Ha Q, K és V ugyanabból a sorozatból származik, a mechanizmust önfigyelem (self‑attention) névvel illetik.

Multi‑Head Attention (többfejű figyelem)

Egy (WQ,WK,WV) mátrixkészlet helyett h párhuzamos „fejet" alkalmaznak, amelyek mindegyike Q,K,V-t kisebb dimenziójú alterekbe vetíti, önállóan számítja a figyelmet, majd az eredményeket összefűzik és vetítik[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).}

Változatok a gyorsabb inferencia érdekében:

  • MQA (Multi‑Query Attention): minden fej egyetlen kulcs/értéket oszt meg → jelentősen csökkenti a KV-gyorsítótár méretét és adatforgalmát dekódoláskor[4].
  • GQA (Grouped‑Query Attention): kompromisszum az MHA és az MQA között – a fejek csoportjai osztják meg a K/V-t; a minőség közel van az MHA-hoz, a sebesség pedig az MQA-hoz[5].

Pozicionális kódolás (Positional Encoding)

Mivel a self‑attention invariáns a tokenek sorrendjére, a bemeneti embeddingekhez pozicionális kódolásokat adnak hozzá.

  • Az eredeti szinuszoidális kódolások (PE) a[1]-ből:
extPE(extpos,2i)=sin(extpos/100002i/dextmodel),extPE(extpos,2i+1)=cos(extpos/100002i/dextmodel).
  • Modern relatív/rotációs változatok:
    • RoPE (Rotary Position Embeddings) a relatív eltolásokat a Q/K vektorok forgatásával kódolja; számos modern LLM-ben alkalmazzák[6].
    • ALiBi lineáris büntetést vezet be a figyelempontszámokba, ami javítja az extrapolációt a tanítási hossznál nagyobb sorozatokra[7].

Pozíciónkénti FFN, reziduálisok és normalizáció

Minden enkóder- és dekóderréteg a figyelmen kívül tartalmaz egy pozíciónként alkalmazott FFN-t:

FFN(x)=max(0,xW1+b1)W2+b2.

Minden alréteg körül reziduális kapcsolatokat (residual connections) és Layer Normalization-t alkalmaznak: LayerNorm(x+Sublayer(x)). Az eredetiben a Post‑LN változatot alkalmazták[1]; a modern LLM-ekben gyakran használják a Pre‑LN-t a jobb tanítási stabilitás és a kisebb warm‑up-függőség érdekében[3].

Evolúció és modern változatok

A rekurrens neurális hálózatokon (RNN) és azok fejlett változatain, például az LSTM-en alapuló korai módszerek szekvenciálisan, egyszerre egy tokent dolgoztak fel. Bár ez a megközelítés intuitívan megfelelt a nyelv szerkezetének, jelentős korlátot jelentett: megnehezítette a párhuzamos számításokat, és bonyolítottá tette a szövegben egymástól távol lévő elemek közötti függőségek felismerését. 2017-ben a Google kutatóinak egy csoportja bemutatta az „Attention Is All You Need" című cikket, amelyben egy új architektúrát – a Transformert – írtak le. Ez a modell először mondott le teljesen a rekurrens neurális hálózatok használatáról, helyettük a „figyelem" (attention) mechanizmusát alkalmazva. A fő újítás abban állt, hogy a figyelemmechanizmus lehetővé tette a Transformer számára, hogy értékelje a bemeneti sorozat minden szavának fontosságát a megfelelő kimeneti szó generálásához, miközben a modell az összes szót egyszerre dolgozta fel. Ez a párhuzamos feldolgozási képesség tette lehetővé jóval nagyobb modellek tanítását hatalmas adatmennyiségeken. Ennek eredményeként születtek meg a modern nagy nyelvi modellek (LLM).

A Transformer architektúra számos modell alapjává vált, amelyek három fő osztályba sorolhatók.

1. Csak enkóderes modellek (Encoder‑only)

  • Példa: BERT (és RoBERTa, ALBERT)[8].
  • Elv: előtanítás maszkolt nyelvi modellezési (MLM) feladattal, kétirányú kontextussal.
  • Alkalmazás: megértési feladatok (osztályozás, NER stb.).

2. Csak dekóderes modellek (Decoder‑only)

  • Példa: GPT sorozat (GPT‑1/2/3)[9][10], LLaMA[11], Claude.
  • Elv: kauzális nyelvi modellezés (CLM) – a következő token előrejelzése; a figyelemre kauzális maszkot alkalmaznak[1].
  • Alkalmazás: szöveggenerálás, párbeszédek, kód.

3. Enkóder‑dekóderes modellek (Encoder‑decoder)

  • Példa: az eredeti Transformer, T5, BART[1][12].
  • Elv: az enkóder felépíti a bemenet reprezentációját, a dekóder generálja a kimenetet, és cross‑attention-t alkalmaz az enkóder jellemzőihez[1].
  • Alkalmazás: seq2seq-feladatok (fordítás, összefoglalás stb.).

4. Multimodális és alternatív architektúrák

  • Vision Transformer (ViT) – képekre való adaptáció (patch-ekre bontás)[13]; Swin Transformer – hierarchikus modell shifted windows megközelítéssel[14].
  • Hosszú sorozatokra szánt alternatívák:
    • Mamba – szelektív állapottér-modellek (SSM) lineáris komplexitással[15].
    • RWKV – RNN-szerű architektúra párhuzamos tanítással és lineáris inferencia-komplexitással[16].
    • Hibrid megoldások (pl. Jamba): Transformer és Mamba blokkokat váltakoztatnak; néha MoE-vel egészítik ki[17].

Tanítási és optimalizálási technikák

A Transformer hatékonysága szorosan összefügg a tanítási technikával és az infrastruktúrával.

  • Előtanítási stratégiák: CLM és MLM; valamint kontrasztív és zajtalanítási célok (ELECTRA, T5)[12].
  • Fine-tuning technikák:
    • Teljes fine-tuning az összes paraméteren.
    • Paraméterhatékony fine-tuning (PEFT): a LoRA alacsony rangú adaptereket vezet be a befagyasztott alapsúlyok mellett[18].
  • Viselkedési igazítás: RLHF – megerősítéses tanulás emberi visszajelzés alapján[19].
  • Rendszerszintű inferencia-optimalizációk: a PagedAttention/vLLM növeli a kiszolgálás átviteli sebességét a KV-gyorsítótár lapozásos kezelésével; különösen hasznos hosszú sorozatoknál és nagy batch-ek esetén[20].

Hivatkozások

  • The Illustrated Transformer – a Transformer architektúra vizuális magyarázata

Irodalom

  • 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.

Megjegyzések

  1. 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.
  2. Tay, Y., Dehghani, M., Bahri, D., Metzler, D. (2020). Efficient Transformers: A Survey. arXiv:2009.06732.
  3. 3.0 3.1 Xiong, R., Yang, Y., He, D., et al. (2020). On Layer Normalization in the Transformer Architecture. ICML. arXiv:2002.04745.
  4. Shazeer, N. (2019). Fast Transformer Decoding: One Write‑Head is All You Need. arXiv:1911.02150.
  5. 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.
  6. Su, J., Lu, Y., Pan, S., et al. (2021). RoFormer: Rotary Position Embedding. arXiv:2104.09864.
  7. Press, O., Smith, N. A., Lewis, M. (2021). Train Short, Test Long: Attention with Linear Biases (ALiBi). arXiv:2108.12409.
  8. Devlin, J., Chang, M.‑W., Lee, K., Toutanova, K. (2019). BERT: Pre‑training of Deep Bidirectional Transformers for Language Understanding. arXiv:1810.04805.
  9. Radford, A., Narasimhan, K., Salimans, T., Sutskever, I. (2018). Improving Language Understanding by Generative Pre‑Training. OpenAI.
  10. Brown, T. B., Mann, B., Ryder, N., et al. (2020). Language Models Are Few‑Shot Learners. NeurIPS. arXiv:2005.14165.
  11. Touvron, H., Lavril, T., Izacard, G., et al. (2023). LLaMA: Open and Efficient Foundation Language Models. arXiv:2302.13971.
  12. 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.
  13. 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.
  14. Liu, Z., Lin, Y., Cao, Y., et al. (2021). Swin Transformer: Hierarchical Vision Transformer using Shifted Windows. ICCV. arXiv:2103.14030.
  15. Gu, A., Dao, T. (2023). Mamba: Linear‑Time Sequence Modeling with Selective State Spaces. arXiv:2312.00752.
  16. Peng, B., et al. (2023). RWKV: Reinventing RNNs for the Transformer Era. arXiv:2305.13048.
  17. Lieber, O., Lenz, B., Bata, H., et al. (2024). Jamba: A Hybrid Transformer‑Mamba Language Model. arXiv:2403.19887.
  18. Hu, E. J., Shen, Y., Wallis, P., et al. (2021). LoRA: Low‑Rank Adaptation of Large Language Models. arXiv:2106.09685.
  19. Ouyang, L., Wu, J., Jiang, X., et al. (2022). Training language models to follow instructions with human feedback. OpenReview.
  20. Kwon, W., Li, Z., Zhuang, S., et al. (2023). Efficient Memory Management for LLM Serving with PagedAttention. arXiv:2309.06180.