晶片層 開放閱讀

PagedAttention

PagedAttention

概念 ID
pagedattention
更新時間
2026-05-29
來源數量
待補

PagedAttention

1. 摘要與定位

PagedAttention 是專為大語言模型(LLM)推論場景設計的一種非連續 Key‑Value 快取記憶體管理演算法,由加州大學伯克利分校在 2023 年提出,並作為高效能推論引擎 vLLM 的核心創新。該演算法將作業系統經典的虛擬記憶體與分頁機制引入 GPU 視訊記憶體管理,把傳統的連續大張量 KV 快取拆解為固定大小的物理塊,通過塊表實現邏輯地址到實體地址的動態對映。PagedAttention 根治了自迴歸生成中視訊記憶體內部碎片與外部碎片兩大頑疾,使有效視訊記憶體利用率從傳統方案的 20%–40% 躍升至近乎 100%,在相同硬體上可將併發請求數提升 2–4 倍,吞吐量提高一個數量級。該技術已成為 LLM 推論服務商業化的關鍵基礎設施,廣泛應用於 OpenAI、Anthropic、Meta 等機構的內部推論平台,並被 NVIDIA TensorRT‑LLM、Hugging Face TGI 等架構借鑑。以下將從產業痛點、技術原理、效能表現、工程調優、生態演進等維度進行全面剖析,為演算法工程師、系統架構師及技術決策者提供一份完整的研究報告級參考。

2. 三秒看懂

PagedAttention 是一種專為大語言模型(LLM)推論設計的 KV 快取記憶體管理技術,也是高效能推論架構 vLLM 的核心創新。其演算法靈感源自作業系統的 虛擬記憶體與分頁機制,將傳統上連續儲存的 Key‑Value (KV) 快取,重構為可動態分配、非連續存放的 記憶體塊 (Block) 進行管理。這項技術從根本上解決了長期困擾推論服務的 視訊記憶體碎片化 痛點,能將 GPU 視訊記憶體的利用率提升至接近理論極限,從而在處理相同請求時顯著降低單次推論成本,或在同等硬體條件下支撐數倍於之前的併發請求,實現 推論服務吞吐量的跨越式增長。對於技術決策者而言,這意味著以相同的硬體投資獲得更高的 API 併發能力與更低的 per-token 成本;對於演算法工程師,它提供了一套可以嵌入到任何 Transformer 推論引擎中的記憶體抽象。

3. 產業背景:大型模型推論的視訊記憶體之痛

LLM 的自迴歸生成過程天然要求模型每產生一個新 token,都必須重新訪問所有歷史 token 的 Key 和 Value 投影,以計算注意力權重。為避免重複計算,系統會將每一層的 Key 和 Value 向量儲存在視訊記憶體中,形成所謂的 KV 快取。隨著模型引數從 7B 擴張到 175B、上下文視窗從 4K 增至 128K,單個請求的 KV 快取體積迅速膨脹。在典型 LLaMA‑2‑70B 模型、8K 上下文、FP16 精度下,單請求的 KV 快取可達數十 GB,遠超模型權重本身。當多使用者併發時,KV 快取佔總視訊記憶體的比例通常超過 60%,成為推論服務成本的決定性因子。

然而,傳統推論架構(如 PyTorch 原生實現、Hugging Face Transformers)對這塊動態增長的記憶體採取了極為粗放的管理方式:為每個請求預分配一塊形狀為 [L_max, H] 的連續視訊記憶體區域。這帶來兩大災難性後果:

  • 內部碎片:系統按最大可能長度 L_max(例如 4096 或 8192)分配,而大多數真實請求的實際輸出長度遠小於該值。例如,一個簡短問答僅產生 200 個 token,卻佔用了容納 4096 個 token 的空間,浪費率超過 90%。
  • 外部碎片:多個長短不一的請求先後完成並釋放視訊記憶體後,空閒空間被切割成大量不連續的小孔洞。當收到一個需要較大連續空間的新請求時,即使總空閒容量足夠,也會因找不到連續區而觸發視訊記憶體不足(OOM)錯誤,導致請求排隊或丟棄。

這種“有空間卻用不上”的窘境導致商業 GPU 叢集的實際有效視訊記憶體利用率往往不足 30%。對於按 token 計費的 API 服務,這意味著巨大的成本浪費。同時,碎片化還使得批處理大小(batch size)難以動態擴大,嚴重損害了系統吞吐量。業界迫切需要一種能夠像作業系統管理物理記憶體那樣靈活管理 KV 快取的方案,於是 PagedAttention 應運而生。

4. 三分鐘產業解釋:KV 快取與虛擬記憶體的跨界融合

在 LLM 的 自迴歸生成 過程中,模型在生成序列的每一個新 token 時,都必須“回顧”之前所有 token 的資訊以計算注意力。為此,之前所有 token 對應的 Key 和 Value 向量組合,被稱為 KV 快取。這個快取是推論過程中最大的視訊記憶體消耗者,而且其長度動態增長,極難管理。PagedAttention 的洞察在於:KV 快取的增長模式與作業系統中程序虛擬記憶體的擴充套件非常相似——都是動態追加、長度不可預測的資料結構。因此,它可以借鑑虛存的分頁思想,將連續的邏輯 KV 序列打散成多個固定大小的 物理塊,每個塊可以儲存在視訊記憶體的任意非連續位置。每個請求通過一個 塊表 (Block Table) 記錄其邏輯位置(第幾個塊)到實體地址的對映。當生成過程需要新的空間時,只需從全域性的空閒塊池中按需分配一個或多個新塊,塊表中新增對應條目,完全不要求連續。

這種方法直接將視訊記憶體的外部碎片降低為零,因為任何大小的空閒空間都可以通過任意散落的塊來滿足。同時,塊按需分配也徹底消除了內部碎片:請求只用掉真正需要的塊數,沒有預留長度上限的前置浪費。在 GPU 上,這個機制與 CUDA Kernel 深度融合,注意力計算被重新設計為能夠遍歷塊表、在不同物理塊之間跳轉的 PagedAttention 運算元,從而在絲毫不降低計算效率的前提下,實現了虛擬記憶體般的靈活性。這一革新令 LLM 推論服務的視訊記憶體利用率和併發能力首次逼近硬體理論極限。

5. 技術深潛:PagedAttention 的記憶體模型與塊表機制

PagedAttention 的核心是將 KV 快取劃分成固定大小的物理塊(Block),每個塊包含一個序列片段中所有層的 Key 和 Value 向量。假設模型有 L 層,每層有 H_heads 個注意力頭,每個頭的 Key/Value 維度為 d,則每個 token 的 KV 資料量為 L × 2 × H_heads × d 個元素。一個物理塊包含 B 個 token 的 KV 資料,因此其佔用視訊記憶體固定為 B × L × 2 × H_heads × d × sizeof(dtype) 位元組。典型配置中 B=16,這樣在 FP16 精度下,一個塊的大小通常為幾兆位元組,是 GPU 分配器的理想粒度。

每個請求維護一個邏輯序列到物理塊的對映,通過 塊表 實現。塊表是一個形狀為 [max_num_blocks] 的整數索引陣列,儲存著該請求實際分配的物理塊編號。塊表儲存在 GPU 暫存器或共享記憶體中,供注意力 Kernel 快速訪問。當計算自注意力時,PagedAttention 專用的 GPU Kernel 會遍歷塊表,根據查詢 token 的位置確定其對應物理塊的基地址,然後在該塊內偏移訪問對應的 Key/Value 向量。由於現代 GPU 的大規模並行特性,這種額外的一層間接定址帶來的開銷極低,通常不到總計算時間的 1%,遠被節省下的視訊記憶體和吞吐量提升所彌補。

6. 並行解碼與 Copy-on-Write 最佳化

LLM 推論服務中常用並行取樣(如產生多個候選序列,或者 beam search)來提升回答質量,這會導致多個序列共享同一個前世。傳統做法是對每個取樣分別複製一份完整的 KV 快取,引起視訊記憶體爆炸和延遲飆升。PagedAttention 引入作業系統的 Copy-on-Write (CoW) 理念解決這一問題:多個序列初始共享同一個塊表,指向相同的物理塊;只有當某個序列開始產生不同於共享字首的新 token 時,才觸發物理塊的複製。具體實現中,物理塊配有引用計數,共享時計數遞增,寫入前若計數 >1 則先分配新塊並複製內容。這一機制使得 beam search 或並行取樣的視訊記憶體開銷幾乎與單序列相當,進一步榨取硬體的理性上限。

此外,PagedAttention 的物理塊池天然支援高效的 請求搶佔與恢復。當新請求到達且視訊記憶體不足時,排程器可以按優先順序將某個請求的部分或全部物理塊換出到 CPU 記憶體(或 NVMe SSD),待後續資源充裕時再換入。由於塊是固定大小的,換出/換入操作非常簡單,無需複雜的序列化與重組,極大地提高了系統在過載場景下的魯棒性。

7. 記憶體碎片消除的數學分析

為量化 PagedAttention 對碎片問題的改善程度,可以定義 有效視訊記憶體利用率 (Effective Memory Utilization, EMU) = 所有請求實際需要的 KV 快取位元組總和 / 分配給 KV 快取的視訊記憶體總位元組。在傳統預分配 L_max 方案下,EMU = Σ l_i / (N × L_max),其中 l_i 是第 i 個請求的實際長度,N 是併發請求數。當請求長度分佈長尾明顯時(短序列居多,少數長序列),EMU 極易跌至 20% 以下。此外,外部碎片導致的分配失敗機率可用經典的最壞匹配 (Worst-fit) 或最佳匹配 (Best-fit) 模型分析,模擬結果顯示在 80% 名義佔用率下,有連續分配要求的系統失敗率高達 40% 以上。

PagedAttention 將分配粒度縮小為 B 個 token,內部碎片被限制在最後一個塊內部,平均浪費為 B/2 token,對於 B=16 在數千 token 的序列中可忽略不計。外部碎片則徹底消失,因為所有塊可自由對映,系統無需任何連續空間。因此 EMU 可達到 1 - (B/2)/avg_length - ε,其中 ε 是塊表後設資料開銷,通常小於 1%。實測中,vLLM 可以將有效視訊記憶體利用率維持在 95% 以上,相較於傳統方案的 20–30%,實現了約 4 倍的提升。

8. 注意力運算元的高效 GPU 實現

為使分頁記憶體模型不拖慢推論,PagedAttention 需要設計高度最佳化的 CUDA Kernel。在標準自注意力中,Query 向量與所有 Key 向量做點積再 Softmax,然後乘以 Value 矩陣。PagedAttention Kernel 在遍歷 Key/Value 時,外部迴圈按塊表順序走查物理塊,內迴圈在塊內按 token 順序計算。通過將塊大小 B 設定為 warp 或 thread-block 的友好尺寸,可以完美隱藏記憶體訪問延遲。例如,一個 block 內的 B 個 token 的 Key 向量可以被載入到共享記憶體中,然後多個執行緒平行計算與當前 Query 的點積。這種分塊計算方式等價於經典的 tiled matrix multiplication,只是塊跳轉邏輯多了一層對映。

vLLM 團隊進行了大量的微基準測試,對比連續 KV 快取 Kernel 與 PagedAttention Kernel 的延遲。在 A100 GPU 上,當序列長度達到數千 token 時,PagedAttention Kernel 的吞吐量達到連續 Kernel 的 90–98%,幾乎無損。更重要的是,由於消除了預分配導致的資源閒置,系統中實際併發 batch size 可以提高 2–4 倍,總吞吐反而大幅反超。

9. 效能基準:吞吐量與延遲的雙重飛躍

為了客觀評估 PagedAttention 的實際收益,vLLM 團隊在多個主流 LLM(LLaMA-7B/13B/70B, OPT-175B)和不同 GPU(A100-40GB/80GB)上進行了一系列對比實驗。在真實對話負載(ShareGPT 資料集)下,PagedAttention 加持的 vLLM 相較於傳統 HuggingFace Transformers(搭配 FasterTransformer 等後端)可提升 吞吐量 2–8 倍。以 LLaMA-13B 在 A100-40GB 上服務 1K 上下文請求為例,傳統方案最大併發僅 4 個請求,而 vLLM 可同時處理 14 個請求,且每個請求的平均延遲並未增加,因為 GPU 計算資源得到更充分的利用。當上下文擴充套件到 4K 時,傳統方案因視訊記憶體不足只能處理 1 個請求,而 vLLM 仍可維持 5 併發。

在延遲指標上,由於視訊記憶體碎片導致的請求排隊時間在傳統系統中長達數百毫秒,而 vLLM 的排隊開銷為零,其 P50/P99 延遲明顯更優。尤其在高併發、長上下文的極端場景,PagedAttention 帶來的視訊記憶體節省直接轉換為服務等級協議(SLA)的保障。這些資料充分證明了 PagedAttention 不僅僅是一種記憶體管理技巧,而是一項能夠改變 LLM 服務成本結構的基礎系統創新。

10. 與同類技術的橫向對比

在 PagedAttention 釋出前,業界提出了多種緩解 KV 快取碎片化的方案。Orca 提出迭代級排程,允許請求在生成 token 的間隙動態加入或退出 batch,從而提升 GPU 佔用率,但它仍使用連續記憶體分配,並未消除碎片。FasterTransformerLightSeq 等通過精細的 CUDA Kernel 融合減少臨時視訊記憶體佔用,但同樣建立在連續緩衝之上。DeepSpeed Inference 使用 ZeRO 的思想將 KV 快取分片到多卡,降低單卡壓力,但仍是連續分配。FlexGen 以吞吐量為代價,將部分 KV 快取解除安裝到 CPU 和 SSD,緩解容量限制,但引入了巨大的 I/O 延遲。

相較之下,PagedAttention 是唯一從作業系統層面重新設計記憶體分配模型的方案,它以極小的計算開銷換取了接近物理極限的視訊記憶體利用率和彈性擴充套件能力。正是這種根本性的創新,使其成為 vLLM 的殺手鐧,並被 NVIDIA TensorRT-LLM 的 KV Cache Manager 和 HuggingFace TGI 新版本廣泛吸納。

11. 在 vLLM 中的工程實現與排程器

vLLM 將 PagedAttention 實現為一套完整的推論服務棧,包含 中心化塊分配器基於塊表的排程器 以及 定製 CUDA 運算元。中心化塊分配器維護一個全域性的空閒塊連結串列(或點陣圖),每當新請求到達,排程器預分配若干個初始塊(可容納 prompt 的 token),並隨著 token 生成按需擴充套件。排程器採用 貪心+搶佔 策略,當空閒塊不足時,可以基於優先順序、請求 age 等策略將某些請求的物理塊換出到 CPU 記憶體,釋放給新請求使用。一旦被換出的請求再次被排程,只需換入原先的塊或重新分配塊即可恢復。

塊分配器還支援 統一記憶體(Unified Memory),允許在 GPU 和 CPU 之間透明遷移塊資料,簡化程式碼並提升彈性。vLLM 的這一工程實現經過高度最佳化,與 PyTorch 的 CUDA 快取分配器協同工作,避免了塊分配本身的效能熱點。目前,vLLM 已支援多種模型架構(LLaMA、Mistral、Falcon、OPT、GPT-NeoX 等),並以 Docker 映象形式提供,能夠即插即用於生產環境。

12. 生產部署策略與最佳實踐

在生產 Kubernetes 叢集中部署基於 PagedAttention 的推論服務時,有幾個關鍵配置直接影響效果。塊大小 B 的選擇是一個權衡:較小的 B 減少內部碎片,但增加塊表大小和 Kernel 迴圈開銷;較大的 B 提升 Kernel 效率但可能浪費尾部空間。實驗表明 B=16 在大多數場景下達到帕累托最優。最大上下文長度 應設為資料集真實分佈的 P99 值,而非模型允許的理論上限,以避免塊表過度膨脹。併發限制 應根據裝置的視訊記憶體總量與模型權重大小預先計算最大併發塊數,並在 vLLM 的 --max-num-seqs 引數中設定。

對於成本敏感的場景,可以利用 PagedAttention 的 CoW 機制大幅提升並行取樣(如 n=5)的價效比。此外,將 KV 快取以塊粒度解除安裝到 CPU 記憶體可以進一步突破 GPU 視訊記憶體瓶頸,雖然會引入一定延遲,但配合請求優先順序排程可實現 分層 QoS。這些實踐已在多家大型模型 API 提供商的生產環境中得到驗證,穩定性與效能均表現優異。

13. 安全性與異常處理機制

雖然 PagedAttention 主要解決效能問題,但其記憶體管理模型也帶來了新的安全與穩定性考量。塊表作為使用者態控制結構,可能因軟體缺陷或惡意輸入導致越界訪問。vLLM 在核心和排程層均加入了邊界檢查,確保任何請求不能通過偽造塊表訪問其他使用者的 KV 資料,這對於多租戶 API 服務至關重要。物理塊換入換出過程中,資料可能經過 CPU 記憶體,需確保傳輸加密或通過記憶體隔離防止側通道洩露。此外,極端情況下如果塊分配器耗盡所有物理塊,系統會返回明確的 OOM 錯誤並拒絕新請求,而非直接崩潰,保障了現有請求的連續性。這些工程細節使得 PagedAttention 方案不僅在效能上卓越,在可靠性上亦滿足生產級標準。

14. 生態系統與社群影響

PagedAttention 論文發表後不到半年,其思想便深刻影響了整個 LLM 推論生態。vLLM 成為 GitHub 星標增長最快的開源推論架構之一,截至 2024 年已獲超 20k stars,並被 LMDeploy、SGLang 等專案整合或借鑑。NVIDIA 在其推論架構 TensorRT-LLM 中推出了 paged_kv_cache 特性,直接採納分頁管理。Hugging Face 的 TGI(Text Generation Inference)也在 2.0 版本引入了類似的分塊快取機制。學術上,PagedAttention 推動了 注意力稀疏性分頁 的結合研究,如 Quest、StreamingLLM 等工作,通過動態丟棄部分頁進一步降低視訊記憶體。可以說,PagedAttention 已成為 LLM 推論系統設計的預設範式之一,其影響遠超單個架構。

15. 侷限性與未來展望

儘管 PagedAttention 在解決視訊記憶體碎片問題上近乎完美,它仍存若干侷限與挑戰。首先,分頁引入的間接定址在極短序列(如 < 64 tokens)或極小 batch 場景下可能帶來可感知的開銷,對延遲極度敏感的嵌入式裝置尚需最佳化。其次,物理塊的固定大小假設了統一的 token 維度,若模型包含多模態輸入(影像、音訊)導致 KV 維度不均,當前設計需擴充套件為可變大小塊。同時,塊換出機制依賴高速 CPU-GPU 互連,在 PCIe 頻寬有限的邊緣裝置上效果打折。未來方向包括:使用 物理塊壓縮 技術,對不重要的歷史 KV 向量進行有失真壓縮以加倍有效容量;與 結構化稀疏注意力 結合,僅保留關鍵 token 的塊,形成自適應分頁;以及開發 硬體友好 的分頁注意力單元,使之成為下一代 AI 加速器的原生記憶體管理原語。可以預見,PagedAttention 的核心理念——用作業系統思想解決 AI 系統的資源管理問題——還將孕育出更多顛覆性創新。

source: 公開揭露與公開資料整理 本頁僅用於產業鏈學習、資訊檢索和研究輔助;不構成投資建議,不預測漲跌,不提供買賣、部位或目標價建議。
完整概念頁 複盤 13 節結構 公司投研頁 沿產業鏈找到受益公司 投資課 把概念轉成可跟蹤模型