Hugging Face 原生速度 vLLM Transformers 建模後端
Hugging Face 原生速度 vLLM Transformers 建模後端
TL;DR
Hugging Face 已加強 vLLM 的 transformers 建模後端,使其能夠達到與原生、手寫 vLLM 實作相當或更高的吞吐量,適用於多種 LLM 架構。這讓模型作者能夠利用現有的 transformers 實作,獲得超高速的 vLLM 推理,而無需編寫自訂的最佳化程式碼。
效能基準
對 transformers 建模後端進行了與原生 vLLM 實作的比較測試,涵蓋三種 Qwen3 模型配置。所有情況下,transformers 後端皆達到或超過原生吞吐量:
- Qwen3-4B (Dense): 在單一 GPU 上測試。
- Qwen3-32B (Dense): 使用張量平行化測試。
- Qwen3-235B-A22B-FP8 (MoE): 在 8 台 H100 節點上使用資料與專家平行化測試。
若要使用此後端,用戶可在服務時加入 --model-impl transformers 旗標。此實作相容於標準平行化選項,包括 --tensor-parallel-size、--data-parallel-size 與 --enable-expert-parallel。
限制
目前尚不支援使用線性注意力的模型。此外,若自訂模型未遵循規範而托管於 Hub 倉庫,可能無法正常運作。
技術實作:動態層融合
過去,transformers vLLM 後端主要聚焦於注意力,視其為推理的主要瓶頸。雖然此方式讓模型能有效執行,但要達到最佳效能仍需自行移植以處理 GPU 平行化、編譯與融合核心。
更新後的後端會在執行時動態套用針對推理的層融合,適用於相容的架構。這消除了模型作者必須兩次整合模型的需求——一次用於 transformers,另一次用於 vLLM。
圖形分析與原始碼操作
系統透過兩步驟的最佳化流程達成原生速度:
- 靜態分析: 後端使用
torch.fx對模型圖形進行靜態分析,以辨識可最佳化的已知模式。 - 原始碼重寫: 當模式被辨識後,後端利用抽象語法樹 (AST) 操作原始碼,直接在原位重寫相關運算。
主要最佳化
此流程提供了多項高效能功能:
- 融合運算: 將多個運算映射為單一的最佳化 vLLM 核心,特別是用於混合專家 (MoE) 模型的專家平行化 (EP) 核心。
- 平行規劃: 使用
MergedColumnParallelLinear與QKVParallelLinear區塊,使系統能推斷張量平行化 (TP) 的平行計畫。若能辨識解碼器區塊清單,亦可推斷管線平行化 (PP) 計畫。 - 編譯相容性: 經過操作的模型仍完全相容於
torch.compile與 CUDA Graphs,與專屬 vLLM 實作的效能路徑相同。 - 統一程式碼基礎: 由於最佳化於執行時完成,同一套 transformers 模型實作即可用於訓練、評估、強化學習 (RL) rollout 以及高速推理。
摘要: Hugging Face 已更新 transformers vLLM 後端,透過在執行時動態套用針對推理的層融合,使其吞吐量與自訂 vLLM 實作相當或更佳。
標題: Hugging Face 原生速度 vLLM Transformers 建模後端