滑動視窗注意
滑動視窗注意力限制每個標記僅關注附近標記的固定大小鄰域,而不是整個序列。
概述
This cuts the quadratic cost of standard attention down to linear, making long-context models far cheaper to run.
深入探討
標準自註意力將每個標記與其他每個標記進行比較,因此長度為 N 的序列需要大約 N 平方的比較。滑動視窗注意力透過為每個令牌提供一個大小為 W(例如 4,096 個令牌)的視窗並僅關注該視窗內的鄰居來解決此問題。成本以 N 倍 W 而非 N 平方成長。至關重要的是,堆疊許多視窗層擴展了有效感受野:在 L 層之後,訊息可以傳播大約 L 倍 W 的標記,就像 CNN 不斷增長的感受野一樣。 Mistral 7B 透過跨 32 層的 4,096 個代幣窗口普及了這一點,理論上達到了 131K 個代幣跨度。模型通常將視窗層與偶爾的全注意力層混合以保留遠端連結。
技術洞察
在註意力遮罩中,位置 i 的查詢只允許查看位置 i 減去 W 加 1 到 i 的鍵(因果情況)。這種稀疏掩碼意味著 KV 快取只需要每層最後 W 個令牌,從而在生成過程中減少記憶體。由於視窗隨著每個新令牌而變化,因此它自然地與滾動緩衝區高速緩存配對,滾動緩衝區高速緩存會覆蓋最舊的條目而不是永遠增長。
戰略影響
速度與規模
語言工作流程可以在不犧牲一致性的情況下更快地移動。
交通與覆蓋範圍
它擴展了跨語言和溝通方式的訪問。
更明確的決策
團隊可以花更多時間進行判斷,而自動化則可以處理重複。
滑動視窗注意力的未來
混合設計現在在許多滑動視窗層中交織一些全局或全注意力層,平衡效率與真正的遠端推理。 Gemma 2 和其他人交替使用本地和全域區塊。期望視窗注意力與狀態空間模型、注意力接收器和 KV 快取壓縮相結合,以便前沿模型可以處理百萬個令牌上下文而不會失控記憶體。它正在成為一個預設的構建塊,而不是一種奇怪的優化。
現實世界的實施
Mistral 7B 在其各層之間使用 4,096 個代幣的滑動窗口,以便在消費性 GPU 上以較低的成本處理長提示。
Longformer 應用程式視窗注意力加上一些全域標記來對多頁文件進行分類和總結。
Gemma 2 將局部滑動視窗層與全域注意力層交替使用,以平衡速度和遠端召回。
聊天助理中的滾動緩衝 KV 快取僅保留最近的令牌窗口,從而在長時間對話期間限制記憶體。
風險與防護欄
幻覺的事實可以悄悄地進入報告、支持流程或研究成果。
及時的敏感性可能會在類似的請求中產生不一致的結果。
如果存取控制薄弱,敏感文字資料可能會暴露。
實施路線圖
在推出之前定義輸出格式、語氣和品質標準。
當準確性很重要時,請使用可信任來源進行地面回應。
為高風險輸出保留人工審查檢查點。
追蹤故障模式並定期重新訓練提示或工作流程。
不斷探索
Free newsletter
Get the daily AI briefing
Three verified AI stories every weekday morning, written in plain English. Free forever, no ads.
One email each weekday. Unsubscribe in one click. We never sell or share your address.
Test yourself
Take the Sliding Window Attention quiz
Instant feedback on every answer, and a shareable certificate with a verifiable ID once you pass a course.
Support free AI education. AI Understanding is a 501(c)(3) nonprofit — no ads, no paywall, ever. Make a donation
常見問題
What is Sliding Window Attention?
滑動視窗注意力限制每個標記僅關注附近標記的固定大小鄰域,而不是整個序列。這將標準注意力的二次成本降低為線性,使得長上下文模型的運行成本要低得多。
滑動視窗注意力相對於標準自註意力的主要運算優勢是什麼?
透過將每個令牌限制在 W 個鄰居的固定視窗內,成本會以 N 乘以 W(N 的線性)而不是 N 平方的形式增長。
在 Mistral 7B 的設計中,資訊如何能遠遠超出單一 4,096 個令牌視窗的範圍?
與 CNN 一樣,每一層都將資訊進一步推入一個窗口,因此 L 層提供大約 L 乘以 W 令牌的有效跨度。
為什麼滑動視窗注意力會在文字生成過程中減少記憶體?
由於令牌僅關注其最近的窗口,因此通常可以透過滾動緩衝區快取來丟棄較舊的鍵/值條目。
像 Gemma 2 這樣的模型與滑動視窗一起使用什麼設計選擇來保持遠端推理?
在局部層中混合偶爾的全域/全注意層可以保留純視窗削弱的真正的長距離連接。
對於大小為 W 的因果滑動窗口,i 位置的查詢可以關注哪些按鍵?
在因果情況下,查詢會看到自身以及緊鄰其先前的 W 減 1 標記,而不是未來的標記。