DualPath: 打破 Agentic LLM 推理中的存储带宽瓶颈

📚 论文来源:arXiv:2602.21548v2
👨‍💻 作者团队:北京大学、清华大学、DeepSeek-AI


前言

DeepSeek 模型许久未更新,我便去挖了挖他们的最新论文。还真发现了一篇大模型基建领域的重磅工作——DualPath。

这篇论文解决了一个核心问题:多轮对话型 AI 的性能瓶颈。简单来说,当 AI 助手处理多轮对话时,系统效率被一个"存储带宽"问题严重制约。DeepSeek 的解决方案非常巧妙——通过双路径 KV-Cache 加载,可以让推理吞吐量提升近 2 倍。

接下来,我用最清晰明了的方式,读懂这篇论文的核心思想。


一、什么是 Agentic LLM?

先说说最近很火的一个概念——Agentic LLM。

传统 LLM vs Agentic LLM

传统 LLM Agentic LLM
单轮问答 多轮交互
独立请求 长期会话
上下文固定 上下文累积
简单任务 复杂任务规划

Agentic LLM 可以理解为"AI 助手",它能够自主规划任务步骤、调用外部工具(搜索、API、计算器),通过多轮对话解决复杂问题。上下文可以累积到 10 万 tokens。

Agentic 工作负载的特点

论文给出的典型数据是这样的:

  • 平均轮数:157 轮
  • 平均上下文长度:32,721 tokens
  • 每轮新增内容:429 tokens
  • KV-Cache 命中率:98.7%

重点来了:每轮对话中,98.7% 的内容都已经在缓存中,只有 1.3% 需要重新计算。


二、核心问题:存储带宽瓶颈

2.1 先搞清楚 KV-Cache 是什么

KV-Cache = Key-Value Cache(键值缓存)。简单理解就是 LLM 处理时产生的"中间计算结果",保存下来可以避免重复计算。

2.2 PD 分离架构

现代 LLM 推理采用 Prefill-Decode 分离架构:

┌─────────────────────────────────────────────────────────┐
│                    PD 分离架构                           │
├─────────────────────┬───────────────────────────────────┤
│   Prefill 引擎 (PE)  │      Decode 引擎 (DE)            │
│   负责:处理输入提示   │      负责:生成输出 tokens        │
│   计算密集型          │      内存密集型                   │
└─────────────────────┴───────────────────────────────────┘
  • Prefill 引擎(PE):处理输入提示,计算密集型
  • Decode 引擎(DE):生成输出 tokens,内存密集型

2.3 问题在哪

传统架构下,KV-Cache 加载路径是这样的:

    ┌──────────┐     所有流量挤在这里     ┌──────────┐
    │   存储    │ ──────────────────────→  │ Prefill  │
    │   系统    │                            │   引擎    │
    └──────────┘                            └──────────┘
         ↑                                           │
         │                                           ↓
    Decode 引擎完全闲置              计算后发送到 Decode 引擎
    (存储带宽浪费)                   (参与生成)

问题本质:

  • 所有 KV-Cache 都要从存储加载到 Prefill 引擎
  • Decode 引擎的存储带宽完全浪费
  • 导致 Prefill 端带宽饱和,成为系统瓶颈

2.4 为什么这个问题很严重

论文给出了几个关键原因:

  1. 缓存命中率极高:98.7% 的 tokens 需要从存储加载
  2. 硬件发展趋势不利:从 Ampere 到 Blackwell,I/O-计算比下降了 14.4 倍
  3. 负载严重失衡:一边饱和,一边闲置

三、解决方案:DualPath 双路径加载

3.1 核心思想

DualPath 的核心创新是双路径 KV-Cache 加载:

DualPath 双路径架构:

路径1 (传统):存储 → Prefill 引擎(保留)

路径2 (创新):存储 → Decode 引擎 → Prefill 引擎(新增)
              ↑                    ↑
         利用闲置的          通过高速网络
         存储带宽             传输过来

3.2 打个比方

传统方式

你住在 A 小区,需要去远处的仓库取货。路上非常堵。

DualPath 方式

先让货车把货送到 B 小区的便利店(Decode 引擎),然后你从 B 小区取货。B 小区离你更近,而且货车走的是另一条路,完全不堵。

3.3 系统架构

┌─────────────────────────────────────────────────────────────────┐
│                     DualPath 系统架构                           │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│   ┌─────────────┐         ┌─────────────┐                      │
│   │  请求调度器   │         │  流量管理器   │                      │
│   │  (Scheduler) │         │  (Traffic)   │                      │
│   └──────┬──────┘         └──────┬──────┘                      │
│          │                        │                              │
│          └────────┬───────────────┘                              │
│                   ↓                                              │
│   ┌───────────────────────────────────────────────┐              │
│   │            推理引擎池                            │              │
│   │  ┌─────────────┐    ┌─────────────┐          │              │
│   │  │ Prefill 引擎  │    │ Decode 引擎  │          │              │
│   │  │   (PEs)      │    │   (DEs)      │          │              │
│   │  └──────┬──────┘    └──────┬──────┘          │              │
│   │         │                   │                   │              │
│   │         └────────┬──────────┘                   │              │
│   │                  ↓                               │              │
│   │         RDMA 高速网络                            │              │
│   └───────────────────────────────────────────────┘              │
│                          ↓                                       │
│   ┌───────────────────────────────────────────────┐              │
│   │              分布式存储 (3FS)                   │              │
│   └───────────────────────────────────────────────┘              │
└─────────────────────────────────────────────────────────────────┘

系统主要包含三个组件:

  • 推理引擎池:管理 GPU,分为 Prefill 引擎和 Decode 引擎
  • 流量管理器:负责 H2D/D2H 复制、引擎间 KV-Cache 传输、存储读写
  • 请求调度器:接收请求并动态分配到不同引擎和路径

3.4 关键技术细节

3.4.1 流量隔离

DualPath 使用 InfiniBand 虚拟通道实现流量隔离:

虚拟通道 带宽占比 用途
高优先级 VL 99% 模型推理通信
低优先级 VL 1%+ KV-Cache 传输

这样 KV-Cache 传输不会影响延迟敏感的推理通信。

3.4.2 CNIC 辅助的数据复制

传统方式(cudaMemcpyAsync):5-7 微秒
DualPath 方式(RDMA Write):~1 微秒

快了 5-7 倍。

为什么能这么快?因为 RDMA Write 只需要几个 mmio 写入操作,而 cudaMemcpyAsync 有额外的开销。

3.4.3 自适应请求调度

调度器会智能决定两件事:

  1. 每个请求走哪条路径(PE 路径还是 DE 路径)
  2. 如何平衡 Prefill 和 Decode 引擎的负载

核心思路是:优先选择负载低的引擎,同时保证存储 NIC 不会被压垮。


四、实验结果

4.1 实验设置

项目 配置
GPU NVIDIA Hopper × 8
计算网络 8× 400Gbps RDMA NIC
存储网络 1× 400Gbps NIC (连接 3FS)
测试模型 DeepSeek-V3.2 (660B)、DeepSeek-27B、Qwen2.5-32B

4.2 离线批处理推理

模型 吞吐量提升 相比 Oracle
DeepSeek-V3.2 (660B) 1.87× 1.05×
DeepSeek-27B 1.78× 1.09-1.85×
Qwen2.5-32B 1.73× -

简单说,大模型提升更明显。DS 660B 能达到 Oracle(理论上限)的 95% 性能,说明 KV-Cache I/O 开销基本被消除了。

4.3 在线服务

模型 服务容量提升 SLO 达标
DeepSeek-27B 1.67×
DeepSeek-V3.2 (660B) 2.25×

服务容量提升 2.25 倍,这意味着同等硬件下能服务更多用户。

4.4 各组件贡献(消融实验)

JCT (作业完成时间) 减少贡献:

调度算法贡献          ████████████████████ 45.62%
双路径加载贡献        ████████████████     38.19%
分层预填充贡献        ███████            17.21%

调度算法的贡献最大,说明好的资源调度对系统性能至关重要。

4.5 大规模扩展性

配置 吞吐量提升
2P4D → 48P96D 22 倍

近乎完美的线性扩展。大规模部署时,调度器 CPU 使用率始终低于 10 核,不会成为瓶颈。


五、核心洞察

KV-Cache 加载不必以 Prefill 为中心;利用 Decode 引擎的带宽可以解决 Prefill 端的瓶颈。

这个观点简单但深刻:换个思路,把闲置资源用起来,问题就解决了。

对工程实践的启示

  1. 资源分离不等于资源浪费:PD 分离架构中,Decode 端的带宽不应该被忽视
  2. 网络隔离很重要:计算网络和存储网络分离避免互相干扰
  3. 调度算法是关键:好的调度可以减少 45% 的完成时间

适用场景

DualPath 特别适合:

  • 多轮对话应用(AI 助手、客服机器人)
  • Agent 应用(工具调用、任务规划)
  • 长上下文场景
  • 高并发在线服务

六、总结

论文贡献

  1. 问题识别:首次系统性地指出 Agentic LLM 工作负载的 I/O 瓶颈问题
  2. 解决方案:提出双路径 KV-Cache 加载架构
  3. 工程实现:完整的流量隔离、CNIC 辅助复制、自适应调度
  4. 效果验证:1.87× 离线吞吐量提升,1.96× 在线服务容量提升

关键技术点

技术 作用
双路径加载 利用 Decode 端闲置带宽
流量隔离 避免 KV-Cache 传输干扰推理
CNIC 辅助复制 减少数据复制开销
自适应调度 动态平衡系统负载

参考资料


如果读完有任何想法,欢迎在评论区交流!

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐