AI 系統現場筆記:推論延遲與吞吐量的權衡

在生產環境中部署大型語言模型(LLM)時,工程師經常需要在推論延遲(latency)和吞吐量(throughput)之間做出權衡。本文解釋這兩個核心指標的含義、它們之間的內在衝突,以及常見的工程折衷方案。

專屬插圖
AI 系統現場筆記:推論延遲與吞吐量的權衡

AI 系統現場筆記:推論延遲與吞吐量的權衡

摘要

在生產環境中部署大型語言模型(LLM)時,工程師經常需要在**推論延遲**(latency)和**吞吐量**(throughput)之間做出權衡。本文解釋這兩個核心指標的含義、它們之間的內在衝突,以及常見的工程折衷方案。

關鍵概念

延遲(Latency)

延遲指從發送請求到收到完整回應所需的時間。對於互動式應用(如聊天機器人、程式碼補全),低延遲至關重要。使用者通常能感知到超過 200–500ms 的延遲。

吞吐量(Throughput)

吞吐量指系統在單位時間內能夠處理的請求數量或 token 數量。對於批次處理任務、離線分析或高併發場景,高吞吐量更為重要。

核心衝突

延遲和吞吐量之間存在固有的張力:

1. **批次處理效應**:將多個請求合併為一個批次可以提高 GPU 利用率,從而提升吞吐量,但每個請求必須等待批次填滿,增加了單個請求的延遲。

2. **資源競爭**:同時服務更多請求會爭奪記憶體頻寬和計算資源,可能導致每個請求的處理時間變長。

3. **佇列延遲**:高吞吐量場景下,請求可能在佇列中等待,增加端到端延遲。

常見折衷方案

1. 動態批次處理(Dynamic Batching)

系統根據當前負載動態調整批次大小:

  • 低負載時:使用小批次或單請求處理,優先保證低延遲
  • 高負載時:增大批次,優先保證吞吐量

2. 連續批次處理(Continuous Batching / Iteration-level Batching)

傳統批次處理要求所有請求同時開始和結束。連續批次處理允許新請求在舊請求完成時立即加入批次,顯著提高 GPU 利用率而不犧牲太多延遲。這是現代推論引擎(如 vLLM、TGI)的核心優化。

3. 猜測解碼(Speculative Decoding)

使用一個小而快的「草稿」模型生成候選 token,再由大模型驗證。這種方法可以在保持輸出品質的同時降低延遲,但會增加計算開銷,可能影響吞吐量。

4. KV 快取優化

自回歸生成中,之前 token 的鍵值對(KV cache)可以複用。優化 KV 快取的管理(如分頁注意力 PagedAttention)可以減少記憶體碎片,支援更大的批次和更低的延遲。

實務建議

| 場景 | 優先指標 | 推薦策略 |

|------|----------|----------|

| 即時聊天 | 低延遲 | 小批次、連續批次處理、KV 快取優化 |

| 批次文件處理 | 高吞吐量 | 大批次、非同步處理 |

| 混合負載 | 平衡 | 動態批次處理、請求分類路由 |

結論

沒有單一的「最佳」設定。工程團隊需要根據具體應用場景的使用者期望、硬體成本和業務目標,在延遲和吞吐量之間找到合適的平衡點。監控實際生產數據並持續調整是必要的實務做法。

---

*本文避免提及特定供應商或敏感公司名稱,聚焦於通用的系統工程原理。*

留言區

歡迎分享你的想法!

發表留言

0/500

載入留言中…