Короткий практический курс по размещению разреженных моделей
MoE и распределение экспертов: память и обмен
Разберите выбор экспертов, отделите активные параметры от хранимых весов и рассчитайте их размещение в условной модели. Проверьте, какие данные нужны для оценки памяти и обмена между GPU.
Что вы сможете сделать
- Объяснить, что выбирает маршрутизатор и чем экспертный блок отличается от полной модели.
- Различить все параметры, активные параметры и размещённые копии весов.
- Прочитать поля MixtralConfig и DeepSpeed, не подменяя число процессов числом GPU.
- Рассчитать объём весов условной модели и отделить его от полного расхода памяти.
- Задать модель, размещение и нагрузку для проверки качества и производительности.
1. Маршрутизатор выбирает FFN-экспертов
Разберите выбор вычислительных блоков для токена; название «эксперт» не обозначает предметную специальность.
В Mixtral 8x7B маршрутизатор выбирает для токена два из восьми экспертов каждого MoE-слоя.
Проверить тезис: Смесь экспертов (MoE) 01
Эксперт здесь — блок прямого распространения (FFN), который преобразует представление токена, а не полная модель. Блок внимания общий для экспертных ветвей внутри слоя; из этого не следует использование одних и тех же весов в разных слоях.
Проверить тезис: Смесь экспертов (MoE) 02
В исследовании Mixtral на подмножествах The Pile авторы не нашли явного тематического разделения экспертов. Этот результат ограничен исследованными данными.
Проверить тезис: Смесь экспертов (MoE) 04
2. Считайте параметры и байты отдельно
Сначала укажите, о каком числе параметров идёт речь; затем задайте допущения расчёта байтов.
У Mixtral авторы указывают округлённые 47 млрд параметров всего и 13 млрд активных. Это разные счётчики параметров, а не готовый объём файла весов или памяти GPU.
Проверить тезис: Смесь экспертов (MoE) 03
Учебная модель имеет один MoE-слой: восемь экспертов по 1 млрд параметров и 2 млрд вне экспертов. Все параметры вне экспертов активны по условию; выбираются два эксперта на токен. Всего 10 млрд параметров, активно 4 млрд. Один полный набор плотных весов по 2 байта занимает 20 GB (GB=10⁹ байт). Это не Mixtral.
Проверить тезис: Смесь экспертов (MoE) 06
В расчёте учитываем только веса: без KV-кэша, активаций, буферов, служебной памяти и состояний обучения. Нет квантования, выгрузки, тензорного параллелизма или дополнительных копий. Объём весов не доказывает, что весь запуск поместится на GPU.
Проверить тезис: Смесь экспертов (MoE) 06 · Бюджет памяти GPU для LLM 01 · Веса языковой модели 07
3. От конфигурации к рангам
Ранг — номер процесса в группе. Уточните, сколько процессов размещено на каждом GPU, прежде чем переводить число экспертов на процесс в число на устройство.
В MixtralConfig v4.44.2 num_local_experts означает число экспертов разреженного MLP-слоя (по умолчанию 8), num_experts_per_tok — выбранных для токена (2). Слово local в имени поля не означает «на одном GPU».
Проверить тезис: Смесь экспертов (MoE) 05
DeepSpeed v0.14.5 делит num_experts на ep_size — размер группы процессов EP. Для 8 и 4 это два эксперта на процесс; делимость проверяется конструктором. Два эксперта на GPU получаются лишь при отдельном условии: один процесс на GPU.
Проверить тезис: Экспертный параллелизм (EP) 01
В обычном прямом проходе MOELayer этой версии DeepSpeed операция AllToAll отправляет активации токенов к экспертам. Второй обмен возвращает результаты, которые затем объединяются. Это передача данных для вычисления, а не весов экспертов.
Проверить тезис: Экспертный параллелизм (EP) 02
EP распределяет экспертные блоки. Тензорный параллелизм (TP) может разделять матрицы одного слоя между участниками; его не следует подразумевать только из числа процессов EP.
Проверить тезис: Экспертный параллелизм (EP) 01 · Тензорный параллелизм 01
4. Считайте размещение и проверяйте нагрузку
Различайте пример из документации, условия учебной модели и результаты реального запуска.
В примере vLLM v0.10.2 для DeepSeek-V3-0324 с TP=1, DP=8, EP=8 веса внимания скопированы на GPU, экспертные веса распределены между ними. Здесь TP — тензорный параллелизм, DP — параллелизм данных. Документ не устанавливает такое размещение для всех остальных весов.
Проверить тезис: Экспертный параллелизм (EP) 03
Равное число экспертов на процессах ещё не означает одинаковое число полученных токенов. Нагрузку проверяют на выбранном наборе запросов.
Проверить тезис: Экспертный параллелизм (EP) 04
Разместим учебную модель из модуля 2 на четырёх GPU: по одному процессу EP и по два эксперта на GPU, без дополнительных копий экспертов. Все 2 млрд параметров вне экспертов копируем на каждую GPU по условию задачи, а не по примеру vLLM. При 2 байтах это 4 GB экспертных весов и 4 GB остальных: 8 GB на GPU, 32 GB суммарно против 20 GB одного набора. Как и раньше, считаем только веса: без KV-кэша, активаций, буферов, служебной памяти и состояний обучения; без TP, квантования и выгрузки.
Проверить тезис: Экспертный параллелизм (EP) 05
До сравнения производительности фиксируют модель, среду исполнения, размещение, входы и поступление запросов. Проверяют качество, задержки, пропускную способность и ошибки. Число активных параметров или экспертов не заменяет эти измерения.
Проверьте инженерное мышление
Вопросы проверяют не память на аббревиатуры, а умение не делать лишних выводов.
В каталоге
- Графические ускорители — Сравните полный бюджет памяти и обмен между GPU для выбранной модели и среды исполнения; одного числа активных параметров для подбора недостаточно.
Источники курса
Полные сведения о первоисточниках приведены один раз для всего курса. Под тезисами — ссылки на соответствующие утверждения Архивариума.
- Первичная публикация
Mixtral of Experts
Albert Q. Jiang et al.; Mistral AI · arXiv:2401.04088v1; §§2, 2.1, 3, 5 and Appendix Figure 10
Архитектура и схема экспертов — §§2–2.1, таблица 1; общий и активный счёт параметров — §3. Анализ маршрутизации ограничен исследованными подмножествами The Pile: §5, рисунки 7–10.
Открыть первоисточник - Официальная документация
Transformers v4.44.2: MixtralConfig
Hugging Face · Transformers v4.44.2; configuration_mixtral.py: MixtralConfig
Описания num_experts_per_tok и num_local_experts — строки 82–86, значения по умолчанию — 131–132, присваивания — 158–159. Только указанная версия MixtralConfig.
Открыть первоисточник - Официальная документация
CUDA C++ Programming Guide
NVIDIA · CUDA C++ Programming Guide, CUDA 12.6, страница открыта 7 сентября 2026 года
Открыт редактором 7 сентября 2026 года, заголовок документа сверен.
Открыть первоисточник - Первичная публикация
Efficient Memory Management for Large Language Model Serving with PagedAttention
Woosuk Kwon и соавторы · arXiv:2309.06180, страница открыта 7 сентября 2026 года
Открыт редактором 7 сентября 2026 года, заголовок документа сверен.
Открыть первоисточник - Официальная документация
DeepSpeed v0.14.5: MoE Layer
DeepSpeed · DeepSpeed v0.14.5; deepspeed/moe/layer.py
Аргументы MoE — строки 20–35; делимость числа экспертов и расчёт локального числа — 59–63; создание группы процессов — 89–103. Только DeepSpeed v0.14.5.
Открыть первоисточник - Официальная документация
DeepSpeed v0.14.5: sharded MoE forward
DeepSpeed · DeepSpeed v0.14.5; deepspeed/moe/sharded_moe.py
_AllToAll — строки 96–108; MOELayer.forward — 508–599. Рассматриваются отправка активаций, вычисление экспертов, возврат и объединение результатов; не все обмены при обучении.
Открыть первоисточник - Первичная публикация
Megatron-LM: Training Multi-Billion Parameter Language Models Using Model Parallelism
Shoeybi et al.; NVIDIA · arXiv:1909.08053, страница открыта 7 сентября 2026 года
Открыт редактором 7 сентября 2026 года, заголовок документа сверен. Первичная схема tensor parallelism при обучении; поддержка современного serving здесь не подтверждается.
Открыть первоисточник - Официальная документация
Expert Parallel Deployment
vLLM · vLLM v0.10.2; docs/serving/expert_parallel_deployment.md
Пример DeepSeek-V3-0324 — строки 25–55; возможная неравномерность распределения токенов — 113. EP в этой версии отмечен как экспериментальный; описание не подтверждает запуск на конкретном оборудовании.
Открыть первоисточник - Официальная документация
vLLM online serving benchmark: benchmark_serving.py
vLLM Project · репозиторий vLLM, тег v0.5.4, страница открыта 7 сентября 2026 года
Открыт редактором 7 сентября 2026 года, заголовок документа сверен. Клиентские метрики; точные timestamps, chunks и знаменатели проверить в этой версии и её request adapter.
Открыть первоисточник - Официальная документация
Transformers 4.44.2: Generation
Hugging Face · документация Hugging Face Transformers v4.44.2, страница открыта 7 сентября 2026 года
Открыт редактором 7 сентября 2026 года, заголовок документа сверен.
Открыть первоисточник - Официальная документация
Service Level Objectives
Google Site Reliability Engineering · Site Reliability Engineering, Chapter 4
Определяет SLI, SLO и SLA и объясняет user-centric latency, error rate, throughput и percentiles.
Открыть первоисточник - Первичная публикация
AWQ: Activation-aware Weight Quantization for On-Device LLM Compression and Acceleration
Ji Lin и соавторы · arXiv:2306.00978v6, revised 2026-04-25
Полный PDF v6 перечитан 15.10.2026: §2–3 — квантование весов и шкалы; §4 — упаковка и исполнение; §5 — качество и скорость. Результаты отдельных моделей и устройств не обобщаются; формат KV не следует из разрядности весов.
Открыть первоисточник - Первичная публикация
Attention Is All You Need
Ashish Vaswani и соавторы · arXiv:1706.03762, страница открыта 7 сентября 2026 года
Открыт редактором 7 сентября 2026 года, заголовок документа сверен.
Открыть первоисточник