赛事前瞻与版本洞察

突发,DeepSeek重磅开源核心推理引擎 - LOL阵容解读

源神归来!

就在刚才,DeepSeek再次发布重磅消息,完全开源其自主研发的推理框架DeepInfer。

一个集群一天内可处理155万亿Token,DeepSeek V4.1 Flash实现高吞吐、低延迟的大规模推理,正是依靠这一框架。

开源链接:https://github.com/deepseek-ai/DeepInfer 开源链接:https://github.com/deepseek-ai/deepseek-recipe

一同发布的,还有生产级Token编解码组件deepseek-recipe。

英伟达SM100 GPU、华为昇腾950 NPU,均被列入支持设备清单。

DeepSeek还在知乎上发布了技术长文,并在GitHub上提供了一份部署问答,从架构设计到部署细节,全面阐述了这套系统。

根据官方公布的线上数据,平均每个请求输入77K Token,首个字符平均仅需400毫秒即可输出。生成阶段每秒可输出230个Token,编写代码时甚至能提升至300个。

平均有96%的输入可以直接命中缓存,无需重新计算。

按谷价计算,平均每张卡每小时的收入为38美元。

如今,全球都能看到DeepSeek是如何让大模型高效运行的。

DeepSeek研究员Deli Chen更是放出豪言。

开源与闭源。光明与黑暗。两种未来、人类两种命运之间的对决。他们想打多久,我们就打多久。直到取得完全胜利。

评论区里,开发者们一片欢腾。

正如网友所言,模型开源已成“基本操作”,现在连推理引擎也开源,格局瞬间拉满。

此前,DeepSeek已经开源了一系列大模型、用于开发高性能算子的TileLang以及多个推理算子库。

这一次,从请求进入系统到输出答案的每一个环节,如何节省算力,DeepSeek都一一公开。

一个请求,兵分两路

模型处理一个请求分为两步。第一步是Prefill,模型读取系统提示、聊天记录、文件和问题,每个Token在每一层都会生成一组中间结果,即KV缓存。

第二步是Decode,模型逐个Token生成答案,每生成一个Token,都需要用到之前所有的KV缓存。

这两步消耗的资源截然不同。Prefill一次要处理数万个Token,考验的是算力。

Decode一次只生成一个Token,大部分时间用于从显存中读取参数和缓存。

因此,DeepSeek将两步拆分到不同的机器上。Prefill使用常见的8卡机器,Decode使用64到128卡的超节点。

如果请求中包含图片,还会先交给单独部署的图像编码服务处理。

在实际操作中,两者所需的卡数比例约为1比1。根据官方建议,要实现高效率,最小部署单元是64卡Prefill加64卡Decode。

官方API的那套逻辑,也开源了

请求进入系统后,首先经过deepseek-recipe处理。

目前主流的API格式有三种:OpenAI的Chat Completions和Responses,以及Anthropic的Messages。

deepseek-recipe将它们统一转换为同一种对话格式,然后根据模型版本拼接prompt并编码为Token。模型输出的Token,也由它转换回各自格式,以流式方式返回。

它还顺便堵住了一个漏洞。DeepSeek的模型依赖一批特殊Token来标记对话结构,例如用户发言的起始点、思考结束的位置、工具调用的时机等。

96%的输入,不用再算第二遍

每次Agent调用工具时,都需要将系统提示、工具说明,以及之前每一轮的回复和工具结果,完整重新发送给模型。

其中绝大部分内容,在上一轮已经计算过了。

DeepSeek的做法是,将计算过的KV缓存保存下来,下一轮只计算新增的部分。前提是前缀必须从第一个Token开始完全一致,中间重复的内容无法复用。

效果有多显著?同一张卡运行Prefill,如果不算缓存命中,每秒可处理6万个Token。

算上缓存命中,每秒可处理150万个,性能提升了整整25倍。

这些缓存全部存放在DeepSeek自有的3FS存储集群中,容量约为100PiB,全部采用固态硬盘。Agent流量的缓存保留3天,聊天流量的缓存保留7天。

聊天流量保留更长时间,是因为少数缓存会被反复读取多次,一旦丢失,整体命中率会显著下降。根据DeepSeek的经验,聊天流量仅保留3天,命中率会下降0.5%到1%。

将缓存单独放入存储集群后,任何一台Prefill机器都可以读取任何一段缓存,用户无需绑定到上次使用的机器。而且,计算机器的故障率比存储高出一个数量级以上,即使机器损坏,缓存仍然存在。

没命中?只补算128个Token

V4.1 Flash模型的部分层使用了滑动窗口注意力(SWA),每个Token只关注离自己最近的128个Token。

注意力计算也仅限于这128个Token,从而生成一份近似的窗口缓存。重算成本因此变为常数,无论上下文多长或模型有多少层,都不受影响。

同样的方法还应用于模型的另外20层。这20层每次Prefill时都需要重建窗口缓存,原本需要计算最后2560个Token,现在只需计算128个,Prefill的总计算量因此减少了近一半。

一步吐出好几个Token

进入Decode阶段后,模型每计算一步,原本只能生成一个Token。

DeepSeek自研的DSpark又前进了一步。它先估计每个猜测被接受的概率,概率低的直接跳过不验证,将验证算力留给其他请求。

与固定验证5个Token相比,线上吞吐量提升了6%。

在两步计算之间,CPU需要安排下一步的请求并处理上一步的结果,GPU原本只能等待。DeepInfer实现了两者的并行运行,GPU计算第N步时,CPU已经在安排第N+1步。

通过这一系列组合,线上Decode阶段每张卡每秒能生成1.4万个Token。

384个专家,摊到64张卡上

V4.1 Flash是一个MoE模型,内部包含多组“专家”参数,每个Token只会使用其中几组,仅路由专家就有384个。

在Decode阶段,DeepSeek将这些专家分配到64张卡上,每张卡放置6个,并额外放置1个热门专家的副本,共7个。每张卡上的专家数量越少,每一步需要从显存中读取的参数就越少,同样数量的卡就能处理更多请求。

官方离线测试中,64卡一组运行Decode,每张卡每秒最多能输出2.6万多个Token。

官方离线测试,横轴为每个用户获得的生成速度,纵轴为每张卡的输出吞吐

热门专家的副本也会动态调整,每1000步统计一次负载,每10000步重新分配。线上实测显示,负载最重的卡仅比平均水平高9%。

请求同样需要均匀分配。Prefill根据输入长度分为4档,每档分配的机器数量根据上一轮的需求动态调整。

Decode同时考虑每张卡上的请求数和缓存总长度,短请求分配给请求少、缓存长的卡,长请求分配给缓存短的卡。

通过这一套调度策略,系统整体性能可达到离线测试中完全均衡状态的80%左右。

即使是跨机房部署,DeepSeek也在问答中提供了答案。V4.1 Flash大幅压缩了KV缓存,跨机房在技术上可行,每8张卡配备约400Gbps的互联带宽即可,但可能牺牲可靠性,因为“跨机房的光纤容易被挖断”。

DeepSeek自己的推理节点,就部署在不同但相邻的机房中。

把智能的价格,打下来

这次开源的DeepInfer采用Apache 2.0协议,deepseek-recipe采用MIT协议。DeepInfer目前支持V4.1 Flash,最初主要基于vLLM构建,并参考了SGLang和TensorRT-LLM。

开源版本目前仅提供离线推理。KV缓存管理和负载均衡由于与内部基础设施绑定过深,代码暂时没有完整开源,设计细节已包含在长文和问答中。

DeepSeek此次分享的内部部署经验,主要目的是降低算力成本、减少能源消耗,让更广泛的人群用得起智能。

接下来,DeepSeek新模型的推理代码和性能优化,都会在DeepInfer中持续开源。

从模型、TileLang、算子库,到推理框架和API编解码,DeepSeek的开源,已经从模型本身一路铺到了每天155万亿Token的线上服务。

这次官宣,DeepSeek起的标题是“走向真正普惠的未来”。

本文来自微信公众号“新智元”,作者:ASI启示录,36氪经授权发布。

评论

陈嘉豪

英雄联盟版本环境持续变化,当前13.18版本中野联动成为节奏关键。通过分析近期LPL与LCK比赛数据,我们发现瑞尔、猪妹等开团型打野优先级显著提升,而中路沙皇、妮蔻的出场率保持高位。阵容搭配需兼顾对线压制与团战容错率。

林明远

在即将到来的LPL季后赛中,BLG与WBG的系列赛备受关注。双方过往交锋记录显示,BLG在红色方时更倾向于选择后期团战阵容,而WBG则擅长通过前期小规模碰撞建立优势。版本调整后,下路对线强度与小龙控制权重进一步上升。

发表评论