Книга: Инжиниринг искусственного интеллекта
Назад: 2.4 GRU (Gated Recurrent Unit / Рекуррентный блок с вентилями)
Дальше: 2.7 Diffusion Models (Диффузионные модели)

2.6 MoE (Mixture of Experts / Смесь экспертов)

По мере того как модели росли, росла и цена их обучения и использования. GPT-3 со своими 175 миллиардами параметров уже стоил десятки миллионов долларов. Но мир хотел большего. И тут инженеры вспомнили старую идею: а что если не активировать все нейроны сразу, а включать только те, которые нужны для конкретной задачи? Так родилась архитектура MoE - Смесь экспертов.

Трансформер, в котором слои FFN заменены на множество параллельных экспертов (experts). Входной токен направляется не во все эксперты, а только в несколько, выбранных маршрутизатором (router). Это позволяет наращивать общее число параметров (до триллионов), сохраняя вычислительную стоимость активных параметров на уровне небольшой модели.

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



Идея (метафора)

Представьте клинику, где вместо одного терапевта наняли 100 узких специалистов: окулист, кардиолог, невролог и т.д. Когда приходит пациент (токен), администратор (роутер) быстро определяет, к кому его направить - например, только к окулисту и кардиологу. Остальные 98 специалистов в это время отдыхают.

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

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



Как это устроено технически



В обычном трансформере каждый токен проходит через один и тот же слой FFN. В MoE вместо одного FFN ставится множество параллельных FFN - это и есть эксперты. Добавляется маршрутизатор - обычно это небольшой линейный слой с softmax, который для каждого токена вычисляет распределение вероятностей по экспертам и оставляет только K лучших (обычно K=1 или 2). Выход токена - взвешенная сумма выходов выбранных экспертов.

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

Ключевой трюк: маршрутизатор активирует не всех экспертов, а только K самых релевантных (обычно K=1 или 2). Остальные эксперты для этого токена простаивают, экономя память и вычисления.



Зачем это нужно



Главная цель MoE



Масштабирование без взрывного роста затрат. Можно сделать модель с триллионом параметров (огромная «копилка знаний»), но на каждом шаге обрабатывать токен лишь небольшой частью сети. Это даёт качество большой модели при скорости маленькой.



Пример

У Mixtral 8x7B общее число параметров - 47 млрд, но при обработке токена работает только 13 млрд (2 эксперта из 8). Формально это огромная модель, фактически - средняя по затратам.



Где используется



LLM-гиганты

GPT-4 (предположительно 16 экспертов), Mixtral (8 экспертов), DeepSeek-V3 (256 экспертов, но активны только 6), Grok.



Мультимодальность

можно сделать экспертов под текст, под изображения, под звук - роутер сам направит данные куда надо.



Главная проблема и её решение



Проблема

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



Решение

инженеры добавляют штраф за неравномерность в функцию потерь или динамически балансируют нагрузку, подкручивая предпочтения роутера. В современных моделях (DeepSeek) это делается без штрафов, через хитрую динамику. Балансировка нагрузки достигается комбинацией вспомогательной функции потерь (auxiliary load-balancing loss) и динамического роутинга с температурой, которая адаптируется в процессе обучения для предотвращения коллапса на 1–2 экспертах. Полный отказ от регуляризации встречается редко, так как ведёт к коллапсу экспертов.



Инженерная деталь

эта балансировка чаще всего реализуется через дополнительный штраф (auxiliary loss) в функции ошибки. Если какой-то эксперт получает слишком мало токенов, модель штрафуется. Это заставляет роутер использовать всех экспертов равномерно, иначе часть параметров модели превратится в «мертвый груз» - будет занимать память, но не обучаться.



MoE - это способ сделать модель «широкой, но не глубокой» в вычислительном смысле. Много экспертов = много знаний, мало активных = быстрая работа. Архитектура, которая позволила индустрии перешагнуть порог в триллион параметров, не сломав бюджет на инференс.

Мы рассмотрели архитектуры для текста и чисел. Но есть ещё одна важная область, где ИИ добился потрясающих результатов - генерация изображений. Там правят бал не трансформеры (хотя они тоже начинают проникать), а диффузионные модели. О них - в следующем разделе.



Назад: 2.4 GRU (Gated Recurrent Unit / Рекуррентный блок с вентилями)
Дальше: 2.7 Diffusion Models (Диффузионные модели)