演講 Session 3: Frameworks & Dev Platforms

vLLM:為 Agent 打造開放且高效的推論引擎

Woosuk Kwon — Co-Founder & CTO, Inferact

8 月 1 日(六) · Atlas Stage · 03:44:21–04:00:55 · 下午場直播

Agent 幾乎沒有改變推論的 API,卻徹底改變了 API 底下的一切——vLLM 因此沿三條軸線重寫自己:workload-aware 的模型平行化、動態分層的 KV cache,以及能吃下地球上任何一種運算的多硬體後端。

TL;DR

  • API 沒變,底下全變了:vllm serve 給的仍是 OpenAI / Anthropic 相容端點,agent framework 開箱即用;真正被 agent 改寫的是引擎內部。
  • 三條壓力軸線:模型變大(Kimi K3、DeepSeek V4 這類 trillion 級模型逼你認真做 model parallelism)、context 變長(數百輪對話、上看 1M token,絕不能重算前幾輪)、token 需求爆炸(成長速度快過 GPU 供給)。
  • 平行化沒有萬用解:vLLM 支援七種平行化(含訓練世界沒有的 decode context parallelism),但正確答案取決於模型架構 × 叢集配置 × workload 形狀。實測中「16 GPU 上的 TP × PP × EP 組合」明顯打敗直覺的單機 8-way TP。
  • Hybrid 模型讓記憶體切分變成動態問題:full attention 的 KV 隨 context 線性成長,linear attention(如 Kimi Delta Attention)則是每個序列固定大小的 state。vLLM 用共用記憶體池 + 各自的 allocator 動態再平衡,取代靜態切分。
  • Token 經濟學翻轉了:模型夠聰明時,一個 token 的價值遠超過生成它的成本,於是需求無上限而地球上的 GPU 不夠用——vLLM 的答案是 10+ 種硬體後端的 plugin 架構。

重點整理

vLLM 現況與兩種用法(約 03:45–03:47)

Kwon 自介為 vLLM 的 co-creator,以及圍繞 vLLM 成立的新創 Inferact 的共同創辦人。vLLM 是開源的 LLM 推論引擎,目標是讓 LLM 推論「efficient and effortless」;大約三年前在 UC Berkeley 他讀博期間開始,至今持續高速成長,GitHub 星數在演講前不久突破約 88k。他強調這是一個橫跨學界與業界的高度協作專案,主要貢獻者包括 Red Hat、NVIDIA、AMD、Google、Moonshot,以及 Inferact 自己,並已被廣泛部署在生產環境。

兩種用法:

  • 離線批次:Python 的 LLM class,給它一個 Hugging Face 模型名稱、呼叫 generate 就結束。模型載入、最佳化、排程、記憶體管理與 GPU 利用全部在底下自動處理。
  • 線上服務:vllm serve 一行指令起一個 OpenAI 相容端點;Anthropic API 也支援,因此任何會講這兩種 API 的 agent framework 都能直接接上。

他接著點出全場的樞紐:這個 API 跟幾年前其實差不多,為 agent 幾乎沒改變;為 agent 大改的是 API 底下的一切。

Agent 施加的三條壓力(約 03:47–03:49)

  1. 更大的模型:前沿 agent 模型如 Kimi K3、DeepSeek V4 都是 trillion 級參數,逼所有人認真面對 model parallelism。他把這視為機會——它讓我們能用很多有創意、各有取捨的方式去切模型。
  2. 更長的 context:agent session 動輒數百輪,可以到一百萬 token,而且 context 在整個 session 內只增不減。因此管理前幾輪的 KV cache 對效能極為關鍵,推論框架絕對不能重算前一輪的 token,否則就是大量重複計算與浪費。
  3. 巨大的 token 需求:agent 越聰明越能幹,可以部署的場景就趨近無限,需求實質上沒有上限,而且成長速度快過 GPU 供給。vLLM 的對策是把高效推論擴展到更多種硬體後端,好把所有能用的算力都拿來產 token。

軸線一:平行化沒有普世贏家(約 03:49–03:53)

為了服務這麼大的模型,vLLM 今天支援七種主要平行化:tensor、pipeline、data、expert、sequence,以及兩種 context parallelism。其中一種是訓練世界不存在的 decode context parallelism——圍繞 KV cache 做的平行化。作為通用引擎,vLLM 有效率地實作了全部,也支援它們的混合。

但他說這還不夠。關鍵在於這些平行化必須針對目標模型架構、目標叢集配置與目標 workload 形狀被正確選擇與調校,沒有 universal winner。

他用一個真實案例說明調校長什麼樣:在 B200 GPU 上、以 prefill/decode 分離的部署方式跑 DeepSeek 模型的 prefill 階段(這批 GPU 只負責 prefill)。最直覺的部署是單機 8-way tensor parallelism——最標準、最簡單。但實測的勝出組合完全不同:改成跨 16 顆 GPU、由 tensor parallelism × pipeline parallelism × expert parallelism(再加上 sequence parallelism)組成的配置作為一個模型 replica,得到明顯更低的 TTFT(首 token 延遲)與明顯更高的每 GPU 吞吐。

原因他快速帶過:pipeline parallelism 讓長 prefill 序列的不同 chunk 之間也能平行;sequence parallelism 讓通訊與計算有更多重疊機會;expert parallelism 相較 8-way TP 給出更好的 GEMM(矩陣乘法)形狀。結論是在 agentic 時代,你需要正確的洞見與效能模型來設定這些參數,而 vLLM 提供的是讓你能玩遍所有平行化的共同基底

軸線二:KV cache——從靜態切分到動態再平衡(約 03:53–03:58)

現代 LLM 的一個關鍵特徵是它們是 hybrid 模型:全域注意力層與更高效的注意力機制(sliding window,或 Kimi Delta Attention 這類 linear attention)交錯排列。這正是 1M context 之所以可行的原因——純粹的 global attention 在百萬 context 下記憶體開銷太大。

理論上很漂亮,實務上製造出真正的系統難題:不同注意力型別的層,記憶體行為完全不同。full attention 的 KV cache 隨 context 線性成長;linear attention(KDA)則是每個序列維持固定大小的 state,與實際 context 長度無關。那 GPU 記憶體該怎麼在兩者之間切?

直覺解是靜態切分——保留 x% 給 full attention、y% 給其餘。可行,但問題是最佳切分點取決於 batch size 與 context 長度,而這兩者在推論過程中一直變動。

vLLM 的解法是動態切分:用一個共用的 GPU 記憶體池,每種記憶體行為不同的注意力型別各自擁有一個 allocator,從共用池取用。full attention 的 allocator 按 token 數向池中請求;KDA 的 allocator 因為是 linear attention,一次為整個序列配一個大 block;兩者之間有邏輯動態共享同一塊記憶體空間。實際效果是引擎自動在兩者之間再平衡,不浪費任何 GPU 記憶體,使用者不必操心不同注意力型別的記憶體切分。

但只管好 GPU 記憶體裡的 KV cache 還不夠。agent session 的特徵是又長壽又斷斷續續:模型產出一些 token,然後停下來等 tool call、有時等人類回覆,然後再繼續。在這些等待期間,KV cache 得被放在某處。vLLM 的抽象是 KV connector:把閒置的 KV cache 存到外部記憶體(CPU 記憶體或磁碟),需要時再取回。他坦言他們在這個抽象的設計上花了很多力氣,要確保它能跟 Mooncake 這類第三方函式庫良好協作,也要能配合 prefill/decode 分離這種 KV 搬移本身就很動態複雜的機制——KV 得在 prefill instance 與 decode instance 之間、以及 prefill instance 與 Mooncake 這類分散式 KV 儲存池之間移動。做好這層基礎設施的目的很單純:在多輪 agent session 裡,只要儲存空間允許,就永遠不重算前幾輪的 token。

軸線三:硬體——把地球上的算力都變成 token(約 03:58–04:00)

Kwon 認為 token 的經濟學正在翻轉:模型越聰明,一個 token 的價值就遠超過生成它的成本,於是需求自然爆炸,而世界上老實說沒有足夠的 GPU 來供應。問題因此變成:我們能不能有效率地用上地球上所有可用的算力來產 token?

vLLM 的答案是今天支援 10 種以上的硬體後端。NVIDIA GPU 顯然是主力,但也涵蓋 Google TPU、AMD GPU 以及業界其他多種晶片;它們以 plugin 結構接進 vLLM,共用核心、各自客製硬體相關部分。他指出這在推論領域特別合理,因為推論的 API 已經高度標準化——使用者仍然用同一套 OpenAI 或 Anthropic API,只是底下換了另一種硬體在產 token。

他因時間關係跳過細節投影片,但留下 TL;DR:把新硬體帶起來、讓它高效支援新模型,這件事因為 coding agent 而正在變得比較容易,但另一方面它仍然需要幾乎從頭重做整套推論堆疊,團隊正在積極處理。

總結一頁:agentic 時代從三條軸線施壓,vLLM 各給一個答案——大模型用 workload-aware 的 model parallelism、長 context 用動態且分層的 KV cache、爆炸的 token 需求用多樣的硬體後端;而且今天講的全部都是開源的

金句

"The API itself is pretty much similar to a few years ago … What has changed a lot for agents is everything underneath it."(約 03:47)

整場演講的框架:agent 革命發生在 API 之下。

"There's no universal winner."(約 03:50)

平行化策略沒有預設正解,只有針對模型 × 叢集 × workload 的正解。

"As models get smarter, the value of a token far exceeds the cost of generating it … and honestly there are not enough GPUs in the world to serve it."(約 03:58)

多硬體後端不是相容性功能,而是供給側的必然。

提到的專案與資源 / Projects & Resources

名稱 Name 說明 Description 備註 Notes
vLLM 開源 LLM 推論引擎,2023 年起於 UC Berkeley;約 88k GitHub stars Open-source LLM inference engine, started at UC Berkeley ~3 years ago; ~88k GitHub stars 貢獻者含 Red Hat、NVIDIA、AMD、Google、Moonshot、Inferact / contributors include Red Hat, NVIDIA, AMD, Google, Moonshot, Inferact
Inferact 圍繞 vLLM 成立的新創,講者為共同創辦人兼 CTO Startup built around vLLM; the speaker is co-founder and CTO
Decode context parallelism 圍繞 KV cache 的平行化,訓練世界不存在 Parallelism around the KV cache; has no counterpart in training vLLM 七種平行化之一 / one of vLLM's seven parallelism types
KV connector 把閒置 KV cache 卸載到 CPU 記憶體或磁碟並取回的抽象層 Abstraction for offloading idle KV cache to CPU memory or disk and retrieving it 與 prefill/decode 分離協同運作 / interoperates with prefill/decode disaggregation
Mooncake 分散式 KV cache 儲存池,vLLM 的 KV connector 與之整合 Distributed KV cache storage pool integrated with vLLM's KV connector 逐字稿作 "moon key" / "Moon Cake"
Kimi Delta Attention (KDA) Kimi K3 採用的 linear attention 機制,是 hybrid 模型記憶體行為差異的代表 The linear-attention mechanism in Kimi K3; his example of divergent memory behavior in hybrid models Moonshot AI
Kimi K3 / DeepSeek V4 演講中舉例的 trillion 級前沿 agent 模型 Trillion-parameter frontier agent models cited as examples

逐字稿勘誤 / Transcript Corrections

字幕原文 Heard as 應為 Should be
Wusak Quan / Usok / Wuk Woosuk Kwon
Infirect / Infact Inferact
VLM / EDLM VLM / VM vLLM(自動字幕把 LLM 與 vLLM 混淆)
deepse pro / deep 4 DeepSeek(V4)
Kimmy K3 Kimi K3
KDA / sighting window Kimi Delta Attention / sliding window
moon key Mooncake
Redhead Red Hat
TTFP TTFT (time to first token)
accessor parallelism expert parallelism
reccast requests
disagregation / disegration disaggregation

待確認 / To Verify

  • B200 prefill 案例的精確平行化度數(逐字稿把 "two-way tensor parallel × … pipeline parallel × eight-way …" 講得含糊,只能確定總計 16 GPU / replica、由 TP × PP × EP 組成)。/ The exact parallelism degrees in the B200 prefill case — the transcript garbles the numbers; only "16 GPUs per replica, TP × PP × EP" is reliable.
  • 案例中的 DeepSeek 模型是哪一個版本(字幕作 "deepse pro",可能是 DeepSeek V4 Pro)。/ Which DeepSeek variant the B200 case used (transcript "deepse pro", possibly DeepSeek V4 Pro).
  • 88k GitHub stars 為講者口述的近期數字,未指定日期。/ The 88k GitHub stars figure was stated verbally as "pretty recently," without a date.
  • 「10 種以上硬體後端」的完整清單未在演講中列出(僅明確提到 NVIDIA、Google TPU、AMD)。/ The full list of "more than 10 hardware backends" was not enumerated; only NVIDIA, Google TPU, and AMD were named.

GitHub 上的 Markdown 原始檔 ↗