Смесь глубин: Динамическое выделение вычислительных ресурсов в языковых моделях на основе трансформеровMixture-of-Depths: Dynamically allocating compute in transformer-based
language models
Языковые модели на основе трансформеров равномерно распределяют операции с плавающей запятой (FLOPs) по входным последовательностям. В данной работе мы демонстрируем, что трансформеры могут вместо этого научиться динамически распределять FLOPs (или вычисления) на конкретные позиции в последовательности, оптимизируя распределение вдоль последовательности для различных слоев модели. Наш метод обеспечивает общий бюджет вычислений путем ограничения количества токенов (k), которые могут участвовать в самовнимании и вычислениях MLP на данном слое. Токены для обработки определяются сетью с использованием механизма маршрутизации top-k. Поскольку k определяется заранее, этот простой метод использует статический вычислительный граф с известными размерами тензоров, в отличие от других методов условных вычислений. Тем не менее, поскольку идентификаторы k токенов изменчивы, этот метод может неравномерно расходовать FLOPs по временным и глубинным измерениям модели. Таким образом, расход вычислений полностью предсказуем в общей сумме, но динамичен и контекстно-чувствителен на уровне токенов. Модели, обученные таким образом, не только учатся динамически распределять вычисления, но делают это эффективно. Эти модели соответствуют базовой производительности для эквивалентных FLOPS и времени обучения на стенде, но требуют долю FLOPs на каждый прямой проход и могут быть на 50\% быстрее на шаге во время пост-тренировочной выборки.