Короткий практический курс по размещению разреженных моделей

MoE и распределение экспертов: память и обмен

Разберите выбор экспертов, отделите активные параметры от хранимых весов и рассчитайте их размещение в условной модели. Проверьте, какие данные нужны для оценки памяти и обмена между GPU.

База → инженерная практика60 минут4 модуля8 вопросов
После курса

Что вы сможете сделать

  1. Объяснить, что выбирает маршрутизатор и чем экспертный блок отличается от полной модели.
  2. Различить все параметры, активные параметры и размещённые копии весов.
  3. Прочитать поля MixtralConfig и DeepSpeed, не подменяя число процессов числом GPU.
  4. Рассчитать объём весов условной модели и отделить его от полного расхода памяти.
  5. Задать модель, размещение и нагрузку для проверки качества и производительности.
Модуль 1 из 4

1. Маршрутизатор выбирает FFN-экспертов

Разберите выбор вычислительных блоков для токена; название «эксперт» не обозначает предметную специальность.

  • В Mixtral 8x7B маршрутизатор выбирает для токена два из восьми экспертов каждого MoE-слоя.

    Проверить тезис: Смесь экспертов (MoE) 01

  • Эксперт здесь — блок прямого распространения (FFN), который преобразует представление токена, а не полная модель. Блок внимания общий для экспертных ветвей внутри слоя; из этого не следует использование одних и тех же весов в разных слоях.

    Проверить тезис: Смесь экспертов (MoE) 02

  • В исследовании Mixtral на подмножествах The Pile авторы не нашли явного тематического разделения экспертов. Этот результат ограничен исследованными данными.

    Проверить тезис: Смесь экспертов (MoE) 04

Модуль 2 из 4

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 из 4

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 из 4

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

  • До сравнения производительности фиксируют модель, среду исполнения, размещение, входы и поступление запросов. Проверяют качество, задержки, пропускную способность и ошибки. Число активных параметров или экспертов не заменяет эти измерения.

    Проверить тезис: Приёмочное испытание инференса 01 02 03

Финишная прямая

Проверьте инженерное мышление

Вопросы проверяют не память на аббревиатуры, а умение не делать лишних выводов.

01Что выбирает маршрутизатор Mixtral 8x7B для одного токена в рассматриваемом MoE-слое?
02В статье о Mixtral указаны 47 млрд параметров всего и 13 млрд активных. Какая запись годится как основа дальнейшего расчёта хранения весов?
03Какой вывод соответствует анализу выбора экспертов Mixtral на подмножествах The Pile?
04В MixtralConfig из Transformers v4.44.2 стоят num_local_experts=8 и num_experts_per_tok=2. Что означают эти два поля?
05Условная модель: один MoE-слой, 8 экспертов по 1 млрд параметров и 2 млрд всегда активных параметров вне экспертов. Для токена выбираются 2 эксперта. Считайте только одну копию всех весов: плотное хранение по 2 байта, GB=10⁹ байт. Каков её объём?
06В DeepSpeed v0.14.5 для слоя заданы num_experts=8 и ep_size=4, по одному процессу EP на GPU. Как распределены эксперты?
07Как размещены веса в приведённом примере vLLM v0.10.2 для DeepSeek-V3-0324 с TP=1, DP=8 и EP=8?
08Условная модель: один MoE-слой, 8 экспертов по 1 млрд параметров и 2 млрд всегда активных параметров вне экспертов. Для токена выбираются 2 эксперта. Четыре процесса EP работают по одному на GPU. Каждый эксперт целиком хранится на одной GPU, по 2 эксперта на GPU; все веса вне экспертов скопированы на каждую. Считайте только эти веса: плотное хранение по 2 байта, GB=10⁹ байт. Каков объём на GPU и суммарно?

В каталоге

  • Графические ускорители — Сравните полный бюджет памяти и обмен между 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 года, заголовок документа сверен.

    Открыть первоисточник
Подтвердите действие