Model parallelism — способ распределения параметров модели между несколькими устройствами, позволяющий обучать архитектуры, не помещающиеся в память одного ускорителя.
Определение
Model parallelism — это подход к распределённому обучению, при котором параметры нейросети делятся между несколькими GPU или узлами. Такой метод используется, когда модель превышает объём памяти одного ускорителя или когда требуется масштабировать вычисления в ширину. В отличие от data parallelism, где каждая копия модели обрабатывает свою часть данных, model parallelism распределяет саму архитектуру: слои, матрицы или экспертов.
Этот подход стал необходимым для современных моделей с сотнями миллиардов параметров, поскольку ни один GPU не способен вместить такие веса целиком.
Как работает
При model parallelism разные части вычислительного графа выполняются на разных устройствах. Между устройствами происходит передача активаций и градиентов, что позволяет проводить полноценный forward и backward pass.
Существует несколько разновидностей model parallelism:
- Tensor parallelism — разбиение больших матриц на фрагменты, параллельное выполнение операций матричного умножения.
- Pipeline parallelism — разделение модели на секции, выполнение которых конвейеризируется по мини-батчам.
- Expert parallelism — использование отдельных экспертов (как в MoE), каждый из которых находится на своём устройстве.
- Layer sharding — распределение отдельных слоёв между устройствами.
Эффективность model parallelism зависит от пропускной способности межсоединений: NVLink, PCIe, InfiniBand. Чем быстрее коммуникация, тем меньше overhead и выше масштабируемость.
Где применяется
- Обучение моделей с параметрами, не помещающимися в память GPU.
- Тренировка LLM с сотнями миллиардов параметров.
- MoE-архитектуры, где эксперты распределены между GPU.
- Системы для обучения на больших кластерах.
- Оптимизация throughput и распределения нагрузки.
- Построение масштабируемых суперкомпьютерных пайплайнов.
Практические примеры использования
В языковых моделях с высоким количеством параметров tensor parallelism делит матрицы self-attention и FFN между несколькими GPU, позволяя выполнять крупные умножения без нехватки памяти. Этот метод используется в Megatron-LM, DeepSpeed и других системах для обучения больших моделей.
Pipeline parallelism применяется, когда модель можно разделить на крупные сегменты. Он обеспечивает высокий throughput при больших batch size, но требует аккуратной настройки для предотвращения имбаланса между стадиями.
MoE-подходы используют expert parallelism: эксперты распределяются по GPU, а роутер выбирает активных для каждого токена. Это уменьшает compute cost, сохраняя высокое качество моделей.
В обучении на кластерах model parallelism позволяет тренировать модели, которые занимают десятки гигабайт параметров и сотни гигабайт KV-кэша.
Ключевые свойства model parallelism
- Масштабируемость — позволяет обучать модели, недоступные для single-GPU систем.
- Гибкость — разные типы параллелизма подходят под разные архитектуры.
- Высокая нагрузка на сеть — требуется мощное межсоединение между устройствами.
- Тесная связь с распределёнными фреймворками — Megatron-LM, DeepSpeed, Colossal-AI.
Проблемы и ограничения
- Коммуникационные накладные расходы — высокая частота передачи активаций между GPU.
- Дисбаланс нагрузки — некоторые части модели могут работать дольше других.
- Сложность настройки — требуется ручной подбор размера шардов и стратегии параллелизма.
- Зависимость от сетевой инфраструктуры — ограниченная пропускная способность снижает эффективность.
Преимущества и ограничения
- Плюс: позволяет обучать модели, не помещающиеся в память одного GPU.
- Плюс: даёт возможность комбинировать разные виды параллелизма для максимальной эффективности.
- Плюс: позволяет увеличить модель при фиксированном compute budget.
- Плюс: снижает нагрузку на память отдельных устройств.
- Минус: требует сложной инженерной настройки.
- Минус: увеличивает коммуникационные задержки.
- Минус: чувствителен к типу и топологии межсоединений.
- Минус: труднее отлаживать и профилировать.
Связанные термины
- Data parallelism
- Tensor parallelism
- Pipeline parallelism
- Expert parallelism
- Distributed training
- Megatron-LM
- DeepSpeed
- ZeRO