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 млн. токена според картата на модела.
- Работи на: NVIDIA SM100 (Blackwell) GPU и Huawei Ascend 950 NPU. При тестовете са използвани 4 GPU за prefill и 64 за decode.
- Производителност: Пропускателна способност от производствен клас; 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 системни концепции.
Паралелизъм: Attention DP плюс Wide-EP
Attention използва паралелизъм на данните. MoE слоевете използват експертен паралелизъм с балансьор на натоварването за експертния паралелизъм (EPLB). Decode работи с EP64 до EP128 в рамките на супернод. Prefill използва най-малкия EP, който паметта позволява, обикновено EP2 до EP8.
DSpark: спекулативно декодиране, планирано според увереността
Черновият модел предлага 5 токена на стъпка. Confidence Head предвижда процента на приемане на всеки токен от черновата. След това планировчикът проверява само най-ценния префикс. Според въпросите и отговорите това намалява проверяваните токени от черновата с около 30% (от 5,00 до 3,2–4,4). Приетата дължина почти не се променя (3,29 спрямо 3,20).
SWA ограничено преизчисляване
При попадение в кеша DeepInfer преизчислява само последните 128 токена от състоянието на attention с плъзгащ се прозорец. Така разходът за преизчисляване остава постоянен, независимо от дължината на контекста. В слоевете на декодера DeepSeek твърди, че това почти намалява наполовина общото изчисление при prefill.
Асинхронно планиране, детерминизъм и структурирани изходи
Планирането на партидите от CPU се припокрива с изпълнението от GPU, така че GPU никога не бездейства между стъпките. Инференция, независима от партидата, и детерминистично семплиране са налични само за NVIDIA. Структурираните изходи поддържат регулярни изрази, JSON схема и EBNF граматики.
Колко бърз е DeepInfer?
DeepSeek публикува криви на Парето за DeepSeek-V4.1-Flash при контекст от 131 072 токена. Prefill е изпълнен на 4 SM100 GPU, а decode — на 64. Данните по-долу са отчетени от тези графики и са предоставени от самата компания.
- Decode (EP64DP64, nextn=3, 75% приемане): Над 25 000 токена/сек/GPU при 256 заявки на ранг, близо 100 токена/сек на потребител. При 8 заявки скоростта на потребител надхвърля 300 токена/сек.
- Prefill (EP4DP4, ограничено преизчисляване на 140 токена): Около 60 000 некеширани токена/сек/GPU при 4096 токена на ранг. Пропускателната способност се доближава до 90 000 при 65 536 токена, с приблизително 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-gram, suffix, EAGLE, DFlash | Да, чрез чернови от SpecForge | Да |
| Разделяне P/D | Не е включено в тази версия | Да (prefill, decode, encode) | Чрез llm-d, Dynamo и други | Да |
| Онлайн обслужване | Само офлайн инференция | Сървър, съвместим с OpenAI | Да | Да |
Какви са ограниченията на DeepInfer?
Пълната услуга все още се нуждае от система за KV кеш и разделяне VE/Prefill/Decode. Необходимо е и балансиране на натоварването между реплики за паралелизъм на данните. Екипът на DeepSeek посочва, че тези компоненти са тясно свързани с вътрешната инфраструктура.
Хардуерната поддръжка е ограничена. Компилациите изискват Linux, GCC 13 или по-нова версия, Python 3.12 и CUDA 13 или CANN 9.2. Най-малката ефективна производствена единица е от 64 GPU за prefill плюс 64 GPU за decode. Вътрешното ядро за декодиране FlashMLA е с 5% до 10% по-бързо от публичното. В крайна сметка DeepSeek оценява разликата на 5% или по-малко.
Основни изводи
- DeepInfer е производственият двигател на DeepSeek, вече публикуван в GitHub под Apache 2.0.
- Поддържа само DeepSeek-V4.1-Flash, на NVIDIA SM100 и Ascend 950.
- Decode достига над 25 000 токена/сек/GPU на 64 GPU (по данни на компанията).
- DSpark намалява проверяваните токени от черновата с около 30%, при почти същото ниво на приемане.
- Само офлайн: няма хранилище за KV кеш, разделяне P/D или балансьор на натоварването.
Разгледайте хранилището в GitHub, въпросите и отговорите за внедряването, deepseek-recipe и картата на модела. Цялата заслуга е за изследователя на този проект. Също така, не се колебайте да ни последвате в Twitter и не забравяйте да се присъедините към нашия ML SubReddit с над 150 хил. членове и да се абонирате за нашия бюлетин. Чакайте! В Telegram ли сте? Вече можете да се присъедините към нас и в Telegram.
Преведено автоматично от английски. Оригиналната статия е на връзката по-долу.