PagedAttention
PagedAttention是一種用於高效服務大型語言模型(LLM)的注意力演算法,於2023年由Woosuk Kwon及其同事在論文《Efficient Memory Management for Large Language Model Serving with PagedAttention》中提出,[1]並與vLLM推理引擎一同發布。該方法將自回歸解碼過程中使用的KV快取(鍵值快取)以固定大小的塊儲存,並可將這些塊對映到不連續的實體記憶體,借鑑了虛擬記憶體、分頁與作業系統設計中的思想[2][3]。
背景
[編輯]在Transformer推理中,鍵值快取會隨着序列長度與並行請求數量而增長。Kwon等人指出,此前的服務系統通常預先保留連續的快取區域,因而會造成預留空間、內部碎片與外部碎片。在他們的實驗中,論文報告此前系統的有效主記憶體利用率最低可降至20.4%[2]。
描述
[編輯]PagedAttention將每個序列的快取劃分為固定大小的「KV塊」(KV block)。請求的快取表示為一系列邏輯塊,而塊表(block table)將這些邏輯塊對映到物理GPU主記憶體塊。這樣一來,相鄰的邏輯塊無需在實體記憶體中連續,並且可以在生成過程中按需分配新塊[2]。
該設計還使相關解碼路徑之間更容易共用快取狀態。在vLLM中,物理塊可以被參照計數並在請求或分支之間共用,當共用塊需要被修改時使用塊粒度的寫時複製。原論文將該設計應用於並列採樣、束搜尋以及共用字首的提示詞[2]。
數學表述
[編輯]對於因果自注意力中的查詢詞元 ,標準注意力輸出可寫作 其中 、、 分別為查詢、鍵與值向量, 為注意力維度[2]。
若將快取劃分為大小為 的塊,則鍵塊與值塊可寫作 PagedAttention隨後按塊進行計算: 其中 是第 個KV塊的注意力分數向量。在Kwon等人給出的表述中,該公式在保持因果注意力計算的同時,允許鍵塊與值塊位於不連續的實體記憶體中[2]。
效能與應用
[編輯]vLLM論文報告稱,在其評測的工作負載上,使用PagedAttention及其相關主記憶體管理設計可將服務吞吐量較FasterTransformer、Orca等對比基線提升2–4倍,同時保持模型輸出不變。在OPT-13B配合Alpaca軌跡的實驗中,論文還報告通過KV塊共用,並列採樣節省主記憶體6.1–9.8%,束搜尋節省37.6–55.2%[2]。
2024年一篇關於LLM服務系統的綜述將PagedAttention描述為已成為LLM服務架構中的行業規範,並列舉了TGI、vLLM與TensorRT-LLM中的支援[3]。
局限與替代方案
[編輯]後續工作指出了該方法的權衡取捨。2025年的vAttention論文認為,PagedAttention要求重寫注意力內核以支援分頁,增加了軟件複雜度、可移植性問題、冗餘與執行開銷,因此提出一種主記憶體管理器,使快取保持虛擬記憶體連續,同時依賴按需分頁進行物理分配[4]。
vAttention
[編輯]與PagedAttention不同,vAttention並不引入不同的注意力規則,而是保留標準注意力計算 在Prabhu等人的記號中,一個請求迄今所見到的鍵與值張量為 , 其中 為迄今所見上下文長度, 為某個工作器上的KV頭數量, 為每個KV頭的維度[4]。
在PagedAttention之前的系統中,工作器每層的K快取(或V快取)通常分配為形狀如下的4D張量 其中 為批次大小, 為模型支援的最大上下文長度[4]。
vAttention保留這種連續的虛擬記憶體視圖,同時將實體記憶體分配推遲到執行時。服務架構為每層維護獨立的K、V張量,因此vAttention在每個工作器上預留 個虛擬記憶體緩衝區,其中 為該工作器管理的層數[4]。
單個虛擬記憶體緩衝區的最大尺寸為 其中 為單個請求在該工作器上每層K快取(或V快取)的最大尺寸。論文定義 其中 為儲存一個元素所需的位元組數[4]。
在該表述中,vAttention將KV快取在虛擬記憶體中保持連續,並依賴按需分頁進行物理分配,而無需修改注意力內核以在非連續的KV快取塊上運算[4]。
參見
[編輯]- AlphaDev與AlphaEvolve——Google DeepMind用於發現與最佳化電腦科學演算法的人工智能系統
- 注意力機制
- 束搜尋
- 快取替換策略
- 人工智能演算法列表
參考文獻
[編輯]- ^ Kwon, Woosuk; Li, Zhuohan; Zhuang, Siyuan; Sheng, Ying; Zheng, Lianmin; Yu, Cody Hao; Gonzalez, Joseph E.; Zhang, Hao; Stoica, Ion. Efficient Memory Management for Large Language Model Serving with PagedAttention. 2023-09-12. arXiv:2309.06180
[cs.LG].
- ^ 2.0 2.1 2.2 2.3 2.4 2.5 2.6 Kwon, Woosuk; Li, Zhuohan; Zhuang, Siyuan; Sheng, Ying; Zheng, Lianmin; Yu, Cody Hao; Gonzalez, Joseph E.; Zhang, Hao; Stoica, Ion. Efficient Memory Management for Large Language Model Serving with PagedAttention. Proceedings of the 29th Symposium on Operating Systems Principles. Association for Computing Machinery: 611–626. 2023. arXiv:2309.06180
. doi:10.1145/3600006.3613165 (英語).
- ^ 3.0 3.1 Li, Baolin; Jiang, Yankai; Gadepally, Vijay; Tiwari, Devesh. LLM Inference Serving: Survey of Recent Advances and Opportunities. 2024-07-17. arXiv:2407.12391
[cs.DC].
- ^ 4.0 4.1 4.2 4.3 4.4 4.5 Prabhu, Ramya; Nayak, Ajay; Mohan, Jayashree; Ramjee, Ramachandran; Panwar, Ashish. vAttention: Dynamic Memory Management for Serving LLMs without PagedAttention. Proceedings of the 30th ACM International Conference on Architectural Support for Programming Languages and Operating Systems, Volume 1. Association for Computing Machinery: 1133–1150. 2025. doi:10.1145/3669940.3707256
(英語).