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

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 快取優化 |
| 批次文件處理 | 高吞吐量 | 大批次、非同步處理 |
| 混合負載 | 平衡 | 動態批次處理、請求分類路由 |
結論
沒有單一的「最佳」設定。工程團隊需要根據具體應用場景的使用者期望、硬體成本和業務目標,在延遲和吞吐量之間找到合適的平衡點。監控實際生產數據並持續調整是必要的實務做法。
---
*本文避免提及特定供應商或敏感公司名稱,聚焦於通用的系統工程原理。*
留言區
歡迎分享你的想法!
載入留言中…