Трансформер (архитектура)
Трансформер (архитектура) — это архитектура нейронных сетей, основанная исключительно на механизме внимания (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). Каждый слой включает два подуровня:
- Многоголовое самовнимание (Multi-Head Self-Attention) — механизм, позволяющий каждому элементу последовательности «взаимодействовать» со всеми остальными элементами.
- Полносвязная сеть прямого распространения (Feed-Forward Network, FFN) — два линейных преобразования с нелинейностью ReLU между ними.
Каждый подуровень окружён остаточным соединением (residual connection) и нормализацией слоя (layer normalization).
Декодировщик
Декодировщик также состоит из N идентичных слоёв. Каждый слой включает три подуровня:
- Маскированное многоголовое самовнимание — аналогично самовниманию кодировщика, но с маскировкой будущих позиций (чтобы модель не могла «подглядывать» вперёд при генерации).
- Многоголовое внимание кодировщик-декодировщик (Cross-Attention) — внимание к выходу кодировщика, позволяющее декодировщику «смотреть» на входную последовательность.
- Полносвязная сеть прямого распространения.
Остаточные соединения и нормализация слоя применяются так же, как в кодировщике.
Механизм внимания
Основой трансформера является масштабированное скалярное произведение внимания (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)
- Машинный перевод — оригинальная задача трансформера.
- Генерация текста — написание статей, кода, стихов.
- Суммаризация — автоматическое создание кратких изложений текстов.
- Ответы на вопросы — системы вопросно-ответного поиска.
- Анализ тональности — определение эмоциональной окраски текста.
- Классификация текстов — тематическое моделирование, спам-фильтрация.
Компьютерное зрение
- Классификация изображений — ViT и его варианты.
- Обнаружение объектов — DETR, YOLOS.
- Сегментация изображений — MaskFormer, Mask2Former.
- Генерация изображений — модели на основе трансформеров (DALL-E, Imagen, Kandinsky).
Обработка аудио и речи
- Распознавание речи — 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 →