52 Mixtral
Контекст
MoE (#31) обещал масштаб без роста компьюта, но открытых сильных MoE-LLM не было. Mistral AI выпускает Mixtral 8×7B с открытыми весами.
Идея и механизм
В каждом трансформер-слое FFN заменён на MoE из 8 экспертов; обучаемый router для каждого токена выбирает 2 эксперта (top-2). Итого ~47B параметров, но на токен активны лишь ~13B. Обошёл Llama-2-70B и GPT-3.5 при меньшем активном компьюте.
оптимизация Активные vs общие параметры: где экономия
FFN-слой заменён на E=8 экспертов. Router даёт веса, берём top-2, ренормируем и смешиваем:
Считаем баланс. Общие параметры (надо держать в памяти): все 8 экспертов на всех слоях ≈ 47B. Активные (считаются на каждый токен): лишь 2 эксперта ≈ 13B. То есть:
Качество тянется к ёмкости (47B), а скорость инференса — к активной части (13B). Это та же sparse-MoE идея из #31, доведённая до рабочей open-LLM: «много знаний, мало счёта на токен».
PyTorch MoE-FFN Mixtral (top-2 из 8)
import torch
def mixtral_ffn(x, gate, experts): # 8 экспертов, top-2
w, idx = gate(x).softmax(-1).topk(2, -1)
w = w / w.sum(-1, keepdim=True) # ренормировка весов
out = sum(w[:, j:j+1] * experts[idx[:, j]](x) for j in range(2))
return out # активны 2 из 8 → ~13B из 47B параметров на токен
Почему это важно
Доказал open-сообществу практичность sparse-MoE и сделал его мейнстримом открытых моделей; закрепил инженерный паттерн «много общих параметров, мало активных», который дальше масштабирует DeepSeek (#53).
Связи
Mixtral — это sparse-MoE из 2017-го, наконец дозревший до открытой сильной LLM: FFN каждого слоя — MoE из 8 экспертов с top-2 роутингом. Идея «Outrageously Large» в практичном масштабе.
DeepSeek-V3 берёт тот же принцип ещё крупнее — 671B параметров, ~37B активных — плюс улучшения роутинга (балансировка без auxiliary loss). Прямая линия Mixtral → фронтир-MoE.
Mixtral построен на LLaMA-подобной архитектуре (RMSNorm, RoPE, SwiGLU), заменив плотный FFN на MoE. Открытая экосистема, заданная LLaMA, — почва, на которой вырос Mistral.
Вопросы пытливого ума
Если активно лишь 13B, почему нельзя просто запустить на железе под 13B-модель?
Потому что все 47B параметров должны лежать в памяти — заранее неизвестно, какие 2 эксперта понадобятся следующему токену. Память считается по общим параметрам, а не по активным. Поэтому MoE экономит компьют, но не VRAM: запустить Mixtral нужно железо под 47B, а скорость будет как у ~13B. Это другая точка размена, а не бесплатный обед.
Разные токены идут к разным экспертам — не рвётся ли связность внутри батча?
Это создаёт инженерную головную боль: в батче токены расходятся по экспертам неравномерно, и нужно эффективно собирать/раскидывать их (all-to-all коммуникация), иначе часть GPU простаивает. Отсюда capacity factor (лимит токенов на эксперта) и сложная балансировка. MoE мощен, но его системная реализация заметно сложнее плотной модели.
Эксперты Mixtral специализируются по темам (код, язык, математика)?
Анализ показал — почти нет. Распределение токенов по экспертам слабо коррелирует с темой/доменом; роутинг скорее ловит синтаксические/поверхностные признаки и довольно равномерен. Красивая интуиция «эксперт по медицине, эксперт по коду» на практике не подтверждается — router учится тому, что снижает лосс, а не человекочитаемому разделению.
Что читать в оригинале
Читать ключевое — routing (top-2), различие активных и общих параметров, влияние на память vs скорость.