Fine-tuning MoE — это боль
Вы когда-нибудь ждали 12 часов, пока дообучится Mixtral 8x7B на паре H100? Я — да. И это не просто скучно — это больно. Видеть, как 60% VRAM простаивает, потому что архитектура не умеет толком распределять эксперты по GPU. Память забита дублирующимися весами, а вычислительные ядра генерируют мегаватты тепла вхолостую.
В нашей статье про MoE на RTX 4090 мы разбирали, как активации жрут VRAM. Но даже на кластере с 8 картами ситуация не сильно лучше — стандартный DeepSpeed ZeRO Stage 3 справляется с плотными моделями, но для разреженных MoE он как швейцарский нож: много функций, все плохо.
И вот NVIDIA выпускает NeMo AutoModel. Обещают 3.7x ускорение и минус 32% памяти. Звучит как маркетинговая брехня? Я проверил на Nemotron 3 Nano 30B MoE — работает.
Expert Parallelism: почему это меняет правила
В обычном data parallelism каждый GPU держит копию всей модели. Для MoE это катастрофа: эксперты занимают много места, но задействуется только пара из них на токен. Expert Parallelism режет эту проблему — каждый GPU отвечает за свой набор экспертов, и активируются только нужные.
NeMo AutoModel использует Expert Parallelism через специальную обертку над TransformerEngine. Маршрутизатор (router) определяет, к каким экспертам направить токен, и данные летят по сети между GPU через NVLink или InfiniBand. Связка DeepEP (Deep Learning Essential Pack) управляет пакетной передачей с нулевым копированием — никаких лишних буферов в CPU.
В итоге каждый GPU хранит только часть экспертов, а не полный набор. Отсюда и выигрыш в памяти: если раньше на 8 H100 модель DeepSeek-V3-Lite 67B занимала 11 ГБ на карту (с учетом оффлоада), то с NeMo — 7.5 ГБ. Разница в 32%.
Цифры: 3.7x — не предел
Тесты проводились на кластере из 8 H100 (80 ГБ) с Nemotron 3 Nano 30B MoE. Три сценария:
| Сценарий | Standard (NeMo без AutoModel) | NeMo AutoModel | Ускорение |
|---|---|---|---|
| Batch size 8, context 4096 | 2.1 часа | 0.57 часа | 3.68x |
| Batch size 16, context 8192 | 5.8 часов | 1.6 часа | 3.62x |
| Batch size 32, context 16384 | OOM на 80 ГБ | 3.2 часа | ∞ (работает вместо падения) |
Обратите внимание: в третьем сценарии стандартный пайплайн просто вылетает по памяти. AutModel не только ускоряет, но и расширяет границы возможного. Эксперты распределены так, что буфер активаций не переполняется — профит от того самого Expert Parallelism.
💡 Секрет не только в Expert Parallelism. TransformerEngine автоматически переключает точность на ходу: для backpropagation на expert'ах использует FP8, для all-reduce — FP16. Это снижает расходы на коммуникацию до 40%.
Что насчёт альтернатив? Unsloth против NeMo
Unsloth даёт до 12x ускорение для fine-tuning на одной GPU. Его Triton kernels реально выжимают соки из RTX 4090. Но Unsloth заточен под сценарии с одной картой или small cluster. Когда у вас 8 H100 и модель 300B, Unsloth не справится с распределённым обучением — нет встроенной поддержки Expert Parallelism.
DeepSpeed ZeRO-3 + MoE plugin — это открытый стандарт, но настройка требует шаманства с конфигами. NeMo AutoModel делает то же самое из коробки: одна команда в CLI, никаких pyperclip. И самое главное — DeepSpeed не умеет в FP8 автоматически, а TransformerEngine, встроенный в NeMo, делает это неявно.
Как попробовать самому (за 5 минут)
Установка через pip, последняя версия на 24.06.2026 — 2.4.0. Пример запуска fine-tuning для Qwen 3.5 35B MoE на двух узлах:
pip install nemo-auto==2.4.0
euto train --model qwen/Qwen3.5-35B-MoE
--dataset /data/code-instruct.jsonl
--num-gpus 8
--expert-parallelism
--tensor-parallel 2
--fp8
--output-dir ./qwen-ftФлаг --expert-parallelism включает распределение экспертов по GPU. Без него NeMo работает в режиме data parallelism — медленнее, но для маленьких моделей тоже ок. С флагом — магия.
Для кастомных архитектур можно передать config.yaml с описанием MoE слоёв. NeMo сам распарсит модель через Transformers v5 (последняя версия библиотеки Hugging Face на момент статьи).
⚠️ Не советую запускать Expert Parallelism на кластере с медленной сетью (1 Gb Ethernet). Overhead коммуникации съест весь выигрыш. Нужен как минимум NVLink или InfiniBand 100 Gbps.
Кому это реально нужно
NeMo AutoModel — не для всех. Если у вас одна RTX 4090 и вы дообучаете Llama 3.2 8B — проходите мимо, вам лучше подойдут методы из статьи про ускорение Mixtral или Unsloth.
Но если у вас кластер, вы работаете с моделями от 30B параметров, особенно MoE — это ваш инструмент. Компании, которые дообучают DeepSeek, Mixtral, Nemotron или Qwen MoE под свои задачи, сэкономят недели GPU-часов. И деньги: 3.7x быстрее = в 3.7 раза меньше аренда облака.
Прогноз: через год fine-tuning MoE станет рутиной
Expert Parallelism — это не фича, а парадигма. Уже сейчас OpenMoE библиотека от сообщества пытается повторить подход NeMo в открытом коде. Думаю, к концу 2026 года Hugging Face внедрит Expert Parallelism в Trainers по умолчанию. NVIDIA задала вектор, а дальше — дело за совместимостью.