Архитектура Transformer

Материал из Systems analysis wiki
Перейти к навигации Перейти к поиску

Архитектура Transformer — это архитектура нейронной сети, представленная в 2017 году исследователями Google в статье «Attention Is All You Need»[1]. Она произвела революцию в области обработки естественного языка (NLP) и стала основой для большинства современных больших языковых моделей (LLM), таких как BERT, GPT и Gemini. Ключевой инновацией Transformer является механизм самовнимания (self‑attention), который позволяет модели взвешивать важность различных частей входных данных и обрабатывать последовательности параллельно, отказавшись от рекуррентности, свойственной RNN и LSTM.

Исторический контекст и предпосылки

До 2017 года доминирующими архитектурами для обработки последовательных данных, таких как текст, были рекуррентные нейронные сети (RNN) и их усовершенствованный вариант — сети с долгой краткосрочной памятью (LSTM).

Проблемы RNN/LSTM, адресованные Трансформером

  • Ограничения последовательной обработки: RNN и LSTM обрабатывают данные токен за токеном, что исключает внутри‑последовательный параллелизм и замедляет обучение на больших объёмах данных.
  • Проблема исчезающих и взрывающихся градиентов: В длинных последовательностях градиенты, распространяемые в обратную сторону через множество шагов, могут либо затухать, либо расти, что затрудняет обучение долгосрочным зависимостям.
  • Долгосрочные зависимости: Информация из начала последовательности может теряться к её концу.

Подход Transformer — это полный отказ от рекуррентности в пользу механизма внимания. Он обеспечивает константную длину пути зависимостей между любыми позициями (O(1)), что облегчает моделирование дальних зависимостей, при том что базовая реализация самовнимания имеет квадратичную вычислительную сложность по длине последовательности (O(n2))[1][2]. Проблема затухания/взрыва градиентов не «исчезает», а смягчается за счёт резидуальных соединений, LayerNorm и режима обучения; в современных реализациях часто применяется вариант Pre‑LayerNorm (Pre‑LN) как более стабильный при обучении[3].

Архитектура и ключевые компоненты

Оригинальная архитектура Transformer состоит из двух основных частей: энкодера и декодера. Оба компонента — это стеки идентичных слоёв (N=6 в оригинальной статье)[1].

  • Структура слоя энкодера: (1) многоголовое самовнимание (MHA), (2) позиционно‑поэлементная FFN; каждый подслой окружён резидуальным соединением и LayerNorm[1].
  • Структура слоя декодера: (1) маскированное самовнимание (каузальная маска запрещает доступ к будущим позициям), (2) cross‑attention к выходам энкодера, (3) FFN — также с резидуалами и 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).

Варианты для ускорения инференса:

  • MQA (Multi‑Query Attention): все головы разделяют один ключ/значение → существенно снижается объём и трафик KV‑кэша при декодировании[4].
  • GQA (Grouped‑Query Attention): компромисс между MHA и MQA — несколько групп голов разделяют K/V; качество близко к MHA при скорости MQA[5].

Позиционное кодирование (Positional Encoding)

Поскольку self‑attention инвариантен к порядку токенов, к входным эмбеддингам добавляются позиционные кодировки.

  • Оригинальные синусоидальные кодировки (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, резидуалы и нормализация

Каждый слой энкодера и декодера, помимо внимания, содержит позиционно‑поэлементную FFN:

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

Вокруг каждого подслоя используются остаточные соединения (residual connections) и Layer Normalization: LayerNorm(x+Sublayer(x)). В оригинале применялся вариант Post‑LN[1]; в современных LLM часто используют Pre‑LN для лучшей стабильности обучения и меньшей зависимости от долгого warm‑up[3].

Эволюция и современные варианты

Ранние методы, основанные на рекуррентных нейронных сетях (RNN) и их продвинутых вариантах, таких как LSTM, обрабатывали текст последовательно, по одному токену за раз. Хотя такой подход интуитивно соответствовал структуре языка, он создавал значительное ограничение: затруднял параллельные вычисления и усложнял обнаружение зависимостей между элементами, которые находились далеко друг от друга в тексте. В 2017 году группа исследователей из Google представила статью под названием «Attention Is All You Need». В ней они описали новую архитектуру — «Трансформер» (Transformer). Эта модель впервые полностью отказалась от использования рекуррентных нейронных сетей, заменив их механизмом «внимания» (attention). Главное новшество заключалось в том, что механизм внимания позволял Трансформеру оценивать важность каждого слова во входной последовательности для генерации соответствующего слова в выходной. При этом модель могла обрабатывать все слова одновременно. Эта способность к параллельной обработке сделала возможным обучение гораздо более крупных моделей на огромных объемах данных. В результате появились современные большие языковые модели (LLM).

Архитектура Transformer послужила основой для множества моделей, условно делимых на три класса.

1. Модели только‑энкодер (Encoder‑only)

  • Пример: BERT (и RoBERTa, ALBERT)[8].
  • Принцип: предобучение по задаче маскированного языкового моделирования (MLM) с двунаправленным контекстом.
  • Применение: задачи понимания (классификация, NER и т. п.).

2. Модели только‑декодер (Decoder‑only)

  • Пример: серия GPT (GPT‑1/2/3)[9][10], LLaMA[11], Claude.
  • Принцип: каузальное языковое моделирование (CLM) — предсказание следующего токена; вниманию накладывается каузальная маска[1].
  • Применение: генерация текста, диалоги, код.

3. Модели энкодер‑декодер (Encoder‑decoder)

  • Пример: оригинальный Transformer, T5, BART[1][12].
  • Принцип: энкодер строит представление входа, декодер генерирует выход и использует cross‑attention к признакам энкодера[1].
  • Применение: seq2seq‑задачи (перевод, суммаризация и др.).

4. Мультимодальные и альтернативные архитектуры

  • Vision Transformer (ViT) — адаптация к изображениям (разбиение на патчи)[13]; Swin Transformer — иерархическая модель со shifted windows[14].
  • Альтернативы на длинных последовательностях:
    • Mamba — селективные модели пространства состояний (SSM) с линейной сложностью[15].
    • RWKV — RNN‑подобная архитектура с параллельным обучением и линейной сложностью инференса[16].
    • Гибриды (напр., Jamba): чередуют блоки Transformer и Mamba; иногда дополняются MoE[17].

Техники обучения и оптимизации

Эффективность Transformer тесно связана с техникой обучения и инфраструктурой.

  • Стратегии предобучения: CLM и MLM; также контрастивные и денойзинговые цели (ELECTRA, T5)[12].
  • Техники дообучения (Fine‑tuning):
  • Выравнивание поведения: RLHF — обучение с подкреплением на основе обратной связи человека[19].
  • Системные оптимизации инференса: PagedAttention/vLLM повышают пропускную способность сервинга за счёт страничного управления KV‑кэшем; особенно полезно при длинных последовательностях и больших батчах[20].

Ссылки

Литература

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