Transformer architecture — معماری Transformer

From Systems analysis Wiki
Jump to navigation Jump to search

معماری Transformer — معماری شبکه عصبی است که در سال ۲۰۱۷ توسط پژوهشگران Google در مقاله‌ای با عنوان «Attention Is All You Need» معرفی شد[1]. این معماری انقلابی در حوزه پردازش زبان طبیعی (NLP) ایجاد کرد و به پایه اکثر مدل‌های زبانی بزرگ (LLM) مدرن، مانند BERT، GPT و Gemini، تبدیل شد. نوآوری کلیدی Transformer مکانیزم self‑attention است که به مدل اجازه می‌دهد اهمیت بخش‌های مختلف داده‌های ورودی را سنجیده و دنباله‌ها را به‌صورت موازی پردازش کند، و از تکرار (recurrence) مرسوم در RNN و LSTM صرف‌نظر نماید.

زمینه تاریخی و پیش‌زمینه‌ها

پیش از سال ۲۰۱۷، معماری‌های غالب برای پردازش داده‌های دنباله‌ای مانند متن، شبکه‌های عصبی بازگشتی (RNN) و نوع پیشرفته آن‌ها — شبکه‌های حافظه کوتاه‌مدت طولانی (LSTM) — بودند.

مشکلات RNN/LSTM که Transformer به آن‌ها پرداخت

  • محدودیت‌های پردازش ترتیبی: RNN و LSTM داده‌ها را token به token پردازش می‌کنند، که موازی‌سازی درون‌دنباله‌ای را ناممکن ساخته و آموزش بر حجم داده‌های بزرگ را کند می‌کند.
  • مشکل محو شدن و انفجار گرادیان: در دنباله‌های طولانی، گرادیان‌هایی که از طریق گام‌های متعدد به عقب منتشر می‌شوند ممکن است یا محو شوند یا رشد کنند، که یادگیری وابستگی‌های بلندمدت را دشوار می‌سازد.
  • وابستگی‌های بلندمدت: اطلاعات از ابتدای دنباله ممکن است تا انتهای آن از دست برود.

رویکرد Transformer — کنار گذاشتن کامل تکرار (recurrence) به نفع مکانیزم توجه است. این رویکرد طول مسیر ثابت وابستگی‌ها را بین هر دو موقعیت فراهم می‌کند (O(1))، که مدل‌سازی وابستگی‌های دوردست را آسان‌تر می‌نماید، در حالی که پیاده‌سازی پایه self-attention دارای پیچیدگی محاسباتی درجه دوم نسبت به طول دنباله است (O(n2))[1][2]. مشکل محو/انفجار گرادیان «از بین نمی‌رود»، بلکه از طریق اتصالات residual، LayerNorm و رژیم آموزش کاهش می‌یابد؛ در پیاده‌سازی‌های مدرن، اغلب از نوع Pre‑LayerNorm (Pre‑LN) به‌عنوان روشی پایدارتر در آموزش استفاده می‌شود[3].

معماری و اجزای کلیدی

معماری اصلی Transformer از دو بخش اصلی تشکیل شده است: encoder و decoder. هر دو مؤلفه، پشته‌هایی از لایه‌های یکسان هستند (N=6 در مقاله اصلی)[1].

  • ساختار لایه encoder: (۱) multi-head self-attention (MHA)، (۲) FFN موضعی-عنصربه‌عنصر؛ هر زیرلایه با اتصال residual و LayerNorm احاطه شده است[1].
  • ساختار لایه decoder: (۱) self-attention ماسک‌دار (ماسک علّی دسترسی به موقعیت‌های آینده را ممنوع می‌کند)، (۲) cross‑attention به خروجی‌های encoder، (۳) FFN — نیز با residual‌ها و LayerNorm[1].

مکانیزم توجه و Self‑Attention

مکانیزم توجه، جمع وزن‌دار بردارهای مقدار (Value) را محاسبه می‌کند، جایی که وزن‌ها توسط میزان سازگاری کلیدها (Key) با پرس‌وجوها (Query) تعیین می‌شوند. در Transformer از Scaled Dot‑Product Attention (توجه حاصل‌ضرب نقطه‌ای مقیاس‌بندی‌شده) استفاده می‌شود:

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

جایی که dk بُعد کلیدها/پرس‌وجوها است؛ تقسیم بر dk از اشباع softmax جلوگیری می‌کند[1]. هنگامی که Q، K و V از همان دنباله حاصل می‌شوند، این مکانیزم self‑attention نامیده می‌شود.

Multi‑Head Attention (توجه چندسری)

به‌جای یک مجموعه ماتریس (WQ,WK,WV)، از h «سر» موازی استفاده می‌شود که هر کدام Q,K,V را به زیرفضاهایی با بُعد کوچک‌تر تصویر می‌کنند، به‌طور مستقل توجه را محاسبه کرده، سپس نتایج الحاق شده و تصویر داده می‌شوند[1]:

MultiHead(Q,K,V)=Concat(head1,,headh)WO,где headi=Attention(QWiQ,KWiK,VWiV).

گونه‌ها برای تسریع inference:

  • MQA (Multi‑Query Attention): همه سرها یک کلید/مقدار مشترک دارند ← حجم و ترافیک KV‑cache در هنگام decoding به‌طور چشمگیری کاهش می‌یابد[4].
  • GQA (Grouped‑Query Attention): مصالحه‌ای بین MHA و MQA — چندین گروه از سرها K/V مشترک دارند؛ کیفیت نزدیک به MHA با سرعت MQA[5].

Positional Encoding (کدگذاری موقعیتی)

از آنجا که self-attention نسبت به ترتیب token‌ها بی‌تفاوت است، کدگذاری‌های موقعیتی به embedding‌های ورودی اضافه می‌شوند.

  • کدگذاری‌های سینوسی اصلی (PE) از[1]:
PE(pos,2i)=sin(pos/100002i/dmodel),PE(pos,2i+1)=cos(pos/100002i/dmodel).
  • گونه‌های نسبی/دورانی مدرن:
    • RoPE (Rotary Position Embeddings) جابجایی‌های نسبی را از طریق دوران بردارهای Q/K کدگذاری می‌کند؛ در تعدادی از LLM‌های مدرن به کار می‌رود[6].
    • ALiBi جریمه خطی در امتیازات توجه وارد می‌کند که برون‌یابی به طول‌های بیشتر از آموزش را بهبود می‌بخشد[7].

FFN عنصربه‌عنصر، residual‌ها و نرمال‌سازی

هر لایه encoder و decoder، علاوه بر توجه، حاوی یک FFN موضعی-عنصربه‌عنصر است:

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

در اطراف هر زیرلایه از اتصالات residual و Layer Normalization استفاده می‌شود: LayerNorm(x+Sublayer(x)). در نسخه اصلی، گونه Post‑LN به کار رفته است[1]؛ در LLM‌های مدرن اغلب از Pre‑LN برای پایداری بهتر آموزش و وابستگی کمتر به warm‑up طولانی استفاده می‌شود[3].

تکامل و گونه‌های مدرن

روش‌های اولیه مبتنی بر شبکه‌های عصبی بازگشتی (RNN) و گونه‌های پیشرفته آن‌ها مانند LSTM، متن را به‌صورت ترتیبی، یک token در هر بار، پردازش می‌کردند. هرچند این رویکرد به‌طور شهودی با ساختار زبان مطابقت داشت، اما محدودیت قابل‌توجهی ایجاد می‌کرد: محاسبات موازی را دشوار می‌ساخت و شناسایی وابستگی‌ها بین عناصری که در متن از هم فاصله زیادی داشتند را پیچیده می‌کرد. در سال ۲۰۱۷، گروهی از پژوهشگران Google مقاله‌ای با عنوان «Attention Is All You Need» ارائه دادند. در آن مقاله، آن‌ها معماری جدیدی — «Transformer» — را توصیف کردند. این مدل برای اولین بار به‌طور کامل از استفاده از شبکه‌های عصبی بازگشتی صرف‌نظر کرد و آن‌ها را با مکانیزم «توجه» (attention) جایگزین نمود. نوآوری اصلی در این بود که مکانیزم توجه به Transformer اجازه می‌داد اهمیت هر کلمه در دنباله ورودی برای تولید کلمه مربوطه در خروجی را ارزیابی کند. در عین حال، مدل می‌توانست همه کلمات را به‌طور همزمان پردازش کند. این توانایی پردازش موازی، آموزش مدل‌های بسیار بزرگ‌تر بر روی حجم عظیمی از داده‌ها را ممکن ساخت. در نتیجه، مدل‌های زبانی بزرگ (LLM) مدرن پدیدار شدند.

معماری Transformer پایه‌ای برای مدل‌های بسیاری شد که به‌طور تقریبی به سه دسته تقسیم می‌شوند.

۱. مدل‌های فقط‑encoder (Encoder‑only)

  • مثال: BERT (و RoBERTa، ALBERT)[8].
  • اصل: پیش‌آموزش بر اساس وظیفه مدل‌سازی زبانی ماسک‌دار (MLM) با زمینه دوطرفه.
  • کاربرد: وظایف درک (طبقه‌بندی، NER و غیره).

۲. مدل‌های فقط‑decoder (Decoder‑only)

  • مثال: سری GPT (GPT‑1/2/3)[9][10]، LLaMA[11]، Claude.
  • اصل: مدل‌سازی زبانی علّی (CLM) — پیش‌بینی token بعدی؛ ماسک علّی بر توجه اعمال می‌شود[1].
  • کاربرد: تولید متن، گفتگو، کد.

۳. مدل‌های encoder‑decoder (Encoder‑decoder)

  • مثال: Transformer اصلی، T5، BART[1][12].
  • اصل: encoder بازنمایی ورودی را می‌سازد، decoder خروجی را تولید می‌کند و از cross‑attention به ویژگی‌های encoder استفاده می‌کند[1].
  • کاربرد: وظایف seq2seq (ترجمه، خلاصه‌سازی و غیره).

۴. معماری‌های چندوجهی و جایگزین

  • Vision Transformer (ViT) — انطباق با تصاویر (تقسیم به patch)[13]؛ Swin Transformer — مدل سلسله‌مراتبی با shifted windows[14].
  • جایگزین‌ها برای دنباله‌های طولانی:
    • Mamba — مدل‌های انتخابی فضای حالت (SSM) با پیچیدگی خطی[15].
    • RWKV — معماری شبیه RNN با آموزش موازی و پیچیدگی خطی inference[16].
    • ترکیب‌ها (مثلاً Jamba): بلوک‌های Transformer و Mamba را به تناوب می‌چینند؛ گاهی با MoE تکمیل می‌شوند[17].

روش‌های آموزش و بهینه‌سازی

کارایی Transformer ارتباط نزدیکی با روش آموزش و زیرساخت دارد.

  • استراتژی‌های پیش‌آموزش: CLM و MLM؛ همچنین اهداف contrastive و denoising (ELECTRA، T5)[12].
  • روش‌های fine-tuning:
    • fine-tuning کامل همه پارامترها.
    • fine-tuning کارآمد از نظر پارامتری (PEFT): LoRA adaptor‌های کم‌رتبه را با وزن‌های پایه منجمد معرفی می‌کند[18].
  • هم‌راستاسازی رفتار: RLHF — یادگیری تقویتی بر اساس بازخورد انسانی[19].
  • بهینه‌سازی‌های سیستمی inference: PagedAttention/vLLM توان عملیاتی سرویس را از طریق مدیریت صفحه‌بندی‌شده KV‑cache افزایش می‌دهد؛ به‌ویژه برای دنباله‌های طولانی و batch‌های بزرگ مفید است[20].

پیوندها

  • The Illustrated Transformer — توضیح بصری معماری Transformer

منابع

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

یادداشت‌ها

  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.