DeepSeek近日在GitHub开源推理引擎DeepInfer,该引擎为DeepSeek-V4.1-Flash模型背后的推理基础设施,包含MoE专家并行、异步Batch调度、定制Kernel和推测解码等核心技术。DeepSeek同时披露了一组运营数据:单个集群每天需要处理约155万亿个Token。
目前DeepInfer开放的是离线推理能力,线上KV Cache存储和跨副本负载均衡等组件尚未完整公开。从已放出的代码中,可以观察到DeepSeek在大规模推理场景下如何安排计算、通信与请求调度。其中一套名为Zero-Overhead Batch Scheduler的异步调度机制,针对的是推理流程中一个具体问题:GPU完成计算后需等待CPU整理上一轮生成结果、更新请求状态,才能启动下一轮工作。对于需要连续生成数千个Token的请求,这种等待会反复发生,影响GPU实际利用率。
传统推理引擎的Decode阶段通常按固定顺序运行:CPU选择请求、组织Batch和KV Cache元数据,GPU执行Forward与Sampling,随后CPU读取结果、更新生成长度和请求状态,再启动下一轮计算。随着DeepGEMM、FlashMLA等底层Kernel持续优化,GPU单轮计算时间不断缩短,CPU调度与结果处理的耗时占比随之上升。在Decode阶段,模型每轮处理的Token数量有限,CPU与GPU之间频繁切换执行权会产生持续累积的空档。
Zero-Overhead Batch Scheduler调整了这套执行顺序。按照公开实现,当GPU处理第N轮Forward和Sampling时,CPU已开始准备第N+1轮Batch,并利用设备计算期间的空档处理更早一轮的采样结果。部分工作可提前提交到GPU执行队列,依赖关系由CUDA Stream和Event维护。实现中,WorkerStepState用于保存跨轮次执行状态,包括SequenceMetadata、SchedulerOutputs、SamplerOutput以及Forward和Sampling对应的CUDA Event。上一轮结果可暂时保留,CPU无须等待其全部完成后处理,便能继续推进后续调度。LLMEngine通过Worker回调衔接这些操作,将原本集中在相邻Decode Step之间的CPU工作分散到GPU计算期间。流水线进入稳定状态后,CPU与GPU可分别处理不同轮次,减少设备因调度工作产生的等待。流水线的启动和收尾仍需特殊处理,DeepInfer通过Flush机制处理在途结果,确保最后一批计算完成后请求状态能够正常收尾。
提前排程带来的直接问题是状态错位。CPU提前安排下一轮时,上一轮的采样结果可能尚未确定。普通自回归解码通常只推进一个Token,开启推测解码后,一条请求可能连续接受多个候选,不同序列的实际推进长度也会出现差异。DeepInfer为此维护total_inflight_tokens,记录已经下发但尚未完成结果提交的Token。调度器分配计算资源时,将这部分在途计算纳入序列长度与KV Cache容量检查,并提前预留可能需要的缓存空间。
容量预留之后,还需解决连续两轮Batch中请求位置不一致的问题。请求可能结束、加入或被抢占,同一条序列在不同Batch中的排列位置也可能改变。DeepInfer通过Remap映射,将当前轮的请求对应到上一轮保存的执行状态,新加入的请求使用特殊标记。GPU利用映射找到上一轮的实际采样结果,再通过设备侧Kernel修正Query Length、Key Length等参数,使当前轮注意力计算能够访问正确的上下文范围。对于变长推测验证,系统还会根据实际接受结果更新需要处理的Token数量。由于CUDA Graph通常按照提前捕获的执行规格运行,系统需要区分计算图预留容量与实际有效序列长度,设备侧状态修正减少了CPU与GPU之间频繁传输少量长度数据的需要。
内存生命周期是另一处复杂性来源。同步执行时,请求完成后CPU通常可直接释放相关元数据和缓存引用;但在异步流水线中,某条请求虽已完成CPU后处理,GPU上可能仍有尚未结束的操作引用其内存。DeepInfer使用DeferredRelease延迟回收SequenceMetadata、RequestOutput以及相关缓存块的固定引用,待释放资源先进入队列,再在后续的pre_sampler_sync阶段统一处理。对于涉及GPU状态复制的资源,系统利用CUDA Event确认操作完成后再解除引用,避免缓存提前被其他请求占用。请求抢占也遵循相同的状态边界,已离开运行集合的序列在先前提交的计算结果返回时,不能继续按原状态更新Token计数或缓存位置。
DeepSeek-V4.1-Flash的部署规模进一步增加了调度难度。官方方案中,Prefill通常采用EP2至EP8,Decode则使用EP64至EP128的宽专家并行。扩大专家并行规模可以分散MoE权重读取压力,但参与同一通信域的GPU必须采用一致的执行步型。对于同时承担Prefill和Decode的NORMAL Engine,部分Rank进入Prefill时,其余Rank需保持同步,这对调度机制的跨卡一致性提出了更高要求。
从行业角度看,DeepSeek此次开源的并非模型能力本身,而是支撑大规模推理服务的工程系统。在单集群日处理155万亿Token的量级下,调度层面的毫秒级优化会被规模放大为可观的算力节省。将推理引擎的核心组件开源,也为研究者和企业用户提供了观察超大规模MoE推理部署的样本。不过,线上KV Cache存储与跨副本负载均衡等关键组件的缺席,意味着DeepInfer目前更接近一个可研究的离线推理框架,而非完整的生产级服务方案。
该文观点仅代表作者本人,企服科学平台仅提供信息存储空间服务。