体系 › Transformerの仕組み
·★ 会員·論文·22分で読めます

論文解説: SAS — 疎注意の「どのブロックを読むか」を言語モデル損失で端から端まで学習する

長い文脈のどのブロックを読むかを決める「セレクター」は、従来は元モデルの注意分布を真似る蒸留で訓練されていた。SASはセレクターの点数を対数ゲートとしてsoftmaxの中に注入し、Top-Kで止まっていた勾配を通して、次トークン予測の損失だけで選択を学習させる。1024トークン予算でGPQA-Diamondが10.6〜15.5点改善した論文を、4つの設計判断のアブレーションと勾配の式まで追って読む。

要点

  • SASは、セレクターの連続スコアを訓練中の注意ロジットに注入し、標準の逆伝播でセレクターを更新する。
  • ブロック疎注意はTop-K選択を使い、Top-Kは点数に対して区分的に定数なので損失からの勾配が届かない。
  • 既存手法は元モデルの層ごとの注意分布を蒸留するが、層をまたいだ補完性とValueを見ていない。
  • 最終形は softmax(qK^T + log g)V で、ゲートの対数を足すことでsoftmax後の確率にゲートを掛けるのと同じになる。
  • 推論時はゲートを使わずTop-Kで通常の疎注意を計算し、計算はSeerAttention-Rと完全に同じで違うのは訓練方法だけである。
対象textタスクarchitecture

SAS: Simple Attention Sparsification via End-to-End Optimization of Context Ranking

一次資料 — この記事の根拠

論文の発表 2026-09-11→この解説の公開 2026-09-15同月

SAS: Simple Attention Sparsification via End-to-End Optimization of Context RankingZhiwei Li, Lei Zhu, Hao Gu ほか · 2026-09-11 · v1arXiv:2609.13141論文ページ·PDF
原文の要旨(Abstract)を読む

Post-training attention sparsification reduces the quadratic cumulative attention cost of pretrained Transformers by selecting a small set of context units (tokens or blocks) for each query. Existing trainable methods usually use a lightweight selector to score context units, followed by hard Top-K selection that blocks gradients from the language modeling loss. Consequently, these methods commonly distill layer-wise dense attention distributions. Although this encourages the selector to rank context units by dense attention weights in the original model, the ranking is not directly aligned with their impact on predictions under a fixed attention budget (i.e., the number of attended context units per query), potentially wasting the limited budget on less useful units. To address this misalignment, we propose Simple Attention Sparsification (SAS), a gated sparse attention mechanism that optimizes context ranking end-to-end with the language modeling loss. The key idea is to inject the selector's continuous scores into attention logits during training, allowing the loss to update the selector through standard backpropagation. We identify several choices crucial for this simple design to work well in practice: placing the gate inside the attention softmax in log form, using normalized softmax gates to calibrate historical context against the always-retained current block, and preserving continuous selector scores so the model learns relative priorities rather than only hard selections. To support long-sequence training, we implement a memory-efficient Triton kernel that integrates SAS into FlashAttention-style computation. Across reasoning, long-context understanding, and agentic tasks, SAS consistently outperforms trainable sparse attention baselines across attention budgets, with especially large gains under tight budgets, demonstrating more effective context ranking for downstream tasks.


論文の主張を一段落で

今回読むのは Tencent HY LLM Frontier と香港科技大学のチームによる "SAS: Simple Attention Sparsification via End-to-End Optimization of Context Ranking"(arXiv:2609.13141、2026年9月11日公開)です。abstract の主張はこうです。事前学習済みTransformerの注意計算を減らす「事後の疎化」では、クエリごとに少数の文脈ブロックを選ぶ軽量なセレクターを訓練するが、ハードなTop-K選択が言語モデル損失からの勾配を遮断するため、既存手法は元モデルの層ごとの注意分布を蒸留して代用してきた。しかしその順位付けは「限られた注意予算のもとで予測にどれだけ効くか」とは一致せず、予算を無駄にしうる。SASはセレクターの連続スコアを訓練中の注意ロジットに注入し、標準の逆伝播でセレクターを更新する。うまく動かすには、ゲートを対数の形でsoftmaxの内側に置くこと、softmaxで正規化したゲートで履歴ブロックを常時保持される現在ブロックに対して較正すること、連続スコアを保って相対的な優先順位を学ばせることが重要だった。FlashAttention型のTritonカーネルも実装し、推論・長文理解・エージェント課題で訓練型の疎注意ベースラインを一貫して上回り、特に予算が小さいときの伸びが大きい。

以下では、なぜ勾配が止まるのか、対数ゲートがどうやってそれを通すのか、そして4つの設計判断が実験でどう裏づけられたのかを順に見ていきます。

比喩: 「誰の話を聞くか」を決める係の育て方

Attention機構を1から理解するでは、自己注意を会議室のメモ取りに例えました。全員の名札(Key)と自分の質問(Query)を見比べて、関連の深い人の発言(Value)を長く聞く仕組みです。

ところが会議が長引いて参加者が数万人になると、全員の名札を毎回見比べるのは無理です。そこで「この質問なら、あのあたりの席の人たちだけ聞けばいい」と絞り込む係を置く。これがブロック疎注意のセレクターで、席をまとめた「ブロック」ごとに点数を付け、上位K個だけを注意の対象にします。

問題は、この係をどう育てるかです。従来の代表的なやり方は「先生(元の密な注意)がどこを見ていたか」を真似させることでした。先生の視線を層ごとに記録して、係の点数がそれと合うように訓練する。これが注意分布の蒸留です。

論文が指摘するのは、この育て方のズレです。先生の視線が向いた場所は、「予算K個しか聞けない状況で、最終的な答えを正しくするために本当に必要な場所」とは限りません。理想は、係の選び方が悪ければ答えが間違う、その責任を係に直接負わせることです。SASはまさにそれをやります。係の点数を注意計算の中に組み込み、最終的な次トークン予測の損失から勾配を係まで流します。

前提: ブロック疎注意と、Top-Kが勾配を止める理由

まず論文 §3 の記法を押さえます。現在トークンのクエリを q\mathbf{q}、過去 nn トークンのKeyとValueを K,V\mathbf{K},\mathbf{V} とすると、通常の注意は次のとおりです(スケール係数は論文にならって省略)。

o=softmax⁡(qK⊤)V\mathbf{o}=\operatorname{softmax}(\mathbf{q}\mathbf{K}^{\top})\mathbf{V}
(1)

「質問と全部の名札の内積を取り、割合に直し、その割合で全部の発言を混ぜる」という式です。生成時は毎トークンこれをやるので、長さ nn の系列全体では累積コストが n2n^2 に比例します。

ブロック疎注意は、nn 個の文脈を bb トークンずつの C=n/bC=n/b 個のブロックに分け、セレクター Rθ\mathcal{R}_\theta がブロックごとの点数 s∈RC\mathbf{s}\in\mathbb{R}^C を出し、上位 KK 個のブロックの和集合 S\mathcal{S} だけを見ます。

I=Top-K(s,K),S=⋃m∈IBm,o=softmax⁡(qKS⊤)VS\mathcal{I}=\text{Top-}K(\mathbf{s},K),\qquad \mathcal{S}=\bigcup_{m\in\mathcal{I}}B_m,\qquad \mathbf{o}=\operatorname{softmax}\left(\mathbf{q}\mathbf{K}_{\mathcal{S}}^{\top}\right)\mathbf{V}_{\mathcal{S}}
(2)

「点数の高いK個のブロックを選び、そこに入るトークンだけで注意を計算する」という意味です。1クエリあたりのコストは nn から ∣S∣|\mathcal{S}| に落ち、系列全体では n∣S∣n|\mathcal{S}| に比例するようになります(§3)。

FIG 1文脈長nに対して、密な注意の累積コストはn²で伸びる。予算|S|を固定した疎注意はn×|S|、つまり直線にしかならない。対数軸に切り替えると、桁がどれだけ違うかが見える

ここで肝心なのが、Top-Kは点数に対して区分的に定数だという事実です。点数を少し動かしても、上位K個の顔ぶれが変わらない限り出力は1ミリも動きません。微分がゼロ、つまり「係の点数をどう変えれば損失が下がるか」という情報が損失側から一切届かない。論文はこれを Figure 1(a) の「Gradient Blockage in Discrete Selection」として図示しています。既存手法が蒸留や発見的な代理信号に頼るのは、この壁を迂回するためです(§1, §2)。

蒸留のどこがズレるのか

論文 §1 は、注意分布の蒸留の限界を2つ挙げています。

1つ目は層をまたいだ補完性を見ていないことです。ある層で見逃したブロックが別の層で拾われる、という分担があってもいいのに、層ごとに先生を真似させると各層が独立に「先生と同じ場所」を目指してしまいます。

2つ目はValueを見ていないことです。注意の重みが一致していても、その先で混ぜられる V\mathbf{V} の中身が最終予測にどう効くかは蒸留の目的関数に入っていません。図で言えば、Figure 1 の V\mathbf{V} 行列がまるごと無視されているわけです。

SASのアイデアは、この2つを一気に解消する最も素朴な方法、つまり最終的な言語モデル損失そのもので係を訓練することです。層をまたいだ分担も、Valueの中身も、最終損失には自然に織り込まれています。あとは勾配の通り道さえ作ればいい。

仕組み: 点数を対数ゲートとしてsoftmaxの中に入れる

論文 §4.1 は、まず疎化を「選択」ではなく順位付け(context ranking)の問題として捉え直します。Top-Kは点数の順序で決まるので、係が学ぶべきは「どのブロックがどれだけ大事か」という連続的な順序です。訓練中はその順序を連続量のまま注意計算に参加させ、推論時に初めてK個に切り落とします。

具体的には、常に保持する現在ブロックを B0B_0、セレクターが順位付けする履歴ブロックを H={B1,…,BC}\mathcal{H}=\{B_1,\ldots,B_C\} とし、履歴ブロックの点数 s\mathbf{s} を微分可能な活性化 ϕ\phi で正のゲートに変換します。

g=ϕ(s)∈R+C,g0=1\mathbf{g}=\phi(\mathbf{s})\in\mathbb{R}_+^{C},\qquad g_0=1
(3)

「履歴ブロックには点数から作った正の重みを付け、現在ブロックの重みは1に固定して偏りを与えない」という式です。各ゲート gmg_m はブロック内の全トークンに同じ値で配られます。

そしてこのゲートを、log⁡\log を取って注意ロジットに足し込みます。§4.3 の最終形(式(9))はこうです。

oSAS=softmax⁡(qKS⊤+log⁡gS)VS\mathbf{o}_{SAS}=\operatorname{softmax}\left(\mathbf{q}\mathbf{K}_{\mathcal{S}}^{\top}+\log\mathbf{g}_{\mathcal{S}}\right)\mathbf{V}_{\mathcal{S}}
(4)

gS\mathbf{g}_{\mathcal{S}} は選ばれたブロックのゲートをトークン単位に展開したもの、S=B0∪⋃m∈IBm\mathcal{S}=B_0\cup\bigcup_{m\in\mathcal{I}}B_m は現在ブロックと選ばれた履歴ブロックの和集合です。読み方は「内積の点数表に、係が付けた重みの対数を足してからsoftmaxする」。指数関数の中で足し算をすると外では掛け算になるので、exp⁡(zi+log⁡gm)=gmexp⁡(zi)\exp(z_i+\log g_m)=g_m\exp(z_i)、つまりsoftmax後の注意確率に係の重みが掛かったのと同じことになります。これで係の点数 s\mathbf{s} は注意確率の中に連続的に入り込み、損失からの勾配が g\mathbf{g} を経て θ\theta まで届きます。

推論時は Algorithm 2 のとおり、点数 s\mathbf{s} でTop-Kを取り、ゲートは使わず通常の疎注意を計算します。つまり推論時の計算はSeerAttention-Rと完全に同じで、違うのは係の訓練方法だけです(§5.1)。

FIG 2ロジットに定数を足し引きすると、softmax後の分布の山が動く。SASの対数ゲートは「どのブロックの棒を高くするか」をロジット側で操作し、それがそのまま注意確率の配分になる。現在ブロックだけは足し引きゼロで基準点になる

「点数をロジットに足す」だけなら誰でも思いつきます。論文 §4.2 の価値は、その素朴な設計がどの条件で壊れるかを4軸で制御実験したことにあります。設定は Qwen3-4B、SeerAttention-R の AttnGate セレクターを流用、ブロックサイズ64・Top-K 32、OpenR1-Math-220k の93.7K例、系列長32,768、バックボーン凍結、評価は GPQA-Diamond・予算2048トークン・16回平均です(§4.2.1)。Table 1 の1エポック時点の正解率を引きます。…

この先にあるもの

§

ここから先は会員限定です

解説記事449本・教科書42章・学生モード48単元・論文精読6本が、月額¥490ですべて読み放題になります。新しい解説は1日あたり平均3本ほど増えます。いつでも解約でき、解約後も期間の終わりまで読めます。

会員の方はログインすると続きが表示されます

参考文献

  1. Zhiwei Li, Lei Zhu, Hao Gu, Xiang Hu et al.. (2026-09-11) SAS: Simple Attention Sparsification via End-to-End Optimization of Context Ranking. arXiv:2609.13141論文ページ·PDF

本記事は上記論文の本文にもとづいて執筆しています。数値・主張は原典を優先してください。

運営: TechAthletes · 編集方針 · 出典の付け方 · 訂正の記録

コメント

コメントにはログインが必要です