推論與服務

拆分式 prefill/decode(disaggregated prefill/decode)

Prefill 與 decode 對硬體的胃口相反——prefill 算力受限且爆量、decode 記憶體頻寬受限且穩定——然而當它們共用同一批 GPU 時就會互相干擾:一次大的 prefill 會頂高進行中 decode 的延遲,而 decode 又用不滿運算單元。即使分塊 prefill 也只是平滑這種干擾,而非根除它。拆分式架構則靠把兩個階段實體地分到不同的機器池來根除它,每個池各自為自己的瓶頸調校與擴縮。

一個請求先落在 prefill 工作節點上,吞下提示並算出它的 KV 快取;這份快取接著被傳輸——通常透過 NVLink 或 RDMA 之類的高速互連——到一個 decode 工作節點,由它串流吐出 token。兩個池各自獨立擴縮,營運者可以為提示繁重的流量加 prefill 容量、或為長生成的流量加 decode 容量,而不必為另一邊過度配置。每個階段還能跑自己的平行化策略與批次政策,decode 的延遲也不再被 prefill 的尖峰綁架。

代價是 KV 傳輸的額外開銷與更高的系統複雜度,所以拆分式架構主要在大規模、且嚴格區分的個別延遲目標足以證成它時才划算。

分塊 prefill 是把兩階段交錯在同一張 GPU 上;拆分式則把它們搬到不同 GPU——前者平滑干擾,後者以一次 KV 快取傳輸為代價徹底消除干擾。

又稱
P/D disaggregationprefill-decode disaggregation拆分式推論分離式 prefill/decode