Открыть сервис

Трансформер (архитектура)

Трансформер (архитектура) — это архитектура нейронных сетей, основанная исключительно на механизме внимания (attention) и отказавшаяся от рекуррентных и свёрточных слоёв. Предложена в 2017 году группой исследователей Google в статье «Attention Is All You Need». Трансформеры стали доминирующей архитектурой в обработке естественного языка (NLP), а затем — в компьютерном зрении, обработке аудио и других областях машинного обучения.

История

До появления трансформеров основными архитектурами для последовательностных задач (перевод, распознавание речи) были рекуррентные нейронные сети (RNN, LSTM, GRU) и свёрточные нейронные сети (CNN). RNN обрабатывали данные последовательно, что затрудняло параллелизацию и приводило к проблеме долгосрочных зависимостей. Механизм внимания (attention) использовался как дополнение к RNN, позволяя модели «смотреть» на разные части входной последовательности.

В июне 2017 года исследователи Google (Ашвин Вашвани, Ноам Шазер, Ники Пармар и др.) опубликовали статью «Attention Is All You Need», в которой предложили полностью отказаться от рекуррентности и свёрток, построив модель исключительно на механизме внимания. Новая архитектура получила название «Трансформер» (Transformer).

Ключевыми преимуществами трансформера стали:

  • Параллелизация: вся последовательность обрабатывается одновременно, что значительно ускоряет обучение.
  • Дальние зависимости: механизм внимания позволяет модели напрямую связывать любые элементы последовательности, независимо от расстояния между ними.
  • Масштабируемость: архитектура хорошо масштабируется при увеличении объёма данных и количества параметров.

Первая реализация — модель Transformer — была обучена для машинного перевода и достигла нового state-of-the-art на тестах WMT 2014 (англо-немецкий и англо-французский переводы).

Архитектура

Трансформер состоит из двух основных блоков: кодировщика (encoder) и декодировщика (decoder). Каждый блок представляет собой стек из идентичных слоёв.

Кодировщик

Кодировщик состоит из N идентичных слоёв (обычно N=6). Каждый слой включает два подуровня:

  1. Многоголовое самовнимание (Multi-Head Self-Attention) — механизм, позволяющий каждому элементу последовательности «взаимодействовать» со всеми остальными элементами.
  2. Полносвязная сеть прямого распространения (Feed-Forward Network, FFN) — два линейных преобразования с нелинейностью ReLU между ними.

Каждый подуровень окружён остаточным соединением (residual connection) и нормализацией слоя (layer normalization).

Декодировщик

Декодировщик также состоит из N идентичных слоёв. Каждый слой включает три подуровня:

  1. Маскированное многоголовое самовнимание — аналогично самовниманию кодировщика, но с маскировкой будущих позиций (чтобы модель не могла «подглядывать» вперёд при генерации).
  2. Многоголовое внимание кодировщик-декодировщик (Cross-Attention) — внимание к выходу кодировщика, позволяющее декодировщику «смотреть» на входную последовательность.
  3. Полносвязная сеть прямого распространения.

Остаточные соединения и нормализация слоя применяются так же, как в кодировщике.

Механизм внимания

Основой трансформера является масштабированное скалярное произведение внимания (Scaled Dot-Product Attention). Для каждого элемента последовательности вычисляются три вектора: запрос (Query, Q), ключ (Key, K) и значение (Value, V). Выход внимания вычисляется как взвешенная сумма значений, где веса определяются сходством между запросами и ключами:

\[ \text{Attention}(Q, K, V) = \text{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right)V \]

где \(d_k\) — размерность ключей. Деление на \(\sqrt{d_k}\) предотвращает слишком большие значения скалярного произведения, что улучшает стабильность градиентов.

Многоголовое внимание (Multi-Head Attention) — это параллельное выполнение нескольких механизмов внимания с разными линейными проекциями Q, K, V. Результаты конкатенируются и проецируются обратно.

Позиционное кодирование

Поскольку трансформер не содержит рекуррентных или свёрточных слоёв, он не имеет встроенного представления о порядке элементов последовательности. Для учёта позиций используется позиционное кодирование (positional encoding) — вектор, добавляемый к входным эмбеддингам. В оригинальной работе использовались синусоидальные функции разной частоты:

\[ PE_{(pos, 2i)} = \sin\left(\frac{pos}{10000^{2i/d_{\text{model}}}}\right) \] \[ PE_{(pos, 2i+1)} = \cos\left(\frac{pos}{10000^{2i/d_{\text{model}}}}\right) \]

где \(pos\) — позиция, \(i\) — размерность, \(d_{\text{model}}\) — размерность модели.

Классификация и разновидности

На основе архитектуры трансформера были разработаны многочисленные модификации, которые можно разделить на несколько категорий:

Модели-кодировщики (Encoder-only)

Используют только кодировщик трансформера. Предназначены для задач понимания текста, где требуется получить представление всего входного текста (классификация, анализ тональности, ответы на вопросы).

  • BERT (Bidirectional Encoder Representations from Transformers) — одна из самых известных моделей этого класса. Обучается с помощью маскированного языкового моделирования (MLM) и предсказания следующего предложения (NSP).
  • RoBERTa — оптимизированная версия BERT с улучшенным обучением.
  • ALBERT — уменьшенная версия BERT с разделением параметров.

Модели-декодировщики (Decoder-only)

Используют только декодировщик трансформера. Предназначены для генерации текста (авторегрессионные модели).

  • GPT (Generative Pre-trained Transformer) — серия моделей от OpenAI. GPT-1, GPT-2, GPT-3, GPT-4. Обучаются на задаче предсказания следующего токена (causal language modeling).
  • LLaMA — серия моделей от Meta (организация признана экстремистской и запрещена в РФ).
  • YandexGPT — модель от компании «Яндекс», основанная на архитектуре декодировщика.

Модели кодировщик-декодировщик (Encoder-Decoder)

Используют полную архитектуру трансформера. Предназначены для задач, где входная и выходная последовательности имеют разную природу (перевод, суммаризация, перефразирование).

  • T5 (Text-to-Text Transfer Transformer) — модель, которая преобразует все NLP-задачи в формат «текст-в-текст».
  • BART — модель, сочетающая кодировщик BERT и декодировщик GPT.
  • M2M-100 — модель для перевода между 100 языками.

Модели для компьютерного зрения

  • Vision Transformer (ViT) — адаптация трансформера для изображений. Изображение разбивается на патчи, которые подаются на вход кодировщику.
  • Swin Transformer — иерархический трансформер с окнами внимания.
  • DETR — детектор объектов на основе трансформера.

Применение

Трансформеры нашли применение в широком спектре задач:

Обработка естественного языка (NLP)

  • Машинный перевод — оригинальная задача трансформера.
  • Генерация текста — написание статей, кода, стихов.
  • Суммаризация — автоматическое создание кратких изложений текстов.
  • Ответы на вопросы — системы вопросно-ответного поиска.
  • Анализ тональности — определение эмоциональной окраски текста.
  • Классификация текстовтематическое моделирование, спам-фильтрация.

Компьютерное зрение

Обработка аудио и речи

  • Распознавание речи — Whisper (OpenAI), Wav2Vec 2.0.
  • Синтез речи — Tacotron 2, FastSpeech.
  • Обработка музыки — Music Transformer.

Биоинформатика

  • Предсказание структуры белков — AlphaFold 2 (использует трансформеры).
  • Анализ последовательностей ДНК — DNABERT, Enformer.

Мультимодальные модели

  • CLIP — связывает текст и изображения.
  • DALL-E — генерация изображений по текстовому описанию.
  • GPT-4V — мультимодальная версия GPT-4.

Критика и ограничения

Несмотря на впечатляющие результаты, архитектура трансформера имеет ряд недостатков:

  • Вычислительная сложность: механизм внимания имеет квадратичную сложность \(O(n^2)\) по длине последовательности \(n\), что делает обработку длинных последовательностей (более 10-20 тысяч токенов) крайне затратной.
  • Потребление памяти: для длинных последовательностей требуется значительный объём оперативной памяти.
  • Отсутствие индуктивных смещений: в отличие от свёрточных сетей, трансформеры не имеют встроенного представления о локальности или иерархии, что требует больших объёмов данных для обучения.
  • Проблемы с интерпретируемостью: сложность анализа внутренних представлений модели.
  • Энергопотребление: обучение больших моделей (GPT-3, LLaMA) требует огромных вычислительных ресурсов и электроэнергии.

Для преодоления этих ограничений разрабатываются различные подходы: разреженное внимание (sparse attention), линейное внимание (linear attention), модели с окнами внимания (Longformer, BigBird), а также гибридные архитектуры (State Space Models, Mamba).

Интересные факты

  • Название «Трансформер» не связано с одноимённой франшизой — авторы выбрали его из-за способности архитектуры «трансформировать» входные данные в выходные.
  • Оригинальная статья «Attention Is All You Need» имеет более 100 000 цитирований (по данным Google Scholar на 2024 год) и является одной из самых цитируемых в области машинного обучения.
  • Модель GPT-3 (2020) содержит 175 миллиардов параметров — в несколько тысяч раз больше, чем оригинальный трансформер (65 миллионов параметров).
  • В 2023 году компания Google представила модель PaLM 2, обученную на 3,6 триллиона токенов.
  • Трансформеры лежат в основе современных чат-ботов (ChatGPT, Gemini, Claude), систем автоматического перевода (Google Translate, DeepL) и поисковых систем (Google Search).

Источники

  • Vaswani, A., Shazeer, N., Parmar, N., et al. (2017). «Attention Is All You Need». Advances in Neural Information Processing Systems 30 (NIPS 2017).
  • Devlin, J., Chang, M. W., Lee, K., & Toutanova, K. (2019). «BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding». NAACL-HLT 2019.
  • Brown, T. B., Mann, B., Ryder, N., et al. (2020). «Language Models are Few-Shot Learners». NeurIPS 2020.
  • Dosovitskiy, A., Beyer, L., Kolesnikov, A., et al. (2021). «An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale». ICLR 2021.
  • Raffel, C., Shazeer, N., Roberts, A., et al. (2020). «Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer». Journal of Machine Learning Research 21.
  • Lewis, M., Liu, Y., Goyal, N., et al. (2020). «BART: Denoising Sequence-to-Sequence Pre-training for Natural Language Generation, Translation, and Comprehension». ACL 2020.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →