DeepSeek published DeepInfer, the Apache-2.0 engine behind V4.1-Flash, targeting NVIDIA SM100 and Huawei Ascend 950 — and its own README lists the KV cache, prefill/decode disaggregation and replica load balancing as not included.
Most open-source AI releases are a victory lap. DeepInfer, published on 20 October, opens with a different kind of document: a section titled "Required for a complete inference service (not included in this release)", listing three things the engine cannot do on its own.
That list is the most valuable paragraph DeepSeek published this week. It turns "we open-sourced our inference stack" from a headline into a specification of where the work stops — the difference between a team budgeting a weekend and a team budgeting a quarter.
The release. DeepSeek announced on X on 20 October that DeepInfer, "the high-performance inference framework that powers DeepSeek's large-scale production services", is now fully open source, with the stated aim of helping the community "lower compute costs, reduce energy use, and make AI more affordable". The thread's second post lists what is inside — optimised kernels, distributed inference and speculative decoding, SWA bounded replay and structured outputs — and adds that inference code for future DeepSeek models will land in the same repository. The fourth post frames the strategic line: "Open models. Open kernels. Open inference." The announcement drew roughly 4.5 million views within a day.
Alongside it, a less flashy repository. The third post open-sources deepseek-recipe, described as DeepSeek's "production token encoding & decoding component, aligned with the processing logic behind the official DeepSeek API". That is the piece most self-hosting teams quietly get wrong: the model card for DeepSeek-V4.1-Flash-1017 states plainly that the release ships no Jinja chat template, and points to this Rust-plus-Python toolkit as the supported way to encode prompts, tool calls, images and thinking mode. Prompts rendered slightly differently from the vendor's pipeline produce worse answers — the self-hosting regression no benchmark catches.
The numbers on the repository. The DeepInfer repository was created on 16 October and had passed 14,500 stars and 1,300 forks by the morning of 21 October, with about 150 open issues. It carries no tagged release: the documented path is Linux, GCC 13 or newer, Python 3.12, CUDA 13 on NVIDIA or CANN 9.2 on Ascend, then ./build.sh. It is Apache-2.0, and one model is supported — DeepSeek-V4.1-Flash — through an offline inference example against the deepseek-ai/DeepSeek-V4.1-Flash-1017 checkpoint. The acknowledgements say it was "originally built primarily on vLLM", with inspiration from SGLang and TensorRT-LLM: production engineering, not a from-scratch engine.
The feature list is unusually concrete for a marketing-adjacent release. Six kernel libraries ship with it — FlashMLA, DeepGEMM, DeepEP, TileKernels, DeepSelect and a set of custom TileLang kernels. Parallelism covers Attention DP with balanced context parallelism, plus MoE expert parallelism with EPLB for expert load balancing. Decoding is accelerated by DSpark with confidence-scheduled verification, where DEEPINFER_USE_NEXTN_DECODE caps the draft length at five tokens by default.
Two features deserve more attention than they will get. The first is SWA bounded replay, which cuts decoder prefill work by replaying only a bounded suffix of the context — compact mode keeps 140 tokens by default, and DeepSeek notes the retained suffix must cover the sliding-window attention window plus the maximum backtracking length. This is the same mechanism behind the 890-bytes-per-token KV cache that the V4.1-Flash card advertises; here it is as code with an environment variable.
The second is reproducibility. DEEPINFER_BATCH_INVARIANT=1 keeps model results identical across different batch compositions, and combining it with DEEPINFER_ENABLE_MTP_VARLEN=0 and a fixed seq_seed gives deterministic sampling — the same tokens in, the same tokens out. Both are marked NVIDIA-only. For most teams that reads as a footnote; for anyone answering to an auditor, it is the most important line in the README.
The three missing pieces are a KV cache system, VE/prefill/decode disaggregation (with, in DeepSeek's words, "most required engine functionality already implemented") and load balancing across data-parallel replicas for both prefill and decode.
Read that as a shopping list: somewhere to put hundreds of gigabytes of KV cache, a way to route prefill and decode separately so they stop competing for the same GPUs, and a balancer that keeps replicas evenly busy. DeepInfer gives you the engine block. It does not give you the gearbox or the cooling loop.
Performance is not handed over as a number either. The README publishes prefill and decode Pareto charts measured on 4 SM100 GPUs for prefill and 64 for decode, plus the sweep script to reproduce them — no headline throughput figure to paste into a procurement note.
Your existing GPUs are not on the list. The supported hardware is NVIDIA SM100 and Huawei Ascend 950. An A100 or H100 cluster — the hardware most Indian firms and institutes actually rent or own — is not a supported target for this release. Any plan that reads "model is MIT-licensed, engine is Apache-2.0, therefore we self-host and stop paying per token" now has a hardware line item in it, on top of the three missing components and the on-call rotation a serving cluster needs.
The honest comparison is a measurement, not a licence. Open weights plus an open engine do not produce a lower bill by themselves; they produce a lower marginal cost against real capital and staffing. The comparison that survives scrutiny is cost per completed task on your own documents — API bill versus GPU-hours plus engineering time — measured on real work, not on tokens per second from a chart.
Reproducibility is the feature to buy, not the benchmark. For health records, government filings or any workflow re-examined months later, batch-invariant inference and deterministic sampling are what make an AI decision auditable at all: same input, same parameters, same seed, same output — whoever else was in the batch. Add structured outputs constrained by a JSON schema or regex, also in this release, and failures become reproducible in a way a log line alone cannot deliver.
A second accelerator family is a procurement option. Ascend 950 support means the software layer no longer locks the hardware choice to one vendor. Whether or not Ascend is available to you today, a supported second target changes what you can ask for in a tender and what you can price as an alternative.
We are not going to pretend a 64-GPU decode cluster is our line of work. What we do is the layer around this decision: a measurement harness that runs your actual documents and tickets through both the API and a self-hosted candidate and reports cost per completed task; prompt and tokenizer parity checks, because the chat-template gap is what makes a self-hosted engine look worse than the API it replaced; and reproducibility scaffolding — fixed seeds, batch-invariant settings, schema-constrained output — so an AI-assisted decision can be re-run and defended a year later.
If you are weighing self-hosting against your current API bill, the useful first deliverable is a number with your name on it, not someone else's chart. Talk to us and we will measure it on your own workload.
Sources
Send us your project outline or chat directly on WhatsApp.