Что такое DeepInfer и зачем он нужен
Команда DeepSeek-AI опубликовала в GitHub свой внутренний фреймворк инференса DeepInfer. Это не просто обертка, а высокопроизводительная система, которая уже используется в production-сервисах DeepSeek. Релиз ориентирован на офлайн-инференс, но содержит архитектуру, готовую к масштабированию: поддержка дисагрегации Prefill/Decode, балансировки нагрузки и KV-cache (хотя последние два компонента пока требуют внешней интеграции).
Фреймворк написан с нуля с учетом специфики архитектуры DeepSeek-V4.1, но изначально базировался на коде vLLM, с вдохновением от SGLang и TensorRT-LLM.
Ключевые технические особенности
DeepInfer предлагает ряд низкоуровневых оптимизаций, недоступных в стандартных решениях. Среди них:
- Оптимизированные ядра: FlashMLA, DeepGEMM, DeepEP, TileKernels, DeepSelect и кастомные TileLang-ядра.
- Параллелизм: Attention Data Parallel (DP), Balanced Context Parallel (CP), MoE Expert Parallel (EP) с EPLB (Expert Load Balancing).
- DSpark и MTP: Ускорение декодирования через draft-токены и верификацию на основе уверенности. Максимальная длина драфта контролируется переменной
DEEPINFER_ENABLE_MTP_VARLEN=1(по умолчанию 5). - SWA Bounded Replay: Снижение нагрузки на префилл за счет воспроизведения только ограниченного суффикса. Настройки по умолчанию для V4.1:
DEEPINFER_YOCO_PREFILL_TRUNCATION_MODE=compactиDEEPINFER_YOCO_PREFILL_KEEP_TOKENS=140. - Асинхронное планирование: Перекрытие CPU-планирования батчей с выполнением на устройстве (включено по умолчанию, zero-overhead).
- Структурированный вывод: Поддержка генерации по regex, JSON schema или EBNF-грамматике через
SamplingParams.
Поддерживаемое железо и требования
DeepInfer демонстрирует кросс-платформенность, поддерживая как NVIDIA, так и Huawei. Для работы требуются Linux, GCC >= 13.0, Python 3.12 и специфичные версии CUDA/CANN.
| Параметр | NVIDIA | Huawei Ascend |
|---|---|---|
| GPU/NPU | SM100 (Blackwell) | Ascend 950 |
| Версия CUDA/CANN | CUDA 13 | CANN 9.2 |
| Переменная окружения | DEEPINFER_ACCELERATOR=nvidia |
DEEPINFER_ACCELERATOR=ascend |
| Batch-invariant inference | Да (через DEEPINFER_BATCH_INVARIANT=1) |
Не указано |
Производительность и бенчмарки
DeepSeek опубликовала результаты тестирования на кластерах из 4 GPU SM100 для префилла и 64 GPU SM100 для декодирования (в пределах одного scale-up домена). Точные цифры токенов в секунду в тексте не приведены, но акцент сделан на эффективности масштабирования и снижении задержек за счет асинхронности и MTP.
Как запустить
Репозиторий доступен под лицензией Apache 2.0. Для запуска офлайн-инференса достаточно:
- Создать окружение Python 3.12.
- Установить зависимости и собрать фреймворк:
./build.sh. - Запустить пример:
python examples/offline_inference.py.
Модель deepseek-ai/DeepSeek-V4.1-Flash-1017 автоматически кэшируется в Hugging Face. Для локального запуска можно задать путь через DEEPINFER_HF_MODEL_DIR.
Источник: Github ↗
