概述
PagedAttention 是一種記憶體管理技術,它將語言模型的注意力快取儲存在可重複使用的小塊中,而不是一個大的連續區塊中。它為 vLLM 提供支持,vLLM 是一個開源服務引擎,可顯著提高單一 GPU 可以處理的請求數量。
PagedAttention 和 vLLM 是一個技術構建塊,會大規模影響模型品質、基礎設施成本、延遲和可靠性。
深入探討
當語言模型產生文字時,它會為它看到的每個標記保留一個「KV 快取」(鍵和值向量),以便下一個標記可以處理完整的上下文。傳統上,每個請求都會保留一大片連續的 GPU 內存,其大小與其最大可能長度相同,當序列較短或長度不同時,會浪費大量內存。 PagedAttention 是加州大學柏克萊分校 2023 年 vLLM 論文中引入的,它藉鑒了作業系統虛擬記憶體分頁的想法:它將 KV 快取分割成固定大小的區塊,這些區塊可以駐留在記憶體中的任何位置並按需分配。查找表將邏輯令牌位置對應到物理區塊。這幾乎消除了記憶體碎片並允許共享區塊,例如在同一提示的多個輸出之間共用區塊。
技術洞察
KV 快取被分成固定大小的頁面,每個頁面保存一定數量的令牌的鍵和值。每個序列的區塊表將邏輯位置對應到實體頁位置,因此序列的快取不需要是連續的。由於相同的前綴(共享系統提示符或波束搜尋分支)可以透過寫入時複製指向相同的實體頁面,因此記憶體被重複使用而不是重複,從而將浪費從 60% 以上削減到幾個百分點。
掌握 PagedAttention 和 vLLM
PagedAttention 是一種記憶體管理技術,它將語言模型的注意力快取儲存在可重複使用的小塊中,而不是一個大的連續區塊中。它為 vLLM 提供支持,vLLM 是一個開源服務引擎,可顯著提高單一 GPU 可以處理的請求數量。 PagedAttention 和 vLLM 是一個技術構建塊,會大規模影響模型品質、基礎設施成本、延遲和可靠性。為了建立深入的理解,請將 PagedAttention 和 vLLM 視為一種操作模型,而不是單一功能:定義期望的結果,澄清假設,並將系統可以可靠地執行的操作與仍需要專家判斷的操作分開。
在實踐中,強大的團隊使用 PagedAttention 和 vLLM 根據可靠性和成本優化架構、資料和基礎設施選擇。他們記錄明確的成功標準,根據實際數據和工作流程進行測試,並根據觀察到的失敗模式而不是一次性基準測試勝利進行迭代。這就是理論理解轉變為跨產品、政策和營運的持久能力的地方。
多年來,架構決策決定著效能和營運成本。同時,優化一個基準測試可以隱藏更廣泛的系統弱點。最具彈性的方法是將實驗速度與治理規則結合:運行試點、捕獲證據、發布決策日誌,並隨著模型行為、使用者期望和監管要求的發展不斷更新保障措施。
戰略影響
多年來,架構決策決定著效能和營運成本。
多年來,架構決策決定著效能和營運成本。在高品質部署中,這會轉化為可衡量的操作規則、所有權邊界和定期審查儀式,以便團隊可以增強信心,而不是擴大模糊性。
技術教育幫助團隊選擇正確的堆疊,而不僅僅是最新的堆疊。
技術教育幫助團隊選擇正確的堆疊,而不僅僅是最新的堆疊。在高品質部署中,這會轉化為可衡量的操作規則、所有權邊界和定期審查儀式,以便團隊可以增強信心,而不是擴大模糊性。
更好的工程選擇可以減少生產中的可靠性事故。
更好的工程選擇可以減少生產中的可靠性事故。在高品質部署中,這會轉化為可衡量的操作規則、所有權邊界和定期審查儀式,以便團隊可以增強信心,而不是擴大模糊性。
現實世界的實施
託管開源 LLM API,其中 vLLM 透過一個 GPU 以高吞吐量為許多同時聊天用戶提供服務
透過前綴快取在數千個請求之間共享較長的系統提示,以便處理一次,而不是重複處理
執行波束搜尋或多個取樣完成,透過寫入時複製共享 KV 區塊以實現公共提示
減少碎片造成的 GPU 記憶體浪費,以便提供者可以將更多並發會話打包到同一硬體上
實施模式
PagedAttention 和 vLLM 的實踐
託管開源 LLM API,其中 vLLM 透過一個 GPU 以高吞吐量為許多並發聊天用戶提供服務。
託管開源 LLM API,其中 vLLM 透過一個 GPU 以高吞吐量為許多並發聊天用戶提供服務 當團隊預先定義品質閾值、為邊緣情況保留人工升級路徑並追蹤一段時間內的生產力提升和錯誤成本時,通常會獲得更好的結果。
PagedAttention 和 vLLM 的實踐
透過前綴快取在數千個請求之間共享較長的系統提示,以便處理一次,而不是重複處理。
透過前綴快取在數千個請求中共享較長的系統提示,以便處理一次,而不是重複處理。當團隊預先定義品質閾值、為邊緣情況保留人工升級路徑並隨著時間的推移追蹤生產力增益和錯誤成本時,通常會得到更好的結果。
PagedAttention 和 vLLM 的實踐
執行波束搜尋或多個取樣完成,透過寫入時複製共享公共提示的 KV 區塊。
透過寫入時複製執行波束搜尋或多個取樣完成,共用 KV 區塊以取得常見提示。當團隊預先定義品質閾值、為邊緣情況保留人工升級路徑並隨著時間的推移追蹤生產力增益和錯誤成本時,通常會獲得更好的結果。
PagedAttention 和 vLLM 的實踐
減少碎片造成的 GPU 記憶體浪費,以便提供者可以將更多並發會話打包到同一硬體上。
減少 GPU 記憶體碎片浪費,以便提供者可以將更多並發會話打包到同一硬體上。當團隊預先定義品質閾值、為邊緣情況保留人工升級路徑並追蹤一段時間內的生產力提升和錯誤成本時,通常會獲得更好的結果。
風險與防護欄
優化一項基準測試可以隱藏更廣泛的系統弱點。
基礎設施和維護成本常常被低估。
隨著系統變得更加複雜,安全性和可觀察性差距可能會擴大。
實施路線圖
在實施之前定義延遲、品質和成本目標。
在實施之前定義延遲、品質和成本目標。將每個步驟視為證據門:如果不符合標準,則暫停推出,縮小差距,然後再擴大使用。
在實際負載和資料條件下進行基準測試。
在實際負載和資料條件下進行基準測試。將每個步驟視為證據門:如果不符合標準,則暫停推出,縮小差距,然後再擴大使用。
儀器監控錯誤、漂移和使用者影響。
儀器監控錯誤、漂移和使用者影響。將每個步驟視為證據門:如果不符合標準,則暫停推出,縮小差距,然後再擴大使用。
在擴展之前準備回滾和事件回應路徑。
在擴展之前準備回滾和事件回應路徑。將每個步驟視為證據門:如果不符合標準,則暫停推出,縮小差距,然後再擴大使用。