Disaggregated Quantization:LLMの事前処理と逐次生成に量子化を使い分ける
事前処理には高速な低精度演算、逐次生成には小さな重みを割り当てる
Disaggregated Quantization: Specializing LLM Prefill and Decode
論文の書誌情報と関連リンク
- arXiv初回投稿日
- 掲載先
- arXiv preprint
ポッドキャスト形式で聴く
約5分AI生成の会話音声です。記事の要点を短くまとめています。
概要
LLMの入力処理と文章生成では、速くしたい処理が違う。Disaggregated Quantization(DQ)は、入力を一括処理するprefillと、トークンを順に出すdecodeに、別の量子化形式や重みを割り当てる手法だ。著者らの報告では、Qwen3.8-27Bの既存の1ビット系デコーダーを固定したまま専用のprefill用重みを学習すると、MMLU-Proの正解率は29.04%から61.54%になった。同じモデルの8K入力では、SSDからその重みを読み込む構成で最初のトークンまでの時間も短くなった。ただし、3ビット系の一部では精度が下がり、短い入力ではSSDの読み込みが負担になりうる。
なぜ注目されているか
2026年9月29日の取得時点で、Hugging Faceでは44件のupvoteと2件のコメントが記録され、著者参加のフラグも付いている。掲載されたGitHubのstar数は6件。コメント本文は取得されていない。
議論全体へのリンク
なぜ重要なのか
推論用モデルを一つの量子化設定で選ぶと、入力処理の演算速度と生成時の重みの小ささを同時に妥協しがちだ。この研究は、両段階を別々に評価する判断を促す。長い入力を扱う単一ユーザー向けの密なLLMなら、既存の低ビットデコーダーを使い続けながら、prefill用の重みを追加する選択肢がある。ただし採用判断には、対象の入力長と課題での正解率、最初のトークンまでの時間、生成全体の時間をそれぞれ確かめる必要がある。
この記事に出てくる言葉(6語)
- prefill
入力されたプロンプトを一括して処理し、生成に必要な内部状態を作る段階。
この論文では入力中で重みを繰り返し使えるため、低精度の行列演算を速く行えるかが重要になる。
- decode
次のトークンを一つずつ生成する段階。
この論文では小規模バッチでは、各段階で重みを読む量が速度を制約しやすい。
- 量子化
重みや計算途中の値を、より少ないビット数の形式で表すこと。
この論文では重みの圧縮と、低精度演算の利用をprefillとdecodeで別々に考える。
- KVキャッシュ
入力や生成済みトークンについて、注意機構が後の生成で再利用する内部状態。
この論文ではprefill側が作り、別の重みで動くdecode側が受け取る接続点になる。
- QADD
教師モデルの応答に合わせ、prefill用とdecode用の経路を適合させる学習方法。
この論文ではプロンプト位置と応答位置で経路を分け、応答トークンで教師との損失を計算する。
- ODP
Offloaded Disaggregated Prefill
prefill用の重みをSSDから読み込みながら処理する構成。
この論文では長い入力で、重みの転送をprefill計算と重ねることを狙う。
1. 読む前に知っておきたいこと
一回の推論にある二つの仕事
長い資料をLLMに渡して質問する場面を考えよう。モデルはまず資料と質問をまとめて読み、続いて回答を一語に相当するトークンずつ作る。前半がprefill、後半がdecodeだ。prefillでは入力の多くの位置をまとめて計算でき、同じ重みを入力トークン間で繰り返し使える。小規模バッチでのdecodeは、その都度次のトークンを決めるために重みを読み込む量が制約になりやすい。この違いが、量子化に求める性質を変える。前半では低精度の演算を速く実行できること、後半では重みを小さくして読み込み量を減らすことが効く。
一つの量子化設定に押し込む難しさ
量子化は、モデルの重みや計算途中の値を少ないビット数で表す方法だ。重みだけを圧縮するweight-only方式なら、decodeで読むデータを減らせる。一方、prefillでは、重みと計算途中の値の両方を低精度にした演算形式をそのまま利用できない。論文が使うNVFP4は4ビットの浮動小数点形式で、これを両方に適用すればprefillの演算を速められる。しかしdecodeでも途中の値を量子化すると、精度を落とす場合がある。同じ重みと形式を二つの段階に使う設計では、演算速度、重みの小ささ、正解率の選択が結び付く。
分けてもつながっている
段階ごとに別の重みを用意しても、二つのモデルが無関係に動くわけではない。prefillは注意機構で使う内部状態、KVキャッシュを作り、decodeはそれを受け取って回答を続ける。資料を読んだ側が作った状態を、回答する側が使う関係だ。したがって、prefillだけを速い形式に置き換えれば必ず精度が保たれる、とは言えない。受け渡された状態がdecode側にとって有用かどうかが重要になる。この例での資料の読解と回答は、実際には独立した担当者の作業ではなく、一つの推論の連続した計算である。
2. 手法と評価
形式、重み、置き場所を順に分ける
DQは分離の深さを変えられる。まず形式分離では重みを共通にし、prefillにNVFP4演算を使い、decodeでは計算途中の値を量子化しないweight-only経路へ切り替える。次の完全分離では、共通の非量子化モデルから出発して、prefill用のNVFP4重みとdecode用の低ビット重みを別々に最適化する。両者はKVキャッシュでつながり、注意機構の層数やヘッドの次元は維持する。重みを二組持つ場合は保存場所も問題になる。そこで著者らは、prefill用の重みをSSDに置くODPも示した。
応答からprefill側も学習する
別々の重みを合わせる学習に使うのがQADDだ。教師モデルとの出力のずれを測る蒸留を、prefillとdecodeをつないだ状態で行う。学習データでは、教師に見せるプロンプトの位置をprefill経路、回答の位置をdecode経路に割り当てる。ずれを表す損失は回答トークンで計算するが、その影響はKVキャッシュを介してprefill用の重みにも伝わる。つまり、資料を読んだ結果が後の回答に役立つよう、prefill側を適合させる。既存の量子化済みデコーダーを使う実験では、その重みを固定し、対応するNVFP4のprefill用重みだけを学習した。
SSDから読む時間をどこで吸収するか
ODPはprefill用の重みを層のブロックごとにSSDから読み、二つのデバイス側バッファを使って、次の読み込みと現在の計算を重ねる。prefill中には使わないdecode用重みの領域も一時的に借り、生成が始まる前に戻す。入力が長ければ、重みを読む時間を計算時間に重ねて吸収しやすい。短い入力では計算がすぐ終わるため、SSDから読む固定的な負担が表に出る。ここで測る「最初のトークンまでの時間」は、回答を始めるまでの待ち時間であり、回答全体が完成するまでの時間とは違う。
何と比べ、何を測ったか
主要な学習実験では、Qwen 3とGemma 3に同じTülu 3 SFTの非パディング100Mトークンを使い、形式間でコーパス、トークン予算、最適化の日程を揃えた。回答を順に出す負荷が中心の評価にはGSM8K、MATH-500、MMLU-Pro、長い入力の処理が中心の評価にはRULERの13課題と4K、8K、16K、32Kの入力を用いた。比較相手は各段階に同じ形式を使う構成で、指標は正解率の差だ。系列平均はQwen 3の4サイズ、Gemma 3の3サイズをまとめ、各学習実行の終盤5チェックポイントも平均している。これで設定を揃えた比較はできるが、別の乱数シードやデータ順による変動までは測れない。
既存デコーダーと大規模モデルでの確認
Qwen3.8-27Bでは、公開GGUF形式の量子化済みデコーダーを固定し、各デコーダー専用のprefill用重みを学習した。学習にはテキストのみの推論トレース約95Mトークンを使い、MMLU-Proの12,032問と、画像を含むMMMU-Proの1,730問で正解率を比べた。各形式の結果は最終ステップでの評価1回だ。速度はllama.cppで8K入力、プロンプトキャッシュ無効、ウォームアップ後3回の測定による。別の確認として、著者らは最大2.8兆パラメータの8モデルでも再学習なしの形式分離を調べた。こちらは重みと途中の値をともに4ビットにする一律W4A4との正解率比較であり、追加重みを学習する27B実験とは異なる。
3. 結果と限界
段階を分けたときの正解率
著者らの報告では、NVFP4の形式分離は、一律NVFP4に比べて回答生成が中心の課題の系列平均正解率をQwen 3で1.9ポイント、Gemma 3で3.1ポイント改善した。2ビットのLUT形式でdecodeを行う完全分離を、一律LUT2と比べると、同じ順に回答生成が中心の課題で10.7、7.4ポイント、長い入力が中心の課題で5.3、10.5ポイント高かった。いずれも正解率の「パーセントポイント」の差であり、元の正解率に対する相対的な増加率ではない。条件を揃えた比較は段階別の設計が効く可能性を示すが、系列平均だけで個々の課題やモデルすべての改善を意味するわけではない。
固定した27Bデコーダーで見えた差
Qwen3.8-27Bの公開GGUF IQ1_Sデコーダーを固定した比較では、著者らの報告するMMLU-Pro正解率は29.04%から61.54%へ、32.50ポイント上がった。MMMU-Proも24.39%から59.65%へ、35.26ポイント上がった。画像を含むMMMU-Proでも差が出た一方、prefill用重みの学習データはテキストのみだった。これらは各形式1回の評価で、反復によるばらつきは分からない。さらに学習元データには一部の評価問題との類似が見つかっており、コーパス全体で評価問題との非重複は確認されていない。大きな差を、他のデータや運用条件でそのまま再現する値として扱うのは早い。
速くなる範囲と逆転する範囲
同じ27BのIQ1_Sで8K入力を処理したとき、著者らの報告する最初のトークンまでの時間は、weight-only構成の12.27秒からODP付きの6.90秒になり、1.78倍の高速化だった。別の16K入力の測定では、ODPのprefill処理部分はBF16比でQwen3-8Bが1.47倍、Gemma3-12Bが1.58倍の速度で、3ビットdecode構成のデバイス上の重み割当量は各weight-only構成と同じだった。後者はprefill処理部分と重み割当量の比較であり、回答全体の所要時間を示さない。短い入力ではSSD読み込みが停滞要因になりうる。さらに同じdecode重みを使っても生成トークン数や打ち切り率が変わるため、最初のトークンが早くても総生成時間が短くなる保証はない。
改善しなかった組み合わせ
専用prefill用重みは、どのデコーダーにも有利だったわけではない。27Bの3ビットGGUF IQ3_Sでは、weight-only構成と比べてMMLU-Proが0.63ポイント、MMMU-Proが2.77ポイント低下した。別の3ビット形式Q3_K_XLでも、それぞれ0.62、1.97ポイント低下した。いずれも最終ステップでの評価1回なので、差の安定性は分からない。またLUT形式のprefill速度比較には、重みの形式変換時間が含まれない。速度の数値を見るときは、実際に測られた処理範囲を確認する必要がある。
一般化を判断するために残ること
再学習なしの大規模モデル実験では、著者らの報告で13のモデル・課題の組のうち11組の正解率の点推定が改善し、6組は各比較でp<0.05だった。有意な低下はなかった。ただし13組中2組に改善の点推定はなく、検定には複数比較の補正もない。主要なQADD実験の誤差範囲も、一つの学習実行の終盤チェックポイント間の変動に限られる。論文が主に評価したのは回答生成が中心の課題と単一ターンの長文入力だ。高バッチ処理、複数ターン、エージェント動作は未評価で、複数ターンでKVキャッシュを保持するか作り直すかによる違いも未検証である。著者らはODPを主にローカルで使う密なLLM向けと位置付け、MoEでは重み読み込みの負担が大きいと述べる。
この研究から考える
ここからは、論文の結果を踏まえた編集上の考察です。
観測されたのは、長い入力の27B・IQ1_S構成で、固定したデコーダーに専用のprefill用重みを組み合わせると正解率が上がり、8K入力ではODPによって最初のトークンまでの時間が短くなったことだ。長い資料を単一ユーザーが読む密なLLMでは、デコーダーの圧縮率だけで構成を選ばず、prefill用の重みをSSDに置く案も比較対象にできる。ただし、SSD読み込みを計算と重ねられる入力長が必要で、短い入力や高バッチ、MoE、複数ターンで同じ効果は確認されていない。次に見るべき証拠は、対象の入力長と課題での反復評価に加え、回答を最後まで生成した時間と、KVキャッシュの扱いを変えた際の精度である。