Трансформер (модель)
Материал из MachineLearning.
(Исправление формул LaTeX (String.raw), убрано дублирование имени) |
(глубина, формулы, связность, второй промпт) |
||
| Строка 1: | Строка 1: | ||
| - | {{well|Статья написана с использованием LLM '''Claude Sonnet 4''' и проверена участником [[Участник:Emil Petrov|Emil Petrov]] | + | {{well|Статья написана с использованием LLM '''Claude Sonnet 4''' и проверена участником [[Участник:Emil Petrov|Emil Petrov]] 20:00, 14 июля 2026 (MSD) |
Промпт приводится полностью в [[Обсуждение:Трансформер (модель)]] | Промпт приводится полностью в [[Обсуждение:Трансформер (модель)]] | ||
}} | }} | ||
{{TOCright}} | {{TOCright}} | ||
| - | '''Трансфо́рмер''' (англ. Transformer) — архитектура [[Нейронная сеть|нейронной сети]], | + | '''Трансфо́рмер''' (англ. Transformer) — архитектура [[Нейронная сеть|нейронной сети]], построенная исключительно на [[Механизм внимания|механизме внимания]] (attention) без рекуррентных и свёрточных слоёв. Предложена в 2017 году исследователями Google Brain и Google Research в работе «Attention Is All You Need»<ref name="vaswani2017">{{статья |автор=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 |ссылка=https://arxiv.org/abs/1706.03762}}</ref>. Трансформер стал базовой архитектурой современных [[Большая языковая модель|больших языковых моделей]] (GPT, BERT, T5 и последователи) и проник в компьютерное зрение, биологию и [[Диффузионная модель|диффузионную генерацию]]. |
| + | |||
| + | Интуитивно трансформер похож на редакционную коллегию: каждый токен одновременно «читает» все остальные и решает, на кого опереться при формировании своего нового представления. В отличие от RNN, где информация течёт строго слева направо через узкое «бутылочное горлышко» скрытого состояния, здесь все связи доступны сразу — это и даёт параллелизм, и снимает проблему длинных зависимостей. | ||
== Предпосылки и мотивировка == | == Предпосылки и мотивировка == | ||
| - | До | + | До 2017 года для последовательностей (перевод, суммаризация, речь) доминировали [[Рекуррентная нейронная сеть|рекуррентные сети]] — LSTM и GRU. Они обрабатывают вход по шагам: на шаге <tex>t</tex> модель получает токен <tex>x_t</tex> и скрытое состояние <tex>h_{t-1}</tex>. Это порождает две принципиальные проблемы. |
| + | |||
| + | '''Последовательный характер вычислений.''' Шаг <tex>t</tex> нельзя начать, пока не готов шаг <tex>t-1</tex>. На GPU/TPU это означает низкую утилизацию: матричные ядра простаивают, пока «тянется» цепочка по времени. Масштабирование на длинные тексты и большие корпуса становится дорогим не столько из‑за числа параметров, сколько из‑за невозможности распараллелить временную ось. | ||
| - | + | '''Затухание и размывание сигнала.''' Даже с ячейками LSTM информация с ранних позиций плохо доходит до поздних: градиенты затухают, а скрытое состояние конечной размерности вынуждено «сжимать» всю историю. Механизм внимания Bahdanau (2014) частично снял вторую проблему, дав декодеру прямой доступ к каждому состоянию энкодера, но сам энкодер и декодер оставались рекуррентными. | |
| - | + | ||
| - | + | Трансформер сделал радикальный шаг: убрал рекуррентность полностью и построил и кодирование, и декодирование на внимании. Цена — квадратичная сложность <tex>O(n^2)</tex> по длине последовательности <tex>n</tex>; выигрыш — полный параллелизм по позициям и прямые пути длины <tex>O(1)</tex> между любыми двумя токенами. | |
== Архитектура == | == Архитектура == | ||
| - | Классический трансформер | + | Классический трансформер — энкодер-декодерная модель для машинного перевода. Ниже — блоки, из которых она собрана. |
| - | === Входное представление === | + | === Входное представление и позиционное кодирование === |
| - | + | Последовательность токенов <tex>x_1, \ldots, x_n</tex> отображается в матрицу [[Нейросетевое встраивание|встраиваний]] <tex>X \in \mathbb{R}^{n \times d_{\text{model}}}</tex>. Само внимание перестановочно инвариантно: без явной информации о порядке модель не отличит «кот съел мышь» от «мышь съела кот». Поэтому к встраиваниям прибавляют '''позиционное кодирование''' (positional encoding). | |
| + | |||
| + | В оригинале — фиксированные синусоиды: | ||
:<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> | :<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> | ||
| - | + | Разные частоты позволяют модели выражать относительные смещения через линейные комбинации; в теории это помогает обобщаться на длины, не встречавшиеся при обучении. Позже широко использовали обучаемые позиционные эмбеддинги, а в современных LLM — вращающиеся кодировки RoPE и относительные схемы ALiBi, лучше переносящиеся на длинный контекст. | |
| - | === | + | === Масштабированное скалярное внимание и многоголовость === |
| - | Центральный | + | Центральный блок — '''многоголовое внимание''' (multi-head attention). Для одной головы с запросами <tex>Q</tex>, ключами <tex>K</tex> и значениями <tex>V</tex>: |
:<tex>\text{Attention}(Q, K, V) = \text{softmax}\!\left(\frac{QK^\top}{\sqrt{d_k}}\right) V.</tex> | :<tex>\text{Attention}(Q, K, V) = \text{softmax}\!\left(\frac{QK^\top}{\sqrt{d_k}}\right) V.</tex> | ||
| - | Масштабирование на <tex>\sqrt{d_k}</tex> | + | Масштабирование на <tex>\sqrt{d_k}</tex> удерживает дисперсию скалярных произведений порядка единицы и не даёт softmax «схлопнуться» в one-hot при большой <tex>d_k</tex> (подробнее — в [[Механизм внимания]]). |
| + | |||
| + | Многоголовая версия запускает <tex>h</tex> независимых вниманий и склеивает результаты: | ||
:<tex>\text{MultiHead}(Q, K, V) = \text{Concat}(\text{head}_1, \ldots, \text{head}_h)\, W^O,</tex> | :<tex>\text{MultiHead}(Q, K, V) = \text{Concat}(\text{head}_1, \ldots, \text{head}_h)\, W^O,</tex> | ||
| - | + | :<tex>\text{head}_i = \text{Attention}(Q W_i^Q,\, K W_i^K,\, V W_i^V).</tex> | |
| - | + | Аналогия: несколько экспертов читают один и тот же абзац — один следит за синтаксисом, другой за кореференцией, третий за тематическими связями; редактор (<tex>W^O</tex>) сводит их мнения. Эмпирически головы действительно специализируются, хотя интерпретация весов внимания как «объяснения» решения модели ограничена (см. критику в статье про внимание). | |
=== Блок энкодера и декодера === | === Блок энкодера и декодера === | ||
| - | + | '''Слой энкодера''' содержит два подслоя: | |
| - | # | + | # self-attention — каждый токен смотрит на все токены входа; |
| - | # | + | # позиционно-независимая FFN: два линейных преобразования с нелинейностью (в оригинале ReLU; позже часто GeLU/SwiGLU): |
| - | + | :<tex>\text{FFN}(x) = \max(0, x W_1 + b_1)\, W_2 + b_2.</tex> | |
| - | : | + | Вокруг каждого подслоя — residual connection и layer normalization: |
| - | + | :<tex>\text{output} = \text{LayerNorm}\bigl(x + \text{Sublayer}(x)\bigr).</tex> | |
| - | + | (В современных реализациях часто Pre-LN: нормализация ''перед'' подслоем — так стабильнее глубокие стеки.) | |
| - | + | '''Слой декодера''' добавляет третий подслой — '''кросс-внимание''': запросы из декодера, ключи и значения из выходов энкодера. Self-attention декодера '''маскируется''' (causal / masked attention): при генерации позиции <tex>t</tex> модель не видит токены с индексом <tex>> t</tex> — иначе обучение «подглядывало» бы в будущее и инференс был бы некорректным. | |
| - | + | ||
| - | + | === Параметры модели Base и Big === | |
| - | + | ||
| - | + | В работе Vaswani et al. приведены две конфигурации: | |
| + | |||
| + | {| class="wikitable" | ||
| + | |- | ||
| + | ! Параметр !! Base !! Big | ||
| + | |- | ||
| + | | Число слоёв <tex>N</tex> (энкодер / декодер) || 6 / 6 || 6 / 6 | ||
| + | |- | ||
| + | | <tex>d_{\text{model}}</tex> || 512 || 1024 | ||
| + | |- | ||
| + | | Число голов <tex>h</tex> || 8 || 16 | ||
| + | |- | ||
| + | | <tex>d_k = d_v</tex> || 64 || 64 | ||
| + | |- | ||
| + | | <tex>d_{ff}</tex> || 2048 || 4096 | ||
| + | |- | ||
| + | | Dropout || 0,1 || 0,3 | ||
| + | |- | ||
| + | | Параметры (прибл.) || ~65 млн || ~213 млн | ||
| + | |} | ||
| + | |||
| + | Уже Base превзошёл лучшие на тот момент ансамбли на WMT 2014 Eng→Ger; Big установил новый SOTA при меньшем времени обучения, чем предшественники на RNN. | ||
== Обучение == | == Обучение == | ||
| - | + | Оптимизатор — Adam (<tex>\beta_1 = 0{,}9</tex>, <tex>\beta_2 = 0{,}98</tex>, <tex>\varepsilon = 10^{-9}</tex>) со специальным планировщиком скорости обучения: | |
:<tex>lr = d_{\text{model}}^{-0.5} \cdot \min\!\left(step^{-0.5},\; step \cdot warmup\_steps^{-1.5}\right).</tex> | :<tex>lr = d_{\text{model}}^{-0.5} \cdot \min\!\left(step^{-0.5},\; step \cdot warmup\_steps^{-1.5}\right).</tex> | ||
| - | Дополнительно | + | Сначала линейный warmup (в оригинале 4000 шагов), затем спад как <tex>step^{-0.5}</tex>. Дополнительно — dropout на выходах подслоёв и на внимании, а также сглаживание меток (label smoothing) с <tex>\varepsilon = 0{,}1</tex>. |
| + | |||
| + | Для перевода использовали byte-pair encoding и shared embeddings между энкодером, декодером и softmax. Современные LLM наследуют ту же логику (AdamW, warmup + cosine/decay, mixed precision), но масштабируют данные и вычисления на порядки выше и часто добавляют этапы instruction tuning и [[Обучение с подкреплением из обратной связи человека (RLHF)|RLHF]]. | ||
== Варианты архитектуры == | == Варианты архитектуры == | ||
| - | С | + | С 2017 года трансформер породил семейство специализированных схем. |
| + | |||
| + | * '''Только энкодер''' — BERT<ref name="devlin2019">{{статья |автор=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}}</ref>, RoBERTa. Двунаправленный контекст; предобучение маскированным языковым моделированием (MLM). Оптимальны для классификации, NER, извлечения признаков — «понимания» текста. | ||
| + | * '''Только декодер''' — GPT, GPT-2/3/4 и большинство современных LLM. Авторегрессия: предсказание следующего токена при каузальной маске. Естественно масштабируется и подходит для генерации и in-context learning. | ||
| + | * '''Энкодер-декодер''' — T5, BART. Унифицированный формат «текст → текст»: перевод, суммаризация, QA формулируются как генерация целевой строки. | ||
| + | * '''Эффективные трансформеры''' — Longformer, BigBird, Performer, FlashAttention: снижают или маскируют стоимость <tex>O(n^2)</tex>, либо оптимизируют IO на GPU без приближения Softmax (см. [[Механизм внимания]]). | ||
| - | + | Отдельная линия — Mixture-of-Experts поверх FFN (Switch Transformer и далее): при инференсе активируется лишь доля экспертов, что повышает ёмкость при умеренном FLOPs. | |
| - | + | ||
| - | + | ||
| - | + | ||
== Законы масштабирования == | == Законы масштабирования == | ||
| - | + | Kaplan et al.<ref name="kaplan2020">{{статья |автор=Kaplan J., McCandlish S., Henighan T. 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> | :<tex>L(N, D) \approx A \cdot N^{-\alpha} + B \cdot D^{-\beta} + L_\infty.</tex> | ||
| + | |||
| + | Позже Hoffmann et al. (Chinchilla)<ref name="hoffmann2022">{{статья |автор=Hoffmann J. et al. |заглавие=Training Compute-Optimal Large Language Models |издание=NeurIPS |год=2022 |ссылка=https://arxiv.org/abs/2203.15556}}</ref> уточнили оптимальное соотношение: при фиксированном FLOPs выгоднее обучать меньшую модель на большем числе токенов, чем «недоедать» данными гигантскую сеть. Эти законы объясняют, почему гонка параметров сменилась гонкой данных, качества корпусов и эффективности обучения — и почему архитектура трансформера оказалась удобным «носителем» масштабирования. | ||
== Применения == | == Применения == | ||
| - | Трансформер | + | Трансформер вышел далеко за NLP: |
| - | * '''Компьютерное зрение''' — Vision Transformer (ViT) | + | * '''Компьютерное зрение''' — Vision Transformer (ViT)<ref name="dosovitskiy2021">{{статья |автор=Dosovitskiy A. et al. |заглавие=An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale |издание=ICLR |год=2021 |ссылка=https://arxiv.org/abs/2010.11929}}</ref> режет изображение на патчи и обрабатывает их как токены; при достаточном масштабе данных превосходит CNN. |
| - | * '''Генерация изображений''' — [[Диффузионная модель| | + | * '''Генерация изображений''' — в [[Диффузионная модель|диффузионных моделях]] (Stable Diffusion, DiT, DALL-E) трансформер или блоки внимания служат денойзером и связывают текст с визуальными признаками через кросс-внимание. |
| - | * ''' | + | * '''Структура белков''' — AlphaFold2 использует attention-блоки (Evoformer) для предсказания 3D-структуры; идея «все-со-всеми» связями переносится с языка на MSA и пространственные пары остатков. |
| + | * '''Мультимодальность и агенты''' — единый стек трансформера связывает текст, код, изображение и аудио; поверх него работают [[Промпт-инжиниринг|промпт-инжиниринг]], RAG и инструменты. | ||
== Значение == | == Значение == | ||
| - | + | «Attention Is All You Need» — одна из самых цитируемых работ в истории ML. Она не «изобрела» внимание, но показала, что внимания достаточно как единственного индуктивного смещения для последовательностей. Это открыло эпоху foundation models: одна предобученная архитектура адаптируется к задачам через дообучение, инструкции и промпты. Ограничения остаются — квадратичная память, чувствительность к качеству данных, слабая гарантия фактичности — но именно трансформер задал стандарт, относительно которого измеряют альтернативы (SSM/Mamba, гибриды, диффузионные языковые модели). | |
== См. также == | == См. также == | ||
| Строка 102: | Строка 137: | ||
* [[Промпт-инжиниринг]] | * [[Промпт-инжиниринг]] | ||
* [[Диффузионная модель]] | * [[Диффузионная модель]] | ||
| + | * [[Обучение с подкреплением из обратной связи человека (RLHF)]] | ||
* [[Рекуррентная нейронная сеть]] | * [[Рекуррентная нейронная сеть]] | ||
* [[Метод обратного распространения ошибки]] | * [[Метод обратного распространения ошибки]] | ||
| Строка 110: | Строка 146: | ||
== Литература == | == Литература == | ||
* {{статья |автор=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 |ссылка=https://arxiv.org/abs/1706.03762}} | * {{статья |автор=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 |ссылка=https://arxiv.org/abs/1706.03762}} | ||
| - | * {{статья |автор= | + | * {{статья |автор=Bahdanau D., Cho K., Bengio Y. |заглавие=Neural Machine Translation by Jointly Learning to Align and Translate |издание=ICLR |год=2015 |ссылка=https://arxiv.org/abs/1409.0473}} |
* {{статья |автор=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}} | ||
| + | * {{статья |автор=Radford A. et al. |заглавие=Language Models are Unsupervised Multitask Learners |издание=OpenAI technical report |год=2019 |ссылка=https://cdn.openai.com/better-language-models/language_models_are_unsupervised_multitask_learners.pdf}} | ||
| + | * {{статья |автор=Raffel C. et al. |заглавие=Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer |издание=JMLR |год=2020 |том=21 |ссылка=https://arxiv.org/abs/1910.10683}} | ||
| + | * {{статья |автор=Kaplan J., McCandlish S., Henighan T. et al. |заглавие=Scaling Laws for Neural Language Models |издание=arXiv preprint |год=2020 |ссылка=https://arxiv.org/abs/2001.08361}} | ||
| + | * {{статья |автор=Hoffmann J. et al. |заглавие=Training Compute-Optimal Large Language Models |издание=NeurIPS |год=2022 |ссылка=https://arxiv.org/abs/2203.15556}} | ||
* {{статья |автор=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}} | ||
| Строка 117: | Строка 157: | ||
[[Категория:Нейронные сети]] | [[Категория:Нейронные сети]] | ||
[[Категория:Обработка естественного языка]] | [[Категория:Обработка естественного языка]] | ||
| + | [[Категория:Глубокое обучение]] | ||
Текущая версия
| | Статья написана с использованием 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.

