

Одним из самых значимых событий 2020 года в AI был выход статьи “Language Models are Few Shot Learners” от OpenAI, в которой была представлена модель трансформера GPT-3, установившего рекорд по размеру нейросети — 175 млрд параметров. Оказалось, что такая огромная предобученная сеть смогла неплохо решать достаточно широкий круг NLP-задач, дообучаясь буквально на нескольких примерах (few-shot learning), либо же вообще не имея доступа к обучающим данным (zero-shot learning).
По сути GPT-3 представляла собой экстенсивно расширенную версию GPT-2 (1.5 млрд параметров), представленную в феврале 2019 года. Эта работа окончательно сформировала тренд — экстенсивный подход “накачивания стероидами” и различных модификаций уже известных архитектур и моделей на пути к решению более сложных и общих задач.
С наступлением 2021 года в NLP тренд “больше — лучше” продолжается. Очевидно, под сильным влиянием GPT-3 и в гонке за “самую большую модель в мире” Google Brain заявил о создании новейшей языковой модели-трансформера Switch Transformer, которая в самой большой реализации обладает 1.6 триллионами параметров.
В результате Switch Transformer удалось достичь 84.7% правильных ответов на задачах SuperGLUE (текущий лучший результат 90.3%, впереди — 8 моделей и уровень человека). На лидерборде вопросно-ответных систем SQuAD — результат Switch Transformer 88.6% правильных ответов при лучшем текущем результате 93%. С точки зрения актуальных результатов — не самый впечатляющий результат, хотя еще полгода назад он был бы близким к SOTA. Стоят ли результаты настолько сильного экстенсивного расширения?
На самом деле основная новизна работы состоит в эффективном масштабировании и распараллеливании обучения — то есть, обучение модели на основе Switch Transformer гораздо быстрее и требует меньше ресурсов, чем у state-of-the-art моделей.
В абсолютных числах, архитектура позволяет обучать в 33–35 раз больше параметров при таком же количестве вычислительных мощностей: например, для обучения 739 млн параметров T5 (лидер рейтингов) требуется 425 млрд FLOPS, а для обучения Switch Transformer уже на 26 млрд параметров при тех же 425 млрд FLOPS. Также заявлено ускорение обучения в 4 раза в сравнени с T5.
Такой результат достигнут за счет использования архитектуры на основе трансформера, модифицированного с помощью алгоритма Mixture of Experts (MoE) — метод впервые предложен в 90-х гг. Концепция состоит в том, чтобы держать несколько экспертных моделей, специализирующихся на различных задачах, — внутри более крупной модели и иметь «вентильную сеть», выбирающую, с какими экспертами консультироваться по полученным данным.
На уровне релизации это означает, что вместо полносвязного слоя в трансформере вставляем много параллельных полносвязных слоёв (“экспертов”), при этом в вычислении одновременно участвует только очень мало из них (от 1 до 4). Если брать 2 или 4 эксперта, то это Mixture-of-Experts(MoE), которая неплохо работала для машинного перевода. В данной статье берётся ровно 1 эксперт, то есть мы вначале выбираем, какой из экспертов обслуживает текущее слово, а потом его применяем.
При этом если увеличить число экспертов, то сеть становится больше, однако число операций в ходе вычислений не меняется (у нас просто 1000 возможных веток вычисления вместо одной). Соответственно, сеть может лучше запоминать действия для отдельных слов, при этом не становится сложнее.
Switch Transformer эффективно использует оборудование, разработанное для перемножения матриц — TPU. В распределенной системе обучения “эксперты” распределяют веса на разных TPU, поэтому количество весов растет с увеличением количества TPU, но при этом сохраняется управляемая память на каждом устройстве. На иллюстрации ниже показано, как выглядит распараллеливание весов и данных по TPU:
В планах разработчиков обучать архитектуру для мультимодального ИИ, используя тексты, фото и видео.
Есть результаты применения того же подхода для мультиязычного T5 (где русский язык — второй по объёму в обучающей выборке после английского), там тоже получено улучшение. Единственная проблема — чтобы воспользоваться улучшениями в полной мере, нужно очень много данных (порядка 500 миллиардов токенов, что в 3 раза больше ruGPTLarge). Доступны исходники библиотеки, которая использовалась для обучения, но гиперпараметры обучения в статье приведены не все. Насколько много деталей реализации, которые остались за текстом, и которые являются существенными, неясно.
Как было сказано выше, на различных лидербордах (SuperGLUE и SQuAD) качество SwithTransformer не выросло в сравнении с обычным T5-XXL, то есть с одной стороны улучшение не оказалось столь значительным. Основная ценность работы состоит в возможности обучать модель в 7 раз быстрее до того же качества и это может быть оправдано при переносе на некоторые прикладные задачи.
Статья про модель доступна на arxiv
Судя по всему, экстенсивная гонка языковых моделей и архитектур продолжится — мы наблюдаем экспоненциальный рост размеров языковых трансформеров (от BERT – к T5 и GPT-3), и экстраполируя это развитие дальше, мы ожидаем, что одним из трендов на ближайшее время станет параллельное обучение, обучение отдельных подсетей и federated learning. Приведет ли такой подход к появлению AGI — пока сказать сложно, но игнорировать его невозможно.
Заметка подготовлена при участии Тани Шавриной (SberDevices) и Алексея Сорокина (iPavlov, МГУ).