Архитектура трансформер: как работает модель¶
Архитектура трансформер — это тип нейронной сети, основанный на механизме самовнимания (self-attention) и не использующий рекуррентные или свёрточные слои для обработки последовательностей. Предложена в 2017 году в статье «Attention Is All You Need» группой исследователей Google. Архитектура стала базовой для большинства современных больших языковых моделей, систем машинного перевода и генерации изображений.
¶Основная идея
До появления трансформеров последовательности обрабатывались рекуррентными сетями (RNN, LSTM), которые читали данные по одному элементу и передавали скрытое состояние. Это ограничивало параллелизацию и затрудняло учёт дальних зависимостей. Трансформер обрабатывает всю последовательность сразу, а связи между элементами вычисляются через внимание.
¶Механизм самовнимания
Каждый элемент последовательности (токен) представляется вектором и преобразуется в три матрицы:
- Query (Q) — запрос;
- Key (K) — ключ;
- Value (V) — значение.
Внимание вычисляется по формуле:
`` Attention(Q, K, V) = softmax(QKᵀ / √d_k) · V ``
Скалярное произведение Q и K показывает, насколько один токен «релевантен» другому. Деление на корень из размерности стабилизирует градиенты, softmax превращает веса в вероятности, а результат — взвешенная сумма значений.
¶Многоголовое внимание
Одна операция внимания фиксирует лишь один тип связи. Поэтому применяют multi-head attention: несколько «голов» независимо вычисляют внимание в подпространствах меньшей размерности, после чего результаты конкатенируются и проецируются. Это позволяет модели улавливать разные типы зависимостей — синтаксические, семантические, позиционные.
¶Структура блока
Классический трансформер состоит из стека одинаковых блоков. Каждый блок содержит:
- Слой многоголового самовнимания;
- Слой прямой связи (feed-forward network) — два линейных преобразования с нелинейностью между ними;
- Остаточные связи (residual connections) и нормализацию слоя (layer normalization) вокруг каждого подблока.
Оригинальная модель включала энкодер (обрабатывает вход) и декодер (генерирует выход). В декодере дополнительно используется маскированное внимание, чтобы токен не «видел» будущие позиции.
¶Позиционное кодирование
Поскольку внимание не учитывает порядок элементов, к входным векторам добавляют позиционные кодировки — синусоидальные функции или обучаемые векторы. Без них модель воспринимала бы последовательность как неупорядоченное множество.
¶Варианты архитектуры
| Тип | Примеры | Особенность |
|---|---|---|
| Encoder-only | BERT | Понимание текста, классификация |
| Decoder-only | GPT, LLaMA | Генерация текста |
| Encoder-decoder | T5, оригинальный Transformer | Перевод, суммаризация |
¶Преимущества и ограничения
Преимущества: высокая параллелизуемость обучения, эффективный учёт дальних зависимостей, масштабируемость — качество растёт с увеличением числа параметров и данных.
Ограничения: квадратичная сложность внимания по длине последовательности (O(n²)), большой объём памяти и вычислений. Отсюда — исследования разреженного внимания, линейных аппроксимаций и методов вроде FlashAttention.
¶Применение
Помимо обработки языка, трансформеры применяются в компьютерном зрении (Vision Transformer), распознавании речи, биоинформатике (предсказание структуры белков) и мультимодальных системах, объединяющих текст, изображения и звук.
IRONLIVE — база данных и аналитика по компаниям России.
На главную IRONLIVE →