Архитектура Transformer¶
Архитектура Transformer — это тип архитектуры нейронных сетей, основанный исключительно на механизме внимания (attention) и отказавшийся от рекуррентных (RNN) и свёрточных (CNN) слоёв. Впервые предложена в 2017 году в статье «Attention Is All You Need» группой исследователей из Google Brain. Transformer стал основой для большинства современных моделей обработки естественного языка (NLP), включая BERT, GPT (все версии), T5, а также для моделей компьютерного зрения (Vision Transformer) и мультимодальных систем.
¶История
До появления Transformer доминирующими архитектурами для последовательностных задач (перевод, генерация текста) были рекуррентные нейронные сети (LSTM, GRU) и их варианты с механизмом внимания. Однако RNN обладали рядом недостатков: последовательная обработка данных не позволяла эффективно распараллеливать вычисления, а также возникали проблемы с запоминанием долгосрочных зависимостей (исчезающий градиент).
В 2017 году группа авторов (Ашок Васвани, Ноам Шазеер, Ники Пармар и др.) опубликовала статью, в которой предложила полностью отказаться от рекуррентности. Ключевой идеей стало использование механизма «самовнимания» (self-attention), который позволяет модели обрабатывать все элементы последовательности одновременно, устанавливая между ними весовые связи. Это кардинально ускорило обучение и улучшило качество на задачах машинного перевода.
В последующие годы архитектура Transformer была многократно модифицирована. Появились модели-кодировщики (BERT, 2018), модели-декодировщики (GPT, 2018) и модели «кодировщик-декодировщик» (T5, 2019). В 2020 году Vision Transformer (ViT) адаптировал архитектуру для задач компьютерного зрения, разбивая изображения на патчи и обрабатывая их как последовательность токенов.
¶Основные компоненты архитектуры
Transformer состоит из двух основных блоков: кодировщика (encoder) и декодировщика (decoder). В оригинальной статье для машинного перевода использовалась структура «кодировщик-декодировщик», однако в современных моделях часто применяется только один из блоков (например, в GPT — только декодировщик, в BERT — только кодировщик).
¶Механизм внимания (Attention)
Центральный элемент архитектуры. Механизм внимания позволяет модели для каждого элемента последовательности (токена) определить, на какие другие элементы следует «обратить внимание» при формировании его представления.
Формула Scaled Dot-Product Attention:
\[ \text{Attention}(Q, K, V) = \text{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right)V \]
Где:
- \(Q\) (Query) — запросы,
- \(K\) (Key) — ключи,
- \(V\) (Value) — значения.
- \(d_k\) — размерность ключей (используется для масштабирования, чтобы избежать слишком больших значений softmax).
Многоголовое внимание (Multi-Head Attention): вместо одного механизма внимания используется несколько параллельных «голов» (heads). Каждая голова обучается находить разные типы зависимостей (например, синтаксические, семантические, позиционные). Результаты всех голов конкатенируются и проходят через линейный слой.
¶Позиционное кодирование (Positional Encoding)
Поскольку Transformer обрабатывает все токены последовательности одновременно и не имеет встроенного понимания порядка (в отличие от RNN), в архитектуру добавляется информация о позиции токена. В оригинальной статье использовались синусоидальные функции разной частоты:
\[ PE_{(pos, 2i)} = \sin\left(\frac{pos}{10000^{2i/d_{model}}}\right) \] \[ PE_{(pos, 2i+1)} = \cos\left(\frac{pos}{10000^{2i/d_{model}}}\right) \]
Где \(pos\) — позиция токена, \(i\) — индекс измерения. В современных моделях часто используются обучаемые позиционные эмбеддинги (как в GPT) или относительные позиционные кодировки (как в T5).
¶Прямосвязная сеть (Feed-Forward Network, FFN)
После каждого блока внимания следует полносвязная нейронная сеть, состоящая из двух линейных преобразований с функцией активации (обычно ReLU или GELU). FFN применяется к каждому токену независимо:
\[ \text{FFN}(x) = \text{ReLU}(xW_1 + b_1)W_2 + b_2 \]
¶Нормализация слоя (Layer Normalization) и остаточные связи (Residual Connections)
Каждый подблок (внимание, FFN) окружён остаточным соединением (сложение входа и выхода подблока) и последующей нормализацией слоя. Это помогает стабилизировать обучение глубоких сетей. В оригинальной статье нормализация применялась после сложения (Post-LN), в современных моделях чаще используется Pre-LN (нормализация перед подблоком).
¶Архитектура кодировщика (Encoder)
Кодировщик состоит из \(N\) идентичных слоёв (в оригинале \(N=6\)). Каждый слой включает:
- Многоголовое самовнимание (self-attention) — каждый токен «внимает» всем токенам входной последовательности.
- Прямосвязную сеть (FFN).
- Остаточные связи и нормализацию слоя.
Кодировщик преобразует входную последовательность в набор скрытых представлений (контекстные эмбеддинги), которые затем используются декодировщиком.
¶Архитектура декодировщика (Decoder)
Декодировщик также состоит из \(N\) слоёв (в оригинале \(N=6\)), но его структура сложнее:
- Маскированное многоголовое самовнимание — каждый токен «внимает» только предыдущим токенам (маскирование будущих позиций), чтобы предотвратить «подглядывание» в будущее при генерации.
- Многоголовое внимание кодировщика-декодировщика (cross-attention) — запросы (Q) берутся из предыдущего слоя декодировщика, а ключи (K) и значения (V) — из выходных данных кодировщика. Это позволяет декодировщику «смотреть» на исходную последовательность.
- Прямосвязная сеть (FFN).
- Остаточные связи и нормализация слоя.
¶Разновидности архитектур на основе Transformer
¶Encoder-only (Только кодировщик)
Используются для задач понимания текста: классификация, извлечение сущностей, анализ тональности. Пример: BERT (Bidirectional Encoder Representations from Transformers). Модель обучается на задачах маскированного языка (MLM) и предсказания следующего предложения (NSP).
¶Decoder-only (Только декодировщик)
Используются для генерации текста. Пример: GPT (Generative Pre-trained Transformer). Модель обучается на задаче предсказания следующего токена (авторегрессия). В архитектуре отсутствует cross-attention, так как нет кодировщика.
¶Encoder-decoder (Кодировщик-декодировщик)
Используются для задач, требующих преобразования одной последовательности в другую: машинный перевод, суммаризация, вопросно-ответные системы. Пример: T5 (Text-to-Text Transfer Transformer), BART.
¶Применение
Архитектура Transformer применяется в широком спектре задач:
- Обработка естественного языка: машинный перевод, генерация текста, анализ тональности, извлечение информации, чат-боты.
- Компьютерное зрение: классификация изображений, детекция объектов, сегментация (Vision Transformer, DETR).
- Мультимодальные модели: объединение текста и изображений (CLIP, DALL-E, Flamingo).
- Биоинформатика: анализ последовательностей ДНК и белков (AlphaFold, ESM-2).
- Аудио: распознавание речи, синтез речи (Whisper, Wave2Vec 2.0).
¶Преимущества и недостатки
Преимущества:
- Высокая параллелизуемость вычислений (в отличие от RNN).
- Способность моделировать долгосрочные зависимости (за счёт прямого внимания между всеми парами токенов).
- Масштабируемость — увеличение количества параметров и данных приводит к устойчивому росту качества (закон масштабирования).
Недостатки:
- Квадратичная вычислительная сложность относительно длины последовательности (\(O(n^2)\)) из-за механизма полного внимания.
- Большие требования к памяти (необходимость хранить матрицу внимания).
- Высокая стоимость обучения и инференса для больших моделей.
¶Интересные факты
- Название «Transformer» (трансформер) было выбрано авторами как метафора преобразования одной последовательности в другую.
- Оригинальная статья «Attention Is All You Need» стала одной из самых цитируемых в истории машинного обучения (более 100 000 цитирований на 2024 год).
- Модель GPT-3 (2020) содержала 175 миллиардов параметров, что стало возможным благодаря масштабированию архитектуры Transformer.
- В 2024 году архитектура Transformer продолжает оставаться доминирующей, несмотря на появление альтернативных подходов (State Space Models, Mamba).
¶Источники
- Vaswani, A., Shazeer, N., Parmar, N., et al. (2017). Attention Is All You Need. Advances in Neural Information Processing Systems.
- Devlin, J., Chang, M. W., Lee, K., et al. (2019). BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding. NAACL.
- Brown, T. B., Mann, B., Ryder, N., et al. (2020). Language Models are Few-Shot Learners. NeurIPS.
- Dosovitskiy, A., Beyer, L., Kolesnikov, A., et al. (2021). An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale. ICLR.
- Raffel, C., Shazeer, N., Roberts, A., et al. (2020). Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer. JMLR.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →


