Slide 1

Slide 1 text

©︎MATSUO-IWASAWA LAB, THE UNIVERSITY OF TOKYO 応用編第3回 軽量化 大規模言語モデル講座 2025 許諾なく撮影や第三者 への開示を禁止します 大規模言語モデル講座 2025

Slide 2

Slide 2 text

©︎MATSUO-IWASAWA LAB, THE UNIVERSITY OF TOKYO 2 講師自己紹介 新田 千尋(Chihiro Arata) 略歴 • 2023.4 ~ 2025.2 Data Scientist @NTT東日本 • 2025.3 ~ 2025.9 LLM Engineer @SpiralAI • 2025.10~ Senior Research Engineer @Third Intelligence 個人活動 • GENIAC松尾研LLM開発PJにてTanukiの事後学習を担当 • 大規模言語モデル講座2024で最終コンペ1位を獲得 • その他様々な記事執筆、モデル・データセット開発など Aratako_LM Aratako https://aratako.me

Slide 3

Slide 3 text

©︎MATSUO-IWASAWA LAB, THE UNIVERSITY OF TOKYO Agenda 3 1 背景 2 モデルの圧縮・軽量化 3 アーキテクチャ的工夫による効率化 4 学習・推論の効率化 5 まとめ

Slide 4

Slide 4 text

©︎MATSUO-IWASAWA LAB, THE UNIVERSITY OF TOKYO 1. 背景

Slide 5

Slide 5 text

©︎MATSUO-IWASAWA LAB, THE UNIVERSITY OF TOKYO 5 なぜ軽量化が必要なのか LLMの学習・推論にかかるコストは非常に大きい • モデルサイズの増大 • Qwen3 (235B), DeepSeek-V3 (671B), Kimi-K2 (1T) • コンテキストサイズの増大 • 最近のモデルは>128kをサポート • Test-Time Scaling • Reasoningモデルの普及で生成にかかるコスト・時間が増加 • 大量のユーザへの同時serving • スケーリングで対応するとコストが増加 出来るだけ品質を落とさずに軽量化・効率化をする必要がある

Slide 6

Slide 6 text

©︎MATSUO-IWASAWA LAB, THE UNIVERSITY OF TOKYO 6 LLMの推論にかかるコスト 1. 計算コスト: • Prefill(プロンプトの処理) • ロングコンテキストではSelf-Attention の O(シーケンス長²)が支配 • 計算量が多くcompute-boundになりやすい • Decode(出力の生成) • トークンごとにほぼ線形だが、層数・隠れ次元に比例 • KV Cacheへのメモリアクセスが必要でmemory-boundになりやすい 1. メモリコスト • パラメータ:#params × dtype • KVキャッシュ(推論時):おおむね 2 × 層数 × シーケンス長 × KVヘ ッド数 × ヘッド次元 × dtype

Slide 7

Slide 7 text

©︎MATSUO-IWASAWA LAB, THE UNIVERSITY OF TOKYO 7 LLMの学習・推論に必要なメモリ LLMの学習にかかるメモリコスト 例:8Bモデル、フルファインチューニング、FP32、Adam • Weight: 8 x (32 / 8) = 32GiB • Gradient: 8 x (32 / 8) = 32GiB • Optimizer State • Momentum: 8 x (32 / 8) = 32GiB • Variance: 8 x (32 / 8) = 32GiB • Activation: 系列長・バッチサイズ次第で非常に大きい 出典)[1] Nouamane Tazi et al. (2025), “The Ultra-Scale Playbook: Training LLMs on GPU Clusters”, アクセス日 :2025/11/5

Slide 8

Slide 8 text

©︎MATSUO-IWASAWA LAB, THE UNIVERSITY OF TOKYO 8 LLMの学習・推論に必要なメモリ LLMの推論にかかるメモリコスト 例:8Bモデル、FP32 • Weight: 8 x (32 / 8) = 32GiB • KV Cache: 例:Llama 3.1 8B(FP32)の場合、1トークンあたり256kiB

Slide 9

Slide 9 text

©︎MATSUO-IWASAWA LAB, THE UNIVERSITY OF TOKYO 9 軽量化による推論コストの削減例 DeepSeek-R1の例 分散推論の効率化やLoad Balancingの最適化によって、100万トークンあたり 入力:0.14ドル(Cache hit) / 0.55ドル(Cache Miss) 出力:2.19ドル という低価格で黒字化を実現 出典)[2] DeepSeek-AI, “Day 6: One More Thing, DeepSeek-V3/R1 Inference System Overview”, アクセス日:2025/10/30

Slide 10

Slide 10 text

©︎MATSUO-IWASAWA LAB, THE UNIVERSITY OF TOKYO 10 コスト削減のための軽量化 本講義で扱う3つの視点 1. モデル圧縮: • Quantization:Weight / Activation / KV Cache • Pruning:Structured / Unstructured • Knowledge Distillation 2. アーキテクチャ最適化: • Attentionの効率化 • MLP(FFN)の軽量化 3. 学習 / 推論の効率化: • 低精度学習(FP8 / FP4) • PEFT(LoRA / QLoRA / DoRAなど) • 推論効率化(PagedAttention / Continuous Batching / Speculative Decodingなど)

Slide 11

Slide 11 text

©︎MATSUO-IWASAWA LAB, THE UNIVERSITY OF TOKYO 2. モデルの圧縮・軽量化

Slide 12

Slide 12 text

©︎MATSUO-IWASAWA LAB, THE UNIVERSITY OF TOKYO 2.1. 量子化 / Quantization

Slide 13

Slide 13 text

©︎MATSUO-IWASAWA LAB, THE UNIVERSITY OF TOKYO 2.1.1 量子化の概要

Slide 14

Slide 14 text

©︎MATSUO-IWASAWA LAB, THE UNIVERSITY OF TOKYO 14 量子化 / Quantization モデルのWeightやActivation、KV Cacheなどを低精度で表現する LLMの軽量化において最も一般的な手法 メリット: • 比較的簡単にメモリ・計算コストを削減できる • スループットを向上・レイテンシを低減させられる • 一般ユーザでも比較的簡単に実行できる デメリット: • フォーマットや手法によって程度は変わるが、精度は低下する • 手法によってはかなり大きなコストがかかる

Slide 15

Slide 15 text

©︎MATSUO-IWASAWA LAB, THE UNIVERSITY OF TOKYO 15 量子化 / Quantization なぜ量子化によって高速に計算できるようになるのか? 1. メモリ消費量の減少によるバッチサイズ増加 推論・学習時のバッチサイズを大きくすることで、スループットが向上 2. メモリ消費量減少によるKV Cache保持量の増加 モデルサイズ低減によるMemory Footprint減少に伴うKV Cache保持量増加 KV Cache QuantizationによるKV Cache保持量増加 3. メモリアクセスの高速化 特にmemory-boundな処理に対して恩恵を得られる 4. Tensorコアの有効活用 INT8やFP8、INT4などに対応したTensorコアによる行列演算の高速化の 恩恵を得られる 5. 通信コストの低減 特に大規模な分散学習環境において通信コストを大きく低減 出典)[3] NVIDIA, “Product Carbon Footprint (PCF) Summary for NVIDIA HGX B200”, アクセス日:2025/10/15

Slide 16

Slide 16 text

©︎MATSUO-IWASAWA LAB, THE UNIVERSITY OF TOKYO 16 浮動小数点数のビット表現 コンピュータでは有限個のビット表現で実数を近似的に表現する この時、浮動小数点数の表現ではビット列の一部をそれぞれsign(符号部) / exponent(指数部) / mantissa(仮数部)に振り分け、指数表記に近い ような形式で数値を表現する(IEEE 754) 出典)[4] NUS School of Computing “Data Representation and Number Systems” アクセス日:2025/11/19

Slide 17

Slide 17 text

©︎MATSUO-IWASAWA LAB, THE UNIVERSITY OF TOKYO 17 低精度表現 量子化では元々高精度で表現されていた数値を低精度で表現する必要があり、 その際に表現幅や粒度の細かさの差による誤差が生じる(32-bitでは2^32個の 値を取れるが、16-bitでは2^16個、8-bitでは2^8個の値しか取れない) 例えば、FP32ではExponent(指数部)が8-bit、Mantissa(仮数部)が23-bit あるが、FP16ではExponent 5-bit / Mantissa 10-bit、BF16ではExponent 8-bit / Mantissa 7-bitの表現幅しか持てない 出典)[5] Maarten Grootendorst “A Visual Guide to Quantization” アクセス日:2025/10/07

Slide 18

Slide 18 text

©︎MATSUO-IWASAWA LAB, THE UNIVERSITY OF TOKYO 18 低精度表現 様々な低精度表現とその表現範囲 学習時にはBF16やFP8が主に使われ、推論時にはFP8、INT8、 INT4などが主に使われる フォーマット 正の表現範囲(subnormal含む) コメント FP32 E8M23(≈1e-45 ~ ≈3e+38) 最近のLLMの学習ではあまり使われない 小規模モデルの学習で時々見かける FP16 E5M10(≈6e-8 ~ 65504) LLMの学習ではBF16が主流であまり使われない BF16 E8M7(≈9e-41 ~ ≈3e+38) FP16よりもオーバーフローが起きにくい LLMの学習における現在の主流 INT8 -128 ~ 127 または 0 ~ 255 WeightやActivationの量子化でよく使われる FP8 E4M3(2^-9 ≈ 2e-3 ~ 448) E5M2(2^-16 ≈ 1.5e-5 ~ 57344) 推論時の量子化だけでなく、低精度学習にも用いられる INT4 -8 ~ 7 または 0 ~ 15 Weight-Only量子化で使われることが多い 表現幅が狭く、キャリブレーションしないと精度低下大 FP4 E2M1(0.5 ~ 6.0) Blackwellからネイティブ対応 FP4 Trainingの実例もいくつか出現

Slide 19

Slide 19 text

©︎MATSUO-IWASAWA LAB, THE UNIVERSITY OF TOKYO 19 量子化の分類 量子化の対象による分類 • Weight-Only Quantization モデルの重みのみを量子化する 計算はupcastして行われるので、計算はあまり高速化されない • Weight-Activation Quantization 重みだけではなくActivationも量子化する 計算も低精度で行えるので高速化できるが、精度低下に注意 • KV-Cache Quantization 推論時に保持するKV Cacheを低精度で持つ 量子化のタイミングによる分類 • Post-Training Quantization (PTQ) 学習が完了したモデルを後段で量子化する • Quantization-Aware Training (QAT) 学習時に量子化のシミュレーションのようなものを取り入れることで、 後に量子化する際の精度劣化を抑える

Slide 20

Slide 20 text

©︎MATSUO-IWASAWA LAB, THE UNIVERSITY OF TOKYO 20 量子化の分類 量子化パラメータの決定タイミングによる分類 • Static Quantization 量子化関連のパラメータを事前にキャリブレーションデータを使って 計算しておき、推論時にはその固定のパラメータを利用する 推論時のオーバーヘッドがなく高速だが、精度がやや低い • Dynamic Quantization 量子化関連のパラメータを推論時の入力の値に応じてその都度動的に 計算して利用する 精度はStatic Quantizationよりも高いが、実行時に計算が必要となる

Slide 21

Slide 21 text

©︎MATSUO-IWASAWA LAB, THE UNIVERSITY OF TOKYO 2.1.2 量子化の適用方法

Slide 22

Slide 22 text

©︎MATSUO-IWASAWA LAB, THE UNIVERSITY OF TOKYO 22 量子化の適用 低精度で表現できる幅は狭いため、量子化の際にそのままでは overflowが発生してしまう これを回避するため、scaling factorを使って分布を表現可能な 範囲にマッピングする 出典)[6] Kazuki Fujii “FP8 trainingを支える技術 1” アクセス日:2025/10/07 [7] Hugging Face “Quantization concepts” アクセス日:2025/10/07

Slide 23

Slide 23 text

©︎MATSUO-IWASAWA LAB, THE UNIVERSITY OF TOKYO 23 Symmetric QuantizationとAsymmetric Quantization 量子化で狭い範囲に値を割り当てる方法は大きく分けて2つ存在する • Symmetric Quantization(対称量子化) 高精度表現での0を低精度表現での0にマッピングしたまま、 対象の絶対値の最大値(absmax)を使ってスケールする • Assymetric / Affine Quantization(非対称量子化) 0の位置には拘らず、対象の最大値と最小値を使って 低精度表現の数値幅にスケールする 出典)[5] Maarten Grootendorst “A Visual Guide to Quantization” アクセス日:2025/10/07 Symmetric Quantization Asymmetric Quantization

Slide 24

Slide 24 text

©︎MATSUO-IWASAWA LAB, THE UNIVERSITY OF TOKYO 24 量子化の適用 量子化を実際に適用する例を示す ここではFP32のテンソルをINT8に量子化することを考える • 元のFP32のテンソルrを以下のようなものとする • この時、 である 134.6 -62.9 0.0 111.4 -186.2 47.5 303.3 -26.4

Slide 25

Slide 25 text

©︎MATSUO-IWASAWA LAB, THE UNIVERSITY OF TOKYO 25 量子化の適用 例1 Symmetric Quantization FP32のテンソルを対称的な[-127, 127]の範囲にマッピングする 量子化のために、ScaleとZero-Pointという2つの値を計算する 1. Scaleの計算 2. Zero-Pointの計算 Symmetric Quantizationの場合、0 134.6 -62.9 0.0 111.4 -186.2 47.5 303.3 -26.4

Slide 26

Slide 26 text

©︎MATSUO-IWASAWA LAB, THE UNIVERSITY OF TOKYO 26 量子化の適用 例1 Symmetric Quantization FP32のテンソルを対称的な[-127, 127]の範囲にマッピングする 3. 先ほどのScaleとZero-Pointを使い、テンソルをINT8に量子化する 134.6 -62.9 0.0 111.4 -186.2 47.5 303.3 -26.4 56 -26 0 47 -78 20 127 -11

Slide 27

Slide 27 text

©︎MATSUO-IWASAWA LAB, THE UNIVERSITY OF TOKYO 27 量子化の適用 例1 Symmetric Quantization FP32のテンソルを対称的な[-127, 127]の範囲にマッピングする 4. FP32への逆量子化(dequantization) 134.6 -62.9 0.0 111.4 -186.2 47.5 303.3 -26.4 133.739 -62.093 0.000 112.245 -186.279 47.764 303.300 -26.270

Slide 28

Slide 28 text

©︎MATSUO-IWASAWA LAB, THE UNIVERSITY OF TOKYO 28 量子化の適用 例1 Symmetric Quantization FP32のテンソルを対称的な[-127, 127]の範囲にマッピングする この例での量子化誤差(MSE):0.27499 134.6 -62.9 0.0 111.4 -186.2 47.5 303.3 -26.4 133.739 -62.093 0.000 112.245 -186.279 47.764 303.300 -26.270

Slide 29

Slide 29 text

©︎MATSUO-IWASAWA LAB, THE UNIVERSITY OF TOKYO 29 量子化の適用 例2 Asymmetric (Affine) Quantization FP32の範囲を非対称的な[-128, 127]の範囲にマッピングする 量子化のために、ScaleとZero-Pointを計算する 1. Scaleの計算 2. Zero-Pointの計算 134.6 -62.9 0.0 111.4 -186.2 47.5 303.3 -26.4

Slide 30

Slide 30 text

©︎MATSUO-IWASAWA LAB, THE UNIVERSITY OF TOKYO 30 量子化の適用 例2 Asymmetric (Affine) Quantization FP32の範囲を非対称的な[-128, 127]の範囲にマッピングする 3. 先ほどのScaleとZero-Pointを使い、テンソルをINT8に量子化する 134.6 -62.9 0.0 111.4 -186.2 47.5 303.3 -26.4 39 -64 -31 27 -128 -6 127 -45

Slide 31

Slide 31 text

©︎MATSUO-IWASAWA LAB, THE UNIVERSITY OF TOKYO 31 量子化の適用 例2 Asymmetric (Affine) Quantization FP32の範囲を非対称的な[-128, 127]の範囲にマッピングする 4. FP32への逆量子化(dequantization) 134.6 -62.9 0.0 111.4 -186.2 47.5 303.3 -26.4 134.373 -63.347 0.000 111.337 186.202 47.990 303.298 -26.875

Slide 32

Slide 32 text

©︎MATSUO-IWASAWA LAB, THE UNIVERSITY OF TOKYO 32 134.373 -63.347 0.000 111.337 186.202 47.990 303.298 -26.875 量子化の適用 例2 Asymmetric (Affine) Quantization FP32の範囲を非対称的な[-128, 127]の範囲にマッピングする この例での量子化誤差(MSE):0.090124 134.6 -62.9 0.0 111.4 -186.2 47.5 303.3 -26.4

Slide 33

Slide 33 text

©︎MATSUO-IWASAWA LAB, THE UNIVERSITY OF TOKYO 33 外れ値の問題 量子化の際、テンソルに外れ値があるとそれにスケールが引っ張られ、 誤差が大きくなってしまう シンプルな対応策として、量子化の粒度(Granularity)を細かくできる 1.2 -0.7 0.4 2.1 -1.5 0.8 -2.2 0.5 0.3 1.1 -0.9 0.2 -1.0 0.6 -0.3 10000.0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127

Slide 34

Slide 34 text

©︎MATSUO-IWASAWA LAB, THE UNIVERSITY OF TOKYO 34 量子化の粒度(Granularity) Quantization Granularity 量子化の際、SとZを細かい粒度で扱うほど量子化誤差は減少する ただし計算のコストは増大する INT4などの攻めた量子化の際にはPer-Group量子化が使われることが多い 1. Per-Tensor Tensor全体で1つのSとZを計算して利用 2. Per-Channel 行または列ごとに個別のSとZを利用 3. Per-Group (Group-wise) 行・列をさらに細かいブロックに分け、 ブロックごとに個別のSとZを利用 出典)[7] Hugging Face “Quantization concepts” アクセス日:2025/10/07

Slide 35

Slide 35 text

©︎MATSUO-IWASAWA LAB, THE UNIVERSITY OF TOKYO 35 量子化時の誤差最適化のスコープ 量子化(PTQ)を行う時、どの範囲で分解して量子化誤差を最小化するか 1. Global PTQ モデル全体の入出力を見て量子化誤差が最小となるように量子化する 最も良い精度を得られるが、非常に難易度が高い 2. Block-Wise PTQ Transformer Blockごとの量子化誤差が最小となるように量子化する 精度は高いが非線形関数を含むため難易度は高い 3. Layer-Wise PTQ Blockの内の各線形層ごとの誤差を考えて量子化する 上記2つに精度は劣るが比較的簡単に実行可能 出典)[8] Yuma Ichikawa “NLPコロキウム20251022_超効率化への挑戦: LLM 1bit量子化のロードマップ” アクセス日:2025/10/30

Slide 36

Slide 36 text

©︎MATSUO-IWASAWA LAB, THE UNIVERSITY OF TOKYO 2.1.3 PTQの手法

Slide 37

Slide 37 text

©︎MATSUO-IWASAWA LAB, THE UNIVERSITY OF TOKYO 37 PTQの代表的な手法 LLM.int8()(W8A8) LLMのActivationにおける外れ値は特定のChannelに系統的に現れること、 外れ値を量子化すると精度に大きな悪影響を与えることを発見 ActivationをPer-Tokenで見て、特定の閾値(論文では6.0)を超える値がある 場合そのChannelをOutlierとしてfp16で計算、その他をint8で計算することで 精度を保ちつつVRAM消費を削減(WeightはPer-Channelで量子化) 出典)[9] Tim Dettmers et al. (2022), “LLM.int8(): 8-bit Matrix Multiplication for Transformers at Scale”, arxiv: 2208.07339

Slide 38

Slide 38 text

©︎MATSUO-IWASAWA LAB, THE UNIVERSITY OF TOKYO 38 PTQの代表的な手法 SmoothQuant(W8A8) Activationの外れ値は特定のChannelに集中し、Per-Token量子化だと有効 ビットが足りずに劣化する。一方でWeightは分布が平坦で量子化が簡単である 事前にキャリブレーションデータを使ってActivationを計算し、外れ値を Weight側に移動しておくことで、Activationの量子化を容易にする 出典)[10] Guangxuan Xiao et al. (2022), “SmoothQuant: Accurate and Efficient Post-Training Quantization for Large Language Models”, arxiv: 2211.10438

Slide 39

Slide 39 text

©︎MATSUO-IWASAWA LAB, THE UNIVERSITY OF TOKYO 39 PTQの代表的な手法 GPTQ(主にW4A16) これまで紹介した手法は量子化の粒度や対象の工夫で精度を保持しつつ、最終的に は単なる最近傍丸め(RTN, Round-To-Nearest)で量子化していたが、GPTQで は層単位の再構成誤差 が最小となるように誤差補償をしながら 重みを量子化する キャリブレーションデータを使って得られたActivationを元に再構成誤差のヘッセ 行列を計算し、各要素を量子化した際の誤差に基づいて残りの未量子化重みを最適 に更新していきながら層全体を量子化する 出典)[11] Elias Frantar et al. (2022), “GPTQ: Accurate Post-Training Quantization for Generative Pre-trained Transformers”, arxiv: 2210.17323 [12] Elias Frantar et al. (2022), “Optimal Brain Compression: A Framework for Accurate Post-Training Quantization and Pruning”, arxiv: 2208.11580 OBQにおける最適な量子化対称要素の選定と、残りの未量子化重みの更新量の算出式 GPTQでは、大きなパラメータのモデルでは量子化順序が精度にあまり影響を 与えないことを発見、全ての列を特定の順序で量子化して計算量を削減

Slide 40

Slide 40 text

©︎MATSUO-IWASAWA LAB, THE UNIVERSITY OF TOKYO 40 PTQの代表的な手法 AWQ(主にW4A16) 各層の出力はWeightとActivationの積で得られるため、Activationが大きい ChannelでWeightの量子化誤差が出力時に増幅され大きくなってしまう AWQでは、事前にキャリブレーションデータから得られたActivationの大きさ によるscaling factorによりWeightを大きく、Activationを小さくして 量子化誤差を減少させる 出典)[13] Ji Lin et al. (2023), “AWQ: Activation-aware Weight Quantization for LLM Compression and Acceleration”, arxiv: 2306.00978 ● sはper-channelで計算される ● sがそこまで大きくなければ、group-wise量子化において group内の最大値が変わることは少ないため、 ΔとΔ’は大きく変わらない ● Round()によるエラーは統計的に大きく変わらない →適切なsを選べれば、量子化誤差を約1/sに出来る 式(4)のような量子化誤差を最小にするようなsを選びたい per-channelでのActivationの絶対値の平均をs_xとし、0~1 のパラメータαを探索して最適なsを選択する

Slide 41

Slide 41 text

©︎MATSUO-IWASAWA LAB, THE UNIVERSITY OF TOKYO 2.1.4 発展的な低精度表現

Slide 42

Slide 42 text

©︎MATSUO-IWASAWA LAB, THE UNIVERSITY OF TOKYO 42 発展的な低精度表現フォーマット MXFP4 FP4を基本に、32要素ごとにUE8M0 FP8のスケールを1つ持つような構造のデータ形式 OpenAIのGPT-OSSのPost-Trainingで利用された … FP8 (UE8M0) Scaling Factor Per 32 Block S E E M Sign 1 bit Exponent 2 bit Mantissa 1 bit FP4 (E2M1) E E E E E E E E S E E M Sign 1 bit Exponent 2 bit Mantissa 1 bit FP4 (E2M1) E E E E E E E E

Slide 43

Slide 43 text

©︎MATSUO-IWASAWA LAB, THE UNIVERSITY OF TOKYO 43 発展的な低精度表現フォーマット NVFP4 FP4を基本に、16要素ごとにE4M3 FP8のスケールを1つ持ち、さらにTensor 全体でE8M23 FP32のスケールを持つ構造のデータフォーマット MXFP4よりもスケールが細かく2段階であり、FP8のスケールもE4M3とMXFP4 のUE8M0よりも細かいため、MXFP4より量子化誤差が小さい 出典)[14] Eduardo Alvarez et al. (2025), “Introducing NVFP4 for Efficient and Accurate Low-Precision Inference”, アクセス日:2025/10/15

Slide 44

Slide 44 text

©︎MATSUO-IWASAWA LAB, THE UNIVERSITY OF TOKYO 2.1.5 KV Cache Quantization

Slide 45

Slide 45 text

©︎MATSUO-IWASAWA LAB, THE UNIVERSITY OF TOKYO 45 Self-Attentionの1トークンあたりのKV Cacheサイズの計算式 例:Llama3-70Bの場合 2 × 80 × 8 (GQA) × 128 × 2 = 320 KiB →16384 tokenの場合、5GiB KV Cache Quantizationについて KV Cacheのメモリ圧迫に関する問題 自己回帰型のLLMは、生成を効率化するためにdecode時に過去の全トークンの 生成に使ったKey-Value Cacheを保持し、それを再利用する このKV-Cacheは生成長が長いほど大きなサイズとなり、VRAM使用量の増大 、preemption発生による生成速度低下につながる 直近では特にtest-time scalingが普及し、reasoningなどを含めた長い生成を 行うことが増えてきたため、特にマス向けに大規模servingするような環境では 顕著にKV Cacheのサイズが問題になる

Slide 46

Slide 46 text

©︎MATSUO-IWASAWA LAB, THE UNIVERSITY OF TOKYO 46 KV Cache Quantizationについて KV Cache Quantization KV Cacheを低精度で持つことにより、KV Cacheのメモリ使用量を削減する これにより、読み書きのメモリコスト削減、KV Cache Reuseの有効性向上、 より大きなバッチサイズでの推論が可能となるなどのメリットを得られる 例:Llama3-70B、16384 tokenの場合 →FP16 KV Cache:5GiB →FP8 KV Cache:2.5GiB →INT4 KV Cache:1.25GiB

Slide 47

Slide 47 text

©︎MATSUO-IWASAWA LAB, THE UNIVERSITY OF TOKYO 47 KV Cache Quantizationの手法 KIVI あまり深く調べられてこなかったKV Cache量子化について、以下の知見を発見 • Key側ではChannel単位で一部大きな外れ値を持ったChannelが現れる • Value側では特定の外れ値のパターンは見られないが、Per-Channel 量子化を適用すると精度が大きく低下する これらを元にKey cacheはPer-Channelで、Value cacheはPer-Tokenで、 という別次元での量子化をそれぞれ適用し、2bitのKV Cache量子化でも精度を 維持できることを示した 出典)[15] Zirui Liu et al. (2024), “KIVI: A Tuning-Free Asymmetric 2bit Quantization for KV Cache”, arxiv: 2402.02750

Slide 48

Slide 48 text

©︎MATSUO-IWASAWA LAB, THE UNIVERSITY OF TOKYO 48 KV Cache Quantizationの手法 KVQuant KIVIと同じくKeyの外れ値が特定Channelに集中することを発見、それに加え て以下のような工夫を取り入れて高い精度での量子化を実現した • RoPEの適用前にKeyをPer-Channelで量子化することによって精度を向上 • キャリブレーションデータを元にsensitivityを算出し、それに基づいた 非一様な量子化を適用することで精度を向上 • 量子化を行うベクトル単位で外れ値を判定し、外れ値をfp16に逃がして他の 部分のみを量子化することで精度を向上 • LLM特有のAttention Sinkの挙動を元に、先頭の1トークンに対応する部分 のみfp16のまま保持することで精度を向上 出典)[16] Coleman Hooper et al. (2024), “KVQuant: Towards 10 Million Context Length LLM Inference with KV Cache Quantization”, arxiv: 2401.18079

Slide 49

Slide 49 text

©︎MATSUO-IWASAWA LAB, THE UNIVERSITY OF TOKYO 2.1.6 Quantization-Aware Training

Slide 50

Slide 50 text

©︎MATSUO-IWASAWA LAB, THE UNIVERSITY OF TOKYO 50 QATについて Quantization-Aware Training(QAT) モデルの学習時、疑似的な量子化(fake quant)に相当する操作を中間に挟み 量子化誤差を含んだ状態で何らかの学習を行うことで、後に量子化した際の 量子化耐性を獲得する PTQと違い、量子化時のscaleやzero-pointなども学習可能にすることが多い W X fake_quant fake_quant W’ X’ Linear Y=W’X’ FP FP FP FP FP

Slide 51

Slide 51 text

©︎MATSUO-IWASAWA LAB, THE UNIVERSITY OF TOKYO 51 QATについて Quantization-Aware Training(QAT) fake_quantの中でquantizeする際round()の操作を挟むが、この操作を微分 するとほとんどの点で係数が0になり、そのままbackwardをすると勾配が ほぼ0となって学習が進まない この対策として、STE(Straight-Through Estimator)が用いられる 出典)[17] Amir Gholami et al. (2021), “A Survey of Quantization Methods for Efficient Neural Network Inference”, arxiv: 2103.13630 y=q(x)の操作をbackward 時にはy=xとみなし、勾配 をそのまま流す(STE)

Slide 52

Slide 52 text

©︎MATSUO-IWASAWA LAB, THE UNIVERSITY OF TOKYO 52 QATの手法 LLM-QAT QATを適用する際の大きな問題は計算コストと学習データである 特にデータに関しては、元モデルの学習データと似たデータを得ることは 難しく、QATを行うために慎重なデータ選定が必要となる LLM-QATでは元モデルを教師モデルとし、モデル自身が生成したテキストを 知識蒸留的に学習に利用することで、外部データなしでQATに成功 また、同時にKV Cacheに関してもQATを適用することにも成功 出典)[18] Zechun Liu et al. (2023), “LLM-QAT: Data-Free Quantization Aware Training for Large Language Models”, arxiv: 2305.17888

Slide 53

Slide 53 text

©︎MATSUO-IWASAWA LAB, THE UNIVERSITY OF TOKYO 53 QATの手法 EfficientQAT Block-APとE2E-QPという2段階に分けてQATを行い、少ないコストで低ビット 数でも高い精度を維持することに成功 • Block-AP: Transformerブロック1つごとに、量子化の再構成誤差(MSE) が小さくなるように重みとscale、zero-pointを全て同時に学習 • E2E-QP: 重みは凍結し、量子化パラメータのうちscaleだけを実際のデータ でモデル全体をEnd-to-EndにCross-Entropy Lossなどで最適化する 出典)[19] Mengzhao Chen et al. (2024), “EfficientQAT: Efficient Quantization-Aware Training for Large Language Models”, arxiv: 2407.11062

Slide 54

Slide 54 text

©︎MATSUO-IWASAWA LAB, THE UNIVERSITY OF TOKYO 54 QATの手法 BitNet -1と1の2値のみを持つ1-bit weightsを利用したLinearレイヤの代替である BitLinearを提案、QATによって超低精度でも一定の精度を保つことに成功 1-bitなのはWeightのみで、論文ではActivationは8-bit(W1A8) 出典)[20] Hongyu Wang et al. (2023), “BitNet: Scaling 1-bit Transformers for Large Language Models”, arxiv: 2310.11453

Slide 55

Slide 55 text

©︎MATSUO-IWASAWA LAB, THE UNIVERSITY OF TOKYO 55 QATの手法 BitNet BitNetにおけるquant / dequantの手順は以下の通り 1. Weight Quantization 重みの平均値を各要素から引き、中心が0になるように分布を変換 その結果の値が0より大きければ+1を、0以下なら-1とする(1-bit量子化) 後のdequantizeに利用するため、重みの絶対値の平均βを計算しておく 出典)[20] Hongyu Wang et al. (2023), “BitNet: Scaling 1-bit Transformers for Large Language Models”, arxiv: 2310.11453 0 元のWeightの分布 中心が0になるように変換 +1 -1 α

Slide 56

Slide 56 text

©︎MATSUO-IWASAWA LAB, THE UNIVERSITY OF TOKYO 56 QATの手法 BitNet 2. Activation Quantization LayerNormの後のActivationにabsmax量子化を適用し、b-bitに量子化( 論文ではb=8) ただし、ReLUなどの非線形関数の前では0以上になるようにスケールを調整 後のdequantizeに利用するため、Activationの絶対値の最大値γを保持 ※ここでいうabsmax量子化は先述した対称量子化とほぼ同義 出典)[20] Hongyu Wang et al. (2023), “BitNet: Scaling 1-bit Transformers for Large Language Models”, arxiv: 2310.11453 Absmax (Symmetric) Quantization 非線形関数の前ではスケールを調整

Slide 57

Slide 57 text

©︎MATSUO-IWASAWA LAB, THE UNIVERSITY OF TOKYO 57 QATの手法 BitNet 3. Dequantization 量子化されたWeightとActivationの積を取り、その結果に対してβとγを 使ってdequantizeする 出典)[20] Hongyu Wang et al. (2023), “BitNet: Scaling 1-bit Transformers for Large Language Models”, arxiv: 2310.11453

Slide 58

Slide 58 text

©︎MATSUO-IWASAWA LAB, THE UNIVERSITY OF TOKYO 58 QATの手法 BitNet b1.58 BitNetの実装を元に、以下の点を改変 • absmean量子化を導入し、2値ではなく3値(-1, 0, 1)にWeightを量子化 absmean量子化:各要素を重みの絶対値の平均で割って、-1, 0, 1に丸める • Activationは全て[-Qb, Qb]にsymmetricにPer-Tokenで量子化するように 出典)[21] Shuming Ma et al. (2024), “The Era of 1-bit LLMs: All Large Language Models are in 1.58 Bits”, arxiv: 2402.17764 0 +1 -1 分布を圧縮 -0.5 +0.5 0 absmean量子化の概念図

Slide 59

Slide 59 text

©︎MATSUO-IWASAWA LAB, THE UNIVERSITY OF TOKYO 2.1.7 量子化の実用

Slide 60

Slide 60 text

©︎MATSUO-IWASAWA LAB, THE UNIVERSITY OF TOKYO 60 量子化の実用 bitsandbytes LLM.int8()の著者らが作成した、PyTorch向けの量子化ライブラリ QLoRAで利用されているNF4のフォーマットを利用した4-bit量子化や、 LLM.int8()を利用した8-bit量子化、8-bit Optimizerなどをサポート Hugging Face Transformersと密に統合されており、簡単に利用可能 出典)[22] https://github.com/bitsandbytes-foundation/bitsandbytes, アクセス日:2025/10/15 # 8-bit量子化(LLM.int8)の適用例 from transformers import AutoModelForCausalLM, BitsAndBytesConfig bnb_config = BitsAndBytesConfig( load_in_8bit=True, llm_int8_threshold=6.0, ) model = AutoModelForCausalLM.from_pretrained( "Qwen/Qwen3-4B-Instruct-2507", device_map="auto", quantization_config=bnb_config, )

Slide 61

Slide 61 text

©︎MATSUO-IWASAWA LAB, THE UNIVERSITY OF TOKYO 61 量子化の実用 llm-compressor 主にvLLMでの推論向けに、様々な手法・形式での量子化を提供するライブラリ 対応アルゴリズム:GPTQ, AWQ, SmoothQuant, QuIP, SpinQuantなど 対応形式:W8A16, W4A16, W8A8(INT8, FP8), NVFP4など 出典)[23] https://github.com/vllm-project/llm-compressor, アクセス日:2025/10/15 from llmcompressor.modifiers.smoothquant import SmoothQuantModifier from llmcompressor.modifiers.quantization import GPTQModifier from llmcompressor import oneshot # Select quantization algorithm. In this case, we: # * apply SmoothQuant to make the activations easier to quantize # * quantize the weights to int8 with GPTQ (static per channel) # * quantize the activations to int8 (dynamic per token) recipe = [ SmoothQuantModifier(smoothing_strength=0.8), GPTQModifier(scheme="W8A8", targets="Linear", ignore=["lm_head"]), ] oneshot( model="TinyLlama/TinyLlama-1.1B-Chat-v1.0", dataset="open_platypus", recipe=recipe, output_dir="TinyLlama-1.1B-Chat-v1.0-INT8", max_seq_length=2048, num_calibration_samples=512, )

Slide 62

Slide 62 text

©︎MATSUO-IWASAWA LAB, THE UNIVERSITY OF TOKYO 62 出典)[24] https://github.com/ggml-org/llama.cpp/wiki/Tensor-Encoding-Schemes, アクセス日:2025/10/15 量子化の実用 llama.cpp C++をバックエンドとしてLLMを量子化・推論するフレームワーク GGUFという独自の形式を使って様々なフォーマットでの量子化をサポート 例:Q4_Kの場合 … sub-block (32 weights) 6-bit scaling factor 6-bit minimum 0 1 1 0 4-bit per weight sub-block (32 weights) 6-bit scaling factor 6-bit minimum super-block (256 weights / 8 sub-blocks) 16-bit super-scale for scale (d) 16-bit super-scale for min (dmin)

Slide 63

Slide 63 text

©︎MATSUO-IWASAWA LAB, THE UNIVERSITY OF TOKYO 2.2. Pruning

Slide 64

Slide 64 text

©︎MATSUO-IWASAWA LAB, THE UNIVERSITY OF TOKYO 64 枝刈り / Pruning モデルの重要でないパラメータを0埋め・削除などで使わないように し、精度低下を抑えながら軽量化・高速化する 実用上、後述する知識蒸留と併用されることが多い メリット: • メモリ・計算コストを削減できる • スループットを向上・レイテンシを低減させられる デメリット: • 手法によって程度は変わるが、精度は低下する • Pruning後の精度回復のためにファインチューニングが必要な ことがある • 量子化よりエコシステムが充実しておらず、やや敷居が高い 実用例:Llama 3.2 1B、PLaMo 2 2Bなど 出典)[25] Meta, “Llama 3.2: Revolutionizing edge AI and vision with open, customizable models”, アクセス日:2025/10/18 [26] Shuji Suzuki, “Pruningによる小型LLM PLaMo 2 2Bの開発”, アクセス日:2025/10/18

Slide 65

Slide 65 text

©︎MATSUO-IWASAWA LAB, THE UNIVERSITY OF TOKYO 65 Pruningの分類 Pruningの単位による分類 • Unstructured Pruning 個々のパラメータ単位で個別にPruningを行う 構造は変更せず、重要でない一部の値を0に置換してSparseにする ハードウェア側が対応していないと速度は基本的に変わらないため、 形式に一定の制約を持つこともある(Semi-structured Pruning) • Structured Pruning 特定の構造単位で重要でない構造を削除してPruningを行う Pruningの対象はChannel単位、Attention Head単位、Layer単位など 手法によって様々に異なる シンプルであるため実装的にも優しく、ハードウェアなども選ばない 出典)[27] Song Han, “EfficientML.ai Lecture 03: Pruning and Sparsity”, アクセス日:2025/10/18 [28] Jeff Pool et al, “Accelerating Inference with Sparsity Using the NVIDIA Ampere Architecture and NVIDIA TensorRT”, アクセス日:2025/10/18

Slide 66

Slide 66 text

©︎MATSUO-IWASAWA LAB, THE UNIVERSITY OF TOKYO 66 Pruning対象の選定 Pruning対象の選定 何らかの基準によってパラメータや構造の重要度を算出し、それに基づいて Pruningの対象を決定しなければならない Pruning対象の決定方法は様々だが、以下のような方法が存在する • Magnitude-based パラメータのMagnitude(絶対値の大きさ)によってPruning対象を決定 パラメータの大きさは出力への寄与度に直接影響するため、小さいもの は重要でないとHeuristicに決定する Pruningのためのデータは不要で、計算コストも非常に低い • Loss-based パラメータを削除した時の何らかの損失の増加を元に重要度を計算する ただし、パラメータや構造1つ1つを削除して実際に損失を計算するのは コストが高すぎるため、近似的な計算で決定することが多い

Slide 67

Slide 67 text

©︎MATSUO-IWASAWA LAB, THE UNIVERSITY OF TOKYO 67 Pruningの手法 SparseGPT 各レイヤの入出力の再構成誤差を最小化するというレイヤごとのSparseな 最適化問題へと落とし込み、再構成誤差のヘッセ行列を用いた解析的な手法で 効率的にUnstructured Pruningを適用 学習済みのLLMに対して、精度劣化を最小限に抑えつつ、追加学習なしのOne- Shot Pruningで50~60%程度のSparse化を実現 出典)[29] Elias Frantar et al. (2023), “SparseGPT: Massive Language Models Can Be Accurately Pruned in One-Shot”, arxiv: 2301.00774

Slide 68

Slide 68 text

©︎MATSUO-IWASAWA LAB, THE UNIVERSITY OF TOKYO 68 Pruningの手法 Layer Pruning 学習済みのLLMには、レイヤ(ブロック)を丸ごと削除しても劣化がほとんど 発生しない部分が深い層(中~後半あたり)に存在する レイヤの入出力での状態の変化量などを元に変化の小さいレイヤを削除し、 その後少量の追加学習(healing)を行うことで精度を保ったままレイヤ単位 でのStructured Pruningを適用できる 出典)[30] Xin Men et al. (2024), “ShortGPT: Layers in Large Language Models are More Redundant Than You Expect”, arxiv: 2403.03853 [31] Andrey Gromov et al. (2024), “The Unreasonable Ineffectiveness of the Deeper Layers”, arxiv: 2403.17887

Slide 69

Slide 69 text

©︎MATSUO-IWASAWA LAB, THE UNIVERSITY OF TOKYO 69 Pruningの手法 Expert Pruning Sparse MoEを採用したLLMにおいて、全てのExpertは等しく重要ではなく、 タスクなどによってあまり重要でないExpertも存在する キャリブレーションデータでの再構成誤差などからExpertの重要度を判定し、 重要でないExpertを削除したりスキップすることで精度劣化を抑えながら計算 コストやメモリコストを削減できる 出典)[32] Xudong Lu et al. (2024), “Not All Experts are Equal: Efficient Expert Pruning and Skipping for Mixture-of-Experts Large Language Models”, arxiv: 2402.14800

Slide 70

Slide 70 text

©︎MATSUO-IWASAWA LAB, THE UNIVERSITY OF TOKYO 70 出典)[33] Sharath Sreenivas et al. (2024), “Compact Language Models via Pruning and Knowledge Distillation”, arxiv: 2407.14679 [34] Sharath Sreenivas et al. (2024), “How to Prune and Distill Llama-3.1 8B to an NVIDIA Llama-3.1-Minitron 4B Model”, アクセス日:2025/10/18 Pruningの手法 Minitron 独自で学習し作成した15Bのモデルを対象に様々なPruning・Distillationを 検証し、実践的なBest Practiceを発見した Pruningにおいては以下のようなBest Practiceを提唱した • 論文でのスケール(~15B)では、深さ(depth)のpruningよりも 幅(width)のpruningの方が良い結果が得られる • 重要度のiterativeな推定は効果が薄く、single-shotの推定で十分

Slide 71

Slide 71 text

©︎MATSUO-IWASAWA LAB, THE UNIVERSITY OF TOKYO 2.3. Knowledge Distillation

Slide 72

Slide 72 text

©︎MATSUO-IWASAWA LAB, THE UNIVERSITY OF TOKYO 72 知識蒸留 / Knowledge Distillation 大規模な教師モデルから小規模な生徒モデルに知識を効率的に転送 し、高性能な小規模モデルを効率的に学習する “知識(Knowledge)”と表記されているが、ここでは純粋な知識に 限らず様々なタスクをこなす能力・スキルの蒸留も含める メリット: • 精度を保ちながらモデルの小型化ができる • 量子化やPruningなどと併用が可能 デメリット: • 比較的大規模な再学習が必要でコストが高い • 設計の自由度が高く、適切な実装が難しい 実用例:DeepSeek-R1-Distill、Qwen3など

Slide 73

Slide 73 text

©︎MATSUO-IWASAWA LAB, THE UNIVERSITY OF TOKYO 73 Knowledge Distillationの分類 Distillationの対象による分類 • Response-based Distillation 教師モデルの最終的な出力を使って蒸留を行う LLMにおいては最も一般的な手法で、さらに以下の2つに大別できる 1. Hard-target Distillation 教師モデルの出力の正解ラベル(One-Hotな単一の出力)を元に学習 LLMの文脈では教師モデルの出力による合成データを使った学習が これに相当する 非公開モデルなど、モデル本体にアクセス出来ない場合でも適用可能 2. Soft-target Distillation モデル出力のlogitsをベースとした確率分布を模倣するように学習する logitsを保持しておく必要があるため計算コストやメモリ・ストレージ コストが高く、実装もやや複雑になる 実際には語彙のすべてのlogitsを利用するわけではなく、上位k個だけを 保持して利用する(例:Gemma3では256個)

Slide 74

Slide 74 text

©︎MATSUO-IWASAWA LAB, THE UNIVERSITY OF TOKYO 74 Knowledge Distillationの分類 Distillationの対象による分類 • Feature-based Distillation 最終出力だけでなく、モデルの中間表現の特徴も利用して蒸留する これにより、出力結果だけでなく教師モデルの途中の挙動も学習可能 • Relation-based Distillation 単一の状態などでの学習ではなく、複数レイヤや複数データ間での関係 (距離や角度、相関など)を利用して蒸留する より複雑なダイナミクスを捉えられるが、実装や計算のコストは高い 出典)[35] Jianping Gou et al. (2006), “Knowledge Distillation: A Survey”, arxiv:2006.05525

Slide 75

Slide 75 text

©︎MATSUO-IWASAWA LAB, THE UNIVERSITY OF TOKYO 75 出典)[36] Kevin Lu et al. (2025), “On-Policy Distillation”, アクセス日:2025/11/5 [37] Rishabh Agarwal et al. (2023), “On-Policy Distillation of Language Models: Learning from Self-Generated Mistakes”, arxiv: 2306.13649 On-Policy Distillation On-Policy Distillation 通常のDistillationでは、教師モデルが出した応答やlogitsに追従させるように して生徒モデルを学習する On-Policy Distillationでは生徒モデル自身の出力に対して教師モデルのlogitsで フィードバックを与え、その距離を最小化するようにRLに近い文脈で学習する これにより、教師モデルと生徒モデルの分布ずれによる悪影響を小さくできる

Slide 76

Slide 76 text

©︎MATSUO-IWASAWA LAB, THE UNIVERSITY OF TOKYO 76 出典)[33] Sharath Sreenivas et al. (2024), “Compact Language Models via Pruning and Knowledge Distillation”, arxiv: 2407.14679 [34] Sharath Sreenivas et al. (2024), “How to Prune and Distill Llama-3.1 8B to an NVIDIA Llama-3.1-Minitron 4B Model”, アクセス日:2025/10/18 LLM開発における知識蒸留の実用例 Minitron 独自で学習し作成した15Bのモデルを対象に様々なPruning・Distillationを 検証し、実践的なBest Practiceを発見した Distillationにおいては以下のようなBest Practiceを提唱した • ラベルを使った通常の学習ではなくKLDによる知識蒸留を行う方が良い • 深さ(レイヤ数)を大きく削るときは、logit + 中間表現 + 埋め込みの 多成分を使って蒸留した方が良い • 深さをあまり削らないときは、logitを使った蒸留のみで十分

Slide 77

Slide 77 text

©︎MATSUO-IWASAWA LAB, THE UNIVERSITY OF TOKYO 77 LLM開発における知識蒸留の実用例 Llama 3.2 1B / 3B Llama 3.1 8Bを元にStructured Pruningによって1B / 3Bの重みを初期化 その後、Llama 3.1 8Bと70Bのlogitsを取り入れたSoft-target Distillationを 行いながら事前学習を実施 事前学習後、合成データをベースにしたiterativeなSFT・RS・DPOで事後学習 (Hard-target Distillation) 出典)[25] Meta, “Llama 3.2: Revolutionizing edge AI and vision with open, customizable models”, アクセス日:2025/10/18

Slide 78

Slide 78 text

©︎MATSUO-IWASAWA LAB, THE UNIVERSITY OF TOKYO 78 LLM開発における知識蒸留の実用例 DeepSeek-R1-Distill DeepSeek-R1を使いRejection Sampling等で合成された80万件のReasoning データを元に、Qwen2.5などの他モデルにSFT(Hard-target Distillation)を 行い、元モデルを超える性能を達成した 出典)[38] Daya Guo et al. (2025), “DeepSeek-R1: Incentivizing Reasoning Capability in LLMs via Reinforcement Learning”, arxiv: 2501.12948

Slide 79

Slide 79 text

©︎MATSUO-IWASAWA LAB, THE UNIVERSITY OF TOKYO 79 LLM開発における知識蒸留の実用例 Qwen3 Qwen3-235B-A22BとQwen3-32Bを通常通りPost-Trainingした後、小さな サイズのモデルを以下の2段階を含んだStrong-to-Weak Distillationで学習し た 1. 教師モデルの出力に基づく合成データを使ったHard-target Distillation 2. 生徒モデルの出力と教師モデルのlogitsを使ったOn-Policy Distillation 出典)[39] An Yang et al. (2025), “Qwen3 Technical Report”, arxiv: 2505.09388

Slide 80

Slide 80 text

©︎MATSUO-IWASAWA LAB, THE UNIVERSITY OF TOKYO 3. アーキテクチャ的工夫による効率化

Slide 81

Slide 81 text

©︎MATSUO-IWASAWA LAB, THE UNIVERSITY OF TOKYO 81 アーキテクチャ的工夫による効率化 LLMのパラメータはFFN(MLP)とAttentionが大部分を占める 計算量に関しても同様で、特にAttentionはKV Cacheを必要とする ため計算コストだけでなくメモリコストも高い そのため、軽量化は主にAttentionとFFNを対象に行われる 出典)[40] Ashish Vaswani et al. (2017), “Attention Is All You Need”, arxiv: 1706.03762 FFN Attention

Slide 82

Slide 82 text

©︎MATSUO-IWASAWA LAB, THE UNIVERSITY OF TOKYO 3.1. Attentionの効率化

Slide 83

Slide 83 text

©︎MATSUO-IWASAWA LAB, THE UNIVERSITY OF TOKYO 83 Self-Attentionの計算量とKV Cacheのサイズ 計算量 • Prefill(プロンプト処理): • Decode(生成、KV Cacheあり): KV Cacheのサイズ(per token) • 実際の生成では単純な計算量だけでなくKV CacheのI/Oの速度も影響する ため、KV Cacheのサイズ削減はメモリコスト削減だけでなく生成速度改善 にもつながる Attentionの計算量とメモリコスト

Slide 84

Slide 84 text

©︎MATSUO-IWASAWA LAB, THE UNIVERSITY OF TOKYO 84 どこをどう減らすか? 計算量 Prefill: Decode: • Attentionの計算範囲の限定(Sparse Attention、 → ) • Attention機構の置き換え(ハイブリッドモデル、 → ) KV Cacheのサイズ • ヘッドの共有( の削減) • K/Vの低次元への圧縮 • 量子化による低精度表現( の削減) 量子化の項目で解説済み Attentionの計算量とメモリコスト

Slide 85

Slide 85 text

©︎MATSUO-IWASAWA LAB, THE UNIVERSITY OF TOKYO 85 Multi-Query Attention(MQA) レイヤごとに1つのKey / Valueヘッドを全Queryヘッドで共有し、使いまわす これにより、KV Cacheのサイズが以下のように削減される (同時にK/Vの射影計算も軽量になる) KVヘッドの共有による軽量化 出典)[41] Noam Shazeer (2019), “Fast Transformer Decoding: One Write-Head is All You Need”, arxiv: 1911.02150 [42] shubham ashok gandhi, “Multi-Head vs Multi-Query vs Grouped Query Attention”, アクセス日:2025/10/21

Slide 86

Slide 86 text

©︎MATSUO-IWASAWA LAB, THE UNIVERSITY OF TOKYO 86 Grouped-Query Attention(GQA) MQAは非常に効率的だが、性能劣化や学習安定性の問題があった GQAではQueryヘッドをG個のグループに分け、それぞれのグループ内で1つの Key / Valueヘッドを共有する 2025年現在でもQwen3やgpt-oss等の最新のモデルで採用されている KVヘッドの共有による軽量化 出典)[43] Joshua Ainslie et al. (2023), “GQA: Training Generalized Multi-Query Transformer Models from Multi-Head Checkpoints”, arxiv: 2305.13245

Slide 87

Slide 87 text

©︎MATSUO-IWASAWA LAB, THE UNIVERSITY OF TOKYO 87 Multi-head Latent Attention(MLA) DeepSeek-V2にて提案された、K/Vを低ランクに圧縮してキャッシュする機構 入力をdown projectionで潜在空間に圧縮(全てのヘッドで共有)して キャッシュし、各ヘッドでそれをup projectionして利用するという仕組みに より、非常に小さなKV Cacheのサイズで高い性能を実現した また、projectionにかかる計算コストはアルゴリズム的工夫により打ち消した KVの潜在空間への圧縮による軽量化 出典)[44] Aixin Liu et al. (2024), “DeepSeek-V2: A Strong, Economical, and Efficient Mixture-of-Experts Language Model”, arxiv: 2405.04434

Slide 88

Slide 88 text

©︎MATSUO-IWASAWA LAB, THE UNIVERSITY OF TOKYO 88 Sliding Window Attention 各トークンが全体を見るのではなく、直近のkトークンのみにAttentionを計算 するようにすることで、計算量を に削減、KV Cacheも削減できる Longformer(2020)にて確立、LLMにおいてはMistral 7Bで実用化された 2025年現在でも、Gemma 3やgpt-ossなどでSliding Window Attentionと Global(Full) Attentionの組み合わせが実用的に使われている Sparse Attentionによる軽量化 出典)[45] Iz Beltagy et al. (2020), “Longformer: The Long-Document Transformer”, arxiv: 2004.05150 [46] Sebastian Raschka, “Gemma 3 270M From Scratch”, アクセス日:2025/10/21

Slide 89

Slide 89 text

©︎MATSUO-IWASAWA LAB, THE UNIVERSITY OF TOKYO 89 DeepSeek Sparse Attention DeepSeek-V3.2-Expにて実装された特殊なSparse Attentionの手法 軽量な疑似アテンションメカニズムのようなモジュール(Lightning Indexer) によって各トークンの重要度のようなものをスコアリングし、上位kトークン のみをAttentionの計算に利用する Sparse Attentionによる軽量化 出典)[47] DeepSeek-AI (2025), “DeepSeek-V3.2-Exp: Boosting Long-Context Efficiency with DeepSeek Sparse Attention”,アクセス日:2025/10/21

Slide 90

Slide 90 text

©︎MATSUO-IWASAWA LAB, THE UNIVERSITY OF TOKYO 90 Hybrid Attention / Hybrid Architecture 2025年にはAttention部分をLinear AttentionやMambaなどの他の機構に 置き換えたハイブリッドな構成を採用したモデルが増加している • Nemotron-H:TransformerとMamba2を併用 • LFM2:Attentionの代わりに畳み込みベースの機構を利用 • Qwen3-Next:Gated DeltaNetというLinear Attentionを導入 Attention機構の置き換え 出典)[48] Aaron Blakeman et al. (2025), “Nemotron-H: A Family of Accurate and Efficient Hybrid Mamba-Transformer Models”, arxiv: 2504.03624 [49] Omkaar Kamath, “The Illustrated LFM-2 (by Liquid AI)”, アクセス日:2025/10/21 [50] Qwen Team, “Qwen3-Next: Towards Ultimate Training & Inference Efficiency”, アクセス日:2025/10/21

Slide 91

Slide 91 text

©︎MATSUO-IWASAWA LAB, THE UNIVERSITY OF TOKYO 3.2. MLP(FFN)の効率化

Slide 92

Slide 92 text

©︎MATSUO-IWASAWA LAB, THE UNIVERSITY OF TOKYO 92 LLMは一般にパラメータを増やすほど性能が伸びることが知られているが、 モデルサイズが大きくなるほど学習・推論にかかるコストも増加する LLMのパラメータにおいて最も大きな割合を占めるのはFFN層であるため、 最近ではここに対してコストを抑えつつパラメータを増やす工夫がされている ここでは代表的なものとして(Sparse)Mixture of Expertsを取り上げる MLP(FFN)の効率化

Slide 93

Slide 93 text

©︎MATSUO-IWASAWA LAB, THE UNIVERSITY OF TOKYO 93 Sparse Mixture of Experts FFNを複数の小さな”専門家(Expert)”に分けたうえで、入力トークンごとに ”どのExpertを使うべきか”の判断を行う”振り分け役(Router)”も学習する 推論時には、入力に応じてRouterが使う上位k個のExpertを動的に選択しその Expertのみを利用することで、計算コストを抑えながら高い性能を実現する Mixture of Experts 出典)[51] Weilin Cai et al. (2024), “A Survey on Mixture of Experts in Large Language Models”, arxiv: 2407.06204

Slide 94

Slide 94 text

©︎MATSUO-IWASAWA LAB, THE UNIVERSITY OF TOKYO 94 Sparse Mixture of Experts 推論時に同時に使われるExpertは一部であるため、全体のパラメータサイズに 対して推論時に実効的に働くパラメータは限られ、モデル全体のサイズに対し 計算量が小さい(実効的なパラメータをアクティブパラメータという) モデル名には総パラメータとアクティブパラメータを併記されることが多い 例:Qwen3-30B-A3B:総パラメータ≈30B、アクティブ≈3B 一般的に、総パラメータ数と同程度サイズのDenseモデルよりは性能は低く、 アクティブパラメータ数と同程度サイズのDenseモデルよりは性能が高い Mixture of Experts

Slide 95

Slide 95 text

©︎MATSUO-IWASAWA LAB, THE UNIVERSITY OF TOKYO 95 Sparse MoEの実装上の違い Mixtral-8x7Bがオープンモデルとしてリリースされて以降Sparse MoEの 採用例は増え、現在の巨大なオープンモデルではほぼ全てに採用されている 各モデルの実装上の違いとしては主に以下の点が挙げられる • Total Expertの数(小さなExpertを大量 or 大きなExpertを少量) • Active Expertの数(少ないほど計算コスト小だが性能は理論上低下) • Shared Expertの有無・数(必ずアクティブになるExpert) • RouterのLoad Balancingの実装(Auxiliary Lossの有無、実装など) • Routerの設計(Expert Choice / Token Choice) • MoEレイヤの配置(全レイヤに採用、一部は通常のFFNを利用など) 実装上の工夫

Slide 96

Slide 96 text

©︎MATSUO-IWASAWA LAB, THE UNIVERSITY OF TOKYO 96 Sparse MoEの実装上の違い 実装上の工夫 モデル名 公開日 Expert数(Shared含む) (Active / Total) Shared Expert数 その他 Mixtral 8x7B 2023/12 2 / 8 0 オープンモデルにおけるMoEの火付け役 DeepSeekMoE 16B 2024/1 8 / 66 2 Shared Expertの概念を初めて導入 先頭1レイヤのみ通常のDense FFN Qwen1.5 MoE A2.7B 2024/3 8 / 64 4 Qwen-1.8Bからupcycleされて初期化 DeepSeek V2 2024/5 8 / 162 2 DeepSeekMoEを基本的に踏襲 DeepSeek V3 2024/12 9 / 257 1 先頭3レイヤのみ通常のDense FFN Auxiliary-Loss-Free Load Balancingを導入 Llama 4 Maverick 2025/4 2 / 129 1 Dense FFNとMoEを1層ごとに切り替え Expert Choiceを採用したという噂 Qwen3 235B A22B 2025/4 8 / 128 0 Global Batch Load Balancingを導入 Kimi K2 2025/7 9 / 385 1 1T級までパラメータをスケール 先頭1レイヤのみ通常のDense FFN gpt-oss 120b 2025/8 4 / 128 0 非常に小さなActive Expert数で性能を維持 Qwen3-Next 80B A3B 2025/9 11 / 513 1 Hybrid Attentionの導入と併せて非常に軽量

Slide 97

Slide 97 text

©︎MATSUO-IWASAWA LAB, THE UNIVERSITY OF TOKYO 97 Sparse MoEの実装 2025年時点では全体的に以下のような傾向が見られる • 直近公開のフロンティア級オープンモデルはほぼ全てMoEを採用している • Shared Expertは多くのモデルで採用されている • 小さな(fine-grained)Expertを大量に並べる実装が増加している • Active Expert数<

Slide 98

Slide 98 text

©︎MATSUO-IWASAWA LAB, THE UNIVERSITY OF TOKYO 4. 学習・推論の効率化

Slide 99

Slide 99 text

©︎MATSUO-IWASAWA LAB, THE UNIVERSITY OF TOKYO 4.1. 学習の軽量化

Slide 100

Slide 100 text

©︎MATSUO-IWASAWA LAB, THE UNIVERSITY OF TOKYO 100 学習の軽量化 近年、モデルのパラメータサイズが増加するにつれ、学習にかかる計算コスト も増大している 精度劣化を抑えつつ、低コストで学習するための手法が必要となっている 例1:Llama 4 例2:DeepSeek V3 出典)[52] Hugging Face, “meta-llama/Llama-4-Scout-17B-16E”, アクセス日:2025/10/23 [53] Aixin Liu et al. (2024), “DeepSeek-V3 Technical Report”, arxiv: 2412.19437

Slide 101

Slide 101 text

©︎MATSUO-IWASAWA LAB, THE UNIVERSITY OF TOKYO 101 学習の軽量化 ここでは、学習の軽量化の項目として大きく以下の2つを解説する 1. 低精度学習(Low-Precision Training) 学習時の演算の一部を低精度で行うことで、メモリコストや計算 コストを削減する 2. PEFT(Parameter-Efficient Fine-Tuning) LLMの巨大なパラメータのほとんどを凍結し、ごく一部の パラメータのみをファインチューニングすることで軽量に 下流タスクの性能を向上させる

Slide 102

Slide 102 text

©︎MATSUO-IWASAWA LAB, THE UNIVERSITY OF TOKYO 4.1.1. 低精度学習(Low-Precision Training)

Slide 103

Slide 103 text

©︎MATSUO-IWASAWA LAB, THE UNIVERSITY OF TOKYO 103 低精度学習 / Low-Precision Training 学習時の演算の一部をFP8やFP4のような低精度で行うことで、メモリコスト の削減や計算の高速化を実現する 適切に実装できれば精度低下は少ないと言われる一方、Loss Spikeなどの 学習安定性の問題が発現することも多い 主に以下の点で様々な実装が存在する • どの低精度表現を使うか? • FP8(E4M3 or E5M2)、MXFP8、FP4、MXFP4、NVFP4など • モデルのどの部分を低精度で扱うか? • FFN、Attention、Embedding、LM Head、各種正規化層など • どこまでを低精度で持つか? • Weight、Activation、Gradient、Optimizer State、Master Weightなど • Scalingをどうするか? • タイミング:Dynamic Scaling、Delayed Scaling • 粒度:Per-Tensor、Per-Channel、Per-Group

Slide 104

Slide 104 text

©︎MATSUO-IWASAWA LAB, THE UNIVERSITY OF TOKYO 104 Dynamic ScalingとDelayed Scaling 量子化のセクションで説明した通り、パラメータを低い精度に変換する際には 値をscalingして狭い範囲に収める必要がある Dynamic Scaling 毎回の入力の最大からscaleを動的に計算してscalingする Delayed Scaling Dynamic Scalingは毎回scale計算が必要なのでoverheadが大きい 代わりに過去の一定回数の最大を保持しておき、それによってscalingする 計算コストは下がるが精度は悪化する 出典)[5] Kazuki Fujii “FP8 trainingを支える技術 1” アクセス日:2025/10/07

Slide 105

Slide 105 text

©︎MATSUO-IWASAWA LAB, THE UNIVERSITY OF TOKYO 105 FP8 Training FP8 Training 主に行列積部分を対象にFP8で計算し、省メモリ・高速な学習を実現する GradientやOptimizer StateもFP8で持つような実装も可能だが、実践的には 基本的に高精度で保たれることが多い また、forwardにはE4M3を、backwardにはE5M2を使うHybrid FP8の構成を 取られることも多い

Slide 106

Slide 106 text

©︎MATSUO-IWASAWA LAB, THE UNIVERSITY OF TOKYO 106 FP8 Training DeepSeek-V3の例 DeepSeek-V3では以下のような構成でFP8 Trainingが行われた • forward、backwardともにE4M3 FP8を採用 • Embedding、LM Head、Router、正規化層、Attention Operetorは 高精度で保持 • GradientやOptimizer State、Master Weightは高精度で保持 • Dynamic Scaling / Per-Group Scalingを採用 出典)[53] Aixin Liu et al. (2024), “DeepSeek-V3 Technical Report”, arxiv: 2412.19437

Slide 107

Slide 107 text

©︎MATSUO-IWASAWA LAB, THE UNIVERSITY OF TOKYO 107 FP4 Training FP4 Training FP8よりもさらに低精度なFP4をメインに高速で効率的な学習を行う 表現可能な数値範囲が非常に狭いため、単純にFP4で各種計算を行うだけでは 性能面・学習安定性の問題が大きい NVIDIAによってNVFP4 Trainingの論文が発表され、Transformer Engine でのサポートもされたため、今後採用が増えることが期待される

Slide 108

Slide 108 text

©︎MATSUO-IWASAWA LAB, THE UNIVERSITY OF TOKYO 108 FP4 Training NVFP4 Training NVFP4の形式(量子化セクションで先述)を使ってLLMの学習を行う NVIDIAがNemotron-Hと同じアーキテクチャの12Bモデルを10Tトークン学習 し、FP8モデルと同等に近い性能を達成することに成功した 出典)[54] Felix Abecassis et al. (2025), “Pretraining Large Language Models with NVFP4”, arxiv: 2509.25149

Slide 109

Slide 109 text

©︎MATSUO-IWASAWA LAB, THE UNIVERSITY OF TOKYO 109 FP4 Training NVFP4 Trainingにおける工夫 以下のような工夫を取り入れることで精度を保って事前学習に成功したと報告 • 最初の2層と最後の8層のみBF16のまま高精度で保持 • Embedding、LM Head、正規化層、非線形計算、Attentionの一部、Master Weight、Gradient、Optimizer Stateは高精度で保持 • Wgradの行列積に対して16x16のランダムアダマール変換を適用し外れ値を緩和 • Weightには16x16の2次元スケーリングを適用して量子化し、forwardと backwardの一貫性を保持 • 確率的丸め(Stochastic Rounding)をGradientだけに適用 出典)[54] Felix Abecassis et al. (2025), “Pretraining Large Language Models with NVFP4”, arxiv: 2509.25149

Slide 110

Slide 110 text

©︎MATSUO-IWASAWA LAB, THE UNIVERSITY OF TOKYO 4.1.2. PEFT(Parameter-Efficient Fine-Tuning)

Slide 111

Slide 111 text

©︎MATSUO-IWASAWA LAB, THE UNIVERSITY OF TOKYO 111 PEFT(Parameter-Efficient Fine-Tuning) PEFT(Parameter-Efficient Fine-Tuning) LLMを特定のタスクに特化してFTする際、実際には全てのパラメータを学習 せず一部だけを学習しても十分な精度が得られることが知られている パラメータのほとんどを凍結し、モデルのごく一部のパラメータや追加した 軽量なモジュールのみを学習させる手法をPEFTと呼ぶ 学習対象のパラメータによって、PEFTは主に以下のように分類できる • Additive • Adapter / Soft Promptのような学習可能なパラメータを追加し、その部分を学習する • 推論時には追加分のオーバーヘッドが発生する • Selective • 学習済みモデルの一部のパラメータを選択し、その部分のみを学習する • 推論時のオーバーヘッドは存在しないが、動的な切り替えは難しい • Reparameterized • 重みを低ランク分解などで近似的に置き換え、その部分のみを学習する • 推論時には学習したアダプタをマージすることで、オーバーヘッドは発生しない • 複数のアダプタを動的に切り替えることが容易 • Hybrid • 上記手法の組み合わせ

Slide 112

Slide 112 text

©︎MATSUO-IWASAWA LAB, THE UNIVERSITY OF TOKYO 112 PEFT(Parameter-Efficient Fine-Tuning) PEFT(Parameter-Efficient Fine-Tuning) 様々な手法が提案されているが、LLM開発において実用的に使われるのは Reparameterizedに分類されるLoRAおよびその派生手法が圧倒的に主流 この講義では、LoRAとその派生手法に絞って解説する 出典)[55] Zeyu Han et al. (2024), “Parameter-Efficient Fine-Tuning for Large Models: A Comprehensive Survey”, arxiv: 2403.14608

Slide 113

Slide 113 text

©︎MATSUO-IWASAWA LAB, THE UNIVERSITY OF TOKYO 113 LoRA LoRA(Low-Rank Adaptation) 元の重みを とした時、学習後の重み は と表せる ここで、この更新量 を、低ランク行列 と を使って に分解し、この と のみ学習することで近似的に重み更新を行う 元の は 個のパラメータを持っていたのに対し、 個 という非常に少ないパラメータで近似的な学習を行うことができる スケーリング項 を含めると、順伝播は以下のような計算となる 推論時には事前に を重みに加算しておけばオーバーヘッドが発生しない 出典)[56] Edward J. Hu et al. (2021), “LoRA: Low-Rank Adaptation of Large Language Models”, arxiv: 2106.09685

Slide 114

Slide 114 text

©︎MATSUO-IWASAWA LAB, THE UNIVERSITY OF TOKYO 114 LoRA LoRA(Low-Rank Adaptation) が小さいほど学習可能なパラメータは少なくなる 例: の時 元のパラメータ数: LoRA適用時の学習パラメータ数: このように非常に軽量ながら、フルファインチューニングに近い性能を示した 出典)[56] Edward J. Hu et al. (2021), “LoRA: Low-Rank Adaptation of Large Language Models”, arxiv: 2106.09685

Slide 115

Slide 115 text

©︎MATSUO-IWASAWA LAB, THE UNIVERSITY OF TOKYO 115 LoRAの派生手法 QLoRA LoRAの学習は軽量だが、依然として重みの保持等でVRAMを大量に消費する QLoRAでは元の重みを4-bitに量子化・凍結してLoRAアダプタの学習に利用 することで、更なる省メモリでの学習を大きな性能劣化なく実現した 同時に、LLMの重み分布が正規分布に近いという性質に基づいた4-bitのデータ 形式であるNF4(NormalFloat 4-bit)を提案した 出典)[57] Tim Dettmers et al. (2023), “QLoRA: Efficient Finetuning of Quantized LLMs”, arxiv: 2305.14314

Slide 116

Slide 116 text

©︎MATSUO-IWASAWA LAB, THE UNIVERSITY OF TOKYO 116 LoRAの派生手法 LoftQ 元々のLoRAの実装では、低ランク行列Bを0で、Aを正規分布で初期化していた QLoRAでもこれを踏襲していたが、量子化による誤差によりこの初期値と元の 重みの整合性がずれ、性能が劣化することを指摘 LoftQでは、この量子化誤差をLoRAアダプタの初期値で補償するように以下の ような最適化を初期化時に実行し、より適したアダプタの初期値を獲得して それを学習に利用することで、より良い結果を得られることを示した 出典)[58] Yixiao Li et al. (2023), “LoftQ: LoRA-Fine-Tuning-Aware Quantization for Large Language Models”, arxiv: 2310.08659

Slide 117

Slide 117 text

©︎MATSUO-IWASAWA LAB, THE UNIVERSITY OF TOKYO 117 LoRAの派生手法 rsLoRA LoRAにはアダプタ行列のランクrを大きくしてもあまり性能が向上しない という問題があった 元々のLoRAでは、スケーリング項αを使って更新量をα/rでスケールしていた が、この時実際の順伝播・逆伝播のノルムはαだけでなくrにも影響されて比例 して小さくなり、大きなrにおいて学習がうまく進まないことを指摘 代わりに のスケーリング項を提案し、rが大きい場合でも上手く学習 できることを示した 出典)[59] Damjan Kalajdzievski (2023), “A Rank Stabilization Scaling Factor for Fine-Tuning with LoRA”, arxiv: 2312.03732

Slide 118

Slide 118 text

©︎MATSUO-IWASAWA LAB, THE UNIVERSITY OF TOKYO 118 LoRAの派生手法 LoRA+ 元々のLoRAの実装では、2つの低ランク行列BとAに同じ学習率を適用していた LoRA+はこれが非効率的であると指摘し、Bに対してAよりも大きな学習率を 導入することで、コスト0で精度と収束速度の向上を実現できることを示した 出典)[60] Soufiane Hayou et al. (2024), “LoRA+: Efficient Low Rank Adaptation of Large Models”, arxiv: 2402.12354

Slide 119

Slide 119 text

©︎MATSUO-IWASAWA LAB, THE UNIVERSITY OF TOKYO 119 LoRAの派生手法 DoRA LoRAの学習時の重み更新の挙動について、フルファインチューニングと違って 大きさ(Magnitude)と方向(Direction)を比例的に変化させることを発見 DoRAでは各重みを大きさ(Magnitude)と方向(Direction)に分解し、 方向だけをLoRAで分解、大きさはベクトルとして個別に学習することで、 フルファインチューニングに近い学習挙動と精度を得られることを示した 出典)[61] Shih-Yang Liu et al. (2024), “DoRA: Weight-Decomposed Low-Rank Adaptation”, arxiv: 2402.09353

Slide 120

Slide 120 text

©︎MATSUO-IWASAWA LAB, THE UNIVERSITY OF TOKYO 4.2. 推論の効率化

Slide 121

Slide 121 text

©︎MATSUO-IWASAWA LAB, THE UNIVERSITY OF TOKYO 121 推論の効率化 LLMのモデルサイズの巨大化に伴い、必要な計算量も大きくなっている これに対し、これまで説明したようなモデル自体の軽量化や効率化だけでなく 、バッチ処理やメモリアクセスの効率化などシステム的な改善も重要となる LLMのServingにおいては主に以下の3つの指標がカギとなる 1. TTFT(Time To First Token) リクエスト受信から最初のトークン生成までにかかる時間 2. TPOT(Time Per Output Token) / ITL(Inter-Token Latency) 最初のトークン生成後の各トークン出力の間にかかる時間 3. Throughput 全リクエスト合計での秒間あたりの出力トークン数 これらは多くの場合トレードオフの関係にあり、用途に応じて最適化が必要 例:TTFTを優先するとTPOTが悪化、Throughputを優先するとTTFTが悪化

Slide 122

Slide 122 text

©︎MATSUO-IWASAWA LAB, THE UNIVERSITY OF TOKYO 122 推論の効率化 ここでは代表的な推論効率化手法として以下のようなものについて解説する • Continuous Batching • PagedAttention • Prefix Caching • Chunked Prefill • Prefill Decode Disaggregation • Speculative Decoding

Slide 123

Slide 123 text

©︎MATSUO-IWASAWA LAB, THE UNIVERSITY OF TOKYO 123 Continuous Batching LLMの推論では、まず入力プロンプトを処理(Prefill)した後、1トークンずつ 反復的に生成(Decode)するが、生成長はリクエストによって様々である 従来のStatic Batching(左図)では特定のバッチサイズでリクエストを束ねる が、最長リクエストの生成が完了するまで待つためその間GPUが遊んでしまう これに対し、Continuous Batching(右図)では1反復ごとにバッチを見直し、 処理が終わったリクエストをすぐにキューにあるリクエストと入れ替えること でGPU利用率を高める Static Batching Continuous Batching 出典)[62] Cade Daniel et al. “How continuous batching enables 23x throughput in LLM inference while reducing p50 latency” アクセス日:2025/10/26

Slide 124

Slide 124 text

©︎MATSUO-IWASAWA LAB, THE UNIVERSITY OF TOKYO 124 PagedAttention 従来のKVキャッシュマネジメントでは、物理メモリの連続領域にKVキャッシュを 確保する必要があった 実際の出力長は予測できないため、従来は各リクエストの最大シーケンス長分の 連続チャンクを確保していたが、この時以下の3つのメモリ浪費が発生する • Reserved領域 事前に予約されたチャンク中のまだ利用されていない領域が生成途中で 未使用のまま他リクエストから使えない状態で確保されてしまう • Internal Fragmentation(内部断片化) 最大長ベースで過剰確保したが生成が早期に終わり一度も使われなかった領域が 純粋な無駄になる(リクエスト完了後に初めて分かる) • External Fragmentation(外部断片化) サイズの異なるチャンクの割り当て・解放を繰り返す中で、メモリ空間に小さな穴 ができてしまい、合計の空きは十分でも連続領域が足らずに新規割り当てが出来な くなってしまう 出典)[63] Woosuk Kwon et al. (2023), “Efficient Memory Management for Large Language Model Serving with PagedAttention” arxiv: 2309.06180

Slide 125

Slide 125 text

©︎MATSUO-IWASAWA LAB, THE UNIVERSITY OF TOKYO 125 PagedAttention vLLMで提案されたPagedAttentionでは、KVキャッシュをKVブロックという 特定のサイズのブロックに分割し、論理空間と物理空間を紐づけるブロック テーブルによってこれを管理することで、論理空間では連続的・物理空間では 非連続的なKVキャッシュ管理を実現し、断片化を大きく減らした これにより、以下の点が効率化される • Reserved領域は必要に応じてブロックサイズごとに確保していけば良い ため、余分な確保領域が小さく、また内部断片化も小さくなる • 全体を一定のブロックサイズで区切って非連続的に確保できるため、 物理空間上での外部断片化の問題を解消できる • 複数のリクエストで同じKVブロックを共有することができる 出典)[63] Woosuk Kwon et al. (2023), “Efficient Memory Management for Large Language Model Serving with PagedAttention” arxiv: 2309.06180

Slide 126

Slide 126 text

©︎MATSUO-IWASAWA LAB, THE UNIVERSITY OF TOKYO 126 Prefix Caching LLMのKVキャッシュは過去トークンにのみ依存するため、同一のPrefixを持つ トークン列に対するKVキャッシュの値は何度計算しても同じである そのため、過去のリクエスト処理時に計算したKVキャッシュ(KVブロック) をメモリに余裕がある間は保持し、全く同じPrefixを持つ別リクエストがきた 時に過去の計算結果を再利用することで、Prefillの計算量を大きく削減できる これにより、再利用できた時のTTFTを非常に小さくできる 出典)[64] Daehyun Ahn et al. “[vLLM vs TensorRT-LLM] #12. Automatic Prefix Caching” アクセス日:2025/10/26

Slide 127

Slide 127 text

©︎MATSUO-IWASAWA LAB, THE UNIVERSITY OF TOKYO 127 Chunked Prefill vLLMやTensorRT-LLMのような推論エンジンでは、複数リクエストの処理時に 効率化のためにPrefillとDecodeを同時に1つのバッチで処理する この時非常に長い入力プロンプトが入ってくると、Prefillを1ステップで行う ような実装ではPrefillの時間が長くなり、他リクエスト(=他ユーザー)の 生成が遅延しTPOTが悪化する Chunked Prefillでは入力を特定の長さのChunkに分け、ChunkごとにPrefill を行うことで、全体のTPOTを改善する(ただし、TTFTはやや悪化する) 出典)[65] Amr Elmeleegy et al. “Streamlining AI Inference Performance and Deployment with NVIDIA TensorRT-LLM Chunked Prefill” アクセス日:2025/10/26

Slide 128

Slide 128 text

©︎MATSUO-IWASAWA LAB, THE UNIVERSITY OF TOKYO 128 Prefill Decode Disaggregation Prefillは入力トークン列に対してナイーブにAttentionを計算する必要がある ためcompute-boundであるのに対し、Decodeは各iterationでKVキャッシュ を読み書きしながら生成するためmemory-boundである 従来の推論サービスはこの2つを同バッチで処理していたが、この2つは 特性が異なるため、同時に処理するのは本質的に効率が悪い Prefill Decode DisaggregationではPrefillとDecodeを行うGPUを分け、Prefill 結果のKVをDecodeワーカー側に行うようにこの2つを分離し、効率化を行う また、それぞれのワーカーを個別にスケーリングできる利点もある 出典)[66] Amr Elmeleegy et al. “NVIDIA Dynamo, A Low-Latency Distributed Inference Framework for Scaling Reasoning AI Models” アクセス日:2025/10/26

Slide 129

Slide 129 text

©︎MATSUO-IWASAWA LAB, THE UNIVERSITY OF TOKYO 129 Speculative Decoding 通常、LLMの生成では1トークンの出力ごとに1回のforward計算が必要となる この計算コストは高いため、Speculative Decodingでは小型のDraft Model( 下書きモデル)を使って数トークン先までの仮出力を生成し、 大型のTarget Model(本番モデル)でそれを検証して受理または却下する この時、検証はまとめて1回のforwardで行えるため、大型モデルの計算回数 を 減らすことができる 全体の計算回数は増えるが、memory-boundな状況ではThroughput改善が 期待される(ただし、TTFTは悪化する) 出典)[67] BentoML “Speculative decoding” アクセス日:2025/10/26 [68] Aratako “vLLMのSpeculative Decodingによる推論高速化を試す” アクセス日:2025/10/26

Slide 130

Slide 130 text

©︎MATSUO-IWASAWA LAB, THE UNIVERSITY OF TOKYO 5. まとめ

Slide 131

Slide 131 text

©︎MATSUO-IWASAWA LAB, THE UNIVERSITY OF TOKYO 131 まとめ LLMの学習・推論にかかるコストは非常に大きく、様々な要素から 多面的に軽量化・効率化を行う必要がある • モデルの圧縮 • アーキテクチャの工夫 • 学習 / 推論の効率化 精度劣化に注意しつつ、出来るだけ効率的な学習・推論環境を構築 することで、実サービス向けのコスト最適化を行うことができる

Slide 132

Slide 132 text

©︎MATSUO-IWASAWA LAB, THE UNIVERSITY OF TOKYO 132 Reference [1] Nouamane Tazi et al. (2025), “The Ultra-Scale Playbook: Training LLMs on GPU Clusters”, アクセス日:2025/11/5 [2] DeepSeek-AI, “Day 6: One More Thing, DeepSeek-V3/R1 Inference System Overview”, アクセス日:2025/10/30 [3] NVIDIA, “Product Carbon Footprint (PCF) Summary for NVIDIA HGX B200”, アクセス日:2025/10/15 [4] NUS School of Computing “Data Representation and Number Systems” アクセス日:2025/11/19 [5] Maarten Grootendorst “A Visual Guide to Quantization”, アクセス日:2025/10/07 [6] Kazuki Fujii “FP8 trainingを支える技術 1”, アクセス日:2025/10/07 [7] Hugging Face “Quantization concepts”, アクセス日:2025/10/07 [8] Yuma Ichikawa “NLPコロキウム20251022_超効率化への挑戦: LLM 1bit量子化のロードマップ”, アクセス日:2025/10/30 [9] Tim Dettmers et al. (2022), “LLM.int8(): 8-bit Matrix Multiplication for Transformers at Scale”, arxiv: 2208.07339 [10] Guangxuan Xiao et al. (2022), “SmoothQuant: Accurate and Efficient Post-Training Quantization for Large Language Models”, arxiv: 2211.10438 [11] Elias Frantar et al. (2022), “GPTQ: Accurate Post-Training Quantization for Generative Pre-trained Transformers”, arxiv: 2210.17323 [12] Elias Frantar et al. (2022), “Optimal Brain Compression: A Framework for Accurate Post-Training Quantization and Pruning”, arxiv: 2208.11580 [13] Ji Lin et al. (2023), “AWQ: Activation-aware Weight Quantization for LLM Compression and Acceleration”, arxiv: 2306.00978 [14] Eduardo Alvarez et al. (2025), “Introducing NVFP4 for Efficient and Accurate Low-Precision Inference”, アクセス日:2025/10/15 [15] Zirui Liu et al. (2024), “KIVI: A Tuning-Free Asymmetric 2bit Quantization for KV Cache”, arxiv: 2402.02750 [16] Coleman Hooper et al. (2024), “KVQuant: Towards 10 Million Context Length LLM Inference with KV Cache Quantization”, arxiv: 2401.18079 [17] Amir Gholami et al. (2021), “A Survey of Quantization Methods for Efficient Neural Network Inference”, arxiv: 2103.13630 [18] Zechun Liu et al. (2023), “LLM-QAT: Data-Free Quantization Aware Training for Large Language Models”, arxiv: 2305.17888 [19] Mengzhao Chen et al. (2024), “EfficientQAT: Efficient Quantization-Aware Training for Large Language Models”, arxiv: 2407.11062 [20] Hongyu Wang et al. (2023), “BitNet: Scaling 1-bit Transformers for Large Language Models”, arxiv: 2310.11453

Slide 133

Slide 133 text

©︎MATSUO-IWASAWA LAB, THE UNIVERSITY OF TOKYO 133 Reference [21] Shuming Ma et al. (2024), “The Era of 1-bit LLMs: All Large Language Models are in 1.58 Bits”, arxiv: 2402.17764 [22] https://github.com/bitsandbytes-foundation/bitsandbytes, アクセス日:2025/10/15 [23] https://github.com/vllm-project/llm-compressor, アクセス日:2025/10/15 [24] https://github.com/ggml-org/llama.cpp/wiki/Tensor-Encoding-Schemes, アクセス日:2025/10/15 [25] Meta, “Llama 3.2: Revolutionizing edge AI and vision with open, customizable models”, アクセス日:2025/10/18 [26] Shuji Suzuki, “Pruningによる小型LLM PLaMo 2 2Bの開発”, アクセス日:2025/10/18 [27] Song Han, “EfficientML.ai Lecture 03: Pruning and Sparsity”, アクセス日:2025/10/18 [28] Jeff Pool et al, “Accelerating Inference with Sparsity Using the NVIDIA Ampere Architecture and NVIDIA TensorRT”, アクセス日:2025/10/18 [29] Elias Frantar et al. (2023), “SparseGPT: Massive Language Models Can Be Accurately Pruned in One-Shot”, arxiv: 2301.00774 [30] Xin Men et al. (2024), “ShortGPT: Layers in Large Language Models are More Redundant Than You Expect”, arxiv: 2403.03853 [31] Andrey Gromov et al. (2024), “The Unreasonable Ineffectiveness of the Deeper Layers”, arxiv: 2403.17887 [32] Xudong Lu et al. (2024), “Not All Experts are Equal: Efficient Expert Pruning and Skipping for Mixture-of-Experts Large Language Models”, arxiv: 2402.14800 [33] Sharath Sreenivas et al. (2024), “Compact Language Models via Pruning and Knowledge Distillation”, arxiv: 2407.14679 [34] Sharath Sreenivas et al. (2024), “How to Prune and Distill Llama-3.1 8B to an NVIDIA Llama-3.1-Minitron 4B Model”, アクセス日:2025/10/18 [35] Jianping Gou et al. (2006), “Knowledge Distillation: A Survey”, arxiv:2006.05525 [36] Kevin Lu et al. (2025), “On-Policy Distillation”, アクセス日:2025/11/5 [37] Rishabh Agarwal et al. (2023), “On-Policy Distillation of Language Models: Learning from Self-Generated Mistakes”, arxiv: 2306.13649 [38] Daya Guo et al. (2025), “DeepSeek-R1: Incentivizing Reasoning Capability in LLMs via Reinforcement Learning”, arxiv: 2501.12948 [39] An Yang et al. (2025), “Qwen3 Technical Report”, arxiv: 2505.09388

Slide 134

Slide 134 text

©︎MATSUO-IWASAWA LAB, THE UNIVERSITY OF TOKYO 134 Reference [40] Ashish Vaswani et al. (2017), “Attention Is All You Need”, arxiv: 1706.03762 [41] Noam Shazeer (2019), “Fast Transformer Decoding: One Write-Head is All You Need”, arxiv: 1911.02150 [42] shubham ashok gandhi, “Multi-Head vs Multi-Query vs Grouped Query Attention”, アクセス日:2025/10/21 [43] Joshua Ainslie et al. (2023), “GQA: Training Generalized Multi-Query Transformer Models from Multi-Head Checkpoints”, arxiv: 2305.13245 [44] Aixin Liu et al. (2024), “DeepSeek-V2: A Strong, Economical, and Efficient Mixture-of-Experts Language Model”, arxiv: 2405.04434 [45] Iz Beltagy et al. (2020), “Longformer: The Long-Document Transformer”, arxiv: 2004.05150 [46] Sebastian Raschka, “Gemma 3 270M From Scratch”, アクセス日:2025/10/21 [47] DeepSeek-AI (2025), “DeepSeek-V3.2-Exp: Boosting Long-Context Efficiency with DeepSeek Sparse Attention”,アクセス日:2025/10/21 [48] Aaron Blakeman et al. (2025), “Nemotron-H: A Family of Accurate and Efficient Hybrid Mamba-Transformer Models”, arxiv: 2504.03624 [49] Omkaar Kamath, “The Illustrated LFM-2 (by Liquid AI)”, アクセス日:2025/10/21 [50] Qwen Team, “Qwen3-Next: Towards Ultimate Training & Inference Efficiency”, アクセス日:2025/10/21 [51] Weilin Cai et al. (2024), “A Survey on Mixture of Experts in Large Language Models”, arxiv: 2407.06204 [52] Hugging Face, “meta-llama/Llama-4-Scout-17B-16E”, アクセス日:2025/10/23 [53] Aixin Liu et al. (2024), “DeepSeek-V3 Technical Report”, arxiv: 2412.19437 [54] Felix Abecassis et al. (2025), “Pretraining Large Language Models with NVFP4”, arxiv: 2509.25149 [55] Zeyu Han et al. (2024), “Parameter-Efficient Fine-Tuning for Large Models: A Comprehensive Survey”, arxiv: 2403.14608 [56] Edward J. Hu et al. (2021), “LoRA: Low-Rank Adaptation of Large Language Models”, arxiv: 2106.09685 [57] Tim Dettmers et al. (2023), “QLoRA: Efficient Finetuning of Quantized LLMs”, arxiv: 2305.14314 [58] Yixiao Li et al. (2023), “LoftQ: LoRA-Fine-Tuning-Aware Quantization for Large Language Models”, arxiv: 2310.08659 [59] Damjan Kalajdzievski (2023), “A Rank Stabilization Scaling Factor for Fine-Tuning with LoRA”, arxiv: 2312.03732

Slide 135

Slide 135 text

©︎MATSUO-IWASAWA LAB, THE UNIVERSITY OF TOKYO 135 Reference [60] Soufiane Hayou et al. (2024), “LoRA+: Efficient Low Rank Adaptation of Large Models”, arxiv: 2402.12354 [61] Shih-Yang Liu et al. (2024), “DoRA: Weight-Decomposed Low-Rank Adaptation”, arxiv: 2402.09353 [62] Cade Daniel et al. “How continuous batching enables 23x throughput in LLM inference while reducing p50 latency” アクセス日:2025/10/26 [63] Woosuk Kwon et al. (2023), “Efficient Memory Management for Large Language Model Serving with PagedAttention” arxiv: 2309.06180 [64] Daehyun Ahn et al. “[vLLM vs TensorRT-LLM] #12. Automatic Prefix Caching” アクセス日:2025/10/26 [65] Amr Elmeleegy et al. “Streamlining AI Inference Performance and Deployment with NVIDIA TensorRT-LLM Chunked Prefill” アクセス日 :2025/10/26 [66] Amr Elmeleegy et al. “NVIDIA Dynamo, A Low-Latency Distributed Inference Framework for Scaling Reasoning AI Models” アクセス日 :2025/10/26 [67] BentoML “Speculative decoding” アクセス日:2025/10/26 [68] Aratako “vLLMのSpeculative Decodingによる推論高速化を試す” アクセス日:2025/10/26