Трансформер (архитектура)
| Тип | архитектура нейронной сети |
|---|---|
| Авторы | Ашиш Васвани и др. (Google Brain, Google Research) |
| Публикация | июнь 2017, «Attention Is All You Need» (NeurIPS 2017) |
| Ключевая идея | механизм самовнимания (self-attention) вместо рекуррентности |
| Варианты | энкодер (BERT), декодер (GPT, Claude, Llama), энкодер-декодер (T5) |
| Сложность внимания | квадратичная по длине последовательности |
| Применение | языковые модели, перевод, зрение (ViT), звук, мультимодальные модели |
Трансформер (англ. Transformer) — архитектура нейронной сети для обработки последовательностей, в основе которой лежит механизм внимания (attention): каждый элемент последовательности напрямую «смотрит» на все остальные и решает, какие из них важны для его представления. Архитектура предложена исследователями Google в 2017 году в статье «Attention Is All You Need»[1] и стала фундаментом почти всех современных больших языковых моделей — GPT, Claude, Gemini, Llama, — а также моделей для изображений, звука и биологии.
Предыстория
До трансформеров последовательности обрабатывали рекуррентными сетями (RNN, LSTM): они читают текст слово за словом, передавая состояние дальше. У этого подхода два недостатка: вычисления нельзя распараллелить по длине текста, а информация о далёких словах постепенно «размывается». В 2014–2015 годах к рекуррентным моделям перевода добавили механизм внимания, позволявший заглядывать в любое место исходной фразы. Авторы трансформера пошли дальше и полностью отказались от рекуррентности, оставив только внимание. Модель обучалась быстрее и превзошла лучшие системы машинного перевода того времени.
Механизм внимания
Каждый входной элемент — токен, представленный вектором-эмбеддингом, — преобразуется в три вектора: запрос (query), ключ (key) и значение (value). Внимание вычисляется по формуле:
Attention(Q, K, V) = softmax(Q·Kᵀ / √d_k) · V
Скалярное произведение запроса одного токена с ключами всех токенов показывает, насколько они релевантны друг другу; softmax превращает оценки в веса, а результат — взвешенная сумма значений. Деление на √d_k стабилизирует обучение. Так слово «он» в предложении может получить большую часть информации от существительного, к которому относится, даже если оно стоит далеко.
Многоголовое внимание (multi-head attention) выполняет несколько таких вычислений параллельно с разными проекциями: одни «головы» следят за синтаксисом, другие — за смысловыми связями или позициями.
Устройство блока
Трансформер — стопка одинаковых блоков. Каждый блок содержит:
- слой многоголового самовнимания;
- полносвязную сеть (feed-forward), применяемую к каждому токену отдельно;
- остаточные связи (вход прибавляется к выходу) и нормализацию слоя, которые позволяют обучать очень глубокие стопки.
Поскольку внимание само по себе не учитывает порядок, к токенам добавляют информацию о позиции. В оригинале это были синусоидальные позиционные кодировки; в современных моделях чаще используются вращательные позиционные эмбеддинги (RoPE).[6] В базовой модели 2017 года было 6 блоков энкодера и 6 блоков декодера с размерностью 512 и 8 головами внимания; современные LLM содержат десятки и сотни блоков и миллиарды параметров.
Три семейства
| Вариант | Как работает | Примеры | Для чего |
|---|---|---|---|
| Только энкодер | внимание во все стороны, видит весь текст сразу | BERT[2], модели эмбеддингов | классификация, поиск, векторный поиск |
| Только декодер | каузальное внимание: токен видит только предыдущие | GPT[3], Claude, Llama | генерация текста, чат, код |
| Энкодер-декодер | энкодер читает вход, декодер генерирует выход | исходный трансформер, T5 | перевод, суммаризация |
Языковые модели-декодеры генерируют текст по одному токену: модель предсказывает распределение вероятностей следующего токена, выбранный токен добавляется к входу, и шаг повторяется. Чтобы не пересчитывать внимание для уже обработанных токенов, ключи и значения сохраняются в KV-кэше; на этом же основано кэширование промптов.
Ограничения и улучшения
- Квадратичная сложность. Внимание сравнивает каждый токен с каждым, поэтому вычисления и память растут как квадрат длины. Это главный фактор, ограничивающий контекстное окно. FlashAttention ускоряет точное внимание за счёт эффективной работы с памятью GPU;[5] существуют и разреженные и линейные приближения.
- Смесь экспертов (Mixture of Experts) активирует для каждого токена лишь часть полносвязных подсетей, увеличивая число параметров без пропорционального роста вычислений.
- Группированное внимание (GQA, MQA) уменьшает размер KV-кэша при генерации.
За пределами текста
Vision Transformer (2020) разбивает изображение на квадратные фрагменты и обрабатывает их как токены.[7] Тот же принцип применяется к звуку, видео, белковым последовательностям и действиям роботов, а мультимодальные модели объединяют несколько типов данных в одной последовательности. Наглядное пошаговое объяснение архитектуры с иллюстрациями — «The Illustrated Transformer» Джея Аламмара.[4]
См. также
Источники
- A. Vaswani et al. — Attention Is All You Need (2017)
- J. Devlin et al. — BERT: Pre-training of Deep Bidirectional Transformers (2018)
- A. Radford et al. — Improving Language Understanding by Generative Pre-Training (OpenAI, 2018)
- Jay Alammar — The Illustrated Transformer
- T. Dao et al. — FlashAttention (2022)
- J. Su et al. — RoFormer: Enhanced Transformer with Rotary Position Embedding (2021)
- A. Dosovitskiy et al. — An Image is Worth 16x16 Words: Transformers for Image Recognition (2020)