В новом видео Янник Кильхер (Yannic Kilcher) разбирает амбициозную научную работу исследователей из Варшавского университета, Google Research и OpenAI. Статья под названием «Sparse is Enough in Scaling Transformers» представляет архитектуру Scaling Transformer и её «прокачанную» версию — Terraformer. Основная идея авторов заключается в том, что для эффективного масштабирования нейросетей не обязательно активировать все параметры одновременно: разреженность (sparsity) позволяет добиться колоссального ускорения инференса при сохранении качества работы модели.
🚀 Масштабирование через разреженность: суть Scaling Transformer 0:00
Главная задача представленного исследования — внедрить блоки разреженности в стандартную архитектуру Transformers . Результатом стала модель Scaling Transformer, которая в ходе тестов показала впечатляющие результаты в задачах декодирования (генерации текста). Особенно заметен прогресс при работе с одиночными примерами (unbatched decoding), где разреженность проявляет себя лучше всего .
Янник Кильхер приводит следующие данные по производительности:
- Для модели на 800 миллионов параметров базовый Transformer выполняет декодирование за 0,16 секунды, а Scaling Transformer — в 2,6 раза быстрее .
- Настоящий прорыв виден на моделях объёмом 17 миллиардов параметров: базовая модель тратит 3,6 секунды на токен, в то время как Scaling Transformer справляется за 0,18 секунды . Это означает ускорение в 20 раз, а в некоторых конфигурациях, по словам Кильхера, оно достигает 37 раз .
Самым удивительным фактом Янник Кильхер называет отсутствие деградации качества . По мнению авторов статьи, разреженные слои позволяют получить ту же перплексию (метрику качества языковой модели), что и стандартные «плотные» (dense) модели с тем же количеством параметров .
🏗️ Анатомия разреженного Feed-Forward слоя 6:56
В классическом трансформере основными вычислительными узлами являются блоки внимания (attention) и полносвязные слои (feed-forward, FF). Авторы статьи предлагают заменить каждый из них разреженной версией.
Работа с FF-слоем строится на следующих принципах:
- Обоснование через ReLU: Авторы аргументируют возможность разреженности тем, что функция активации ReLU и так превращает около половины значений в ноль . Янник Кильхер отмечает, что это рассуждение кажется ему несколько «шатким», но признает: если метод работает, теоретическое обоснование вторично .
- Компартментализация матриц: Вместо умножения вектора на всю огромную матрицу, она разбивается на отсеки (compartments) . В каждом отсеке активируется только один столбец. Это позволяет загружать из памяти и вычислять только крошечную часть весов .
- Контроллер низкого ранга: Чтобы решить, какие столбцы активировать, используется вспомогательный механизм. Это мини-сеть, работающая в режиме «низкого ранга» (low-rank), которая на основе входного вектора предсказывает маску активации .
Кильхер указывает на важный компромисс: создание маски само по себе требует вычислений . Эффективность метода зависит от того, будет ли выигрыш от разреженности больше, чем затраты на работу контроллера маски .
🧠 Оптимизация внимания: Multiplicative и Conv слои 19:21
Создание разреженного механизма внимания сложнее, так как на выходе слоев генерации запросов (Queries), ключей (Keys) и значений (Values) обычно нет нулей, которые можно было бы эксплуатировать . Авторы предлагают заменить плотные слои комбинацией «мультипликативного» слоя (Mult) и сверточного слоя (Conv) .
Особенности этой структуры:
- Mult-слой: Вместо тяжелого умножения матриц используется поэлементное умножение (element-wise multiplication) с последующим низкоранговым проецированием . По словам Кильхера, существует математическая теорема, доказывающая, что такая конструкция способна представить любую перестановку входных данных .
- Conv-слой: Свертки применяются вдоль измерений последовательности (L) и голов внимания (S) . Это позволяет обмениваться информацией между соседними токенами и соседними головами внимания еще до самого механизма Attention .
Янник Кильхер отмечает, что такая архитектура вводит новые пути передачи информации, из-за чего сложно точно оценить, какой именно из «инженерных трюков» вносит решающий вклад в итоговый успех .
🌍 Terraformer: интеграция долгой памяти и обратимости 44:02
Когда Scaling Transformer дополняется технологиями для работы с длинными последовательностями, он превращается в Terraformer . В эту модель интегрированы идеи из архитектуры Reformer.
Ключевые дополнения Terraformer:
- LSH Attention: Использование локально-чувствительного хеширования (Locality Sensitive Hashing) для ускорения поиска ключей в длинных текстах . Вместо вычисления всех связей, алгоритм ищет «столкновения хешей», что значительно экономит ресурсы .
- Обратимые блоки (Reversibility): Чтобы не хранить в памяти все промежуточные активации для обратного распространения ошибки, архитектура строится так, чтобы входные данные можно было восстановить из выходных . Это критически важно для обучения на очень длинных последовательностях .
- Рекуррентные блоки (SRU): В FF-блоки добавляются простые рекуррентные юниты (Simple Recurrent Units) . По мнению авторов, это улучшает обобщающую способность модели .
Кильхер находит добавление рекуррентности «странным выбором» . Он предполагает, что это могло быть сделано для того, чтобы подтянуть цифры в специфических тестах, где модель должна обрабатывать данные вдвое длиннее, чем видела при обучении .
📉 Ограничения и перспективы 55:12
Несмотря на впечатляющие 37-кратные ускорения, Янник Кильхер выделяет несколько нюансов:
- Batch Inference: При обработке больших пакетов данных (батчей) преимущества разреженности могут нивелироваться, так как разные примеры активируют разные части матрицы, и GPU всё равно придётся загружать её целиком .
- Сложность обучения: Во время обучения приходится использовать Softmax вместо жесткого выбора столбцов (sampling), что делает процесс медленнее, чем финальный инференс .
- Аппаратные лимиты: Обычные пользователи на домашних ноутбуках могут не заметить такой огромной разницы в скорости, так как эффекты разреженности наиболее выражены на гигантских моделях серверного уровня .
В заключение Кильхер отмечает, что авторы еще не использовали квантование, которое может дать дополнительный прирост скорости в будущем .