🤗較早收集於 15h

解鎖 Continuous Batching 中的非同步處理能力

解鎖 Continuous Batching 中的非同步處理能力
PostLinkedIn
🤗閱讀原文: Hugging Face Blog

💡學習如何利用非同步 Continuous Batching 技術,降低 LLM 推論延遲並提升吞吐量。

⚡ 30-Second TL;DR

有什麼變化

實作非同步請求處理,防止批次處理期間的阻塞

為什麼重要

此更新透過最小化批次週期中的閒置時間,讓開發者能在相同硬體上服務更多併發使用者。這是生產級 LLM 推論管線的一項重大優化。

下一步行動

將您的 Text Generation Inference (TGI) 容器更新至最新版本,並在高併發負載下進行延遲基準測試。

誰應關注:Developers & AI Engineers

關鍵要點

  • 實作非同步請求處理,防止批次處理期間的阻塞
  • 透過將輸入預處理與模型執行解耦,優化 GPU 使用率
  • 降低高併發 LLM 服務工作負載的整體延遲

🧠 深度解析

Web-grounded analysis with 28 cited sources.

🔑 增強重點摘要

  • 連續批次處理(Continuous Batching),又稱飛行中批次處理(in-flight batching)或迭代級排程(iteration-level scheduling),透過在每個解碼步驟動態替換已完成的請求與新請求,確保 GPU 持續利用,並消除因輸出長度可變而導致的閒置時間。
  • Hugging Face Text Generation Inference (TGI) 的架構包含一個 Rust 路由器,負責處理 HTTP 請求、排隊和批次邏輯,以及一個 Python/gRPC 模型伺服器,用於執行實際的推論,非同步處理能力可能整合於這些組件之間。
  • 此非同步機制透過將請求生命週期分為排隊(Pending)、預填充(Prefilling)、解碼(Decoding)和完成(Finished)四個階段來管理,並利用分塊預填充(chunked prefill)處理長提示,以避免阻塞其他請求。
  • 連續批次處理結合了鍵值快取(KV caching)、分塊預填充(chunked prefill)和動態排程的參差不齊批次處理(ragged batching),以最大化吞吐量並減少填充浪費。
  • Hugging Face TGI 已發展為支援多個後端(如 vLLM、TensorRT-LLM),作為統一的前端層,讓用戶能夠根據模型、硬體和性能需求靈活切換後端,以實現最佳性能。
📊 競品分析▸ Show
特性/框架Hugging Face TGIvLLMTensorRT-LLMSGLang
核心優化連續批次處理、Flash Attention、Paged Attention、量化、OpenAI API 相容性PagedAttention、連續批次處理、前綴快取、分塊預填充低層級硬體優化、層融合、精度調整 (FP16, INT8, FP8)、自訂 CUDA 核心高性能 LLM 服務、結構化生成工作流程、RadixAttention
硬體支援NVIDIA CUDA、AMD ROCm、Intel Gaudi、AWS Trainium/Inferentia、Google TPUNVIDIA CUDA、AMD ROCm、AWS Neuron、CPU僅限 NVIDIA CUDANVIDIA CUDA
吞吐量 (tokens/sec)在 100 個併發用戶下,Llama 3 70B Q4 模型約 600-650在 100 個併發用戶下,Llama 3 70B Q4 模型約 600-650 (比 TGI 快 2.2x-2.5x,比 HF Transformers 快 14x-24x)在 100 個併發用戶下,Llama 3 70B Q4 模型約 700專注於優化提示和生成步驟的執行 (比 vLLM 快,尤其在聊天場景)
延遲 (ms)單次運行約 50-70ms (單用戶互動場景下尾部延遲較低)單次運行約 60-80ms (高併發下吞吐量優勢明顯)單次請求低於 50ms (A100)專注於靈活執行和結構化生成
易用性/部署易於部署,與 Hugging Face 生態系統緊密整合,Docker 部署快速易於安裝和使用 (pip install),提供 OpenAI 相容 API設定複雜,除非已在 NVIDIA 生態系統中易於安裝和部署 (Docker),提供高靈活性
生態系統整合與 Hugging Face Hub 緊密整合,支援 OpenAI Messages API與 Hugging Face 模型無縫整合,提供 OpenAI 相容 API與 Triton Inference Server 緊密整合支援 Hugging Face 模型
狀態於 2025 年 12 月進入維護模式,建議新部署考慮 vLLM 或 SGLang積極開發中,廣泛採用於生產環境積極開發中,NVIDIA 硬體上的最佳選擇較新框架,專注於靈活執行和結構化生成

🛠️ 技術深入

  • Hugging Face TGI 的架構由 Rust 編寫的路由器(webserver)和 Python 編寫的模型伺服器組成。
  • 路由器負責接收客戶端請求、緩衝、創建批次,並準備 gRPC 調用至模型伺服器。它使用佇列、排程器和區塊分配器來處理批次邏輯,以減少解碼延遲。
  • 模型伺服器負責接收 gRPC 請求並在模型上執行推論,支援 PyTorch 實例化的模型,並針對 CUDA/ROCm 進行優化,可透過 NCCL 進行分片以實現張量並行。
  • 連續批次處理透過迭代級排程(iteration-level scheduling)實現,即批次組成在每個解碼迭代中動態變化,一旦批次中的序列完成生成,伺服器會立即插入新的請求。
  • 請求生命週期分為四個狀態:等待排隊(Pending)、預填充(Prefilling)、解碼(Decoding)和完成(Finished)。預填充階段處理輸入提示,解碼階段逐個生成輸出 token。
  • 分塊預填充(chunked prefill)技術用於將長提示拆分為多個前向傳遞,以避免在處理長提示時阻塞其他請求。
  • CUDA graphs 用於消除 CPU 開銷,透過記錄一次完整的 GPU 執行序列並重放,對於形狀變化的批次,則透過填充和快取來處理。
  • transformers 庫中的 ContinuousBatchingManager 類別使用背景執行緒和 Python 佇列來非同步地提交和檢索請求,實現請求處理與批次執行的解耦。
  • TGI 支援 Flash Attention 和 Paged Attention 等先進的注意力機制,以優化推論性能。
  • TGI 支援 INT4、INT8、FP8 等量化技術,以減少模型大小和記憶體佔用。
  • TGI 1.4.3 版本引入了 grammar 參數,允許開發者使用 Pydantic 模型、JSON Schema 或正規表達式來指定 AI 回應的格式,實現結構化輸出。

🔮 前景展望AI analysis grounded in cited sources

LLM 推論服務將持續朝向混合後端解決方案發展。
Hugging Face TGI 轉向支援多後端(如 vLLM、TensorRT-LLM)表明,沒有單一引擎能最佳化所有情境,這將促進專業化、可互換組件的生態系統發展。
對非同步處理和連續批次處理的關注將推動硬體無關 LLM 服務的進一步創新。
透過將請求處理與模型執行解耦,並支援多樣化硬體(NVIDIA、AMD、Intel、AWS、Google),這些技術將實現更廣泛的部署和更高效的基礎設施利用。
結構化輸出(例如透過語法參數)將成為 LLM 推論框架的標準功能。
TGI 引入語法參數(JSON、正規表達式、Pydantic)解決了對可靠、格式化輸出的關鍵需求,這對於將 LLM 整合到複雜應用和工作流程中至關重要。

時間線

2022
Hugging Face Text Generation Inference (TGI) 首次發布,提供針對 NVIDIA GPU 部署 LLM 的高效能解決方案。
2022-10
Orca 系統在 OSDI '22 上發表,引入了連續批次處理和選擇性批次處理的概念,為該技術奠定學術基礎。
2023-06
vLLM 推出,透過 PagedAttention 和連續批次處理顯著提升了 LLM 推論吞吐量,成為 TGI 的重要競爭者和潛在後端。
2025-01
Hugging Face TGI 引入多後端支援,允許整合 vLLM、TensorRT-LLM 等解決方案作為統一的前端層。
2025-12
Hugging Face TGI 進入維護模式,主要接受錯誤修復和文件改進,並建議新部署考慮 vLLM 或 SGLang。
2026-05
Hugging Face 宣布在 Continuous Batching 中引入非同步處理能力,進一步優化推論吞吐量和延遲。
📰

AI 週報

閱讀本週精選 AI 大事摘要 →

👉相關動態

AI 策展新聞聚合。所有內容版權歸原始發布者所有。
原始來源: Hugging Face Blog