时间可能不存在

没有追求的灵魂会很无趣

用户工具

站点工具


pd-disaggregation

PD(预处理/解码)分离架构

“1P1D”是部署大语言模型(LLM)时,“预填充-解码分离”(P/D Disaggregation)架构中最基础的一种部署形态。它是一种“以空间换时间、以网络换效率”的部署策略。

简单来说,它指的就是用1个节点专门负责“预填充”(Prefill),用另外1个节点专门负责“解码”(Decode)。

🧐 为什么要搞“1P1D”分离?

要理解1P1D,需要先理解为什么要把模型的推理过程拆开。大模型生成一个回答,在内部经历了两个完全不同性质的阶段:

阶段 任务 特点与瓶颈
预填充 (Prefill) 读取并理解你输入的整个问题(Prompt)。 计算密集型,需要强大的算力快速处理大量文本,像GPU这样的处理器擅长于此。
解码 (Decode) 逐字生成回答的Token,直到结束。 内存带宽密集型,这个过程受限于从内存中读取数据的速度,并且非常依赖KV缓存。

当这两个阶段挤在同一个GPU上时,它们会互相争抢资源。最典型的问题是,一个超长文本的“预填充”计算,可能会阻塞其他用户的“解码”生成,导致所有用户的体验都变卡顿,这种现象被称为队头阻塞(Head-of-Line Blocking)。

“1P1D”的核心思想,就是把这“一读”和“一写”两个阶段,放到两台独立的机器(或GPU)上跑,让它们各司其职,互不干扰。

🔧 “1P1D”是如何工作的?

整个过程就像一条高效的流水线,主要涉及三个角色:

  1. “代理人”(Proxy Server):作为统一入口接收所有用户请求。
  2. “阅读理解员”(Prefill Server):有且仅有1个。
  3. “写作快手”(Decode Server):有且仅有1个。

工作流程如下:

  1. 用户的请求先发给Proxy。
  2. Proxy将请求路由给唯一的Prefill Server。
  3. Prefill Server快速处理完整个问题(预填充),生成关键的KV缓存,然后通过高速网络(如RDMA)将这份“记忆”直接传递给Decode Server。
  4. Decode Server拿到“记忆”后,开始逐字生成回答,并将生成的文本通过Proxy返回给用户。

⚖️ 1P1D的优势与适用场景

  • 主要优势:将“读”和“写”分开,消除了两者间的资源争抢,提升了整体吞吐量,并让资源可以独立优化。比如,你可以给预填充节点配置高算力的卡,给解码节点配置内存带宽高的卡。
  • 适用场景:适合作为入门或概念验证。当你的业务负载中,输入和输出的文本量都比较大且均衡时,1P1D是一个很好的起点。

💡 从1P1D看更大的世界

“1P1D”中的“1P”和“1D”分别代表1个预填充实例和1个解码实例。理解了它,你就能轻松看懂其他类似术语:

  • 2P1D:2个预填充实例 + 1个解码实例。适合输入(问题)普遍超长,需要更多计算资源来“阅读理解”的场景。
  • 1P2D:1个预填充实例 + 2个解码实例。适合输出(回答)很长或并发用户很多,需要更多资源来“写作”的场景。
pd-disaggregation.txt · 最后更改: 由 chenyang