跳到主要內容

【2026 最新】LSA 稀疏注意力會省顯存嗎?八筆 QKV 練習拆開加速、KV Cache 與整機成本

最後更新: ·
LSA 稀疏注意力:少讀與少存的差別

看到「注意力快了七十幾倍」,你可能立刻想到:那張放不下長文件的顯卡,終於有救了?LSA 稀疏注意力確實在改善超長上下文運算,但要回答能否省顯存,必須先分清「這次讀幾頁」與「書架上還放幾頁」。

這篇寫給第一次接觸 Q、K、V,也想看懂研究加速數字的讀者。我們用八筆資料做能手算的概念練習,再拆開論文的速度、記憶體與部署條件。做完後,你會知道該追問哪些數字,才足以判斷自己的硬體是否適用。

先說結論:少讀,不等於少存

LSA 的記憶口訣:讀取清單縮短,保存清單仍在。它先用索引挑選值得計算的歷史位置,再交給注意力運算;完整 KV Cache 仍會隨上下文增長。這是論文 v2 討論章節明確交代的邊界。

因此,先問你遇到的是哪一種問題:資料放得下卻跑得慢,還是一開始就放不下?前者值得評估稀疏讀取;後者還得另外處理保存量。把兩者混在一起,容易拿加速倍率去推算一張顯卡能裝幾百萬 token,算出不存在的容量。

一、LSA 稀疏注意力在做什麼?先認識三本小筆記

Attention(注意力機制)可以先想成寫答案前翻筆記:Q(Query)是眼前的查詢,K(Key)是每筆筆記用來比對的標籤,V(Value)是找到後要取用的內容。模型中的它們都是向量,也就是一串數字;不是人工寫好的搜尋關鍵字。想先看互動圖,可接著讀LLM Attention 的四個互動實驗。

KV Cache 則是把已算好的 K、V 留下,生成下一個 token 時接著使用。Token 是模型處理文字的片段,不固定等於一個中文字。Hugging Face 的快取文件把節省記憶體與追求速度列成不同取捨:快取搬到 CPU、降低數值精度,與改變注意力要讀哪些位置,各有自己的代價。

書架比喻也要用準:存放量像書架容量,讀取量像這回翻了幾頁,延遲像你多久交出答案。翻頁少,可能交得快;書仍在架上,容量就不會按翻頁比例一起變小。索引本身還像多做一本目錄,也要佔地方。

二、把 LSA 的尋找過程拆成四步

LSA 是 Latent Sparse Attention,這裡指 Prefrontal 團隊的特定研究方法。Latent space(潛在空間)可理解為用另一套較小的數字表示來找相近資料。依論文的方法章節,可以按以下順序建立直覺:

  • ① 做搜尋用的表示。索引用的向量與最後做注意力的原始 K、V 分工;索引是在幫你找位置。
  • ② 把相近的索引 key 分成桶。每個桶保留代表向量與成員位置;像把主題相近的筆記編入同一目錄。
  • ③ 查目錄,再展開位置。Flat 版本比較桶的代表;Tree 版本循層搜尋,逐步留下候選。
  • ④ 讀回選中的原始資料。遠端位置加上開頭的 sink 與最近的 window,形成要交給注意力的清單。這兩個保留區可先理解成開頭錨點與近期筆記。

桶的代表不是整桶內容的保證書:平均看起來普通的桶,可能藏著關鍵例外。因此「怎麼分桶、挑幾桶、保留哪些近期位置」都會影響結果。接下來的八筆練習只教「選位置和存資料的差別」,省略學習投影、實際分群、sink、window、多頭與 GPU 核心,不能當成 LSA 實作或論文重跑。

三、八筆 Q/K/V 練習:讀取少一半,保存量是多少?

先在紙上寫下 Q=(1, 0)。A 桶的四個 K 是 (1, 0)、(0.8, 0.2)、(0.6, 0.4)、(0.4, 0.6);B 桶是 (0, 1)、(−0.2, 0.8)、(−0.4, 0.6)、(−0.6, 0.4)。我們直接指定這兩桶,省略真正的分群演算法。V 依序是 (10, 0)、(20, 0),一路到 (80, 0)。

每筆 K 和 V 各兩個數字,假設每個數字以 2 bytes 保存。於是每筆 KV 是 (2+2)×2=8 bytes,八筆共 64 bytes。這是張量有效內容的計算,不包含 Python 物件、記憶體配置器或硬體快取。

LSA 稀疏注意力概念練習:完整讀取與選桶讀取均保存八筆 KV
AlphaLab 自製概念練習;人工指定兩桶,並非 LSA 分群或 GPU 效能測試。

完整讀取時,這次注意力要取用八筆 KV,有效資料合計 64 bytes。假設簡化選桶器只選 A 桶,就取用四筆、32 bytes;仍保存八筆、64 bytes,因為下個查詢可能需要 B 桶。這裡算的是被選資料的內容量,真實 GPU 傳輸還受頁面、對齊、核心與索引開銷影響。

有 Python 3 的讀者可貼上 python3 -c 'print(8*(2+2)*2, 4*(2+2)*2)',會印出 64 32。把前面的 8 改成 16,保存量會翻倍;只改第二項的讀取筆數,第一項仍相同。沒有 Python,也能用計算機完成同一練習。

再替簡化目錄算帳:若兩個二維代表向量也各用 2 bytes 保存,佔 8 bytes;八個位置編號各用 4 bytes,佔 32 bytes,目錄共 40 bytes。這個刻意縮小的例子就成了「64 bytes 原始 KV+40 bytes 目錄」。小例子反而多佔空間很合理;它只驗證帳目分開,不能推估研究索引的實際比例。

四、同一份資料,還要算答案會不會變

讀取數算完,再試一個完整的注意力步驟。用每個 K 與 Q 的內積除以 √2 得到分數,經 softmax(把分數變成總和為 1 的權重),再加權 V。這是二維、單頭、單查詢的簡化設定。PyTorch 的 Flash-Decoding 說明也以 Q、K 的分數和 V 的加權運算解釋注意力。

我們以相同八筆數字計算,完整讀取的輸出第一維約為 36.45;只讀 A 桶約為 23.24,第二維均為 0。兩個結果不同,因為刪掉候選後,softmax 的分母也變了。這是本文的純數學計算,不是語言模型正確率,更不是 LSA 的誤差量測。

現在把 Q 換成 (0, 1),試著挑 B 桶。資料若仍在,就有機會讀到原先未選的內容;若先永久刪掉 B 桶,後續搜尋便少了這些原始候選。想看真正以淘汰減少保存量的評估,可讀Random Attention 與 KV Cache 隨機淘汰,兩種方法的驗收問題不同。

最後加一道追問:假設一筆看似不相關的資料才寫著最新修訂日期,選取器會留下它嗎?先問一般摘要,再問例外、版本衝突、跨段連結與找不到答案的題目。速度變快但漏掉關鍵證據,對你的任務仍可能是不合格。TokenGate 的追問證據練習提供另一種練習方向。

版本名稱也要先分清:D-LSA 透過蒸餾訓練索引,接到既有模型;N-LSA 則把這套方法放進從頭訓練的模型。下節採用的是 D-LSA(Flat)的推論結果,不將 N-LSA 的訓練速度混進來。

五、LSA 稀疏注意力的速度數字,要分兩張成績單

截至 2026 年 11 月 5 日,團隊官方研究解說分別列出單層與端到端結果。下圖固定為 D-LSA(Flat)、10M tokens、H200;不同模型使用各自的對照基準。10M 是一千萬個 token,不是文件字數。

LSA 稀疏注意力研究速度比較:單層 Prefill 與端到端 TTFT 分開
依 Prefrontal 官方解說與論文 v2 整理;作者量測,非 AlphaLab 重現。不同基準與平行配置不可直接排成一張勝負榜。

Prefill 是先處理輸入,decode 是逐步產生輸出。單層 prefill 計時取長上下文最後一塊 32,768 個查詢;端到端 TTFT 則是收到請求到首個 token 的時間。論文整機測試一次一個請求,每次生成 256 tokens,取三次請求的中位數。單層倍率不能直接當成整個聊天服務的倍率。

你也能做不依賴論文的算術練習:原先一項工作花 100 秒,其中 80 秒用在可加速部分;該部分快 10 倍,總時間是 80÷10+20=28 秒,整體約快 3.57 倍。這是Amdahl 定律的直覺:其他工作仍要花時間。這組數字是假設,不是任何模型的實際耗時。

同樣地,便宜多少要看完成相同合格任務需要多少 GPU 時間、幾張卡、多少併發與重跑。單次變快不會自動給出每月帳單;能容納更多資料,也不保證跨文件推理一定正確。

六、我能不能跑?先做三層可用性檢查

第一層:概念練習。紙筆與計算機就能完成上述算帳。本文執行的是這個小計算;沒有執行模型推論或 H200 研究測試。

第二層:讀程式與檢查依賴。截至查閱日,官方 README列出 Python 3.12、uv 0.10 以上。你可先讀安裝段落,再在已有合適環境時操作;uv run lsa --help只驗證基本 CLI,官方特別提醒它不能證明 evaluation 或 training 額外依賴已裝好。

第三層:實際研究設定。官方快速入門使用指定 SGLang fork/映像、相應模型與蒸餾的投影檔。啟動後還要確認日誌的 armed、服務的 /health及一次成功請求;程序出現不等於 LSA 已生效。請按同版快速入門操作,不把它直接翻譯成任意 llama.cpp 或 GGUF 的啟動參數。

  • 先記版本:模型 revision、LSA commit、SGLang tag、投影檔來源與雜湊。本文查閱的程式庫 commit 為 5ebea732d639576d2a7579b0de40e6252f9001f5。
  • 再記資源:GPU 型號、張數、KV 精度、context、batch,以及可用顯存;把模型權重與工作緩衝區也算進預算。
  • 最後驗收:以相同請求比原版和 LSA,分別記 TTFT、每輸出 token 時間、峰值顯存及正確答案。先求一個能對照的小測例,再擴大。

如果你用消費級 GPU,先將自己的結果欄位留白。研究的 H200/B300 配置能提供測試方法,無法替另一張卡填入倍率。若目標是避免放不下,先評估 KV 量化、卸載或上下文管理的適用性;這些與 LSA 的相容性也要逐一確認,不能由「原理可互補」推成「現有實作已接好」。

七、常見問題:先給判斷,再說條件

1. LSA 會按讀取比例省顯存嗎?

不會照這個比例推算。論文保存完整 KV;減少索引或工作緩衝區的部分,要和 KV、權重分項量測。

2. 保存完整 KV,是否保證不漏證據?

不保證。資料留在記憶體,與這次被選到參與運算,是不同條件。

3. 72.4 倍就是回覆快 72.4 倍嗎?

不能這樣讀。圖中的數字是特定模型、長度與基準的單層 prefill;端到端另有 TTFT。

4. 八筆練習能預測真實 GPU 速度嗎?

不能。它計算內容量與數學輸出,省略實際 GPU 傳輸、並行和索引開銷。

5. 量化權重,就等於量化 KV 嗎?

不是同一項設定。先讀推論引擎對權重與 KV 精度的分別說明,再記錄實際配置。

6. 一題找針通過,就能放心做研究整理嗎?

還不足夠。請加例外、跨段證據與無答案題,驗收你的完整用途。

7. 現在就該升級顯卡嗎?

先量瓶頸。若主要是容量不足,加速數字本身不能替你完成容量預算。

8. 新手現在最值得做哪一步?

先算八筆資料的保存量和讀取量,再替一個研究倍率補上模型、基準、硬體及量測範圍。

給新手的三個重點

  • 把「讀幾筆」與「存幾筆」寫成兩欄,別讓一個稀疏比例代答兩個問題。
  • 每次抄倍率,都帶上模型、context、對照基準、GPU 與單層/整機範圍。
  • 以速度、峰值顯存、證據完整性三項一起驗收,才知道能否採用。

接著閱讀

左右滑動查看更多推薦

下一步:替一個加速標題補上完整問題

現在拿一張紙,寫下「完整 KV 64 bytes、選取內容 32 bytes、目錄另計」,再把你看到的研究數字標成單層或端到端。能說清楚這三件事,就已經掌握讀取清單縮短,保存清單仍在的差別。想繼續循序學習,可從AI 文章總覽選一個原理,或到AlphaLab 課程安排下一段學習。下一次評估長上下文工具,先填好這張三欄成績單,再決定要不要投入硬體與部署時間。

ALPHALAB 社群

有問題?來 Telegram 聊

和 Terry、編輯、其他網友一起討論這篇文章。提問、分享觀點,回覆更即時。

加入 Telegram 討論

📩 訂閱 AlphaLab 電子報

週日 Weekly 週報+週二、週四 Alpha Signal,每週最多三封。

我們不會 spam,隨時可退訂。已訂閱?管理訂閱偏好(會寄登入連結到你的信箱)

主題篩選與退訂說明

寄送日期以台灣時間為準。主題偏好會篩選每期精選,並非每篇新文章的即時通知;當期符合主題的文章不足時會略過寄送。

未勾選任何主題會收到所有主題的精選,並不會停止寄信。

取消勾選 Alpha Signal 可停止週二、週四短報,仍保留週日週報。若要停止所有電子報,請使用信件底部的「取消訂閱」。