![]()
讓大模型 "讀得更長" 一直是 Agent、深度推理和海量資料整合等場景的剛需,但標準全注意力機制的計算量隨序列長度呈平方級增長,始終是橫亙在長上下文建模面前的三座大山。
本周,騰訊混元團隊正式開源 HiLS-Attention(分層地標稀疏注意力),提出了一種全新的分塊稀疏注意力范式,首次在數學層面上同時解決了 chunk 重要性估計的 "表達力不足" 和選擇過程的 "端到端不可導" 兩大根本難題,真正將稀疏注意力做到了 "Done Right"。
在 345M 至 7B 參數規模上的系統驗證顯示:HiLS-Attention 在短文本場景下語言建模困惑度(PPL)與全注意力幾乎重合,在 8K 訓練條件下可實現 4M 上下文(512 倍)免訓外推,512K 上下文下的 prefill 與單步 decode 分別加速 13.5 倍和 15.7 倍。
更重要的是,該方法在部分長上下文檢索任務上反超了全注意力本身 —— 效率與效果的 "二選一" 困境被首次同時打破。相關論文與代碼已在 GitHub 上公開。
![]()
![]()
- 論文標題:Hierarchical Sparse Attention Done Right: Toward Infinite Context Modeling
- 論文鏈接:https://arxiv.org/pdf/2607.02980
- 代碼鏈接:https://github.com/Tencent-Hunyuan/HiLS-Attention
一、長上下文的老大難:
全注意力扛不動,稀疏注意力又 "不準"
讓大模型讀得更長,幾乎是今天所有 Agent、深度推理、海量資料整合任務的剛需。
但 "讀得長" 對標準的全注意力(Full Attention)來說,一直是三座大山:
- 計算量是平方級的:序列翻倍,算力翻四倍;
- 長度外推差:訓練 8K,測試 32K 就開始崩;
- KV Cache 隨長度線性膨脹,顯存很快吃不消。
于是大家把目光投向分塊稀疏注意力(Chunk-wise Sparse Attention):把上下文切成一個個 chunk,每個 query 只挑最相關的 Top-K 個 chunk去算注意力,多余的 kv cache 卸載到 cpu memory, 計算和顯存開銷都被控制在常數,看起來思路非常美好。
但現實是:迄今為止,沒有任何一種分塊稀疏注意力能真正追平全注意力。
![]()
圖:最直接的證據 —— 即便讓 345M 模型在 RULER 任務上訓練,現有分塊稀疏注意力依然打不滿全注意力。
問題的根子在哪?——chunk 選不準。
二、現有方法為什么會 "選錯 chunk"?
mean /max logits 的先天缺陷
要選對 chunk,前提是能準確估計每個 chunk 的 "重要性"。
![]()
圖:從最樸素的 block sparse attention 出發 —— 一個 chunk 的重要性,就是它內部所有 token 注意力質量的總和
基于上圖,形式上有:
![]()
按 Zc 從大到小取 Top-K,選出來的就是和全注意力完全一致的精確排序。問題在于:想精確算出 Zc,就得把 query 和 chunk 里每一個 token 都點積一遍 —— 這等于又把全注意力算了一遍,稀疏的意義蕩然無存。
![]()
![]()
現有方法是怎么造的?最主流的是均值池化(mean pooling):直接把 chunk 內所有 key 求平均當摘要 key。稍作推導就會發現,它算出來的分數其實就是 token logit 的均值
![]()
NSA、InfLLM v2、MoBA 等都屬此類;另一類方法(如 MiniMax 稀疏注意力)則改用max logits來近似。
![]()
![]()
也就是說:
- mean logits 只在 "chunk 內注意力均勻分布" 時才準;
- max logits 只在 "單個 token 獨占注意力" 時才準。
可真實場景里,logit 分布隨 query隨 head隨數據劇烈變化,根本不會乖乖落在某一種極端。結果就是:無論用 mean 還是 max,都是在用一個只在極端情況才成立的代理去硬湊 LogSumExp,從而系統性地錯估 chunk 重要性,打亂 chunk 排序,讓真正關鍵的 chunk 落選
這一點在實驗里看得很清楚:在最簡單的單針大海撈針任務上,用均值池化的 NSA / DashAttention / InfLLM v2 在 8K 域內就已經明顯掉點—— 因為大海撈針恰恰是 "少數針 token 獨占注意力" 的高度集中分布,而均值池化會把這種尖峰稀釋掉
三、想用 "參數化 summary" 救場?
先過端到端反傳這一關
既然非參數化的 mean/max 表達力不夠,那很自然的想法是:給每個 chunk 學一個參數化的 summary,讓它更有表達力地概括整塊內容。
聽起來對,但這里藏著一個被幾乎所有現有方法忽略的致命斷點
現有方法即便用了參數化 summary,也只拿它來打分選 Top-K。一旦 Top-K 的 chunk ID 被 "硬選" 出來,summary 和打分就被丟棄了,不再參與后續的注意力計算。
這意味著什么?
意味著語言建模(LM)loss 的梯度,根本傳不到 summary 和選擇分數上。
Top-K 選擇是一個離散不可導的操作。打分→排序→選 ID,這條鏈路梯度無法反傳到 summary,LM loss 無法告訴 summary:"你這次把重要的 chunk 排低了,下次該調高一點。"
于是 summary 的學習變成了 "盲訓"—— 它學不會去抑制無關 chunk、抬高對預測真正有用的 chunk。選擇過程沒有被端到端優化,再有表達力的 summary 也無濟于事。
這就引出了兩個 research question:
RQ1. 數學表達能力足夠的 chunk 重要性估計.
RQ2. chunk summary 必須能跟著 LM loss 端到端訓練.
把這兩點同時做到,才算把稀疏注意力"做對"
四、思路:HiLS-Attention ——
把 chunk 選擇變成可微分的 "分層 softmax"
騰訊混元提出HiLS-Attention(Hierarchical Landmark Sparse Attention,分層地標稀疏注意力)。它的核心,是把上面兩個訴求拆成兩個問題逐一攻破。
RQ1:用 "一階泰勒展開" 構造表征能力足夠的 chunk 算分函數
一個直覺的想法是對 LogSumExp 進行一階泰勒展開,觀察數學性質。研究團隊發現,chunk 的對數重要性可以被近似成一個非常優雅的形式:
![]()
它由兩部分組成:
![]()
![]()
![]()
RQ2:如何讓 chunk summary 跟著 LM loss 端到端訓練?
光有好 summary 還不夠 —— 要解決那個致命斷點:讓梯度真正流到 summary 上。
HiLS 的做法是把注意力權重分層因式分解成兩級 softmax:
![]()
圖:先按 summary 算每個 chunk 應該分攤多少餅,再由 chunk 內 token 繼續分餅
![]()
- chunk 內(intra-chunk)softmax:在每個被選中的 chunk 內部,決定 token 之間的相對權重;
![]()
![]()
斷點被打通了。chunk 選擇第一次成為了在 LM 目標下端到端可學習的過程,而且訓練和推理全程都是真稀疏(native sparse training)。
一個反直覺的彩蛋:它不只是 "模仿" 全注意力,還更準
研究團隊最初是想讓 HiLS 去逼近 "全注意力誘導的 chunk 選擇"(即樸素 BSA)。但實驗給了驚喜:
HiLS 不僅追平了樸素 BSA,還在長上下文檢索上反超了全注意力本身。
原因可能在于壓縮本身能去噪。全注意力有個固有毛病:只要一個 token 的 logit 不是負無窮,它就會分到一點點注意力質量。上下文越長,這些無關 token 的微小噪聲越積越多,反而污染了檢索信號。而 HiLS 把多個 key 壓縮成一個 summary key 時,不對齊的噪聲相互抵消共享的語義信號被保留,于是檢索反而更干凈 —— 這正是它在變量追蹤(VT)這類多跳任務上能比全注意力高出多達 50% 的根源。
五、實驗:從 345M 到 7B,全面驗證
345M → 1.4B → 7B三個尺度上做了系統驗證,結論高度一致:
- 短文本不掉點:345M 與 1.4B 從零訓練時,HiLS 在各上下文長度、各訓練階段的 PPL 與全注意力幾乎重合,8K 處持平甚至略低;
- 超長外推炸裂:僅用 8K 訓練,外推到 4M(512 倍)仍保持 90%+ 大海撈針準確率,遠超全注意力;
- 低成本改造存量模型:把 OLMo3-7B 這類全注意力模型轉成 HiLS,只要續訓 50B token 即可實現切換。短程任務不掉點,長序列任務 LongBench 在 in-domain 長度甚至能超越全注意力基線,無縫繼承 HiLS 的外推能力,在 out-of-domain length 顯著碾壓 YaRN 等各類 baseline;
- 推理還更快:512K 上下文下,prefill 快 13.5×、單步 decode 快 15.7×。
稀疏注意力長期以來的 "效率 — 性能" 二選一困境,被第一次同時打破了。
六、寫在最后
回頭看這條邏輯鏈其實很清晰:
1. 稀疏注意力的瓶頸是chunk 選錯
2. 選錯的根源是mean /max logits 系統性失準
3. 想用參數化 summary 補救,又卡在端到端反傳斷點上
4.HiLS 用泰勒線性化(提出足夠表達力的估分函數)+ 分層 softmax(把代理分數送進前向),一舉解決了表達力和可微分兩個問題。
HiLS 證明了:稀疏注意力可以同時提升效率和效果。效果提升的根源或許源自壓縮導致去噪,帶來更純凈的檢索表征。
這,才是把分層稀疏注意力 "Done Right" 的樣子。
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.