Delta則型線形Attention再帰状態の学習後量子化並行サービングのメモリ削減

STEPQuant:誤差の寿命と位置から設計するDelta則の再帰状態量子化

長く残る誤差と出力に響く行を見極め、再帰状態の精度を配分する

STEPQuant: When and Where Errors Matter in Delta-Rule Recurrent State Quantization

論文の書誌情報と関連リンク

概要

線形Attentionは、生成中に使う記憶を固定サイズの「再帰状態」にまとめる。ただし、同時に処理するリクエストが増えれば、その状態もメモリを圧迫する。STEPQuantは、量子化誤差が長く残る部分と、出力に強く響く部分を見分けて精度を配分する手法だ。著者らは二つのモデルで、名目6ビットの状態がFP32状態に近い平均正解率を保ち、指定構成で総メモリを最大68.7%削減したと報告する。一方、4ビットでは長文精度の低下や生成量の増加が残り、動的な負荷での効果は未検証だ。

著者をもっと詳しく知る(全9名)

論文と確認可能な公式情報に基づき、著者の所属と研究背景を掲載しています。

全著者と所属

  1. Bingchen Yao
    所属情報なし
  2. Haobo Xu
    所属情報なし
  3. Haokun Lin
    所属情報なし
  4. Yichen Wu
    論文掲載時:Harvard University
  5. Ziyu Guo
    所属情報なし
  6. Renrui Zhang
    所属情報なし
  7. Zhichao Lu
    所属情報なし
  8. Zhenan Sun
    所属情報なし
  9. Ying Wei
    所属情報なし

なぜ注目されているか

取得時点のHugging Faceでは100 upvotesとコメント1件が確認でき、関連GitHubリポジトリのスター数は91と報告されている。

議論全体へのリンク

なぜ重要なのか

この研究は、生成中の記憶をすべて同じ精度で保存するという前提を見直す材料になる。評価対象に近いモデルで、並行処理時の状態メモリが制約なら、誤差の寿命と出力への影響に応じた精度配分が選択肢になり得る。ただし、メモリが減る割合と、サービス全体が速くなる割合は異なる。判断には正解率だけでなく、生成トークン数と全モデルの処理性能を併せて見る必要がある。

この記事に出てくる言葉(6語)
再帰状態

S_t

過去の情報を保持し、新しいトークンを処理するたびに更新する記憶。線形Attentionでは系列長に対して固定サイズだが、リクエストごとに必要になる。

この論文では

重みではなく、この持続的な状態を低ビット化する。

量子化

数値を、より少ないビットで表せる離散的な値に置き換えること。保存量を減らせるが、元の値との差が生じる。

この論文では

更新した状態を毎回量子化して保存するため、その誤差が次の更新へ持ち越される。

保持ゲート

以前の状態をどれだけ残すかを制御する値。

この論文では

GDNではヘッド単位、KDAではキー成分単位で働き、誤差の残りやすさを推定する手掛かりになる。

学習後量子化

学習済みモデルに対し、校正用のデータを使って量子化の設定を決める方法。PTQと略される。

この論文では

STEPQuantは、校正で精度配分と保護する領域を決め、リクエスト間で固定する。

キー行・値列

状態行列の二つの軸。行はキー側の成分、列は値側の成分に対応する。

この論文では

行ごとの出力への感度と、行・列それぞれの数値の分布を量子化に反映する。

名目ビット予算

精度配分を決める際の平均ビット数の制約。付随する保存情報を含めた実際の保存量とは区別する。

この論文では

名目4ビット、6ビットの設定には、スケールやFP16で保護する部分の保存量も加わる。

1. 読む前に知っておきたいこと

固定サイズの記憶にも、並行処理の負担がある

通常のAttentionでは、過去のキーと値を保持するKVキャッシュが系列とともに増える。線形Attentionは、過去の情報を固定サイズの再帰状態にまとめる。再帰状態とは、新しいトークンを処理するたびに書き換え、次の処理へ引き継ぐ記憶だ。STEPQuantが圧縮するのは、この状態である。

系列が長くなっても状態の大きさが増えないことと、サービス全体のメモリ負担が小さいことは別の話だ。状態はリクエストごとに必要になる。さらに、処理に備えて予約する状態スロットもメモリを使う。著者らは、こうした状態の集まりが高い並行度で負担になると位置付けている。

そこで考えられるのが量子化だ。数値を少ないビットで表せる値へ丸めれば、保存量を減らせる。ただし、状態は一度保存して終わるデータではない。丸めた状態を次の更新に使い、更新後にまた丸める。各回の小さな差が、その後の生成へ持ち越される点が問題になる。

誤差が長く残る場所と、出力に響く場所

対象はDelta則で状態を更新する線形Attentionだ。更新では、以前の状態を保持ゲートで減衰させ、キーに応じた変換を行い、新しいキーと値の情報を書き込む。出力は、クエリを使って状態から読み出す。保持ゲートは、過去の情報をどれだけ残すかを制御する値である。

論文が扱うGDNとKDAでは、ゲートの単位が違う。GDNは、Attentionの処理単位であるヘッド全体に同じ保持ゲートを使う。KDAはキーの成分ごとにゲートを持つ。そのため、誤差の残りやすさを扱う単位も、前者ではヘッド、後者では状態行列のキー側の行になる。

STEPQuantの出発点は、量子化誤差の大きさだけでは影響を判断できないという観察だ。同じ大きさの誤差でも、すぐ減衰する部分と長く残る部分では、後の更新への影響が違う。また、キー行ごとに出力への響き方が異なり、数値の大きさも行と列の両方で変わる。著者らは、この時間方向と空間方向の違いを、精度配分と丸め方に反映する。

誤差の蓄積をどう捉えるか

著者らは、量子化した経路とFP32の参照経路に同じキー、値、クエリ、ゲートを与える条件で、誤差の動きを整理する。

Et=AtEt−1+εtE_t=A_tE_{t-1}+\varepsilon_t

ここで、ttは更新の時点、EtE_tはその時点の状態誤差、AtA_tは以前の状態に作用する変換、εt\varepsilon_tは今回の量子化で新しく加わる誤差だ。つまり、過去の誤差を引き継ぐ項に、新しい誤差が足される。

キーの大きさ、書き込み係数、保持ゲートが所定の条件を満たすと、変換自体は誤差を拡大しない。それでも、誤差が繰り返し加われば蓄積し得る。誤差を増幅しないことだけでは、低ビット化の安全性は保証できない。

この式は、二つの経路が同じ入力を受ける場合の解析である。自己回帰生成では、出力の違いが後の入力の違いにつながるため、生成全体の誤差を保証する式としては読めない。STEPQuantの寿命推定も、ゲートによる減衰を使った近似である。

2. 手法と評価

寿命と歪みを使って、保存精度を配分する

STEPQuantはSpatial-Temporal Quantizationの略称で、学習済みモデルを校正して量子化するPTQ、つまり学習後量子化の手法だ。時間方向では「寿命を考慮したビット配分」を行う。

まず校正データから、各単位の平均対数保持率を求める。それを使い、有限の期間に誤差がどれほど残るかを寿命の重みとして見積もる。次に、候補となる精度で量子化した場合の歪みを測る。歪みは元の状態との差であり、Qwenでは行の感度を反映した平均二乗誤差、KDAでは行ごとの平均二乗誤差を使う。

配分は、寿命で重み付けした歪みの合計を、平均ビット予算の範囲内で小さくするように決める。長く残り、量子化の差も大きい単位へ精度を回す考え方だ。さらに少数の高リスク単位を、FP16という浮動小数点形式で保護する。精度と保護領域はオフラインで決め、リクエスト間で固定する。

校正には全評価構成でWikiText-2の訓練部分から32区間、各2,048トークンを使う。名目4ビット予算の整数候補は2、4、6、8ビット、6ビット予算では4、6、8ビットだ。「4ビット設定」は、すべての場所を4ビットにするという意味ではない。

行の感度と、行・列の分布を一緒に合わせる

空間方向の工夫は「キー行の感度を考慮した二軸の当てはめ」だ。量子化で使うスケールとは、整数の値を元の数値の大きさへ戻すための係数である。基本比較の一様量子化は、各キー行の絶対値の最大値に基づいてスケールを決める。STEPQuantは行と列の二つの係数を使う。

まず、状態更新の変換とクエリから、各キー行の誤差が読み出しにどれだけ響くかを校正で推定する。状態内の値が大きい行と、出力に敏感な行は、同じとは限らない。行の係数には平均絶対値と感度を組み込み、高感度の行では量子化の刻みを細かくする。

列の係数は、行の感度で重み付けした再構成誤差が小さくなるように合わせる。状態を、行係数、列係数、整数コードの積で表すことで、両方向の数値の偏りを扱う。寿命に応じて保存精度を選ぶ部分と、同じ精度でも誤差の置き方を変える部分が組み合わされる。

生成中は、前の状態を復元し、浮動小数点で更新と現在の出力の読み出しを行う。その後、更新した状態を量子化して保存する。したがって、その回に新しく注入した誤差が作用するのは次回以降である。著者らはSGLangに統合し、状態の圧縮を含む処理として評価している。

精度、機構、速度を別々の試験で確かめる

精度評価はQwen3.8-27BとKimi-Linear-48B-A3B-Instructを対象に、BF16重みと4ビットAWQ量子化重みで実施した。比較の基準はFP32状態と、キー行ごとのスケールを使う対称一様INT4、INT6、INT8だ。計算にはA800を4枚使っている。

長文生成の7課題はLiveCodeBench v6、EvalPlus、AIME 2026、MATH-500、HMMT February 2026、GPQA Diamond、IFBench。問題当たりのサンプル数はこの順に5、5、64、4、64、8、4で、温度1.0、top-k 20、top-p 0.95、最大65,536生成トークンという条件を使う。短文はMMLU、ARC-C、OpenBookQA、HellaSwag、WinoGrande、LAMBADAの6課題だ。毎回最も確率の高いトークンを選ぶgreedy生成で回答を採点し、抽出できない回答は誤答とする。短文の点数には回答形式への対応も含まれる。

機構の検証では、C4の4系列でFP32と入力を共有し、2,046回更新した。一様INT6の累積二乗状態誤差と、ゲート由来の半減期とのSpearman相関は、Qwenで0.8004、KDAで0.8017だった。これは寿命が誤差に関係するという観察を支えるが、自由な生成での保証ではない。

性能測定はBF16重み、A800 4枚のテンソル並列、固定バッチ32〜512で行った。入力128トークン、生成1,024トークンのgreedy生成を使い、warmup後の3実行の中央値を報告する。デコード中の当てはめや書き戻しは含むが、入力をまとめて処理するprefillや最終出力配信は含まない。

3. 結果と限界

6ビットは平均精度を保ち、4ビットは差が分かれる

以下はすべて著者らの報告値だ。BF16重みでの長文7課題の平均正解率は、名目6ビットSTEPQuantでQwenが80.59%、Kimiが61.47%。FP32状態の80.60%、61.52%に近く、一様INT6の45.04%、45.70%との差は大きい。

名目4ビットでもQwenは80.51%、Kimiは58.52%で、一様INT8の71.86%、56.02%を上回る。ただし、FP32との差はQwenで0.09ポイント、Kimiで3.00ポイントの低下だ。少ないビットで一様INT8を上回ったことと、FP32と同等であることは分けて評価する必要がある。

短文6課題では、名目4ビットがQwenで87.63%、Kimiで68.11%。FP32からの低下は0.15、0.25ポイントだった。4ビットAWQ重みとの組み合わせでも、名目6ビットの長文平均は79.27%、58.62%で、同じ重みのFP32状態から0.05、0.33ポイントの低下にとどまった。

構成要素を外す試験も、組み合わせの意義を支える。QwenのBF16重み、名目4ビットでAIME、GPQA、LiveCodeBenchの平均を見ると、STEPQuantは84.72%、空間成分のみは73.95%、時間成分のみは12.87%。移植したQ-Mambaは7.64%、FP32は84.61%だった。この限定された比較では、寿命による配分だけでも、二軸の当てはめだけでも、全体の精度には届かない。

保存量の削減と、モデル全体の高速化

名目ビット予算と実保存量は区別したい。スケールとFP16保護領域を含むcompact表現は、6ビット設定でQwenが6.361、KDAが6.300 bits/value、4ビット設定で4.621、4.300 bits/valueとなる。KDAの値は解析的な会計で、並列処理に伴うpaddingやメモリ割り当ての付加分を除く。状態の表現量、予約プール、総サービングメモリは別の範囲を測っている。

A800とSGLangを使うバッチ512、名目6ビットの指定構成では、Qwenの4ビット重みで総メモリが419.73から131.18 GiBへ68.7%減少した。状態メモリは5.03倍の圧縮だ。対応するKimiの評価では総メモリが149.70から69.36 GiBへ53.7%減り、状態メモリは5.08倍に圧縮された。いずれも同じモデルのFP32状態構成との比較である。

一方、モデル全体のデコード性能の改善幅は、状態更新単体より小さい。BF16重み、バッチ512では、Qwenのスループットが6,040から7,280 tokens/sへ20.53%向上し、Kimiは21,241から23,748 tokens/sへ11.80%向上した。Qwenの状態更新単体の2.91倍高速化を、そのまま全モデルの速度として扱うことはできない。これらの測定から、リクエスト全体の待ち時間や運用費用の削減率までは分からない。

平均正解率の外に残る負担と、適用範囲

正解率が近くても、生成に必要な量が変わる場合がある。Qwenの4ビットAWQ重みで長文7課題を見ると、名目4ビットSTEPQuantの平均生成長は9.50Kトークンで、FP32状態の7.22Kより約31.6%長かった。平均正解率は78.98%で、FP32の79.32%から0.34ポイント低下した。31.6%は生成長の相対的な増加、0.34ポイントは正解率の差である。

この生成長には、思考部分だけでなく誤答や生成上限に達した出力も含まれる。長く生成したことを、推論の改善とは解釈できない。名目4ビットを検討するなら、Kimiの長文精度低下とともに、Qwenの生成量増加も負担として確認する必要がある。

理論面にも境界がある。寿命の重みはゲートによる減衰の近似で、時間とともに変わるキー依存の変換や、注入された誤差同士の交差項を完全には扱わない。実験はその近似が評価対象で役立つことを示すが、一般的な誤差保証にはならない。

適用の根拠があるのは、評価されたGDN/KDAモデルに近い並行デコードの条件だ。他の再帰アーキテクチャ、別のハードウェア、動的なリクエスト構成で同じ効果が出るかは未検証である。また、並行研究DAMPとの比較は実装を再現した直接比較ではなく、生成設定も異なる。手法間の優劣を確定する材料にはできない。

この研究から考える

ここからは、論文の結果を踏まえた編集上の考察です。

名目6ビットでFP32に近い平均精度を保ち、一様INT6より大きく改善した結果は、保存ビット数だけでは状態の信頼性を説明できないことを示唆する。編集部としては、評価対象に近いGDN/KDAの高並行度運用なら、状態全体へ同じ精度を割り当てる前提を見直し、寿命と読み出し感度に応じた配分を検討する理由になると考える。ただし、モデルごとの校正が必要で、動的負荷や別のハードウェアへの一般化は未知だ。次に確認したいのは、そうした条件で平均精度、生成量、全モデル性能を同時に維持できるかである。4ビットで生成が長くなった観察は、正解率だけを採用判断の基準にしない理由になる。

ホーム画面に追加する

  1. Safariでこのページを開く
  2. ページメニューから「共有」をタップ
  3. 「ホーム画面に追加」を選択
  4. 「Webアプリとして開く」をオンにして「追加」をタップ

追加後は、ホーム画面のアイコンからSingularity Lensを開けます。