概要

  • 在常見場景中,vLLM 的速度與 DeepSpeed-FastGen 相匹敵,並在處理較長輸出時超越後者。
  • 由於其動態 SplitFuse 最佳化技術,DeepSpeed-FastGen 僅在長提示和短輸出的場景中優於 vLLM。此最佳化技術已在 vLLM 的路線圖上。
  • vLLM 的使命是構建最快且最易於使用的開源 LLM 推理和服務引擎。它採用 Apache 2.0 許可證,由社群所有,並提供廣泛的模型和最佳化支援。

DeepSpeed 團隊最近釋出了一篇部落格文章,聲稱透過利用動態 SplitFuse 技術,吞吐量比 vLLM 提高了 2 倍。我們很高興看到開源社群的技術進步。在這篇部落格中,我們展示了動態 SplitFuse 技術具有優勢的具體場景,並指出這些情況相對有限。對於大多數工作負載,vLLM 比 DeepSpeed-FastGen 更快(或效能相當)。

效能基準測試

我們已經確定了 vLLM 和 DeepSpeed-FastGen 在效能最佳化方面的兩個主要區別。

  1. DeepSpeed-FastGen 採用保守/次優的記憶體分配方案,這會在輸出長度較大時浪費記憶體。
  2. DeepSpeed-FastGen 的動態 SplitFuse 排程僅在提示長度遠大於輸出長度時才能提供加速。

因此,當工作負載始終為長提示和短輸出時,DeepSpeed-FastGen 表現更佳。在其他場景中,vLLM 顯示出卓越的效能。

我們在 NVIDIA A100-80GB GPU 上使用 LLaMA-7B 模型,在以下場景中對這兩個系統進行了基準測試。

場景 1:長提示長度,短輸出

在這裡,DeepSpeed-FastGen 的動態 SplitFuse 排程有望發揮優勢。然而,我們觀察到的效能提升並沒有 2 倍那麼顯著。

場景 2:其他情況

在這些情況下,vLLM 比 DeepSpeed-FastGen 快 1.8 倍

vLLM 的未來:真正的社群專案

我們致力於將 vLLM 打造成最佳開源專案,融合社群的最佳模型、最佳化和硬體。vLLM 源於加州大學伯克利分校 Sky Computing Lab,我們正在以 Apache 2.0 許可證真正地以開源方式構建 vLLM。

vLLM 團隊優先考慮合作,並努力保持程式碼庫的高質量和易於貢獻。我們正在積極致力於系統性能;以及 LoRA、推測解碼和更好的量化支援等新功能。此外,我們正在與 AMD、AWS Inferentia 和 Intel Habana 等硬體供應商合作,將 LLM 帶給最廣泛的社群。

專門針對動態 SplitFuse 最佳化,我們正在積極研究適當的整合方案。如果您有任何問題和建議,請隨時在 GitHub 上聯絡我們。我們還在此處釋出了基準測試程式碼:here

附錄:功能比較

DeepSpeed-FastGen 目前提供基本功能,僅支援三種模型型別,並且缺乏諸如停止字串和並行取樣(例如,束搜尋)等常用功能。我們確實期望 DeepSpeed-FastGen 渴望趕上,並且我們歡迎市場上的創新!

  vLLM DeepSpeed-FastGen
執行時 Python/PyTorch Python/PyTorch
模型實現 HuggingFace Transformers 自定義實現 + HF 模型轉換器
伺服器前端 用於演示目的的簡單 FastAPI 伺服器 基於 gRPC 的自定義伺服器
排程 連續批處理 動態 SplitFuse
注意力核心 PagedAttention & FlashAttention PagedAttention & FlashAttention
自定義核心(用於 LLaMA) 注意力, RoPE, RMS, SILU 注意力, RoPE, RMS, SILU, 嵌入
KV 快取分配 近乎最優 次優/保守
支援的模型 16 種不同的架構 LLaMA, Mistral, OPT
取樣方法 隨機, 並行, 集束搜尋 隨機
停止標準 停止字串, 停止 tokens, EOS EOS