Zubnet AI學習Wiki › PagedAttention
基礎設施

PagedAttention

別名:分頁注意力

一種借鑑作業系統虛擬記憶體的 KV 快取記憶體管理技術。PagedAttention 不是為每個請求的 KV 快取分配一塊連續的 GPU 記憶體(這會因碎片化而浪費記憶體),而是將快取儲存在非連續的區塊(「頁面」)中,這些區塊按需分配,且可以在具有共同前綴的請求之間共享。

為什麼重要

PagedAttention 是 vLLM 背後的創新,現已被大多數 LLM 服務框架採用。與簡單的實作相比,它透過消除碎片化造成的記憶體浪費,將服務吞吐量提高了 2–4 倍。沒有它,為許多併發使用者提供長上下文模型的服務將會昂貴得多。

深度解析

PagedAttention 解決的問題:當請求到達時,你不知道回應會有多長,因此必須為最大可能長度預分配 KV 快取。如果最大長度是 4096 個 token 但回應只有 200 個 token,95% 的分配記憶體就被浪費了。乘以數百個併發請求,GPU 記憶體很快就滿了,限制了吞吐量。

虛擬記憶體類比

PagedAttention 將 KV 快取分成固定大小的頁面(例如每頁 16 個 token)。頁面只在需要時分配,可以儲存在 GPU 記憶體的任何位置(非連續)。頁面表將邏輯位置對映到實體記憶體位置,就像作業系統的虛擬記憶體一樣。這消除了碎片化:記憶體隨著回應增長逐頁分配,釋放的頁面立即可用於新請求。

前綴共享

一個強大的擴充:當多個請求共享相同的提示前綴(常見於共享系統提示)時,該前綴的 KV 快取頁面可以在物理上共享 — 只在記憶體中儲存一次但被所有請求引用。這是將作業系統設計中的寫時複製語意應用到 LLM 服務中。對於許多使用者共享相同系統提示的應用,這可以將共享部分的記憶體使用量減少 50% 以上。

相關概念

← 所有術語
← OpenAI Perplexity →