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.