Трансформеры небольшое вступление

За последние несколько лет быстро появилось множество моделей, принадлежащих к семейству Transformer, каждая из которых имеет уникальные названия, которые могут быть забавными, но не сразу понятными. Цель этой статьи — представить довольно обширный, но несложный список и группировку наиболее широко используемых моделей трансформеров.

Введение — Понимание трансформаторов

Трансформеры — это категория моделей глубокого обучения, которые обладают определенными архитектурными особенностями. Эти модели были первоначально представлены в известной исследовательской работе «Внимание — это все, что вам нужно» исследователей Google в 2017 году. Соответствующее сообщение в блоге1 указывает на то, что эта статья набрала ошеломляющие 38 тысяч ссылок всего за пять лет.

Архитектура Transformer — это частный случай моделей кодер-декодер, которые приобрели популярность в предыдущие два-три года. Однако до этого времени внимание было лишь одним из механизмов, используемых этими моделями, которые в основном полагались на LSTM (долгосрочную кратковременную память) и другие варианты RNN (рекуррентные нейронные сети). Основная идея статьи о трансформерах заключалась в том, что в качестве единственного механизма для получения зависимостей между вводом и выводом можно использовать только внимание.

Хотя в этом посте невозможно углубляться в особенности архитектуры Transformer, читатели могут обратиться к оригинальной статье. Тем не менее, я кратко опишу наиболее важные аспекты, поскольку они будут указаны в каталоге ниже. Начнем с фундаментальной архитектурной схемы из оригинальной статьи и опишем некоторые ее компоненты.

Архитектура кодера/декодера

Типичная архитектура кодера/декодера состоит из двух моделей. Кодер отвечает за получение входных данных и их кодирование в вектор фиксированной длины. Затем декодер берет этот вектор и декодирует его в выходную последовательность. Кодер и декодер обучаются вместе, чтобы минимизировать условное логарифмическое правдоподобие. После обучения кодер/декодер может либо генерировать выходные данные на основе входной последовательности, либо оценивать пару входных/выходных последовательностей.

В исходной архитектуре Transformer и кодер, и декодер состояли из шести идентичных уровней. У каждого из этих уровней было два подуровня в кодировщике: уровень внимания с несколькими головками и прямая сеть прямой связи. Каждый подуровень имел остаточное соединение и нормализацию уровня, а выходной размер кодировщика составлял 512. Декодер добавил третий подуровень, который был еще одним уровнем внимания с несколькими головками поверх выходных данных кодировщика. Кроме того, другой слой с несколькими головками в декодере был замаскирован, чтобы не привлекать внимание к последующим позициям.

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

Как было сказано ранее, многоголовое внимание является основным элементом, отличающим архитектуру Transformer от других моделей. Внимание — это сопоставление между запросом и набором пар ключ-значение, которое производит выходные данные, вычисляемые как взвешенная сумма значений, где вес, присвоенный каждому значению, определяется функцией совместимости запроса с соответствующим ключом. Преобразователь использует многоголовое внимание, которое представляет собой параллельное вычисление определенной функции внимания, известной как масштабированное скалярное произведение внимания.

Для получения более подробной информации о том, как работает механизм внимания, обратитесь к оригинальной статье. Слои внимания имеют несколько преимуществ по сравнению с рекуррентными и сверточными сетями, два наиболее важных из которых — более низкая вычислительная сложность и более высокая связность, что особенно полезно для изучения долгосрочных зависимостей в последовательностях.

Популярность

Первоначальный преобразователь был разработан для языкового перевода, но он быстро стал популярным для других задач машинного обучения, связанных с языком, доминируя в большинстве списков лидеров. Трансформеры популярны из-за их способности быстро адаптироваться к другим задачам, также известной как трансферное обучение, с помощью тонкой настройки. Они также используются в различных приложениях, таких как зрение, звук и музыка, игра в шахматы и математика. Трансформеры были интегрированы в основные фреймворки ИИ, и целая компания Huggingface была построена вокруг идеи коммерциализации своей библиотеки Transformers с открытым исходным кодом. GPT-3, модель Transformer, представленная OpenAI, стала популярной и стала основой их коммерческой стратегии.

Масштабируемость

Одна вещь, которая отличает Transformers от других архитектур нейронных сетей, — это количество требуемых параметров. Поскольку трансформеры полагаются на механизмы внутреннего внимания для обработки последовательностей, их необходимо обучать на гораздо больших наборах данных, чем традиционные нейронные сети. Например, оригинальная модель Transformer, представленная Vaswani et al. в 2017 году было 117 миллионов параметров, что в то время считалось большой моделью. Однако более поздние модели Transformer намного превышают это число.

Например, популярная модель GPT-3, представленная OpenAI в 2020 году, имеет колоссальные 175 миллиардов параметров. Это делает ее одной из самых больших и сложных существующих моделей и позволяет выполнять широкий спектр языковых задач с поразительной точностью.

Несмотря на значительные требования к вычислениям и хранению больших моделей Transformer, они стали важным инструментом для многих приложений NLP. Они также показали многообещающие результаты в других областях, таких как компьютерное зрение и распознавание речи. Таким образом, вполне вероятно, что тенденция к увеличению количества параметров в моделях Transformer сохранится и в будущем, поскольку исследователи стремятся улучшить состояние дел в широком спектре приложений машинного обучения.