vLLM TML Inkling 支援
vLLM TML Inkling 支援
vLLM 現在提供 TML Inkling 的 Day-0 支援,這是由 Thinking Machines Lab 開發的 1T 參數多模態模型。此整合使得對 thinkingmachines/Inkling-NVFP4 和 thinkingmachines/Inkling (BF16) 兩個版本的高效能推理成為可能,支援文字、圖像和音訊輸入,原生上下文長度可達 100 萬個 token。
效能與硬體基準
在 4 顆 NVIDIA GB200 GPU 的配置下,vLLM 在使用 Multi-Token Prediction (MTP) 時可達到最高 380 tok/s/user,未使用 MTP 則為 140 tok/s/user。這些結果是使用 SPEED-Bench 中的 8K 輸入 token 提示詞以及每請求 1K 輸出 token 進行測量的。
雖然目前的支援已針對 NVIDIA Blackwell 和 Hopper GPU 進行優化,但 vLLM 正積極致力於擴展支援至其他硬體,包括目前需要專用核心來處理模型相對注意力機制的 AMD GPU。
TML Inkling 模型架構
TML Inkling 是一個具有 1T 參數的原生多模態僅解碼 Transformer。其架構包含幾個獨特的組件:
- 多模態輸入: 模型接受文字、圖像(透過輕量級 hMLP 編碼器)和音訊(透過 dMel 嵌入)。
- 混合注意力: 骨幹由 66 層組成:11 層完整注意力和 55 層滑動窗口注意力,以在 1M 上下文長度下保持效率。所有層都使用頭大小為 128 的 Grouped-Query Attention (GQA)。
- 相對注意力: Inkling 不使用旋轉位置嵌入 (RoPE),而是使用加到 pre-softmax 注意力 logits 上的學習相對位置項。
- 短捲積 (Sconv): 每層使用四個 sconv 模組(視窗大小 4),分別作用於注意力鍵、注意力值、注意力輸出和 MoE 輸出,以最小的開銷提供局部注意力。
- 專家混合 (MoE): 每層具有 256 個路由專家 (top-6) 和 2 個共享專家。Inkling 引入了「專家匯流」,其中兩個共享專家參與路由分數計算以吸收概率質量,但被排除在 top-6 選擇之外。
- 推測解碼 (MTP): 模型包含 8 個鏈結的 MTP 頭(單層 Transformer),使得每個前向步驟可生成多達 9 個 token。
在 Inkling-NVFP4 變體中,只有路由專家被量化為 NVFP4,而共享專家和 qkvr 線性層仍保持為 BF16。
vLLM 技術優化
Sconv 快取與 TP 分片
為管理短捲積 (sconv) 快取,vLLM 將其視為虛擬滑動窗口注意力層的 KV 快取,並將其整合到統一的 KV 快取管理器中。
為避免在多個 GPU 上重複進行 sconv 計算和快取,vLLM 使用 Sconv-aware TP 分片。在輸出投影後,vLLM 不使用標準的 all-reduce,而是在通道維度上採用 reduce-scatter 和 all-gather。這確保每個 GPU 只存儲和計算其自身的通道切片,類似於序列並行但應用於通道維度。
低延遲集體操作與核心
- 融合集體操作: vLLM 使用基於 Lamport 協議(數值輪詢)的低延遲 reduce-scatter 和 all-gather 核心,使得 batch size 1 時的核心時間從 40 µs 減少到 8 µs。
- FA4 核心: 為優化相對注意力的記憶體存取模式,vLLM 整合了一個新的 FA4 核心,採用「sheared-bias」技術。vLLM 會根據 batch size、TP 大小和 KV 長度動態選擇
num_splits因子。 - MTP KV 快取管理: 由於 MTP 頭依賴於先前的草稿 token,vLLM 快取基礎模型的隱藏狀態,並使用經拒絕抽樣接受的 token 重新運行 MTP 頭。
準確度與驗證
vLLM 的實作在多個基準測試上與參考實作相符:
- 多模態與推理: 透過 MMAU (Audio)、MMMU-Pro (Vision)、BFCL (工具呼叫) 和 HLE (推理) 進行驗證。
- 長上下文: 使用 NIAH 進行驗證。vLLM 在 221K token 以下與參考完全一致,並在 513K token 以下的誤差控制在約 1 個百分點 (pp) 以內。在極端長度 (800K+) 時,觀察到更高的運行間變異。
未來路線圖
vLLM 計畫為 TML Inkling 提供以下增強功能:
- FP8 全域注意力: 透過修改 FA4 核心來探索 FP8 在全域注意力上的應用,以降低計算和 KV 快取瓶頸。
- CUDA 圖形: 在圖像和音訊編碼器上應用 CUDA 圖形,以消除預填充期間的 CPU 開銷。
- AMD 支援: 開發必要的相對注意力核心以啟用 AMD GPU 相容性。