2025年後半から2026年前半にかけて、DeepSeek-V4やKimi K3、GLM-5.2など、有力なOpen LLMの公開が相次いだ。これらは1M級context長・MoE・低精度量子化の学習という共通の傾向を持つ一方で、設計が最も分かれているのはAttention方式である。本記事はこのattention方式を、DeepSeek系のMLA・DSA・CSA/HCAとMiniMaxのMSAを中心に整理し、加えてSWA・ChunkedとLinear/SSM系統も軽く扱っている。(RoPE周りも少しだけ)
最新Open LLMの比較
今回の解説対象とする8モデルの構成を以下にまとめた。この表を構成する各技術について解説するのが本記事の目的である。
| モデル | パラメータ数(active/総合) | 最大context長 | Attention構成 | 層の構成割合 | Positional Encoding |
|---|---|---|---|---|---|
| DeepSeek-V4 Pro | 49B / 1.6T | 1M | CSA + HCA | 1 : 1 | partial RoPE |
| Kimi K3 | 非公開 / 2.8T | 1M | KDA + MLA | 非公開 | 非公開 |
| GLM-5.2 | 40B / 744B | 1M | DSA (IndexShare) | 全層(4層でindexer共有) | partial RoPE |
| MiniMax-M3 | 23B / 428B | 1M | MSA + Full attention | 非公開 | partial RoPE |
| Llama 4 Maverick | 17B / 400B | 1M | Chunked + Full attention | 3 : 1 | iRoPE |
| Qwen3.6-35B-A3B | 3B / 35B | 262K~1M | GDN + Full attention | 3 : 1 | partial RoPE + YaRN |
| Gemma 4 | 31B(非MoE) | 256K | SWA + Full attention | 5 : 1 | p-RoPE |
| Nemotron 3 Nano | 3.6B / 31.6B | 1M | Mamba-2 + Full attention | 46 : 6 | なし(NoPE) |
- パラメータ数:MoE時、1トークン処理時に実際に使われる数=active、モデル全体での数=総合
- Attention構成:ベースAttentionと効率Attentionの混成構成が主流で、
効率版 + ベース版という表記(一部例外あり) - 層の構成割合: Attention構成の2種類の層の割合(
効率版 : ベース版)
Attention効率化の5系統
ベースラインであるFull attentionは、全トークン$N$個がそれぞれ全トークンとの関連度(attention score)を計算するため計算量は $O(N^2)$もあり、過去トークンのkeyとvalue($d$次元)を保持するKVキャッシュサイズも$N$に比例して増加する。contextが1Mトークン級になると、この2つの負荷(計算量&メモリ)がかなり深刻になってくる。そのため、上述のOpen LLM達は以下のAttention効率化アプローチを採ることで、そのボトルネックを対処している。これら手法について、MLA → DSA → CSA/HCA → MSA → 他 の順で説明していく。
| 系統 | 考え方 | 代表例 |
|---|---|---|
| KVの圧縮 | KVを低ランクな潜在ベクトルへ圧縮する | MLA |
| 軽量版関連度で絞り込み | Attention対象を、関連の強いトークンだけに絞り込む | DSA・MSA |
| 系列方向の圧縮 | 連続する複数トークンを1エントリへ圧縮する | CSA・HCA |
| 系列範囲の限定 | 参照できる範囲を近傍に絞る | SWA・Chunked |
| Linear-attention / SSM | $N$個のKVの代わりに、固定サイズstateで系列を管理する | KDA・GDN・Mamba-2 |
⬇ モデル | Attention効率化方式 & モデル登場時期 ⬇

- 末尾の灰色斜体表記はAttention効率化方式の土台手法
MLA (Multi-head Latent Attention) ― DeepSeek-V2
上図の通り、MHA(Full attention)は各トークンのkeyとvalueをheadの数だけ保持するのに対し、GQAは複数のquery headで1組のKVを共有することで保持量を減らす。MLA(DeepSeek-V2)はKV展開元の入力$x$を圧縮ベクトル$c$へ圧縮し、全headのKVの代わりにその1個の圧縮ベクトル$c$だけを保持する。(低次元化や事前Q展開などの工夫もあり、計算オーバーヘッドはそんなにない)
c = W^{DKV} x,\qquad k_h = W^{UK}_h\, c,\qquad v_h = W^{UV}_h\, c
上式で表され($h$はhead番号)、 $W^{DKV}$で入力$x$を$c$へ圧縮 → $W^{UK}_h$ と $W^{UV}_h$で$c$からkey, value展開する。
(実験例)1トークン当たりのKVサイズは、Full attentionで32768要素、GQAで2048要素に対し、DeepSeek-V3では576要素にまで低減される。
decoupled RoPE
復元行列$W$をQと結合計算するケースがあり、その場合は現在のデファクトpositional encodingであるRoPEをそのまま適用できなくなる。その対策として、RoPE成分を独立的に処理・保持する方式を採っている。具体的には、512次元の圧縮ベクトル$c$とは別に、64次元のkey用RoPEベクトル$k^{RoPE}$を計算・保持する。(後述のpartial RoPE的)
$$k^{RoPE}=RoPE(W^{KR} x)$$
DSA (DeepSeek Sparse Attention) ― DeepSeek-V3.2
Attention確率は少数トークンに集中することが経験的に分かっている。DSA(DeepSeek-V3.2)では、本体(MLAベース)の Attentionより遙かに軽いLightning Indexer(上図)を使って本体Attention対象のトークンを上位2048トークンだけに絞り込む。
S_t=\text{Top-k}(I_{t,:})∈ℕ^k \quad \text{where} \quad
I_{t,s}=\sum^{H^I}_h w^I_{t,h}・ReLU(q^I_{t,h}・k^I_s)
上式は、系列位置$t$における絞り込まれたトークン集合$S_t$の計算式である。
詳細は省くが、FP8量子化 → 射影 → RoPE → 内積 → ReLU → スカラ積 → 全head総和 となっており、softmaxなどの重い処理を排して徹底的に軽量化されている。結果として、絞り込みトークン集合$S_t$の算出は本体Attentionより一桁以上軽い。(ただし、計算オーダーは$O(N^2)$のまま)
学習
上位への絞り込み(Top-k計算)は微分できないため、複数Stageに分けて学習する。
- Lightning Indexerなしの通常LM訓練(Language Model)
- 傍観者Lightning Indexerモジュールを追加し(推論に無関与)、Lightning Indexerのみを本体Attention出力から蒸留学習
- Lightning Indexer版LMで、モデル全体をフル訓練
IndexShare (GLM-5.2)
実は、絞り込みトークン集合$S_t$は隣接する層ではかなり似た集合になる(重複率 70〜100%)。そこでGLM-5.2では4層を1グループとしてまとめ、先頭1層でのみ絞り込みトークン集合$S_t$を算出し、その結果を残り3層で使い回す。これにより、1Mトークンでの1トークン当たり計算量をさらに約35%にまで削減できる。
CSA / HCA (Compressed Sparse Attention / Heavily Compressed Attention) ― DeepSeek-V4
DeepSeek-V4では系列方向へのKV圧縮によりさらなる効率化を図る。
⬇CSA:系列方向のKV圧縮(左)+DSA(右)

⬇HCA:系列方向のKV圧縮のみ(圧縮範囲が広い)

基本方針としては、連続する$m$個のトークンを、動的重みの加重和を取って1エントリに圧縮する。その際、少量圧縮($m=4$)のCSAと大量圧縮($m=128$)のHCAの2種類に分ける。
少量圧縮のCSAはエントリ数がまだ多いため、さらにDSAして上位エントリへ絞り込む。大量圧縮のHCAはエントリが十分に少ないため、絞り込まずに全エントリをFull attentionする。この特性の異なる2種類の方式(CSAは高情報密度・部分参照、HCAは低情報密度・全参照)を交互に重ねたDeepSeek-V4 Proでは、DeepSeek-V3.2比で計算量を約73%、KVキャッシュを約90も低減している。(1Mトークン時)
MSA (MiniMax Sparse Attention) ― MiniMax-M3
DSAの亜種で、以下が違う。
- 絞り込み粒度
- token個別の細粒度の絞り込みでなく、block単位(=128 token)の粗粒度絞り込み(下図の右)
- 全head共通の粗粒度の絞り込みでなく、head group個別の細粒度絞り込み
- ベースattention: MLAベースでなく、GQAベース
(図の左のBlock Max Pooling)Indexスコア計算が以下に変わる。
I^{block}_{s/B_k}=M_{s/B_k} = \max_{s'∈B_{s/B_k}} (I_{s'})
DSA vs MSA の比較測定は現状見当たらず、どちらが明確に優位なのかはまだよくわかっていない。
系列範囲の限定(SWA・Chunked)
SWAは、各トークンの参照範囲を直近の一定幅$W$(ウィンドウ)に限定する。ウィンドウはトークンとともに移動するため、どのトークンも常に幅$W$の過去トークンを参照する。層を重ねると情報は層を跨いで間接的に伝わり、実質の参照範囲(=受容野)は最大で幅×層数まで広がるが、多段の伝達を経るため遠くの特定トークンの取り出しは苦手とする。そのためGemma 4($W$=1024)では少数のFull attention層を混ぜることでこの弱点を補っている。
Chunked attentionは、系列を固定長のChunkに区切り、Chunkの境界を跨がずに内側だけに限定して参照する。Chunk内の先頭付近のトークンは過去トークンを僅かしか参照しない点がSWAとの違い。Chunk単位で粗い制御なためGPU処理がシンプルになり、専用のGPUカーネル実装なしで効率的に動作する。Chunk境界で情報を跨げないため、Llama 4(chunk=8192)ではFull attention層を挟んでChunk間の情報を繋ぐ。
Linear attention (KDA・GDN) と SSM (Mamba-2)
Full attentionの計算量・メモリ $O(N^2)$ の根源は過去全トークンのKVを保持し毎回参照し直すことにあり、上述のAttention効率化でもこれは改善できない。Linear attention (KDA・GDN) とSSM (Mamba-2) はこの全トークンKVを捨て、毎時刻更新の固定サイズstate $S_t ∈ ℝ^{d×d}$ に過去情報を圧縮することで、系列長$N$に対して線形オーダーの計算量・メモリを実現する。(全トークンKVを状態$S_t$に置き換え)
Linear attentionとSSMは別モノに思えるかもしれないが、両者はどちらも本質的には線形RNNであり、次の形に一般化できる。
$$S_t = S_{t-1} + v_t k_t^\top, \qquad o_t = S_t q_t = \sum_{s \le t} v_s(k_s^\top q_t)$$
状態$S_t$はK・Vを蓄積しており、これが上述の「過去状態の圧縮」を表現している。そして出力$o_t$の式には$v(qk)$があり、これはattention処理(softmax無し版)そのものである。
一方で問題もあり、固定サイズ状態$S_t$に情報がどんどん足されていくため、だんだんと混ざっていき状態が濁っていってしまう。この際の「古い情報の消し方」の差が3手法の違いになる。
| 手法 | 更新式 | 古い情報の消し方 |
|---|---|---|
| Linear Attn | $S_t = S_{t-1} + v_t k_t^\top$ | 消せない (足す一方で濁っていく) |
| Mamba-2 | $S_t = \alpha_t S_{t-1} + v_t k_t^\top$ | $\alpha_t \in (0,1)$ を掛け、過去情報を一様に薄める |
| GDN | $S_t = \alpha_t S_{t-1}(I - \beta_t k_t k_t^\top) + \beta_t v_t k_t^\top$ | 一様に薄めるのに加え、今回のkey $k_t$ と重複関係の旧情報だけを狙って消す (新旧情報が混ざるのを防ぐ) |
| KDA | $S_t = S_{t-1}\mathrm{Diag}(a_t)(I - \beta_t k_t k_t^\top) + \beta_t v_t k_t^\top$ | GDNに加え、薄める強さの細粒度化:一様(スカラー)でなく次元毎(ベクトル$a_t$) に個別に薄める |
DSAなどのAttention効率化手法よりもさらに軽量である一方で、固定サイズ圧縮の限界により長期系列には向かない。そのため、いずれのモデルも少数のFull attention層を混ぜることで長期系列を補う。
RoPEの発展
回転θを用いたRoPEが位置エンコーディングのデファクトになっており、最新Open LLMでは以下の4つの発展手法が使われている。
- YaRN 周波数スケーリングにより長期系列の回転θを作り出す → 学習データに存在しない長期系列へ対応する(外挿)
- partial RoPE トークンの一部次元に範囲を狭めてRoPE処理する → 位置情報を汚染のない純粋な意味ベクトル(NoPE)を残す
- p-RoPE トークンの全次元にRoPE処理する際に低周波成分はmaskingする:partial RoPEは狭めた範囲に全周波数を割り当てるが、p-RoPEは高周波数のみ割り当てる
- iRoPE Chunked attention層はRoPE、Full attention層はNoPE(位置エンコーディングなし) → RoPEの範囲が必ずchunk size以下に保証されるため、本番の長期系列での外挿が生じなくなる
※ NemotronはMamba-2が位置情報を扱うという理由から、位置エンコーディングなし(全層NoPE)
その他の共通要素
- RMSNorm & SwiGLU はほぼデファクト
- MoEもデファクト
- 4 / 8 bit量子化も結構利用されてる
- AdamWの代わりにMuon系が使われたりする
感想
一部の技術はデファクトに収束している感じがあるが、効率化Attentionとかは方向性がバラバラでまだ手探り感が強い。ここら辺はまだまだこれからも色んな方向性で進化していきそう。



