“1P1D”是部署大语言模型(LLM)时,“预填充-解码分离”(P/D Disaggregation)架构中最基础的一种部署形态。它是一种“以空间换时间、以网络换效率”的部署策略。
简单来说,它指的就是用1个节点专门负责“预填充”(Prefill),用另外1个节点专门负责“解码”(Decode)。
要理解1P1D,需要先理解为什么要把模型的推理过程拆开。大模型生成一个回答,在内部经历了两个完全不同性质的阶段:
| 阶段 | 任务 | 特点与瓶颈 |
| 预填充 (Prefill) | 读取并理解你输入的整个问题(Prompt)。 | 计算密集型,需要强大的算力快速处理大量文本,像GPU这样的处理器擅长于此。 |
| 解码 (Decode) | 逐字生成回答的Token,直到结束。 | 内存带宽密集型,这个过程受限于从内存中读取数据的速度,并且非常依赖KV缓存。 |
当这两个阶段挤在同一个GPU上时,它们会互相争抢资源。最典型的问题是,一个超长文本的“预填充”计算,可能会阻塞其他用户的“解码”生成,导致所有用户的体验都变卡顿,这种现象被称为队头阻塞(Head-of-Line Blocking)。
“1P1D”的核心思想,就是把这“一读”和“一写”两个阶段,放到两台独立的机器(或GPU)上跑,让它们各司其职,互不干扰。
整个过程就像一条高效的流水线,主要涉及三个角色:
工作流程如下:
“1P1D”中的“1P”和“1D”分别代表1个预填充实例和1个解码实例。理解了它,你就能轻松看懂其他类似术语: