В прошлую пятницу DeepSeek объявил в Twitter, что эта неделя будет неделей открытого исходного кода (OpenSourceWeek), в рамках которой компания последовательно опубликует пять программных библиотек.
Вчера они представили первую библиотеку — FlashMLA. Это эффективное ядро декодирования MLA для GPU Hopper, которое за 24 часа набрало почти 8 тысяч звезд (подробнее см. статью «Только что DeepSeek представил FlashMLA, ключевую технологию ускорения вывода, число звезд стремительно растет»).
Сегодня DeepSeek продолжает публиковать инновации в базовой архитектуре, представляя первую библиотеку коммуникации EP для обучения и вывода моделей MoE — DeepEP.
В распределенных системах (например, в среде обучения на нескольких GPU) все вычислительные блоки должны эффективно обмениваться данными. В MoE это особенно важно, поскольку разные «эксперты» должны часто обмениваться информацией. Кроме того, модели MoE могут испытывать дисбаланс нагрузки при «параллелизме экспертов», что приводит к неравномерному распределению вычислительных ресурсов между «экспертами», из-за чего менее важные «эксперты» не могут демонстрировать ожидаемую производительность.
Представленная DeepEP обеспечивает:
- Высокооптимизированную коммуникацию All-to-All
- Поддержку внутриузловой и межузловой коммуникации через NVLink и RDMA
- Высокопроизводительные вычислительные ядра для обучения и предварительной загрузки при выводе
- Низколатентные вычислительные ядра для фазы декодирования при выводе
- Нативную поддержку распределения данных FP8
- Гибкий контроль ресурсов GPU для эффективного сочетания вычислений и коммуникации
Эффективная коммуникация снижает узкие места передачи данных, оптимизация вычислительных ядер повышает скорость обработки, а гибкое планирование ресурсов предотвращает взаимное ожидание между вычислениями и коммуникацией.
Архитектурные усовершенствования MLA и MoE можно считать двумя ключевыми инновациями DeepSeek. Вчера была представлена оптимизация внутреннего ядра MLA, а сегодня раскрыта еще одна козырная карта — как MoE эффективно обменивается данными и обрабатывает их параллельно. DeepSeek действительно очень открыты!
Ссылка на проект: https://github.com/deepseek-ai/DeepEP
Насколько популярным стал проект?
После публикации проекта с открытым исходным кодом один из пользователей отметил: Уровень оптимизации, достигнутый DeepSeek для моделей MoE, впечатляет, учитывая сложность таких моделей из-за их масштаба и сложности. Способность DeepEP использовать передовые аппаратные технологии, такие как NVLink и RDMA, а также поддержка точности fp8 для решения этих проблем с такой точностью — это настоящий прорыв.
Другой комментатор отметил: «Поддержка NVLink и RDMA является революционным прорывом для крупномасштабных моделей MoE. Похоже, DeepSeek снова раздвигает технологические границы в области возможностей инфраструктуры ИИ».
Ранее некоторые критики утверждали, что DeepSeek-R1 достигает своей производительности только благодаря дистилляции модели, а не настоящим технологическим инновациям. Другие сомневались в указанном компанией количестве GPU, необходимых для обучения. Материалы, опубликованные в рамках недели открытого кода, в определенной степени доказывают, что DeepSeek действительно добился повышения эффективности обучения и снижения затрат за счет технологических инноваций.
Что такое DeepEP?
DeepEP — это библиотека коммуникации, специально разработанная для систем с множеством экспертов (MoE) и параллелизации экспертов (EP). Она предоставляет высокопроизводительные и низколатентные ядра all-to-all GPU, также известные как распределение и объединение MoE. Библиотека также поддерживает операции с низкой точностью, включая FP8.
Для соответствия алгоритму group-limited gating, предложенному в статье DeepSeek-V3, DeepEP предоставляет набор ядер, оптимизированных для пересылки данных в асимметричных доменах пропускной способности, например, из домена NVLink в домен RDMA. Эти ядра обеспечивают высокую пропускную способность, подходящую для обучения и предварительной загрузки при выводе. Кроме того, они поддерживают контроль количества SM (потоковых мультипроцессоров).
Для чувствительного к задержкам декодирования при выводе DeepEP включает набор низколатентных ядер, использующих чистый RDMA для минимизации задержек. Библиотека также вводит метод перекрытия вычислений и коммуникации на основе хуков, который не занимает ресурсы SM.
Примечание: реализация в этой библиотеке может несколько отличаться от описания в статье DeepSeek-V3.
Какова производительность DeepEP?
Обычные ядра с пересылкой через NVLink и RDMA
DeepSeek протестировал обычные ядра на H800 (максимальная пропускная способность NVLink около 160 ГБ/с), каждый H800 подключен к сетевой карте CX7 InfiniBand 400 Гб/с RDMA (максимальная пропускная способность около 50 ГБ/с). Они следовали настройкам предварительного обучения DeepSeek-V3/R1 (4096 токенов на пакет, 7168 скрытых измерений, top-4 группы, top-8 экспертов, распределение FP8 и объединение BF16).
Низколатентные ядра с чистым RDMA
DeepSeek протестировал низколатентные ядра на H800, каждый H800 подключен к сетевой карте CX7 InfiniBand 400 Гб/с RDMA (максимальная пропускная способность около 50 ГБ/с). Они следовали типичным производственным настройкам DeepSeek-V3/R1 (128 токенов на пакет, 7168 скрытых измерений, top-8 экспертов, распределение FP8 и объединение BF16).
Примечания
Для достижения максимальной производительности DeepSeek обнаружил и использовал недокументированную инструкцию PTX: ld.global.nc.L1::no_allocate.L2::256B. Эта инструкция вызывает неопределенное поведение: доступ к изменяемой памяти GPU с использованием модификатора только для чтения PTX «.nc». Однако на архитектуре Hopper с «.L1::no_allocate» правильность работы была проверена, и производительность значительно улучшается. Если вы обнаружите, что ядра не работают на других платформах, вы можете отключить эту функцию, добавив DISABLE_AGGRESSIVE_PTX_INSTRS=1 в setup.py или создав issue.
Для достижения лучшей производительности на вашем кластере DeepSeek рекомендует запустить все тесты и использовать лучшие конфигурации автоматической настройки. Конфигурации по умолчанию оптимизированы для внутреннего кластера DeepSeek.
Дополнительную информацию смотрите в репозитории GitHub.
В заключение необходимо еще раз подчеркнуть: Real OPENAI has born!
Наконец, как вы думаете, что будет опубликовано на третий день? Ответ будет известен через 24 часа.
Александр — сооснователь RockAPI, эксперт в области ИИ и разработки API. RockAPI предоставляет неограниченный доступ к передовым моделям ИИ, таким как DeepSeek, GPT-4o, Claude и Gemini, с простой интеграцией и гибкими способами оплаты. Зарегистрируйтесь на https://www.rockapi.ru/ и получите бесплатный стартовый кредит для новых пользователей — начните свое путешествие в мир ИИ уже сегодня!