本文主要是?翻譯簡化+個人評讀,原文請參考:vLLM V1: A Major Upgrade to vLLM’s Core Architecture
vLLM V1 開發背景
2025年1月27日,vLLM 開發團隊推出 vLLM V1 alpha 版本,這是對框架核心架構的里程碑式升級。基于過去一年半的開發經驗沉淀,vLLM 開發團隊重新審視關鍵設計決策,整合多樣化功能模塊,并通過代碼重構大幅提升框架的靈活性和可擴展性。
V1 版本在性能上已實現業界領先水平,且未來將持續優化。更令人振奮的是,用戶可通過設置環境變量?VLLM_USE_V1=1
?無縫啟用新架構,完全兼容現有?API。經過數周的測試與反饋收集后,V1 將正式成為默認推理引擎。
架構升級的深層邏輯 從 V0 到 V1 的進化之路 vLLM 在過去18個月成功支持了多樣化 模型架構、功能特性和硬件后端。但隨著社區生態的橫向擴展,vLLM 逐漸面臨系統復雜度膨脹和縱向優化整合的挑戰。各類功能模塊的獨立開發模式導致組合應用效率低下, 技術債務的積累促使 vLLM 重新審視底層 架構設計。
V1 的設計哲學 基于上述背景,本次升級聚焦四大核心目標:
- 構建簡潔、模塊化、易擴展的代碼架構
- 實現接近零CPU開銷的高效推理
- 將關鍵優化技術整合至統一架構
- 默認啟用核心功能,實現零配置體驗
這種設計思路體現了軟件工程中的"高內聚低耦合"原則,通過架構重構打破功能孤島,為后續技術迭代奠定基礎。
技術亮點全解析
1. 優化執行循環 & API 服務器
隨著 GPU 計算速度的躍升(如?Llama-8B?在 H100 上的單步推理時間已縮短至5ms),傳統架構中 API 服務器、調度器、輸入預處理等CPU密集型操作逐漸成為性能瓶頸。
V1 創新性地引入:
- 隔離式 EngineCore 執行核心:專注調度與模型執行
- 多進程深度整合:通過?ZeroMQ?實現 CPU 任務并行化
- 異步流水線:將?tokenization、多模態處理等操作與核心推理重疊執行
這種架構類似于CPU的亂序執行設計,最大化硬件資源利用率。
2. 統一調度器革新
突破性采用"無階段"調度設計
- 統一處理用戶提示詞(prompt tokens)和模型生成詞(output tokens)
- 動態調度字典:
{request_id: num_tokens}
?實現靈活資源分配 - 支持分塊預填充(chunked-prefill)、前綴緩存(prefix caching)等高級特性
?
示例場景:在固定token預算下,調度器可智能分配不同請求的處理量,如圖示動態分配策略。
3. 零開銷前綴緩存
相較于 V0 版本存在的緩存命中率敏感問題,V1 實現三大突破:
- 哈希前綴緩存 + LRU 淘汰算法優化
- 恒定時間復雜度數據結構
- Python?對象創建開銷最小化
?
實測數據顯示:即便緩存命中率為0%,吞吐量損失<1%;高命中率時性能提升可達數倍,因此默認啟用該功能。
4.?張量并行推理新范式
重構分布式推理架構:
- 消除 Worker 0 的特殊地位,實現對稱架構
- 增量更新傳輸機制:僅傳遞狀態差異(diffs)
- 統一單卡/多卡執行路徑,抽象分布式邏輯
?
這種設計類似于分布式系統中的最終一致性模型,通過狀態緩存降低通信開銷
5. 持久化批次處理
在vLLM V0中,模型的輸入張量和元數據在每一步都會重新創建,這通常會導致顯著的CPU開銷。為了優化這一點,V1版本實現了創新性?Persistent Batch?技術:該技術緩存了輸入張量,并在每一步僅對它們應用差異(diffs)。
?
此外,V1通過廣泛使用Numpy操作而非Python的原生操作,基于?numpy?的差異更新機制,最大限度地減少了更新張量時的CPU開銷。
6. 編譯優化雙劍客
torch.compile
自動優化:覆蓋多種模型架構,減少定制內核開發- 分段式 CUDA Graphs:突破傳統 CUDA Graphs 的限制
7.?多模態模型專項優化
將視覺語言模型(VLMs)支持提升至新高度:
- 異步預處理流水線:圖像轉碼/裁剪等操作offload至獨立進程
- 多模態前綴緩存:支持圖像哈希的 KV 緩存
- 編碼器緩存(encoder cache):實現視覺特征跨步復用
8. FlashAttention 3 集成
動態批處理場景下,新一代注意力機制?FlashAttention 3?帶來:
- 混合預填充/解碼批處理支持
- 靈活的特征組合能力
- 全場景性能優勢
性能基準測試
文本模型:Llama 3.1 8B & Llama 3.3 70B
由于廣泛的架構增強,vLLM V1 實現了最先進的吞吐量和延遲,與 V0 相比(無多步調度),吞吐量提升了高達 1.7 倍(但光是看圖的話,高QPS下似乎提升不止1.7)。這些顯著的性能提升源于整個堆棧中 CPU 開銷的全面減少。
使用 ShareGPT 數據集在 Llama 3.1 8B 和 Llama 3.3 70B 模型上測量了 vLLM V0 和 V1 的性能:V1 在高 QPS 下表現出比 V0 更低的延遲,鑒于 V0 和 V1 使用的內核幾乎相同,性能差異主要源于 V1 的架構改進(減少了 CPU 開銷)。
視覺模型:Qwen2-VL
通過使用 VisionArena 數據集測試 Qwen2-VL 來評估VLMs(視覺語言模型)的性能。
得益于其改進的VLM支持,V1相比V0帶來了更大的速度提升,這主要歸功于兩項關鍵改進:
- 將輸入處理卸載到單獨的進程
- 為多模態查詢實現了更靈活的調度
(看圖類比之前的LLM測試,似乎吞吐量提升達2.3倍,多輪對話延遲降低60%?)
未來路線圖
當前alpha版暫不支持的特性:
- 模型架構:編碼器-解碼器模型(Multimodal Llama 3.2)、Mamba架構等
- 功能特性:Log概率輸出、流水線并行等
- 硬件支持:TPU等非NVIDIA設備
當然,如果要用之前的功能,可以通過不設置 VLLM_USE_V1=1 來繼續使用 V0 并保持向后兼容性。
快速上手指南
三步啟用V1引擎:
pip install vllm --upgrade
export VLLM_USE_V1=1
vllm serve <model-name>
現有API完全兼容,基本只要設個環境變量就行了。
總結
vLLM V1 的發布標志著大模型推理引擎的一次重大飛躍。通過對核心架構的全面重構,V1 版本在性能、靈活性和可擴展性上都實現了顯著提升。以下是本次升級的核心要點:
- 性能飛躍:通過優化執行循環、統一調度器和零開銷前綴緩存等技術,V1 在吞吐量和延遲上實現了高達1.7倍的性能提升,尤其在視覺語言模型(VLMs)上的表現更為突出。
- 架構革新:V1 引入了簡潔、模塊化的代碼架構,支持動態調度和持久化批次處理,顯著降低了CPU開銷,并為未來的功能擴展奠定了堅實基礎。
- 多模態支持:V1 將視覺語言模型(VLMs)通過異步預處理、多模態前綴緩存和編碼器緩存等技術,大幅提升了多模態模型的推理效率。
- 易用性提升:用戶只需設置環境變量即可無縫切換到 V1,完全兼容現有 API,實現了零配置體驗。
- 未來展望:雖然 V1 目前仍處于 alpha 階段,部分功能尚未完全覆蓋,但其架構設計為快速迭代和新功能開發提供了強大支持。開發團隊正在積極完善對更多模型架構、功能特性和硬件后端的支持。
vLLM V1 不僅是一次技術升級,更是對未來大模型推理生態的一次重要布局。我們期待與開發者社區共同探索更多可能性,推動大模型技術的邊界不斷擴展。立即體驗 V1,感受新一代推理引擎的強大性能!