Глава 3.3 — Смесь экспертов

Содержание

  1. От более дешёвого и длинного внимания к более крупной модели за ту же цену
  2. Условное вычисление: основная идея
  3. Разреженно-управляемый слой MoE и маршрутизация top-k
  4. Балансировка нагрузки: центральная практическая трудность
  5. Switch Transformer: упрощение до top-1
  6. Mixtral: MoE как массовая продакшен-техника
  7. Взгляд с точки зрения собеседования
  8. Вопросы для самопроверки
  9. Источники

1. От более дешёвого и длинного внимания к более крупной модели за ту же цену

Две предыдущие главы были посвящены выполнению той же работы дешевле или на более длинной последовательности: глава 3.1 сделала само внимание менее затратным, а глава 3.2 позволила позиционному пониманию фиксированной модели растягиваться дальше. Эта глава полностью меняет ось обсуждения. Вместо вопроса «как выполнить те же вычисления за меньшую цену» она задаёт вопрос «как получить гораздо более крупную и способную модель, не платя пропорционально больший счёт за вычисления на токен». Это может звучать как попытка получить что-то из ничего, и в полностью плотной архитектуре, описанной в части II — где каждый токен проходит через каждый параметр в каждом полносвязном слое, — так оно и было бы. Смесь экспертов (Mixture of Experts, MoE) — это архитектурное изменение, которое делает это возможным, разрушая предположение, тихо присутствовавшее во всём рассмотренном до сих пор: что прямой проход токена обязан затрагивать каждый параметр, которым владеет модель.

Основной ход — условное вычисление: вместо одной полносвязной сети, через которую вынужден проходить каждый токен, вы строите множество полносвязных сетей — «экспертов» — и для каждого токена направляете его лишь к небольшому подмножеству из них. Тогда общее число параметров может расти практически без ограничений за счёт добавления новых экспертов, в то время как стоимость вычислений для обработки любого отдельного токена остаётся примерно фиксированной, поскольку токен активирует лишь небольшое, фиксированное число этих экспертов. Это развязывает две величины, ранее жёстко связанные в плотном трансформере: общую ёмкость модели (грубо говоря, общее число параметров) и стоимость вычислений на токен (грубо говоря, число FLOPs на прямой проход). Вся эта глава по сути о том, как заставить эту развязку хорошо работать на практике, поскольку идею гораздо проще сформулировать, чем реализовать, — а самое большое практическое препятствие, балансировка нагрузки, окажется почти столь же важным для понимания, как и сама базовая идея маршрутизации.

2. Условное вычисление: основная идея

Чтобы сделать условное вычисление конкретным, полезно напрямую противопоставить его плотному полносвязному слою из части II. В стандартном блоке трансформера подполносвязный слой — это единый двухслойный MLP (обычно проекция вверх, нелинейность и проекция вниз), применяемый идентично к представлению каждого токена на данной позиции в сети. Если бы вы захотели увеличить ёмкость этого слоя, единственным рычагом было бы сделать его шире или глубже — и каждый токен был бы вынужден платить полную вычислительную стоимость этого более крупного MLP, независимо от того, действительно ли этому конкретному токену нужна дополнительная ёмкость для этого конкретного предсказания. И расточительство здесь вполне конкретное, опознаваемое: не каждому токену нужна одна и та же обработка. Токен, являющийся частью редкого технического термина, токен, продолжающий простой грамматический паттерн, и токен, начинающий смену темы, правдоподобно выигрывают от качественно разных преобразований, а принуждение всех трёх к идентичным плотным вычислениям — грубый инструмент.

Ответ MoE — заменить эту единую плотную полносвязную сеть множеством параллельных полносвязных сетей — экспертов, каждая со своими независимыми параметрами, — плюс небольшой обучаемой функцией маршрутизации, обычно называемой шлюзом (gate) или маршрутизатором (router), которая смотрит на представление каждого токена и решает, какой эксперт или эксперты должны его обработать. Критически важно, что токен реально пропускается только через то небольшое число экспертов, которые выбрал маршрутизатор, а не через всех них; невыбранные эксперты не вносят никаких вычислений для этого токена. Именно это делает MoE подлинным расцеплением ёмкости и стоимости: добавление сотни дополнительных экспертов к слою добавляет в сто раз больше общих параметров, сидящих в модели, но если маршрутизатор по-прежнему выбирает, скажем, только двух экспертов на токен, стоимость вычислений для обработки любого данного токена почти не меняется. Модель становится огромной по общему размеру, оставаясь дешёвой в исполнении на токен — при условии, и эта оговорка чрезвычайно важна для остальной части главы, что решения о маршрутизации действительно разумно распределяют работу по всем этим экспертам, а не схлопываются лишь на нескольких из них.

3. Разреженно-управляемый слой MoE и маршрутизация top-k

Современная формулировка этой идеи восходит к разреженно-управляемому (sparsely-gated) слою смеси экспертов Shazeer et al., который задал шаблон, на котором строится практически вся последующая работа по MoE. Слой состоит из $n$ сетей-экспертов $E_1, \ldots, E_n$ и обучаемой шлюзовой сети $G$, которая, получая на вход представление токена $x$, выдаёт разреженный вектор из $n$ весов, по одному на эксперта, большинство из которых — ровно ноль. Выход слоя — взвешенная сумма $y = \sum_{i=1}^{n} G(x)_i \, E_i(x)$, но поскольку $G(x)$ разрежен — как правило, ненулевыми являются только его верхние $k$ элементов, при небольшом $k$, например 1 или 2, — сумму фактически нужно вычислять только для тех $k$ экспертов, у которых вес шлюза ненулевой; остальные можно полностью пропустить, поскольку умножение на нулевой вес шлюза даёт нулевой вклад независимо от того, что выдал бы $E_i(x)$.

Сама шлюзовая сеть обычно представляет собой простую обучаемую линейную (или слабо нелинейную) функцию от представления токена, за которой следует softmax по всем $n$ экспертам, из которого затем сохраняются и перенормируются только top-$k$ экспертов с наибольшими оценками. Именно эта операция top-$k$ делает всю схему разреженной, а не мягкой взвешенной смесью всех экспертов — без неё вы бы вернулись к оплате вычислительной стоимости каждого эксперта для каждого токена, поскольку настоящее (не разреженное) взвешивание через softmax всё равно потребовало бы фактического вычисления каждого $E_i(x)$, прежде чем его можно было бы взвесить и просуммировать. Конкретный вклад Shazeer et al. состоял в демонстрации того, что такое top-$k$-взвешивание можно обучать сквозным образом стандартным обратным распространением ошибки, несмотря на дискретный, кажущийся недифференцируемым выбор top-$k$, — это достигается за счёт того, что сами значения шлюза трактуются как дифференцируемые, а к логитам маршрутизации во время обучения добавляется шум, что одновременно помогает прохождению градиента через в остальном разрывное решение и помогает распределять нагрузку между экспертами — тема, которой, как окажется, требуется гораздо больше внимания, чем даёт один этот исходный механизм.

4. Балансировка нагрузки: центральная практическая трудность

Добиться сходимости разреженной шлюзовой сети к хорошо функционирующему слою MoE оказывается значительно сложнее, чем предполагает механизм из предыдущего раздела, по причине, которая интуитивно понятна, стоит её один раз сформулировать: градиентный спуск — это процесс «богатый богатеет», и, если его не контролировать, он будет склонен усугублять ситуацию. Предположим, что на ранней стадии обучения один эксперт случайно оказывается чуть лучше остальных в обработке некоторой распространённой категории токенов — просто из-за случайной инициализации. Маршрутизатор это заметит — его градиентный сигнал подтолкнёт его направлять больше токенов этой категории к этому эксперту, поскольку это немного уменьшает потери. Но направление большего числа токенов этому эксперту означает, что этот эксперт теперь получает больше обновлений градиента, на большем объёме данных, и становится ещё лучше в своей задаче по сравнению с остальными, что ещё больше склоняет маршрутизатор направлять токены именно к нему, и так далее. Если это не остановить, такая петля обратной связи склонна схлопываться на небольшом подмножестве экспертов, обрабатывающих подавляющее большинство токенов, тогда как большинство остальных экспертов получают мало или вообще не получают обучающего сигнала и в итоге вносят в модель почти нулевой вклад — что сводит на нет весь смысл построения большого банка экспертов, поскольку вы платите за память для хранения всех них, а фактически используете лишь горстку.

Стандартное решение — вспомогательная функция потерь балансировки нагрузки, добавляемая к основной целевой функции обучения специально для противодействия этому схлопыванию. Точные формулировки различаются от статьи к статье, но лежащая в основе идея неизменна: построить слагаемое, минимизируемое, когда токены распределяются примерно равномерно по всем экспертам, и штрафовать модель, когда маршрутизация становится слишком сконцентрированной на небольшом подмножестве. Распространённая конструкция вычисляет для каждого эксперта как долю токенов, реально направленных к нему, так и среднюю вероятность шлюза, присвоенную ему по всему батчу, а затем штрафует произведение этих двух величин, просуммированное по экспертам, — формально, $\mathcal{L}_{\text{aux}} = n\sum_{i=1}^{n} f_i \cdot P_i$, где $f_i$ — доля токенов, направленных к эксперту $i$, а $P_i$ — его средняя вероятность шлюза, — формулировка, выбранная именно потому, что она дифференцируема везде (в отличие от сырого, жёсткого, дискретного решения о маршрутизации) и минимизируется в точности тогда, когда нагрузка распределена равномерно, давая модели подлинный градиентный сигнал, который активно противодействует динамике «богатый богатеет», а не просто наблюдает её постфактум. Правильный подбор веса этой вспомогательной функции потерь сам по себе является нетривиальным выбором гиперпараметра: слишком малый — и дисбаланс нагрузки возвращается; слишком большой — и вспомогательная целевая функция начинает искажать основную целевую функцию языкового моделирования, которую модель на самом деле должна оптимизировать. Понимание того, что это напряжение существует и что оно является центральной практической трудностью обучения любой модели MoE, а не мелкой деталью реализации, — одна из самых важных вещей, которые следует усвоить из этой главы.

Каждая схема маршрутизации, обсуждавшаяся до сих пор, — это token-choice: каждый токен независимо выбирает своих топ-$k$ экспертов, а балансировку нагрузки приходится навязывать постфактум через вспомогательную функцию потерь выше, борясь с динамикой «богатый богатеет», а не предотвращая её структурно. Expert-choice routing от Zhou с соавторами разворачивает направление выбора, чтобы устранить проблему у источника: вместо того чтобы каждый токен выбирал экспертов, каждому эксперту выделяется фиксированная ёмкость (максимальное число слотов токенов, которое он может заполнить в текущем батче), и он независимо выбирает свои собственные токены с наивысшей оценкой из всего батча, чтобы заполнить эти слоты. Поскольку каждый эксперт всегда заполняет одну и ту же фиксированную ёмкость по построению, нагрузка сбалансирована по определению, и вспомогательная функция потерь для борьбы со схлопыванием вообще не нужна. Взамен возникает другой режим отказа: токен в принципе может быть не выбран ни одним экспертом вообще (и оказаться отброшенным, не внеся вклада на этом слое) или выбран сразу несколькими экспертами (обработан избыточно) — это противоположность гарантии token-choice маршрутизации, что каждый токен обрабатывается ровно $k$ экспертами, ценой необходимости во внешнем механизме, чтобы не дать этой гарантии сконцентрировать нагрузку.

5. Switch Transformer: упрощение до top-1

Исходная формулировка Shazeer et al. обычно направляла каждый токен более чем к одному эксперту (top-$k$ при $k > 1$), исходя из соображения, что смешивание выходов пары экспертов даст более плавный, более устойчивый сигнал, чем полное вверение решения одному-единственному эксперту. Switch Transformer авторства Fedus, Zoph и Shazeer пошёл в противоположном направлении, упростив маршрутизацию вплоть до top-1: каждый токен направляется ровно к одному эксперту, и точка. Это по-настоящему смелое упрощение, поскольку оно устраняет любое смешивание выходов экспертов и полностью возлагает ответственность за корректность на решение маршрутизатора, но авторы Switch Transformer обнаружили, что при том масштабе, на который они ориентировались, это не просто приемлемо, а предпочтительно — по причинам, которые стоит понять, а не просто заучить.

Маршрутизация top-1 примерно вдвое (или более) снижает стоимость вычислений и коммуникации по сравнению со схемой top-2, поскольку требуется вычислить прямой проход только одного эксперта, и в распределённой среде через сеть на токен нужно пересылать данные только одного эксперта, а не двух. Эта экономия колоссально накапливается на том масштабе, на который ориентировался Switch Transformer: статья продемонстрировала модели с более чем триллионом общих параметров, распределяя экспертов по множеству ускорителей, и на таком масштабе уменьшение вдвое накладных расходов на маршрутизацию для каждого токена — не второстепенная оптимизация, а зачастую разница между тем, практически ли выполним прогон обучения или нет. Статья также ввела усовершенствования в целевую функцию балансировки нагрузки и в стабильность обучения (тщательный выбор инициализации и точности вычислений для предотвращения расхождения печально известного своей хрупкостью процесса обучения крупномасштабной разреженной маршрутизации) и продемонстрировала, что, несмотря на агрессивное упрощение до одного эксперта на токен, получившиеся разреженные модели могли сравняться или превзойти по качеству гораздо более дорогие плотные модели при эквивалентных вычислительных затратах на обучение — яркая, конкретная демонстрация того, что развязка ёмкости от вычислений, обещанная в разделе 2, реальна и окупается на практике, а не только в теории.

6. Mixtral: MoE как массовая продакшен-техника

Всё, что было изложено в этой главе до сих пор, можно было бы справедливо воспринимать как «интересное и подтверждённое исследовательское направление». Mixtral закрывает этот разрыв, будучи широко развёрнутой, открыто выпущенной продакшен-моделью, построенной точно на этом шаблоне, что стоит рассматривать как отдельный и важный факт: MoE — не исследовательское любопытство, никогда не покинувшее лабораторию, а техника, используемая в моделях, которые люди реально запускают в продакшене сегодня. Mixtral использует восемь экспертов на слой MoE и направляет каждый токен к своим двум лучшим (top-2) экспертам — более консервативный выбор числа экспертов, чем триллионный режим Switch Transformer, и возврат к маршрутизации top-2, а не top-1, отражающий другую точку в том же пространстве проектных решений, а не отход от него. Результат — модель, общее число параметров которой намного больше, чем можно было бы предположить по стоимости вычислений на токен: стандартный способ описать это — сказать, что у Mixtral общее («разреженное») число параметров намного больше, чем активное («плотно-эквивалентное») число параметров на прямой проход, и именно этот разрыв между общими и активными параметрами и есть весь смысл архитектуры.

Mixtral стоит изучать не только как пример работающего механизма маршрутизации, но и как иллюстрацию практических, системных соображений, сопровождающих развёртывание моделей MoE, которые вообще не проявляются в чисто математическом описании шлюзового слоя. Поскольку разные токены в батче маршрутизируются к разным экспертам, эффективное обслуживание требует либо репликации всех экспертов на каждом ускорителе (просто, но дорого по памяти, поскольку вы храните каждого эксперта везде, хотя любой данный токен использует лишь пару из них), либо распределения экспертов по ускорителям и маршрутизации активаций токенов туда, где находится их выбранный эксперт (эффективно по памяти, но требует тщательной, чувствительной к задержкам коммуникации между устройствами для каждого токена, на каждом слое). Это напряжение между эффективностью по памяти и стоимостью коммуникации — подлинно новая проблема времени обслуживания, с которой плотным моделям никогда не приходилось сталкиваться, и это естественный мост к теме следующей главы: какими бы ни были бухгалтерские выгоды MoE на бумаге, реальное обслуживание любой из этих моделей — MoE или плотных — реальным пользователям в масштабе порождает собственный отдельный набор инженерных проблем времени инференса, связанных с управлением памятью, батчингом и задержкой, и именно к этому книга обращается дальше.

DeepSeekMoE, описанная Dai с соавторами и используемая на протяжении всей линейки моделей DeepSeek, развивает гранулярность этого проекта сразу в двух направлениях, и оба стоит знать, поскольку с тех пор они были приняты далеко за пределами собственных моделей DeepSeek. Во-первых, мелкозернистая сегментация экспертов: вместо горстки крупных экспертов тот же самый общий бюджет параметров FFN разбивается на много более мелких экспертов, и на токен активируется больше экспертов сразу, — это даёт маршрутизатору более мелкозернистый набор комбинаций для сборки: та же общая ёмкость, но собранная из более широкой палитры узких специализаций, а не из малого числа широких. Во-вторых, разделяемые эксперты: небольшое число экспертов полностью выведено из-под маршрутизации и обрабатывает каждый токен безусловно, наряду с теми маршрутизированными экспертами, которых выбирает шлюз конкретного токена. Логика в том, что часть вычислений — общие, широко полезные преобразования, нужные каждому токену независимо от его конкретного содержания, — это ровно то, что не должно избыточно переучиваться заново несколькими разными маршрутизированными экспертами, каждый из которых независимо открывает это для себя; разделяемый эксперт выучивает этот общий компонент один раз, освобождая маршрутизированных экспертов для более чистой специализации на том, что действительно специфично для токена.

Отдельная, практическая техника, которую стоит назвать, поскольку она меняет то, как модель MoE реально обучается, а не то, как она маршрутизируется: sparse upcycling, описанный Komatsuzaki с соавторами, инициализирует новую модель MoE из уже предобученного плотного чекпоинта, а не с нуля, копируя единственный FFN плотной модели в каждый слот эксперта как идентичную стартовую точку, а затем продолжая обучение, — позволяя маршрутизатору и теперь продублированным экспертам разойтись из этой общей инициализации, вместо того чтобы одновременно учиться маршрутизации и специализации экспертов со случайных весов. Это переиспользует (часто немалый) вычислительный бюджет, уже вложенный в плотный чекпоинт, вместо того чтобы его выбрасывать, и это значительная часть причины, по которой превращение существующей, уже проверенной плотной модели в MoE стало распространённым коротким путём, а не каждая новая MoE обучается со случайной инициализации.

7. Взгляд с точки зрения собеседования

«Объясните основную идею смеси экспертов в одном-двух предложениях, точно.» Сильный ответ прямо формулирует развязку: MoE заменяет единый плотный полносвязный слой, через который целиком проходит каждый токен, множеством независимых экспертных полносвязных сетей плюс обучаемым маршрутизатором, который выбирает небольшое подмножество (top-$k$) экспертов на токен, так что общая ёмкость модели (суммарное число параметров по всем экспертам) может масштабироваться независимо от стоимости вычислений на токен (которая остаётся фиксированной на уровне вычислений примерно $k$ экспертов, независимо от того, сколько всего экспертов существует).

«Почему наивное обучение MoE склонно схлопываться до использования лишь нескольких экспертов, и как это исправляется?» Сильный ответ точно описывает петлю обратной связи «богатый богатеет»: чуть более удачный (даже случайно) эксперт получает больше токенов от маршрутизатора благодаря градиентному сигналу, в результате получает больше обучения, действительно становится лучше и получает ещё больше токенов, устремляясь по спирали к использованию лишь горстки экспертов, пока остальные остаются необученными. Исправление — вспомогательная функция потерь балансировки нагрузки, добавляемая к целевой функции обучения, обычно построенная из доли направленных токенов каждого эксперта, умноженной на его среднюю вероятность шлюза, просуммированной по экспертам и минимизируемой при примерно равномерной маршрутизации, что даёт маршрутизатору подлинный противодействующий градиентный сигнал вместо надежды на удачу.

«Почему Switch Transformer перешёл на маршрутизацию top-1, тогда как исходная работа по разреженно-управляемому MoE использовала top-k при k больше 1?» Сильный ответ объясняет компромисс, а не трактует top-1 просто как «лучше»: маршрутизация top-1 примерно вдвое снижает стоимость вычислений и межустройственной коммуникации на токен по сравнению с top-2, что становится решающим преимуществом на том масштабе, на который ориентировался Switch Transformer (более триллиона параметров, распределённых по множеству ускорителей), даже несмотря на устранение эффекта сглаживания от смешивания выходов двух экспертов. Это зависящий от масштаба инженерный компромисс, а не универсальное улучшение, поэтому Mixtral позже снова выбрал top-2 в другой точке того же пространства проектных решений.

«В чём разница между «общим» и «активным» числом параметров в модели MoE, и почему это различие важно для оценки стоимости обслуживания?» Сильный ответ объясняет, что общие параметры учитывают веса каждого эксперта по всей модели (что определяет объём занимаемой памяти — обычно нужно достаточно памяти или распределённого хранилища, чтобы вместить каждого эксперта, поскольку заранее неизвестно, куда направятся токены), тогда как активные параметры учитывают только тех экспертов, что реально задействуются на токен (что определяет FLOPs, а следовательно, примерно и задержку, одного прямого прохода). Модель MoE может иметь объём памяти как у гораздо более крупной плотной модели, при этом работая со стоимостью вычислений на токен как у гораздо меньшей, и смешение этих двух чисел ведёт к сильно ошибочным интуициям либо о требованиях к памяти, либо о задержке инференса.

«Какую новую проблему времени обслуживания вносит MoE, которой нет у плотной модели?» Сильный ответ прямо называет проблему маршрутизации и коммуникации: поскольку разные токены в одном батче могут маршрутизироваться к разным экспертам, эффективное обслуживание требует либо полной репликации экспертов на каждом устройстве (что тратит память впустую), либо распределения экспертов по устройствам и пересылки активаций токенов туда, где находится их выбранный эксперт, что вносит накладные расходы на коммуникацию на токен и на слой, с которыми плотной модели, где каждый токен проходит идентичный вычислительный путь, никогда не приходится иметь дело.

8. Вопросы для самопроверки

  1. Своими словами: какое конкретное допущение, присутствующее в каждом плотном полносвязном слое трансформера, отбрасывает смесь экспертов, и что даёт его отбрасывание?
  2. Запишите выход разреженно-управляемого слоя MoE как сумму по экспертам и объясните точно, почему невыбранные эксперты вносят нулевые вычисления, а не просто нулевой вес.
  3. Пройдите по петле обратной связи, приводящей к схлопыванию наивного обучения MoE на небольшом числе экспертов, начиная с небольшого, чисто случайного изначального преимущества одного эксперта.
  4. Какую величину штрафует типичная вспомогательная функция потерь балансировки нагрузки и почему она построена так, чтобы быть дифференцируемой, а не действовать напрямую на жёсткое решение о маршрутизации top-k?
  5. Почему переход Switch Transformer на маршрутизацию top-1 важнее на масштабе в триллион параметров, чем он был бы на меньшем масштабе?
  6. Объясните разницу между «общими параметрами» и «активными параметрами» в модели MoE вроде Mixtral и почему оба числа нужны для рассуждений о её требованиях к ресурсам.
  7. Почему распределение экспертов по нескольким ускорителям, что рано или поздно приходится делать реальной системе обслуживания MoE, вносит стоимость коммуникации, не имеющую аналога в пути обслуживания плотной модели?

9. Источники

  • Shazeer, N., Mirhoseini, A., Maziarz, K., Davis, A., Le, Q., Hinton, G., & Dean, J. (2017). Outrageously Large Neural Networks: The Sparsely-Gated Mixture-of-Experts Layer. ICLR 2017. arXiv:1701.06538. https://arxiv.org/abs/1701.06538
  • Fedus, W., Zoph, B., & Shazeer, N. (2021). Switch Transformers: Scaling to Trillion Parameter Models with Simple and Efficient Sparsity. JMLR 2022. arXiv:2101.03961. https://arxiv.org/abs/2101.03961
  • Jiang, A. Q., et al. (2024, Mistral AI). Mixtral of Experts. arXiv:2401.04088. https://arxiv.org/abs/2401.04088
  • Zhou, Y., Lei, T., Liu, H., Du, N., Huang, Y., Zhao, V., Dai, A. M., Le, Q. V., Laudon, J., et al. (2022). Mixture-of-Experts with Expert Choice Routing. NeurIPS 2022. arXiv:2202.09368. https://arxiv.org/abs/2202.09368
  • Dai, D., Deng, C., Zhao, C., Xu, R. X., Gao, H., Chen, D., Li, J., Zeng, W., Yu, X., Wu, Y., et al. (2024). DeepSeekMoE: Towards Ultimate Expert Specialization in Mixture-of-Experts Language Models. ACL 2024. arXiv:2401.06066. https://arxiv.org/abs/2401.06066
  • Komatsuzaki, A., Puigcerver, J., Lee-Thorp, J., Ruiz, C. R., Mustafa, B., Ainslie, J., Tay, Y., Dehghani, M., & Houlsby, N. (2022). Sparse Upcycling: Training Mixture-of-Experts from Dense Checkpoints. ICLR 2023. arXiv:2212.05055. https://arxiv.org/abs/2212.05055

Тест для самопроверки

Проверьте понимание главы с помощью короткого теста — вопросы по теории и небольшие расчёты.

Какое базовое предположение отбрасывает Mixture of Experts по сравнению с плотным полносвязным слоем трансформера?

Объяснение: MoE заменяет одну плотную сеть прямого распространения множеством независимых экспертов плюс маршрутизатор, активирующий лишь небольшое подмножество на токен, развязывая общую ёмкость от стоимости вычислений на токен.

В разреженно-управляемом слое MoE с маршрутизацией top-k, почему невыбранные эксперты не вносят вычислений, а не просто нулевой вес?

Объяснение: Поскольку G(x) разрежен, фактически нужно вычислить только top-k экспертов с ненулевым весом — именно это делает MoE дешёвым по вычислениям, а не просто мягкой смесью выходов всех экспертов.

Почему наивное обучение MoE склонно схлопываться до использования лишь нескольких экспертов?

Объяснение: Без контроля этот цикл обратной связи концентрирует почти все токены на горстке экспертов, оставляя остальных недообученными — именно это призвана предотвратить вспомогательная функция потерь балансировки нагрузки.

В чём ключевое различие между «общим» и «активным» числом параметров модели MoE?

Объяснение: Модель MoE может иметь объём памяти, как у гораздо более крупной плотной модели, работая при этом со стоимостью вычислений на токен, как у гораздо меньшей — именно в этом разрыве весь смысл архитектуры.

Слои MoE в Mixtral используют 8 экспертов на слой с маршрутизацией top-2. Какую долю от общего числа экспертов реально активирует любой отдельный токен?

Объяснение: 2 из 8 экспертов = 2/8 = 0.25, то есть 25%.

Слой MoE содержит 8 экспертов, каждый с 0.2 миллиарда параметров. Каково общее число параметров по всем экспертам (без учёта маршрутизатора), в миллиардах?

Объяснение: 8 × 0.2 = 1.6 миллиарда параметров всего.

Используя тот же слой (8 экспертов по 0.2 миллиарда параметров) с маршрутизацией top-2, сколько миллиардов параметров реально задействуется для вычисления прямого распространения одного токена?

Объяснение: 2 выбранных эксперта × 0.2 миллиарда параметров каждый = 0.4 миллиарда активных параметров, независимо от остальных 6 неиспользуемых для этого токена экспертов.

Слой MoE с маршрутизацией top-2 стоит 4.0 GFLOPs на токен. Маршрутизация top-1 из Switch Transformer примерно вдвое снижает стоимость вычислений по сравнению с top-2. Примерно сколько GFLOPs на токен будет стоить эквивалентный слой top-1?

Объяснение: Половина от 4.0 GFLOPs составляет примерно 2.0 GFLOPs — нужно вычислить прямой проход только одного эксперта вместо двух.

В распространённой формулировке вспомогательного лосса балансировки нагрузки $\mathcal{L}_{\text{aux}} = n\sum_{i=1}^{n} f_i \cdot P_i$, почему используется $P_i$ (средняя вероятность шлюза), а не только $f_i$ (доля токенов, реально направленных к эксперту $i$)?

Объяснение: Жёсткое решение о маршрутизации top-k, лежащее в основе $f_i$, недифференцируемо, поэтому лосс умножает её на мягкую вероятность шлюза маршрутизатора $P_i$, давая член, который минимизируется именно тогда, когда нагрузка распределена равномерно, и через который реально можно распространить градиент.

Слой MoE содержит $n = 4$ эксперта. Эксперт 2 получает долю $f_2 = 0.4$ токенов и имеет среднюю вероятность шлюза $P_2 = 0.5$. Используя $\mathcal{L}_{\text{aux}} = n\sum_i f_i \cdot P_i$, чему равен индивидуальный вклад эксперта 2 $n \cdot f_2 \cdot P_2$ во вспомогательный лосс?

Объяснение: $n \cdot f_2 \cdot P_2 = 4 \times 0.4 \times 0.5 = 0.8$ — именно такое непропорционально высокое произведение $f_i \cdot P_i$ и штрафует вспомогательный лосс, чтобы противодействовать схлопыванию маршрутизации.