DeepSeek открыла исходный код DeepInfer — фреймворка инференса, лежащего в основе DeepSeek-V4.1-Flash
DeepSeek открыла исходный код DeepInfer — фреймворка инференса, на котором работают её производственные сервисы. Фреймворк инференса DeepSeek DeepInfer — это движок, лежащий в основе DeepSeek-V4.1-Flash. Он распространяется по условиям лицензии Apache 2.0. DeepSeek также выпустила deepseek-recipe — свой слой кодирования и декодирования токенов под лицензией MIT. Для разработчиков это редкая возможность взглянуть на реальный стек обслуживания передовой лаборатории.
Кратко
- Размер / охват: 1 поддерживаемая модель (DeepSeek-V4.1-Flash), контекстное окно на 1 млн токенов согласно карточке модели.
- Работает на: GPU NVIDIA SM100 (Blackwell) и NPU Huawei Ascend 950. В бенчмарках использовались 4 GPU для предварительного заполнения и 64 — для декодирования.
- Производительность: пропускная способность производственного уровня; DeepSeek заявляет, что 1 кластер обслуживает 155 триллионов токенов в день.
- Лучший результат: более 25 000 выходных токенов/с/GPU при 256 запросах на ранг (EP64, контекст 131 072).
- Худший результат: только офлайн-инференс. Система KV-кэша, разделение P/D и балансировка нагрузки не включены.
Что такое DeepInfer?
DeepInfer — высокопроизводительный движок инференса от DeepSeek для собственных моделей. Согласно README на GitHub, он обеспечивает работу крупномасштабных производственных сервисов DeepSeek. Этот релиз охватывает офлайн-инференс и включает основные функции, необходимые для работы в больших масштабах. Изначально он создавался преимущественно на базе vLLM, с использованием идей из SGLang и TensorRT-LLM.
Вопросы и ответы по развёртыванию дают представление о производственной среде. Один кластер обслуживает 155 триллионов токенов в день. DeepSeek сообщает об общей выручке в размере 38 долларов США за GPU-час при минимальных тарифах.
Как работает DeepInfer?
Движок объединяет ядра DeepSeek: FlashMLA, DeepGEMM, DeepEP, TileKernels, DeepSelect и пользовательские ядра TileLang. Поверх них построены 5 системных идей.
Параллелизм: DP для внимания и Wide-EP
Для механизма внимания используется параллелизм данных. Слои MoE используют экспертный параллелизм с балансировщиком нагрузки экспертного параллелизма (EPLB). Декодирование выполняется при EP64–EP128 внутри суперузла. Предварительное заполнение использует минимальный размер EP, допустимый объёмом памяти, обычно EP2–EP8.
DSpark: спекулятивное декодирование с планированием по уверенности
Черновая модель предлагает по 5 токенов за шаг. Головка уверенности прогнозирует вероятность принятия каждого чернового токена. Затем планировщик проверяет только наиболее ценный префикс. Согласно разделу вопросов и ответов, это сокращает число проверяемых черновых токенов примерно на 30% (с 5,00 до 3,2–4,4). Длина принятой последовательности почти не меняется (3,29 против 3,20).
Ограниченное повторное воспроизведение SWA
При попадании в кэш DeepInfer пересчитывает только последние 128 токенов состояния внимания со скользящим окном. Благодаря этому стоимость пересчёта остаётся постоянной независимо от длины контекста. В слоях декодера DeepSeek заявляет почти двукратное сокращение общих вычислений при предварительном заполнении.
Асинхронное планирование, детерминизм и структурированный вывод
Планирование пакетов на CPU выполняется одновременно с вычислениями на GPU, поэтому GPU не простаивает между шагами. Инференс, инвариантный к составу пакета, и детерминированная выборка доступны только на NVIDIA. Структурированные выводы поддерживают регулярные выражения, схемы JSON и грамматики EBNF.
Насколько быстр DeepInfer?
DeepSeek публикует кривые Парето для DeepSeek-V4.1-Flash при контексте 131 072. Предварительное заполнение выполнялось на 4 GPU SM100, декодирование — на 64. Приведённые ниже значения считаны с этих графиков и представлены самой компанией.
- Декодирование (EP64DP64, nextn=3, принятие 75%): более 25 000 токенов/с/GPU при 256 запросах на ранг, то есть почти 100 токенов/с на пользователя. При 8 запросах скорость на пользователя превышает 300 токенов/с.
- Предварительное заполнение (EP4DP4, ограниченное повторное воспроизведение 140 токенов): около 60 000 некэшированных токенов/с/GPU при 4 096 токенах на ранг. При 65 536 токенах пропускная способность приближается к 90 000, а время шага составляет примерно 730 мс.
- Преимущество Wide-EP: на графике EP8 против EP64 показано, что EP64 опережает EP8 при любом размере пакета.
Динамическая проверка DSpark увеличивает пропускную способность на 4–7% примерно при 60 последовательностях на ранг. При 16 последовательностях на ранг она на 1,5% медленнее фиксированной проверки по 5 токенов.
Как DeepInfer сравнивается с vLLM, SGLang и TensorRT-LLM?
| Характеристика | DeepInfer | vLLM | SGLang | TensorRT-LLM |
|---|---|---|---|---|
| Разработчик | DeepSeek | проект vLLM | проект SGLang | NVIDIA |
| Лицензия | Apache 2.0 | Apache 2.0 | Apache 2.0 | Apache 2.0 |
| Поддерживаемые модели | 1 (DeepSeek-V4.1-Flash) | более 200 архитектур | LLM, VLM, диффузионные модели | матрица поддержки |
| Оборудование | NVIDIA SM100, Huawei Ascend 950 | NVIDIA, AMD, Intel, CPU, плагины, включая Ascend и TPU | NVIDIA, AMD, TPU, Intel, Apple, Ascend, Moore Threads | GPU NVIDIA |
| Экспертный параллелизм | Да, с EPLB | Да | Да | Wide-EP |
| Спекулятивное декодирование | DSpark, планирование по уверенности | n-граммы, суффиксы, EAGLE, DFlash | Да, через черновые модели SpecForge | Да |
| Разделение P/D | В этом релизе отсутствует | Да (предварительное заполнение, декодирование, кодирование) | Через llm-d, Dynamo и другие решения | Да |
| Онлайн-обслуживание | Только офлайн-инференс | сервер, совместимый с OpenAI | Да | Да |
Каковы ограничения DeepInfer?
Для полноценного сервиса по-прежнему необходимы система KV-кэша и разделение VE/предварительного заполнения/декодирования. Также требуется балансировка нагрузки между репликами с параллелизмом данных. Команда DeepSeek заявляет, что эти компоненты тесно связаны с внутренней инфраструктурой.
Поддержка оборудования ограничена. Для сборки требуются Linux, GCC 13 или новее, Python 3.12 и CUDA 13 или CANN 9.2. Минимальная эффективная производственная конфигурация включает 64 GPU для предварительного заполнения и 64 GPU для декодирования. Внутреннее ядро декодирования FlashMLA на 5–10% быстрее публичной версии. В целом DeepSeek оценивает разрыв в 5% или меньше.
Основные выводы
- DeepInfer — производственный движок DeepSeek, теперь доступный на GitHub по лицензии Apache 2.0.
- Он поддерживает только DeepSeek-V4.1-Flash на NVIDIA SM100 и Ascend 950.
- Скорость декодирования превышает 25 000 токенов/с/GPU на 64 GPU (по данным самой компании).
- DSpark сокращает число проверяемых черновых токенов примерно на 30% при почти неизменной доле принятия.
- Только офлайн: отсутствуют хранилище KV-кэша, разделение P/D и балансировщик нагрузки.
Ознакомьтесь с репозиторием на GitHub, вопросами и ответами по развёртыванию, deepseek-recipe и карточкой модели. Вся заслуга принадлежит исследователю этого проекта. Также подписывайтесь на нас в Twitter и не забудьте присоединиться к нашему сабреддиту по машинному обучению с более чем 150 тысячами участников и подписаться на нашу рассылку. Подождите! Вы есть в Telegram? теперь вы также можете присоединиться к нам в Telegram.
Переведено автоматически с английского. Оригинал статьи — по ссылке ниже.