DeepSeek V4 新架构:用"闲置网卡"打破推理瓶颈,这是什么骚操作?

9 阅读10分钟

开篇:推理太慢?DeepSeek 换了个思路

你用过 AI 对话工具吧?有没有这种感觉:有时候它回复特别快,有时候要等半天,盯着那个一闪一闪的光标,心里默默念"快点啊快点啊"……

这真不是你的网不好,是大模型推理本身就有瓶颈。

大模型推理有两个阶段,行话叫Prefill(预填充)Decode(解码) 。传统做法是把这两个阶段放在同一台机器上顺序执行,结果就是——慢。

DeepSeek V4 的新论文剧透了一个骚操作:用闲置网卡加速推理,把 Prefill 和 Decode 拆开,让数据"少走弯路"。

一句话总结核心思想:计算是免费的,但移动数据是昂贵的。

翻译成人话:就像你点外卖,厨师炒菜很快(计算免费),但骑手送得太慢(数据移动贵)。DeepSeek 的解法是——多叫几个骑手,谁家车空着叫谁。

再直白点:你家里有辆电动车,你上班的时候车就闲置在楼下。DeepSeek 说,别浪费啊,让这辆车顺便帮邻居送个快递,不就多赚一份钱?

本文不聊公式,直接拆解这个架构怎么工作、为什么有效,以及你能不能抄作业。放心,没有数学,只有人话。


一、Prefill-Decode 分离:为什么要把推理拆开?

先搞懂两个概念。

Prefill(预填充) 是你问 AI 一个问题,AI 得先把你的问题"读进去",理解一遍,然后才能开始回答。这个"读进去"的过程就是 Prefill。

  • 特点:计算密集型,可以并行
  • 耗时:与输入长度成正比

Decode(解码) 就是 AI 开始一个字一个字往外蹦答案的过程。

  • 特点:内存密集型,必须串行
  • 耗时:与输出长度成正比

举个例子你就明白了。

你问 AI:"请用 500 字介绍一下人工智能的发展历史"。Prefill 阶段,AI 读你的问题,理解"人工智能"、"发展历史"、"500 字"这些关键词。Decode 阶段,AI 开始一个字一个字写答案:"人……工……智……能……"

传统架构把 Prefill 和 Decode 放在同一台机器上顺序执行:

┌─────────────────────────────────────┐
│         单台 GPU 服务器              │
│  ┌───────────┐     ┌───────────┐    │
│  │  Prefill  │ →   │  Decode   │    │
│  │  (计算忙) │     │  (内存忙) │    │
│  └───────────┘     └───────────┘    │
│  问题:Prefill 时 Decode 闲置        │
│        Decode 时 Prefill 闲置        │
└─────────────────────────────────────┘

这就像什么?就像你让同一个厨师既炒菜又送外卖——炒菜的时候电动车闲置,送外卖的时候灶台闲置。老板,你这店不亏谁亏?

DeepSeek 的解法很简单:拆开。

┌─────────────────┐         ┌─────────────────┐
│   Prefill 节点   │  ----→  │   Decode 节点   │
│   (计算密集型)   │  KV 缓存 │   (内存密集型)  │
│   多 GPU 并行     │         │   高带宽内存    │
└─────────────────┘         └─────────────────┘

说人话:厨师专心炒菜,骑手专心送外卖。炒菜的需要好灶台,送外卖的需要好电动车。各干各的,效率翻倍。


二、关键创新:用"闲置网卡"传 KV 缓存

拆开是好事,但新问题来了:Prefill 生成的 KV 缓存要传给 Decode 节点,网络传输成了新瓶颈。

KV 缓存是啥?简单说就是 AI 理解你的问题后生成的"中间结果"。有了这个中间结果,AI 才能开始写答案。

假设你输入一篇长文章,32K tokens,生成的 KV 缓存大约 8GB。传统网络带宽 100Gbps,传输时间大概是:

8GB × 8 / 100Gbps ≈ 0.64 秒

0.64 秒听起来不长?但这是理想情况。实际中网络拥塞、协议开销会让时间翻倍,变成 1 秒多。

1 秒多是什么概念?用户问一个问题,光等数据传输就要 1 秒,然后 AI 才开始思考。这体验能好吗?

DeepSeek 的核心洞察是:数据中心里的服务器网卡,大部分时间是闲置的。

传统思路是专门买高速网络硬件,贵。DeepSeek 的思路是利用现有闲置资源,免费。

具体怎么做?

1. 网卡聚合:把多台服务器的闲置网卡带宽聚合成一个"虚拟高速通道",就像拼车,一辆车坐不满,那就多辆车一起拉货。

2. 多路径传输:KV 缓存分块,通过多条路径并行传输。

3. 智能调度:根据网络实时状态,动态选择最优路径,哪条路堵了就走另一条,跟高德地图一个逻辑。

┌──────────────┐
│ Prefill 节点  │
│              │
│  ┌──────┐    │
│  │ 网卡 1│ ──┼──→ 路径 A ──→ ┌────────────┐
│  └──────┘    │               │            │
│  ┌──────┐    │               │  Decode    │
│  │ 网卡 2│ ──┼──→ 路径 B ──→ │   节点     │
│  └──────┘    │               │            │
│  ┌──────┐    │               │            │
│  │ 网卡 3│ ──┼──→ 路径 C ──→ └────────────┘
│  └──────┘    │
└──────────────┘

效果很明显:

指标传统方案DeepSeek提升
传输时间0.64 秒0.15 秒4 倍
硬件成本需要升级零成本100% 节省

这波操作叫什么?叫"白嫖"。网卡闲着也是闲着,不用白不用。DeepSeek 这波属于是:花 0 块钱,办 100 块钱的事。

建议其他大厂学习一下,别整天就知道买 H100 堆算力,有时候动动脑子更省钱。黄仁勋:你礼貌吗?


三、技术细节:三个关键优化

优化 1:KV 缓存分块传输

8GB 数据一次性传输,任何一条路径出问题就全挂了。而且接收方得等全部传完才能开始用,浪费时间。

DeepSeek 的解法是把 KV 缓存切成小块,每块独立传输:

# DeepSeek:分块传输
chunks = split(kv_cache, chunk_size=64MB)
for chunk in chunks:
    send_async(chunk, decode_node, path=select_best_path())

好处很明显:

  • 单块失败不影响整体,某条路堵了换一条就是了
  • 可以动态调整每块的路径,高德地图看了都说内行
  • 接收端可以边收边用,不用等全部传完

这思路熟不熟?对,就是 BT 下载的逻辑。DeepSeek 属于是把 P2P 那套玩明白了,建议迅雷给工程师打钱。

再解释一下:你看过视频吧?不用等整个视频下载完才能看,看一点缓冲一点。DeepSeek 就是这个思路,Decode 节点收到第一块数据就可以开始生成答案,不用等 8GB 全传完。

优化 2:网络状态实时监控

网络是动态的,刚才最快的路径现在可能堵了。就像你上班走的那条路,平时不堵,今天突然堵车了。

DeepSeek 的做法是实时监控每条路径的延迟和带宽,动态选择:

def select_best_path():
    paths = [path_A, path_B, path_C]
    scores = []
    for path in paths:
        latency = measure_latency(path)
        bandwidth = measure_bandwidth(path)
        score = bandwidth / latency  # 简单评分
        scores.append(score)
    return paths[argmax(scores)]

更新频率是每 100ms 一次。100ms 是什么概念?人眨一次眼大约 300ms,所以这个更新速度比眨眼还快 3 倍。基本可以认为网络状态是实时更新的。

优化 3:Prefill 节点"预热"Decode 节点

Decode 节点收到 KV 缓存后还要初始化,浪费时间。就像你点外卖,骑手到了还得等你开门、找地方放、确认收货,这一套流程下来又浪费几分钟。

DeepSeek 的解法是传输的同时,提前通知 Decode 节点做准备:

时间线:
T0: Prefill 开始
T1: Prefill 完成 50% → 通知 Decode 节点"准备接收"
T2: Prefill 完成 100% → 开始传输 KV 缓存
T3: Decode 节点收到第一块 → 立即开始解码
T4: 传输完成,Decode 已生成部分输出
​
传统做法:T2 → T3 之间有初始化延迟
DeepSeek:T2 和 T3 几乎同时,无缝衔接

这叫"预热"。就像你冬天开车,提前热车,上车就能走,不用等发动机热起来。


四、性能提升:到底快了多少?

根据论文数据,逐项给你解释一下。

指标传统架构DeepSeek V4提升
首 token 延迟450ms180ms2.5 倍
吞吐量85 tokens/s210 tokens/s2.5 倍
并发请求数501302.6 倍
单位成本1.0x0.4x60% 下降

首 token 延迟:从你问出问题到 AI 吐出第一个字的时间。传统要等接近半秒,DeepSeek 只要不到 1/5 秒。用户体验就是"这 AI 好快"。

吞吐量:原来 AI 一秒说 85 个字,现在能说 210 个字。写长答案的时候差距更明显。

并发请求数:同样的机器,能接 2.6 倍的客户。这省下的钱可不是小数目。

单位成本:原来处理 1 万个请求要花 1 万块,现在只要 4 千块。

不同场景的收益也不一样:

  • 延迟敏感场景(实时对话):收益最大,用户终于不用盯着光标发呆了
  • 高并发场景(API 服务):吞吐量提升明显,服务器可以说"我还能再战"
  • 成本敏感场景(创业公司):可以用更少的机器跑更多的请求,省下的钱够给员工加鸡腿了

说人话版本:做对话机器人的用户体验起飞,做 API 服务的同样机器接更多单,创业公司少买点卡多睡会儿觉。


五、实战建议:谁适合跟进?

这得看你是谁。

云服务商 → 直接上 PD 分离

你有现成的数据中心和网络资源,规模越大收益越明显,还可以当成卖点——"我们的推理速度快 2.5 倍"。

实施步骤:

  1. 把推理集群分成 Prefill 池和 Decode 池
  2. 部署网络监控和调度系统
  3. 逐步迁移流量,验证稳定性

投入产出比:前期投入大概需要 2-3 个月开发,但上线后成本能降 60%,算下来半年就能回本。

中小企业 → 先观望,等开源

PD 分离需要一定的集群规模才能体现优势,你才 3 台机器,分离个寂寞。网络调度系统开发成本高,招个搞这个的工程师,半年工资够买 10 张 4090 了。DeepSeek 可能会开源相关代码,白嫖大法好。

替代方案:

  • 用 vLLM、TGI 等成熟推理框架,站在巨人肩膀上不香吗
  • 关注 DeepSeek 开源动态,GitHub Star 点起来
  • 小规模测试 PD 分离概念验证,玩票性质试试水

翻译一下:别头铁,等大佬们踩完坑你再上。创业公司的命也是命。

什么时候可以考虑? 当你发现机器成本已经占到运营成本的 30% 以上,而且并发请求数稳定在 50+ 的时候,就可以认真考虑了。

研究者 → All in 这个方向

推理优化是刚需,工业界愿意买单。PD 分离还有大量优化空间,缓存管理、调度算法等都可以研究。容易出论文,也容易落地。

研究方向可以考虑:

  • 更智能的网络调度算法,可以用强化学习
  • KV 缓存压缩技术,能不能传得更少
  • Prefill/Decode 资源动态分配,根据负载自动调整

发论文建议:这个方向现在还是蓝海,赶紧投。等大家都做出来了,你再发就晚了。


结尾:架构创新的本质

DeepSeek V4 的 PD 分离架构,核心不是技术多高深,而是想清楚了问题的本质:

计算是免费的,但移动数据是昂贵的。

所以让计算去资源多的地方,让数据少走冤枉路,用闲置资源解决瓶颈问题。这种思路,比具体的技术实现更有价值。

延伸思考一下,这个思路能不能用到其他地方?

当然能。训练任务能不能拆?有人已经在做了。数据存储能不能拆?冷热分离不就是这个思路?甚至你的业务流程能不能拆?微服务不就是这个逻辑?

一个思考题留给你:如果 Prefill 和 Decode 可以拆开,那训练过程中的其他阶段是不是也能拆?欢迎在评论区讨论。