Трансформер (модель)
Материал из MachineLearning.
| | Статья написана с использованием LLM Claude Sonnet 4 и проверена участником Emil Petrov 20:00, 14 июля 2026 (MSD)
Промпт приводится полностью в Обсуждение:Трансформер (модель) |
|
Трансфо́рмер (англ. Transformer) — архитектура нейронной сети, построенная исключительно на механизме внимания (attention) без рекуррентных и свёрточных слоёв. Предложена в 2017 году исследователями Google Brain и Google Research в работе «Attention Is All You Need»[1]. Трансформер стал базовой архитектурой современных больших языковых моделей (GPT, BERT, T5 и последователи) и проник в компьютерное зрение, биологию и диффузионную генерацию.
Интуитивно трансформер похож на редакционную коллегию: каждый токен одновременно «читает» все остальные и решает, на кого опереться при формировании своего нового представления. В отличие от RNN, где информация течёт строго слева направо через узкое «бутылочное горлышко» скрытого состояния, здесь все связи доступны сразу — это и даёт параллелизм, и снимает проблему длинных зависимостей.
Предпосылки и мотивировка
До 2017 года для последовательностей (перевод, суммаризация, речь) доминировали рекуррентные сети — LSTM и GRU. Они обрабатывают вход по шагам: на шаге модель получает токен
и скрытое состояние
. Это порождает две принципиальные проблемы.
Последовательный характер вычислений. Шаг нельзя начать, пока не готов шаг
. На GPU/TPU это означает низкую утилизацию: матричные ядра простаивают, пока «тянется» цепочка по времени. Масштабирование на длинные тексты и большие корпуса становится дорогим не столько из‑за числа параметров, сколько из‑за невозможности распараллелить временную ось.
Затухание и размывание сигнала. Даже с ячейками LSTM информация с ранних позиций плохо доходит до поздних: градиенты затухают, а скрытое состояние конечной размерности вынуждено «сжимать» всю историю. Механизм внимания Bahdanau (2014) частично снял вторую проблему, дав декодеру прямой доступ к каждому состоянию энкодера, но сам энкодер и декодер оставались рекуррентными.
Трансформер сделал радикальный шаг: убрал рекуррентность полностью и построил и кодирование, и декодирование на внимании. Цена — квадратичная сложность по длине последовательности
; выигрыш — полный параллелизм по позициям и прямые пути длины
между любыми двумя токенами.
Архитектура
Классический трансформер — энкодер-декодерная модель для машинного перевода. Ниже — блоки, из которых она собрана.
Входное представление и позиционное кодирование
Последовательность токенов отображается в матрицу встраиваний
. Само внимание перестановочно инвариантно: без явной информации о порядке модель не отличит «кот съел мышь» от «мышь съела кот». Поэтому к встраиваниям прибавляют позиционное кодирование (positional encoding).
В оригинале — фиксированные синусоиды:
Разные частоты позволяют модели выражать относительные смещения через линейные комбинации; в теории это помогает обобщаться на длины, не встречавшиеся при обучении. Позже широко использовали обучаемые позиционные эмбеддинги, а в современных LLM — вращающиеся кодировки RoPE и относительные схемы ALiBi, лучше переносящиеся на длинный контекст.
Масштабированное скалярное внимание и многоголовость
Центральный блок — многоголовое внимание (multi-head attention). Для одной головы с запросами , ключами
и значениями
:
Масштабирование на удерживает дисперсию скалярных произведений порядка единицы и не даёт softmax «схлопнуться» в one-hot при большой
(подробнее — в Механизм внимания).
Многоголовая версия запускает независимых вниманий и склеивает результаты:
Аналогия: несколько экспертов читают один и тот же абзац — один следит за синтаксисом, другой за кореференцией, третий за тематическими связями; редактор () сводит их мнения. Эмпирически головы действительно специализируются, хотя интерпретация весов внимания как «объяснения» решения модели ограничена (см. критику в статье про внимание).
Блок энкодера и декодера
Слой энкодера содержит два подслоя:
- self-attention — каждый токен смотрит на все токены входа;
- позиционно-независимая FFN: два линейных преобразования с нелинейностью (в оригинале ReLU; позже часто GeLU/SwiGLU):
Вокруг каждого подслоя — residual connection и layer normalization:
(В современных реализациях часто Pre-LN: нормализация перед подслоем — так стабильнее глубокие стеки.)
Слой декодера добавляет третий подслой — кросс-внимание: запросы из декодера, ключи и значения из выходов энкодера. Self-attention декодера маскируется (causal / masked attention): при генерации позиции модель не видит токены с индексом
— иначе обучение «подглядывало» бы в будущее и инференс был бы некорректным.
Параметры модели Base и Big
В работе Vaswani et al. приведены две конфигурации:
| Параметр | Base | Big |
|---|---|---|
| Число слоёв | 6 / 6 | 6 / 6 |
| | 512 | 1024 |
| Число голов | 8 | 16 |
| | 64 | 64 |
| | 2048 | 4096 |
| Dropout | 0,1 | 0,3 |
| Параметры (прибл.) | ~65 млн | ~213 млн |
Уже Base превзошёл лучшие на тот момент ансамбли на WMT 2014 Eng→Ger; Big установил новый SOTA при меньшем времени обучения, чем предшественники на RNN.
Обучение
Оптимизатор — Adam (,
,
) со специальным планировщиком скорости обучения:
Сначала линейный warmup (в оригинале 4000 шагов), затем спад как . Дополнительно — dropout на выходах подслоёв и на внимании, а также сглаживание меток (label smoothing) с
.
Для перевода использовали byte-pair encoding и shared embeddings между энкодером, декодером и softmax. Современные LLM наследуют ту же логику (AdamW, warmup + cosine/decay, mixed precision), но масштабируют данные и вычисления на порядки выше и часто добавляют этапы instruction tuning и RLHF.
Варианты архитектуры
С 2017 года трансформер породил семейство специализированных схем.
- Только энкодер — BERT[1], RoBERTa. Двунаправленный контекст; предобучение маскированным языковым моделированием (MLM). Оптимальны для классификации, NER, извлечения признаков — «понимания» текста.
- Только декодер — GPT, GPT-2/3/4 и большинство современных LLM. Авторегрессия: предсказание следующего токена при каузальной маске. Естественно масштабируется и подходит для генерации и in-context learning.
- Энкодер-декодер — T5, BART. Унифицированный формат «текст → текст»: перевод, суммаризация, QA формулируются как генерация целевой строки.
- Эффективные трансформеры — Longformer, BigBird, Performer, FlashAttention: снижают или маскируют стоимость
, либо оптимизируют IO на GPU без приближения Softmax (см. Механизм внимания).
Отдельная линия — Mixture-of-Experts поверх FFN (Switch Transformer и далее): при инференсе активируется лишь доля экспертов, что повышает ёмкость при умеренном FLOPs.
Законы масштабирования
Kaplan et al.[1] показали, что потери языкового моделирования убывают степенным образом по числу параметров , объёму данных
и вычислительному бюджету
:
Позже Hoffmann et al. (Chinchilla)[1] уточнили оптимальное соотношение: при фиксированном FLOPs выгоднее обучать меньшую модель на большем числе токенов, чем «недоедать» данными гигантскую сеть. Эти законы объясняют, почему гонка параметров сменилась гонкой данных, качества корпусов и эффективности обучения — и почему архитектура трансформера оказалась удобным «носителем» масштабирования.
Применения
Трансформер вышел далеко за NLP:
- Компьютерное зрение — Vision Transformer (ViT)[1] режет изображение на патчи и обрабатывает их как токены; при достаточном масштабе данных превосходит CNN.
- Генерация изображений — в диффузионных моделях (Stable Diffusion, DiT, DALL-E) трансформер или блоки внимания служат денойзером и связывают текст с визуальными признаками через кросс-внимание.
- Структура белков — AlphaFold2 использует attention-блоки (Evoformer) для предсказания 3D-структуры; идея «все-со-всеми» связями переносится с языка на MSA и пространственные пары остатков.
- Мультимодальность и агенты — единый стек трансформера связывает текст, код, изображение и аудио; поверх него работают промпт-инжиниринг, RAG и инструменты.
Значение
«Attention Is All You Need» — одна из самых цитируемых работ в истории ML. Она не «изобрела» внимание, но показала, что внимания достаточно как единственного индуктивного смещения для последовательностей. Это открыло эпоху foundation models: одна предобученная архитектура адаптируется к задачам через дообучение, инструкции и промпты. Ограничения остаются — квадратичная память, чувствительность к качеству данных, слабая гарантия фактичности — но именно трансформер задал стандарт, относительно которого измеряют альтернативы (SSM/Mamba, гибриды, диффузионные языковые модели).
См. также
- Механизм внимания
- Большая языковая модель
- Нейросетевое встраивание
- Промпт-инжиниринг
- Диффузионная модель
- Обучение с подкреплением из обратной связи человека (RLHF)
- Рекуррентная нейронная сеть
- Метод обратного распространения ошибки
Примечания
Литература
- Vaswani A., Shazeer N., Parmar N., Uszkoreit J., Jones L., Gomez A. N., Kaiser Ł., Polosukhin I. Attention Is All You Need // Advances in Neural Information Processing Systems. — 2017. — Т. 30.
- Bahdanau D., Cho K., Bengio Y. Neural Machine Translation by Jointly Learning to Align and Translate // ICLR. — 2015.
- Devlin J., Chang M.-W., Lee K., Toutanova K. BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding // NAACL-HLT. — 2019.
- Radford A. et al. Language Models are Unsupervised Multitask Learners // OpenAI technical report. — 2019.
- Raffel C. et al. Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer // JMLR. — 2020. — Т. 21.
- Kaplan J., McCandlish S., Henighan T. et al. Scaling Laws for Neural Language Models // arXiv preprint. — 2020.
- Hoffmann J. et al. Training Compute-Optimal Large Language Models // NeurIPS. — 2022.
- Dosovitskiy A. et al. An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale // ICLR. — 2021.

