Трансформер (модель)
Материал из MachineLearning.
(Новая статья: архитектура трансформера, написана с помощью LLM Claude Sonnet 4) |
(Исправление формул LaTeX (String.raw), убрано дублирование имени) |
||
| Строка 1: | Строка 1: | ||
| - | {{well|Статья написана с использованием LLM '''Claude Sonnet 4''' и проверена участником | + | {{well|Статья написана с использованием LLM '''Claude Sonnet 4''' и проверена участником [[Участник:Emil Petrov|Emil Petrov]] 14:56, 16 июня 2026 (MSD) |
Промпт приводится полностью в [[Обсуждение:Трансформер (модель)]] | Промпт приводится полностью в [[Обсуждение:Трансформер (модель)]] | ||
}} | }} | ||
| Строка 21: | Строка 21: | ||
=== Входное представление === | === Входное представление === | ||
| - | Входная последовательность токенов <tex>x_1, ldots, x_n</tex> сначала преобразуется в матрицу векторов [[Нейросетевое встраивание|встраиваний]] <tex>X in mathbb{R}^{n | + | Входная последовательность токенов <tex>x_1, \ldots, x_n</tex> сначала преобразуется в матрицу векторов [[Нейросетевое встраивание|встраиваний]] <tex>X \in \mathbb{R}^{n \times d_{\text{model}}}</tex>. К ней прибавляется позиционное кодирование (англ. positional encoding) — детерминированный вектор, несущий информацию о позиции токена в последовательности: |
| - | :<tex> | + | :<tex>\text{PE}(pos, 2i) = \sin\!\left(\frac{pos}{10000^{2i/d_{\text{model}}}}\right), \quad \text{PE}(pos, 2i+1) = \cos\!\left(\frac{pos}{10000^{2i/d_{\text{model}}}}\right).</tex> |
| - | + | ||
| - | + | ||
| - | Такое синусоидальное кодирование позволяет модели обобщаться на последовательности большей длины, чем наблюдались при обучении | + | Такое синусоидальное кодирование позволяет модели обобщаться на последовательности большей длины, чем наблюдались при обучении. |
=== Механизм многоголового внимания === | === Механизм многоголового внимания === | ||
| Строка 33: | Строка 31: | ||
Центральный строительный блок — '''многоголовое внимание''' (multi-head attention). Для одной «головы» с запросами <tex>Q</tex>, ключами <tex>K</tex> и значениями <tex>V</tex> внимание вычисляется как: | Центральный строительный блок — '''многоголовое внимание''' (multi-head attention). Для одной «головы» с запросами <tex>Q</tex>, ключами <tex>K</tex> и значениями <tex>V</tex> внимание вычисляется как: | ||
| - | :<tex> | + | :<tex>\text{Attention}(Q, K, V) = \text{softmax}\!\left(\frac{QK^\top}{\sqrt{d_k}}\right) V.</tex> |
| - | + | ||
| - | Масштабирование на <tex>sqrt{d_k}</tex> предотвращает насыщение функции softmax при большой размерности. Многоголовая версия запускает <tex>h</tex> независимых операций внимания параллельно и конкатенирует результаты: | + | Масштабирование на <tex>\sqrt{d_k}</tex> предотвращает насыщение функции softmax при большой размерности. Многоголовая версия запускает <tex>h</tex> независимых операций внимания параллельно и конкатенирует результаты: |
| - | :<tex> | + | :<tex>\text{MultiHead}(Q, K, V) = \text{Concat}(\text{head}_1, \ldots, \text{head}_h)\, W^O,</tex> |
| - | где <tex> | + | где <tex>\text{head}_i = \text{Attention}(Q W_i^Q,\, K W_i^K,\, V W_i^V).</tex> |
Каждая голова может специализироваться на различных типах зависимостей: синтаксических, семантических, кореференциальных. | Каждая голова может специализироваться на различных типах зависимостей: синтаксических, семантических, кореференциальных. | ||
| Строка 52: | Строка 49: | ||
Вокруг каждого подслоя применяется остаточное соединение (residual connection) и нормализация слоя (layer normalization): | Вокруг каждого подслоя применяется остаточное соединение (residual connection) и нормализация слоя (layer normalization): | ||
| - | :<tex> | + | :<tex>\text{output} = \text{LayerNorm}(x + \text{Sublayer}(x)).</tex> |
Слой декодера добавляет третий подслой — '''кросс-внимание''' (cross-attention), в котором запросы поступают из декодера, а ключи и значения — из выходов энкодера. Self-attention в декодере маскируется (masked self-attention), чтобы при генерации токена <tex>t</tex> модель не видела токены с позиций <tex>> t</tex>. | Слой декодера добавляет третий подслой — '''кросс-внимание''' (cross-attention), в котором запросы поступают из декодера, а ключи и значения — из выходов энкодера. Self-attention в декодере маскируется (masked self-attention), чтобы при генерации токена <tex>t</tex> модель не видела токены с позиций <tex>> t</tex>. | ||
| - | === | + | === Параметры модели === |
Стандартный трансформер (модель Base) содержит: | Стандартный трансформер (модель Base) содержит: | ||
* <tex>N = 6</tex> слоёв энкодера и <tex>N = 6</tex> слоёв декодера; | * <tex>N = 6</tex> слоёв энкодера и <tex>N = 6</tex> слоёв декодера; | ||
| - | * <tex>d_{model} = 512</tex>, <tex>h = 8</tex> голов, <tex>d_k = d_v = 64</tex>; | + | * <tex>d_{\text{model}} = 512</tex>, <tex>h = 8</tex> голов, <tex>d_k = d_v = 64</tex>; |
* FFN с внутренней размерностью <tex>d_{ff} = 2048</tex>; | * FFN с внутренней размерностью <tex>d_{ff} = 2048</tex>; | ||
* итого ~65 млн параметров. | * итого ~65 млн параметров. | ||
| - | |||
| - | |||
== Обучение == | == Обучение == | ||
| - | Трансформер обучается методом [[Стохастический градиентный спуск|стохастического градиентного спуска]] с оптимизатором Adam. Авторы предложили специальный планировщик скорости обучения | + | Трансформер обучается методом [[Стохастический градиентный спуск|стохастического градиентного спуска]] с оптимизатором Adam. Авторы предложили специальный планировщик скорости обучения: |
| - | :<tex>lr = d_{model}^{-0.5} cdot min(step^{-0.5},; step cdot | + | :<tex>lr = d_{\text{model}}^{-0.5} \cdot \min\!\left(step^{-0.5},\; step \cdot warmup\_steps^{-1.5}\right).</tex> |
| - | Дополнительно применяются | + | Дополнительно применяются дропаут и сглаживание меток (label smoothing) с <tex>\varepsilon = 0{,}1</tex>. |
== Варианты архитектуры == | == Варианты архитектуры == | ||
| Строка 78: | Строка 73: | ||
С момента публикации оригинальной работы трансформер породил множество специализированных архитектур: | С момента публикации оригинальной работы трансформер породил множество специализированных архитектур: | ||
| - | * '''Только энкодер''' ( | + | * '''Только энкодер''' (BERT, RoBERTa) — оптимальны для задач понимания текста. Обучаются на маскированном языковом моделировании. |
| - | * '''Только декодер''' (GPT, | + | * '''Только декодер''' (GPT, GPT-2/3/4) — оптимальны для авторегрессионной генерации текста. |
| - | * '''Энкодер-декодер''' (T5, BART | + | * '''Энкодер-декодер''' (T5, BART) — универсальный формат «текст в текст», объединяющий задачи перевода, суммаризации, ответов на вопросы. |
| - | * '''Эффективные трансформеры''' (Longformer, BigBird, | + | * '''Эффективные трансформеры''' (Longformer, BigBird, FlashAttention) — снижают квадратичную сложность <tex>O(n^2)</tex> по длине последовательности. |
| - | == | + | == Законы масштабирования == |
| - | + | Законы масштабирования (scaling laws), установленные Kaplan et al.<ref name="kaplan2020">{{статья |автор=Kaplan J. et al. |заглавие=Scaling Laws for Neural Language Models |издание=arXiv preprint |год=2020 |ссылка=https://arxiv.org/abs/2001.08361}}</ref>, показывают, что потери на языковом моделировании убывают как степенная функция от числа параметров <tex>N</tex>, объёма данных <tex>D</tex> и вычислительного бюджета <tex>C</tex>: | |
| - | + | :<tex>L(N, D) \approx A \cdot N^{-\alpha} + B \cdot D^{-\beta} + L_\infty.</tex> | |
== Применения == | == Применения == | ||
| Строка 93: | Строка 88: | ||
Трансформер стал универсальной архитектурой, выходящей далеко за пределы NLP: | Трансформер стал универсальной архитектурой, выходящей далеко за пределы NLP: | ||
| - | * '''Компьютерное зрение''' — Vision Transformer (ViT) делит изображение на патчи и обрабатывает их как последовательность токенов | + | * '''Компьютерное зрение''' — Vision Transformer (ViT) делит изображение на патчи и обрабатывает их как последовательность токенов. |
| - | * '''Генерация изображений''' — [[Диффузионная модель|диффузионные модели]] (Stable Diffusion, DALL-E) используют трансформеры | + | * '''Генерация изображений''' — [[Диффузионная модель|диффузионные модели]] (Stable Diffusion, DALL-E) используют трансформеры как денойзер. |
| - | * ''' | + | * '''Предсказание структуры белков''' — AlphaFold2 применяет трансформеры для предсказания 3D-структуры белков. |
| - | + | ||
| - | == Значение | + | == Значение == |
| - | Трансформер является одной из наиболее цитируемых | + | Трансформер является одной из наиболее цитируемых статей в истории машинного обучения. Он инициировал эпоху [[Большая языковая модель|больших языковых моделей]], изменившую ландшафт искусственного интеллекта. Архитектура оказалась настолько универсальной, что её называют «foundation model» — фундаментом, на котором строятся специализированные системы через дообучение и [[Промпт-инжиниринг|инжиниринг промптов]]. |
== См. также == | == См. также == | ||
| Строка 106: | Строка 100: | ||
* [[Большая языковая модель]] | * [[Большая языковая модель]] | ||
* [[Нейросетевое встраивание]] | * [[Нейросетевое встраивание]] | ||
| - | |||
* [[Промпт-инжиниринг]] | * [[Промпт-инжиниринг]] | ||
* [[Диффузионная модель]] | * [[Диффузионная модель]] | ||
| Строка 120: | Строка 113: | ||
* {{статья |автор=Devlin J., Chang M.-W., Lee K., Toutanova K. |заглавие=BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding |издание=NAACL-HLT |год=2019 |ссылка=https://arxiv.org/abs/1810.04805}} | * {{статья |автор=Devlin J., Chang M.-W., Lee K., Toutanova K. |заглавие=BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding |издание=NAACL-HLT |год=2019 |ссылка=https://arxiv.org/abs/1810.04805}} | ||
* {{статья |автор=Dosovitskiy A. et al. |заглавие=An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale |издание=ICLR |год=2021 |ссылка=https://arxiv.org/abs/2010.11929}} | * {{статья |автор=Dosovitskiy A. et al. |заглавие=An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale |издание=ICLR |год=2021 |ссылка=https://arxiv.org/abs/2010.11929}} | ||
| - | |||
[[Категория:Машинное обучение]] | [[Категория:Машинное обучение]] | ||
[[Категория:Нейронные сети]] | [[Категория:Нейронные сети]] | ||
[[Категория:Обработка естественного языка]] | [[Категория:Обработка естественного языка]] | ||
Текущая версия
| | Статья написана с использованием LLM Claude Sonnet 4 и проверена участником Emil Petrov 14:56, 16 июня 2026 (MSD)
Промпт приводится полностью в Обсуждение:Трансформер (модель) |
|
Трансфо́рмер (англ. Transformer) — архитектура нейронной сети, основанная исключительно на механизме внимания (англ. attention mechanism) без использования рекуррентных или свёрточных слоёв. Впервые предложена в 2017 году исследователями Google Brain и Google Research в статье «Attention Is All You Need»[1]. Трансформер произвёл революцию в обработке естественного языка и стал основой большинства современных больших языковых моделей, включая GPT, BERT, T5 и их последователей.
Предпосылки и мотивировка
До появления трансформера доминирующими архитектурами для задач обработки последовательностей (перевод, суммаризация, распознавание речи) были рекуррентные нейронные сети (RNN) и их модификации — LSTM и GRU. Они обрабатывают входной текст пошагово: на каждом шаге модель получает текущий токен и скрытое состояние с предыдущего шага. Это порождает две ключевые проблемы:
- Последовательный характер вычислений — нельзя распараллелить обработку токенов, что ограничивает масштабирование на современных GPU и TPU.
- Затухание градиентов — при длинных последовательностях информация с ранних шагов плохо передаётся к поздним, несмотря на механизм ячеек памяти LSTM.
Механизм внимания частично решал вторую проблему, добавляя прямые связи из декодера к каждому токену кодировщика. Трансформер сделал радикальный шаг: отказался от рекуррентности полностью и построил всю архитектуру на внимании.
Архитектура
Классический трансформер имеет энкодер-декодерную структуру, использовавшуюся изначально для задачи машинного перевода.
Входное представление
Входная последовательность токенов сначала преобразуется в матрицу векторов встраиваний
. К ней прибавляется позиционное кодирование (англ. positional encoding) — детерминированный вектор, несущий информацию о позиции токена в последовательности:
Такое синусоидальное кодирование позволяет модели обобщаться на последовательности большей длины, чем наблюдались при обучении.
Механизм многоголового внимания
Центральный строительный блок — многоголовое внимание (multi-head attention). Для одной «головы» с запросами , ключами
и значениями
внимание вычисляется как:
Масштабирование на предотвращает насыщение функции softmax при большой размерности. Многоголовая версия запускает
независимых операций внимания параллельно и конкатенирует результаты:
где
Каждая голова может специализироваться на различных типах зависимостей: синтаксических, семантических, кореференциальных.
Блок энкодера и декодера
Один слой энкодера состоит из двух подслоёв:
- Многоголовое внимание (каждый токен «смотрит» на все остальные токены входа — self-attention).
- Позиционно-зависимая полносвязная сеть (feed-forward network, FFN) с двумя линейными преобразованиями и нелинейностью ReLU между ними.
Вокруг каждого подслоя применяется остаточное соединение (residual connection) и нормализация слоя (layer normalization):
Слой декодера добавляет третий подслой — кросс-внимание (cross-attention), в котором запросы поступают из декодера, а ключи и значения — из выходов энкодера. Self-attention в декодере маскируется (masked self-attention), чтобы при генерации токена модель не видела токены с позиций
.
Параметры модели
Стандартный трансформер (модель Base) содержит:
-
слоёв энкодера и
слоёв декодера;
-
,
голов,
;
- FFN с внутренней размерностью
;
- итого ~65 млн параметров.
Обучение
Трансформер обучается методом стохастического градиентного спуска с оптимизатором Adam. Авторы предложили специальный планировщик скорости обучения:
Дополнительно применяются дропаут и сглаживание меток (label smoothing) с .
Варианты архитектуры
С момента публикации оригинальной работы трансформер породил множество специализированных архитектур:
- Только энкодер (BERT, RoBERTa) — оптимальны для задач понимания текста. Обучаются на маскированном языковом моделировании.
- Только декодер (GPT, GPT-2/3/4) — оптимальны для авторегрессионной генерации текста.
- Энкодер-декодер (T5, BART) — универсальный формат «текст в текст», объединяющий задачи перевода, суммаризации, ответов на вопросы.
- Эффективные трансформеры (Longformer, BigBird, FlashAttention) — снижают квадратичную сложность
по длине последовательности.
Законы масштабирования
Законы масштабирования (scaling laws), установленные Kaplan et al.[1], показывают, что потери на языковом моделировании убывают как степенная функция от числа параметров , объёма данных
и вычислительного бюджета
:
Применения
Трансформер стал универсальной архитектурой, выходящей далеко за пределы NLP:
- Компьютерное зрение — Vision Transformer (ViT) делит изображение на патчи и обрабатывает их как последовательность токенов.
- Генерация изображений — диффузионные модели (Stable Diffusion, DALL-E) используют трансформеры как денойзер.
- Предсказание структуры белков — AlphaFold2 применяет трансформеры для предсказания 3D-структуры белков.
Значение
Трансформер является одной из наиболее цитируемых статей в истории машинного обучения. Он инициировал эпоху больших языковых моделей, изменившую ландшафт искусственного интеллекта. Архитектура оказалась настолько универсальной, что её называют «foundation model» — фундаментом, на котором строятся специализированные системы через дообучение и инжиниринг промптов.
См. также
- Механизм внимания
- Большая языковая модель
- Нейросетевое встраивание
- Промпт-инжиниринг
- Диффузионная модель
- Рекуррентная нейронная сеть
- Метод обратного распространения ошибки
Примечания
Литература
- 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.
- Kaplan J., McCandlish S., Henighan T. et al. Scaling Laws for Neural Language Models // arXiv preprint. — 2020.
- Devlin J., Chang M.-W., Lee K., Toutanova K. BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding // NAACL-HLT. — 2019.
- Dosovitskiy A. et al. An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale // ICLR. — 2021.

