DeepSeek запускает DeepEP для оптимизации MoE

DeepSeek запускает DeepEP для оптимизации MoE

Вслед за выпуском FlashMLA компания DeepSeek запустила второй проект OpenSourceWeek — DeepEP.

Будучи первой библиотекой для EP-коммуникации с открытым исходным кодом, созданной специально для обучения и инференса MoE-моделей (Mixture-of-Experts), DeepEP представляет собой значительный шаг вперёд в области экспертного параллелизма (EP). Её цель — обеспечить MoE-моделям низкую задержку, высокую пропускную способность и высокую производительность коммуникации как между GPU внутри узла, так и между узлами.

Согласно результатам тестирования, DeepEP достигает почти максимальной пропускной способности для внутриузловой многопроцессорной связи GPU, а также значительно повышает эффективность межузлового обмена.

Что такое EP?

Прежде чем углубляться в DeepEP, важно понять, что такое EP.

EP (Expert Parallelism) — это метод распределённых вычислений, специально разработанный для MoE-моделей (Mixture-of-Experts) и впервые опубликованный DeepSeek. MoE — это архитектура модели на основе Transformer, использующая стратегию разреженной активации, что делает её более лёгкой в обучении по сравнению с традиционными плотными моделями. В нейронной сети MoE в каждый момент времени активируется только часть компонентов модели (так называемые «эксперты») для обработки входных данных.

Важность EP (Expert Parallelism) для ускорения инференса больших языковых моделей заключается в его способности эффективно разделять MoE-модели. Когда модель использует архитектуру MoE с сотнями экспертов (например, 320), EP может назначить разных экспертов на независимые вычислительные узлы, причём его степень параллелизма напрямую соответствует количеству экспертов.

В отличие от этого, TP (Tensor Parallelism) опирается на разделение вычислений на основе механизма множества головок в слоях Attention. Например, в типичной конфигурации с 32 головками TP сталкивается с трудностями при масштабировании до 64 и более GPU, так как размерность разделения недостаточна (32 < 64), что затрудняет полное использование аппаратных ресурсов. EP, напротив, разделяет вычисления по размерности экспертов.

из EPS-MoE: Expert Pipeline Scheduler for Cost-Efficient MoE Inference

DP vs TP vs PP vs EP

Метод Внутренняя логика Решаемая проблема
Data Parallelism (DP) Копирование модели на все устройства, разбиение входных данных, синхронизация обновлений градиентов. Медленная скорость обучения из-за большого размера набора данных.
Tensor Parallelism (TP) Разделение матриц параметров по устройствам, распределённые вычисления и агрегация результатов. Размер параметров одного слоя превышает объём памяти устройства.
Pipeline Parallelism (PP) Разделение слоёв модели по устройствам, организация конвейерной обработки микробатчей. Недостаток памяти для моделей с очень большим количеством слоёв.
Expert Parallelism (EP) Динамическая маршрутизация входных данных к подсетям экспертов с разреженной активацией параметров. Неэффективное использование памяти и вычислений при масштабе в триллионы параметров.

Современные крупномасштабные модели (например, GPT-4, DeepSeek-V3) обычно одновременно используют несколько стратегий параллелизма для максимальной эффективности:

  • Tensor Parallelism (TP): Разделяет параметры отдельных слоёв между устройствами.
  • Pipeline Parallelism (PP): Распределяет разные слои модели по устройствам для конвейерной обработки.
  • Data Parallelism (DP): Синхронизирует обучение на нескольких машинах путём копирования модели и разделения набора данных.
  • Expert Parallelism (EP): Расширяет разреженные параметры, распределяя экспертов по устройствам для MoE-моделей.

Комбинируя эти стратегии, большие модели могут эффективно использовать доступные аппаратные ресурсы, масштабируясь до больших размеров модели и наборов данных, сохраняя при этом эффективность обучения и инференса.

Что такое DeepEP?

DeepEP — это библиотека для коммуникации, созданная специально для MoE (Mixture-of-Experts) и EP (Expert Parallelism), обладающая следующими ключевыми преимуществами:

  • 1. Высокооптимизированная связь «все со всеми» (All-to-All)

DeepEP предоставляет эффективное ядро для All-to-All коммуникации, значительно сокращая узкие места при передаче данных и обеспечивая более плавный обмен информацией между экспертами в распределённых средах.

  • 2. Поддержка NVLink и RDMA для внутриузловой и межузловой связи

DeepEP поддерживает технологии NVLink и RDMA, обеспечивая высокопроизводительную связь внутри узлов и между ними:

  • NVLink: Обеспечивает пропускную способность до 160 ГБ/с для внутриузловой связи.

  • RDMA: Обеспечивает передачу данных с низкой задержкой между узлами, что соответствует требованиям крупномасштабного распределённого обучения.

  • 3. Ядро с высокой пропускной способностью

Для этапов обучения и предварительного заполнения (prefill) при инференсе DeepEP предоставляет ядро с высокой пропускной способностью, обеспечивая эффективную обработку больших объёмов данных.

  • 4. Ядро с низкой задержкой

DeepEP предлагает ядро с низкой задержкой на основе RDMA/InfiniBand, которое минимизирует задержки инференса. Это особенно полезно для приложений, чувствительных к задержкам, на этапе декодирования инференса.

  • 5. Встроенная поддержка распределения данных в формате FP8

DeepEP изначально поддерживает распределение данных в формате FP8, уменьшая объём передаваемых данных при сохранении точности, что дополнительно повышает эффективность коммуникации.

  • 6. Гибкое управление ресурсами GPU

DeepEP имеет гибкий механизм планирования ресурсов GPU, позволяющий эффективно совмещать вычисления и коммуникацию. Это минимизирует потери ресурсов и повышает общую производительность.

EP vs DeepEP

По сути, EP определяет «что» (как разделить экспертов и распределить нагрузку), а DeepEP предоставляет «как» (эффективные механизмы коммуникации, которые делают EP быстрее и масштабируемее).

ep vs deepep

Производительность DeepEP

DeepEP демонстрирует исключительную производительность как во внутриузловой, так и в межузловой связи, особенно в гибридных архитектурах, сочетающих NVLink и RDMA. Ниже приведены результаты производительности в двух типичных сценариях:

  • Тестовая среда:

    • GPU: H800 (NVLink с максимальной пропускной способностью ~160 ГБ/с)
    • Сеть: CX7 InfiniBand 400 Гбит/с RDMA NIC (макс. пропускная способность ~50 ГБ/с)
    • Конфигурация: Конфигурация предварительного обучения DeepSeek-V3/R1 (размер батча: 4096 токенов, скрытый размер: 7168, top-4 слоя, top-8 экспертов, распределение FP8, агрегация BF16)
  • Результаты производительности:

    • Внутриузловая связь достигает пропускной способности, близкой к максимуму NVLink (160 ГБ/с), демонстрируя чрезвычайно высокую эффективность передачи данных.
    • Межузловая связь сохраняет стабильную пропускную способность при использовании RDMA, отвечая требованиям крупномасштабного распределённого обучения.

Производительность обычного ядра (пересылка через NVLink и RDMA)

Производительность ядра с низкой задержкой (Pure RDMA)

  • Тестовая среда:

    • GPU: H800
    • Сеть: CX7 InfiniBand 400 Гбит/с RDMA NIC (макс. пропускная способность ~50 ГБ/с)
    • Конфигурация: Типичная производственная конфигурация DeepSeek-V3/R1 (размер батча: 128 токенов, скрытый размер: 7168, top-8 экспертов, распределение FP8, агрегация BF16)
  • Результаты производительности:

    • Ядро с низкой задержкой достигает задержки на уровне микросекунд в режиме Pure RDMA, что делает его подходящим для задач декодирования инференса, чувствительных к задержке.
    • Даже при высокой степени параллелизма (#EP=256) пропускная способность RDMA остаётся стабильной, обеспечивая эффективную передачу данных.

Производительность ядра с низкой задержкой (Pure RDMA)

Сценарии применения DeepEP

DeepEP хорошо подходит для различных сценариев обучения и инференса MoE-моделей, особенно в крупномасштабном распределённом обучении. Основные сценарии применения:

  1. Обучение MoE-моделей

    • Высокопроизводительное ядро DeepEP и эффективный механизм All-to-All коммуникации значительно ускоряют процесс обучения, особенно в средах с несколькими узлами и несколькими GPU.
  2. Этап предварительного заполнения (prefill) инференса

    • На этапе prefill инференса высокопроизводительное ядро DeepEP эффективно обрабатывает большие объёмы данных, обеспечивая эффективный конвейер инференса.
  3. Этап декодирования инференса

    • Для этапа декодирования ядро с низкой задержкой DeepEP минимизирует задержки инференса, что делает его идеальным для приложений реального времени.

Заключение

Согласно результатам оценки, DeepGEMM продемонстрировал значительные возможности оптимизации производительности на нескольких GPU, включая H100, H200 и H800, что подчёркивает его отличную универсальность.

Для MoE-моделей на архитектуре Hopper (таких как DeepSeek V3 и R1) интеграция оптимизаций в MoE-модуль фреймворка инференса и замена исходной версии CUTLASS grouped GEMM на реализацию DeepGEMM, как ожидается, обеспечит ускорение инференса примерно в 1,2 раза, значительно повышая общую производительность.

Novita AI — это облачная AI-платформа, которая предоставляет разработчикам простой способ развёртывания AI-моделей с помощью простого API, а также предлагает доступные и надёжные GPU-облака для построения и масштабирования.

try deepseek r1

Получите $20 кредитов и попробуйте DeepSeek сейчас!

Рекомендуем к прочтению