vLLM:把顯示記憶體當記憶體來管,吞吐量翻幾倍
摘要
把鍵值快取切成區塊而不是整塊預留,記憶體利用率從三、四成拉到九成以上,同一張卡能同時服務兩到四倍的請求——這就是展示品與線上服務之間的差別。
推薦- 軟體名稱
- vLLM
- 版本
- 0.29
- 收費
- 免費
- 開源
- 開源
- 作業系統
- LinuxWindowsmacOS
- 更新時間
- 2026-10-06 22:19
問團隊為什麼放棄自建模型服務,答案很少是模型不夠好,多半是記憶體不夠用。模型生成文字時,得在顯示記憶體裡為每個請求留一份鍵值快取,而傳統引擎按請求可能達到的最長長度整塊預留,短請求用不完的部分只能白白空著,碎片再補上一腳。2023 年從大學研究團隊走出來的開源專案 vLLM 換了條路:把作業系統管理記憶體的分頁機制搬到顯示卡上。這套叫 PagedAttention 的做法,此後成了模型服務領域被引用最多的創新之一,專案本身也累積了超過 91,000 顆星,目前的穩定版在 2026 年 9 月問世。
機制本身不難懂。快取不再按請求整塊預留,而是切成固定大小的區塊,用一張區塊表記下每個請求的區塊散落在哪裡,用到多少就給多少。碎片幾乎消失,按官方數據,記憶體利用率從舊做法的三、四成升到九成以上,同一張卡能同時服務的請求數翻了兩到四倍。上面再疊一層連續批次:請求不必湊齊一批才走,隨時加入、算完立刻退出,長短請求混跑時差距拉得更開。在多項獨立實測裡,同一張卡的總吞吐量是對照方案的兩到五倍,原本要幾張卡才扛得住的併發,現在一張就接得住。
對工程團隊來說,另一個關鍵決定在介面。它內建一個說大型雲端格式的服務,原本就在呼叫那種介面的用戶端與業務程式碼,只要把請求位址改成本機服務,就切換到自架的模型,業務邏輯一行都不用動。生產環境需要的其他零件,大多開箱就有:張量平行與流水線平行可以把大模型拆到多張卡上;同一個服務能同時掛載多個 LoRA 適配器,按請求動態切換,一套部署服務多個垂直場景;自動前綴快取讓共用同一段系統提示詞的請求直接複用算好的區塊,對話類應用的首字延遲明顯下降;量化方面涵蓋 AWQ、GPTQ 與 FP8;指標則以既有多監控體系看得懂的格式對外公布。
它的定位也該講得一樣清楚:vLLM 是面向伺服器級顯示卡的服務框架,沒有圖形介面,主場是把 7B 到 70B 量級的開放模型變成扛得住併發的線上服務。個人電腦上的輕量對話不是它的舞台,那類需求交給桌面工具更合適。專案採寬鬆的開放許可,商用與二次開發沒有障礙,大型基礎設施公司普遍把它當底層引擎在用。如果說前面那些工具降低了「跑起來」的門檻,vLLM 解決的是「扛不扛得住」——當自建服務從實驗走向生產,這一層繞不開。
最後會停在這裡的是兩種人:一種是被交了一個模型和一堆顯示卡帳單的平台工程師,另一種是必須把整套東西留在自己牆內的團隊。他們都不想要對話視窗,只想要一個不會倒的服務,也願意為此讀完一份設定檔。
它沒有對話視窗,也沒有歷史紀錄,只有一個接點和背後的計算;正因為如此,把它藏在自己產品背後時,前台長什麼樣子完全由你決定。
把「能跑」和「扛得住」分開看,這一層沒有替代品。