已合并
[Doc] 新增量化模式术语词条与量化模式详档 #818
[Doc] 新增量化模式术语词条与量化模式详档 #818
已合并
rookie_hongchuan创建于 25 天前
29 个文件变更+2295-1
@@ -4,7 +4,9 @@
4|--------|------|4|--------|------|
5| `model` | 《[大模型支持矩阵](model/README.md)》 |5| `model` | 《[大模型支持矩阵](model/README.md)》 |
6| `quantization_algorithms` | 《[量化算法](quantization_algorithms/README.md)》 |6| `quantization_algorithms` | 《[量化算法](quantization_algorithms/README.md)》 |
7+| `quantization_basic` | 《[量化基础](quantization_basic/README.md)》 |
8+| `quantization_mode` | 《[量化模式](quantization_mode/README.md)》 |
7| `tuning_strategies` | 《[调优策略](tuning_strategies/README.md)》 |9| `tuning_strategies` | 《[调优策略](tuning_strategies/README.md)》 |
8| `quantization_format` | 《[量化格式](quantization_format/README.md)》 |10| `quantization_format` | 《[量化格式](quantization_format/README.md)》 |
9-| `ptq` | 《[训练后量化](ptq/convert/usage.md)》 |11+| `ptq` | 《[训练后量化](ptq/convert/usage_weight_conversion.md)》 |
10| `parallel` | 《[多卡并行](parallel/README.md)》|12| `parallel` | 《[多卡并行](parallel/README.md)》|
@@ -0,0 +1,52 @@
1+# 量化基础 量化术语百科词条
2+ 
3+<!-- waiver: G01 原因:本文件为量化基础目录的索引文档,不适用 term_<english_name>.md 词条命名 -->
4+<!-- waiver: S01 原因:索引/类别文档采用目录结构(术语列表 / 模式清单),不适用词条模板的「2. 词条介绍」必填章节,依 01 清单 S03 组织自身结构 -->
5+ 
6+> **英文名称**:Quantization Basics
7+> **应用领域**:大语言模型量化压缩、推理加速、KVCache 压缩
8+ 
9+---
10+ 
11+## 一句话定位
12+ 
13+本目录独立成篇,集中介绍量化领域的基础术语,是阅读[量化模式](../quantization_mode/README.md)等知识词条的前置知识,按术语拆分为以下词条:
14+ 
15+| 术语 | 词条 | 内容 |
16+|------|------|------|
17+| 量化 / 反量化 | [量化与反量化](term_quantization.md) | 量化/反量化公式、scale/zero_point、静态/动态、量化粒度、对称性 |
18+| 数据类型 FP16 / BF16 | [数据类型:FP16 / BF16](term_fp16_bf16.md) | 16位浮点格式,未量化基准 |
19+| 数据类型 INT8 | [数据类型:INT8](term_int8.md) | 8位整数格式 |
20+| 数据类型 INT4 | [数据类型:INT4](term_int4.md) | 4位整数格式 |
21+| 数据类型 FP8 | [数据类型:FP8(E4M3)](term_fp8.md) | 8位浮点格式 |
22+| 数据类型 MXFP8 / MXFP4 | [数据类型:MXFP8 / MXFP4](term_mxfp.md) | 块级共享指数格式 |
23+ 
24+建议按顺序阅读:先读[量化与反量化](term_quantization.md)理解量化机制,再按需查阅各数据类型词条;量化带来的计算收益(整数 GEMM)在[量化模式](../quantization_mode/README.md)中展开。
25+ 
26+---
27+ 
28+## WxAy 记法
29+ 
30+模式名常用 `WxAy` 记法(如 W8A8、W4A4)表示[线性层量化](../quantization_mode/linear_layer_quantization/README.md)中**权重(W)与激活(A)的位宽组合**,其中 `y` 是可选后缀,表示**数据类型或参数获取方式**(如 W8A8 静态、W4A4 MX 动态)。完整说明见[量化模式](../quantization_mode/README.md)「如何理解一个量化模式」一节。
31+ 
32+---
33+ 
34+## 关联流程
35+ 
36+- 《[一键量化完整指南](../../user_guide/usage_quick_quantization.md)》:量化任务的执行入口。
37+- 《[量化精度调优指南](../../user_guide/process_quantization_precision_tuning.md)》:数据类型与量化方案导致的精度问题可通过该流程排查与调优。
38+ 
39+---
40+ 
41+## 关联词条
42+ 
43+- [量化模式](../quantization_mode/README.md):目标阅读对象,本目录词条是其前置基础知识。
44+- [线性层量化](../quantization_mode/linear_layer_quantization/README.md):下位概念,WxAy 记法与 GEMM 的具体应用。
45+- [KVCache 量化](../quantization_mode/kv_cache_quantization/README.md):下位概念,量化在缓存 K/V 张量上的应用。
46+- [FA 量化](../quantization_mode/fa_quantization/README.md):下位概念,量化在注意力矩阵运算上的应用。
47+ 
48+---
49+ 
50+## 参考资料
51+ 
52+1. 《[量化模式](../quantization_mode/README.md)》
@@ -0,0 +1,57 @@
1+# 数据类型:FP16 / BF16 量化术语百科词条
2+ 
3+> **词条类别**:量化基础概念([量化基础](../README.md))
4+> **英文名称**:FP16 / BF16(16-bit Floating Point)
5+> **应用领域**:权重/激活的未量化基准、高精度保留场景
6+ 
7+---
8+ 
9+## 1. 概述
10+ 
11+**FP16****BF16** 都是 16位浮点格式、各占 2字节/元素,是模型权重与激活的**常见未量化格式**,也是各类量化"减半 / 1/4"压缩对比的**基准**——[INT8](term_int8.md) 的"访存减半"即相对它们而言。FP16 尾数精度高、可表示范围与 FP32 相近;BF16 的指数范围与 FP32 完全相同、但尾数精度更低。量化模式常以它们作为"不量化"的高精度基线,如 [W8A16 静态量化](../quantization_mode/linear_layer_quantization/term_w8a16_static.md) 的激活保持 FP16。
12+ 
13+---
14+ 
15+## 2. 词条介绍
16+ 
17+### 定义
18+ 
19+- **FP16**:1符号 + 5指数 + 10尾数。指数范围与 FP32 相近(最大有限值约 65504),10位尾数保证较高的数值精度。
20+- **BF16**:1符号 + 8指数 + 7尾数。指数范围与 FP32 完全相同(可表示到约 3.4×10^38),但尾数仅 7位、局部精度低于 FP16;适合需要大动态范围、可牺牲局部精度的训练/推理场景。
21+ 
22+两者位宽相同(均为 2字节),对某个张量的占用与访存一致;区别只在"动态范围"与"局部精度"的取舍。相比 8位格式([INT8](term_int8.md)、[FP8](term_fp8.md)),它们占 2字节、是这些格式的两倍,因此通常作为量化前的原始存储与带宽基线。
23+ 
24+### 使用场景
25+ 
26+- **未量化基线**:量化前的权重/激活默认常为 16位浮点(FP16 或 BF16,均 2字节),各类量化的压缩比、带宽收益都以它为基准衡量。
27+- **高精度保留层**:对量化误差特别敏感的激活(如 [W8A16 静态量化](../quantization_mode/linear_layer_quantization/term_w8a16_static.md) 的激活)保持 FP16,不参与量化。
28+- **FP16 与 BF16 的选择**:需要大动态范围用 BF16,需要局部精度用 FP16。训练与推理的数值格式通常保持一致——训练一般用 BF16(动态范围与 FP32 相同),推理因此也默认 BF16。
29+ 
30+### 与相关类型对比
31+ 
32+- 相比 [INT8](term_int8.md):FP16/BF16 是未量化浮点、零量化误差,但占 2字节、访存与计算开销翻倍;INT8 以一半位宽换取一半存储/带宽。
33+- 相比 [FP8(E4M3)](term_fp8.md):FP16/BF16 动态范围更大(BF16 与 FP32 相同)、精度更稳;但位宽翻倍、压缩收益更小。
34+- 相比 [MXFP8](term_mxfp.md):FP16/BF16 每个元素独立完整表示、无块级共享参数;MXFP8 用块级共享指数在 8位内保留浮点动态范围。
35+ 
36+---
37+ 
38+## 3. 关联流程
39+ 
40+- 《[一键量化完整指南](../../user_guide/usage_quick_quantization.md)》:量化任务的执行入口。
41+- 《[量化精度调优指南](../../user_guide/process_quantization_precision_tuning.md)》:数据类型与量化方案导致的精度问题可通过该流程排查与调优。
42+ 
43+---
44+ 
45+## 4. 关联词条
46+ 
47+- [量化基础](README.md):上位概念,本词条所属目录。
48+- [量化与反量化](term_quantization.md):配套术语,量化公式以 FP16/BF16 张量为输入。
49+- [数据类型 INT8](term_int8.md):配套术语,INT8 的压缩收益以 FP16/BF16 为基准衡量。
50+- [W8A16 静态量化](../quantization_mode/linear_layer_quantization/term_w8a16_static.md):配套模式,激活保持 FP16 不量化。
51+ 
52+---
53+ 
54+## 5. 参考文档
55+ 
56+1. Kalamkar D et al. A Study of BFLOAT16 for Deep Learning Training. arXiv:1905.12322. https://arxiv.org/abs/1905.12322
57+2. 《[量化模式](../quantization_mode/README.md)》
@@ -0,0 +1,54 @@
1+# 数据类型:FP8(E4M3) 量化术语百科词条
2+ 
3+> **词条类别**:量化基础概念([量化基础](../README.md))
4+> **英文名称**:FP8(8-bit Floating Point,E4M3)
5+> **应用领域**:权重、激活量化
6+ 
7+---
8+ 
9+## 1. 概述
10+ 
11+**FP8** 是 8位浮点格式,本词条介绍其中的 **E4M3** 变体:**1符号 + 4指数 + 3尾数**,可表示范围约 $\pm448$(emax=8)。它像整数一样只有 8位、访存为 [FP16/BF16](term_fp16_bf16.md) 的一半,同时保留浮点动态范围,适合分布跨度大、对整数舍入敏感的场景。
12+ 
13+---
14+ 
15+## 2. 词条介绍
16+ 
17+### 定义
18+ 
19+E4M3 的位分配为:1位符号 + 4位指数 + 3位尾数,共 8位。4位指数提供较大的动态范围(最大约 448),3位尾数保证基本精度。
20+ 
21+### 使用场景
22+ 
23+- **权重与激活**:如 [W8A8 FP8 动态量化](../quantization_mode/linear_layer_quantization/term_w8a8_fp8_dynamic.md)。
24+- **离群值敏感场景**:相比 INT8 均匀分档,E4M3 浮点格式对宽动态范围与离群值更耐受,无需先做离群值抑制。
25+- 代价是依赖支持 FP8 GEMM 的硬件算子,生态面窄于 INT8。
26+ 
27+### 与相关类型对比
28+ 
29+- 相比 [INT8](term_int8.md):同为 8位、访存收益一致,但 E4M3 保留浮点动态范围、对离群值更耐受;代价是 FP8 硬件算子支持面窄。
30+- 相比 [MXFP8](term_mxfp.md):FP8 每个元素独立完整表示;MXFP8 每32元素共享一个 E8M0 指数、缩放参数开销更低。
31+ 
32+---
33+ 
34+## 3. 关联流程
35+ 
36+- 《[一键量化完整指南](../../user_guide/usage_quick_quantization.md)》:量化任务的执行入口。
37+- 《[量化精度调优指南](../../user_guide/process_quantization_precision_tuning.md)》:数据类型与量化方案导致的精度问题可通过该流程排查与调优。
38+ 
39+---
40+ 
41+## 4. 关联词条
42+ 
43+- [量化基础](README.md):上位概念,本词条所属目录。
44+- [量化与反量化](term_quantization.md):配套术语,FP8 量化的数学机制。
45+- [数据类型 MXFP8/MXFP4](term_mxfp.md):同类算法,同为 8bit 浮点格式。
46+- [GEMM](../quantization_mode/term_gemm.md):配套术语,FP8 输入走低精度浮点 GEMM。
47+- [W8A8 FP8 动态量化](../quantization_mode/linear_layer_quantization/term_w8a8_fp8_dynamic.md):配套模式,FP8 E4M3 的典型实现。
48+ 
49+---
50+ 
51+## 5. 参考文档
52+ 
53+1. Kuzmin A et al. FP8 Formats for Deep Learning. arXiv:2209.05433. https://arxiv.org/abs/2209.05433
54+2. 《[量化模式](../quantization_mode/README.md)》
@@ -0,0 +1,52 @@
1+# 数据类型:INT4 量化术语百科词条
2+ 
3+> **词条类别**:量化基础概念([量化基础](../README.md))
4+> **英文名称**:INT4(4-bit Integer)
5+> **应用领域**:权重量化、超低比特压缩
6+ 
7+---
8+ 
9+## 1. 概述
10+ 
11+**INT4** 是 4位有符号整数,范围 $-8\sim7$,0.5字节/元素。相比 [INT8](term_int8.md) 压缩更大(权重为 [FP16/BF16](term_fp16_bf16.md) 的 1/4),但分辨率低,通常配合分组量化与专门的重构算法控制精度损失。
12+ 
13+---
14+ 
15+## 2. 词条介绍
16+ 
17+### 定义
18+ 
19+INT4 占 4位,可表示 $-8\sim7$ 共 16个整数档位。按[量化公式](term_quantization.md)映射到这些档位后存储,即为 INT4 量化。
20+ 
21+### 使用场景
22+ 
23+- **权重**:如 [W4A8 动态量化](../quantization_mode/linear_layer_quantization/term_w4a8_dynamic.md) 的 INT4 权重、[W4A4 动态量化](../quantization_mode/linear_layer_quantization/term_w4a4_dynamic.md)。
24+- **配合重构算法**:INT4 精度风险高,常配合分组量化与权重重构(如 [GPTQ](../quantization_algorithms/gptq/gptq.md)、[LAOS](../quantization_algorithms/laos/laos.md))降低损失。
25+ 
26+### 与相关类型对比
27+ 
28+- 相比 [INT8](term_int8.md):位宽减半、压缩更大;但分辨率低、精度风险高,一般只用于权重、不用于激活。
29+- 相比 [MXFP4](term_mxfp.md):INT4 均匀分档无浮点动态范围,对离群值更敏感;MXFP4 用块级共享指数保留动态范围。
30+ 
31+---
32+ 
33+## 3. 关联流程
34+ 
35+- 《[一键量化完整指南](../../user_guide/usage_quick_quantization.md)》:量化任务的执行入口。
36+- 《[量化精度调优指南](../../user_guide/process_quantization_precision_tuning.md)》:数据类型与量化方案导致的精度问题可通过该流程排查与调优。
37+ 
38+---
39+ 
40+## 4. 关联词条
41+ 
42+- [量化基础](README.md):上位概念,本词条所属目录。
43+- [量化与反量化](term_quantization.md):配套术语,INT4 量化的数学机制。
44+- [GEMM](../quantization_mode/term_gemm.md):配套术语,INT4 输入可走整数 GEMM。
45+- [W4A8 动态量化](../quantization_mode/linear_layer_quantization/term_w4a8_dynamic.md):配套模式,INT4 权重 + INT8 激活的典型实现。
46+ 
47+---
48+ 
49+## 5. 参考文档
50+ 
51+1. Frantar E et al. GPTQ: Accurate Post-Training Quantization for Generative Pre-trained Transformers. arXiv:2210.17323. https://arxiv.org/abs/2210.17323
52+2. 《[量化模式](../quantization_mode/README.md)》
@@ -0,0 +1,55 @@
1+# 数据类型:INT8 量化术语百科词条
2+ 
3+> **词条类别**:量化基础概念([量化基础](../README.md))
4+> **英文名称**:INT8(8-bit Integer)
5+> **应用领域**:权重、激活、KVCache 量化
6+ 
7+---
8+ 
9+## 1. 概述
10+ 
11+**INT8** 是 8位有符号整数,范围 $-128\sim127$,1字节/元素。它是量化的**主流格式**:存储与带宽为 [FP16/BF16](term_fp16_bf16.md) 的一半,且整数格式可走 [GEMM](../quantization_mode/term_gemm.md) 加速,权重、激活、KVCache 均可使用。
12+ 
13+---
14+ 
15+## 2. 词条介绍
16+ 
17+### 定义
18+ 
19+INT8 占 8位,可表示 $-128\sim127$ 共 256个整数档位。对浮点张量按[量化公式](term_quantization.md)映射到这些档位后存储,即为 INT8 量化。
20+ 
21+### 使用场景
22+ 
23+- **权重**:如 [W8A8 静态量化](../quantization_mode/linear_layer_quantization/term_w8a8_static.md)、[W8A8 动态量化](../quantization_mode/linear_layer_quantization/term_w8a8_dynamic.md) 的权重。
24+- **激活**:配合动态量化(per-token),如 [W8A8 动态量化](../quantization_mode/linear_layer_quantization/term_w8a8_dynamic.md) 的激活。
25+- **KVCache**:如 [KVCache-PerChannel 量化](../quantization_mode/kv_cache_quantization/term_kv_cache_perchannel.md)。
26+ 
27+### 与相关类型对比
28+ 
29+- 相比 [FP8(E4M3)](term_fp8.md):INT8 是均匀分档、无浮点动态范围,对离群值更敏感;但硬件算子生态更成熟。
30+- 相比 [INT4](term_int4.md):分辨率更高、精度更稳;但位宽翻倍、压缩幅度较小。
31+ 
32+---
33+ 
34+## 3. 关联流程
35+ 
36+- 《[一键量化完整指南](../../user_guide/usage_quick_quantization.md)》:量化任务的执行入口。
37+- 《[量化精度调优指南](../../user_guide/process_quantization_precision_tuning.md)》:数据类型与量化方案导致的精度问题可通过该流程排查与调优。
38+ 
39+---
40+ 
41+## 4. 关联词条
42+ 
43+- [量化基础](README.md):上位概念,本词条所属目录。
44+- [量化与反量化](term_quantization.md):配套术语,INT8 量化的数学机制。
45+- [数据类型 FP16/BF16](term_fp16_bf16.md):配套术语,INT8 压缩收益的基准格式。
46+- [数据类型 FP8](term_fp8.md):同类算法,同为 8bit 数据格式。
47+- [数据类型 INT4](term_int4.md):同类算法,更低比特的整数格式。
48+- [GEMM](../quantization_mode/term_gemm.md):配套术语,INT8 输入可走整数 GEMM。
49+- [W8A8 静态量化](../quantization_mode/linear_layer_quantization/term_w8a8_static.md):配套模式,INT8 静态量化的典型实现。
50+ 
51+---
52+ 
53+## 5. 参考文档
54+ 
55+1. 《[量化模式](../quantization_mode/README.md)》
@@ -0,0 +1,55 @@
1+# 数据类型:MXFP8 / MXFP4 量化术语百科词条
2+ 
3+> **词条类别**:量化基础概念([量化基础](../README.md))
4+> **英文名称**:MXFP8 / MXFP4(Microscaling Formats)
5+> **应用领域**:权重、激活量化,超低比特压缩
6+ 
7+---
8+ 
9+## 1. 概述
10+ 
11+**MX**(Microscaling,微缩放)是 OCP(Open Compute Project,开放计算项目)定义的一类**块级共享指数**格式:每 **32个元素**为一块,整块共享一个 **E8M0 指数**(8位指数、0位尾数),元素只保存相对该指数的低位数据。块内元素共享同一数量级,从而以少量位宽覆盖大动态范围,缩放参数开销也摊薄到每32元素一份。
12+ 
13+---
14+ 
15+## 2. 词条介绍
16+ 
17+### MXFP8
18+ 
19+- **结构**:块共享 E8M0 指数 + 元素为 **E4M3**(1符号 + 4指数 + 3尾数)。
20+- **特点**:8位位宽、访存为 [FP16/BF16](term_fp16_bf16.md) 一半,同时保留浮点动态范围;相比 INT8 均匀分档对离群值更耐受。
21+- **应用**:如 [W8A8 MX 动态量化](../quantization_mode/linear_layer_quantization/term_w8a8_mx_dynamic.md)。
22+ 
23+### MXFP4
24+ 
25+- **结构**:块共享 E8M0 指数 + 元素为 **E2M1**(1符号 + 2指数 + 1尾数,emax=2、max 6)。
26+- **特点**:4位位宽、压缩比高,块级共享指数保留了浮点动态范围;对离群值比 INT4 均匀分档更耐受。
27+- **应用**:如 [W4A4 MX 动态量化](../quantization_mode/linear_layer_quantization/term_w4a4_mx_dynamic.md)、[W4A4 MX 双 Scale 量化](../quantization_mode/linear_layer_quantization/term_w4a4_mx_dualscale.md)。
28+ 
29+### 与相关类型对比
30+ 
31+- 相比 [FP8(E4M3)](term_fp8.md):MXFP8 块级共享指数,缩放参数开销从每元素一份摊薄到每32元素一份;代价是块粒度较粗、需硬件 MX 支持。
32+- 相比 [INT4](term_int4.md):MXFP4 用块级共享指数保留动态范围、对离群值更耐受;代价是依赖 MX 硬件、最后维需 32 对齐。
33+ 
34+---
35+ 
36+## 3. 关联流程
37+ 
38+- 《[一键量化完整指南](../../user_guide/usage_quick_quantization.md)》:量化任务的执行入口。
39+- 《[量化精度调优指南](../../user_guide/process_quantization_precision_tuning.md)》:数据类型与量化方案导致的精度问题可通过该流程排查与调优。
40+ 
41+---
42+ 
43+## 4. 关联词条
44+ 
45+- [量化基础](README.md):上位概念,本词条所属目录。
46+- [量化与反量化](term_quantization.md):配套术语,MX 量化的数学机制。
47+- [GEMM](../quantization_mode/term_gemm.md):配套术语,MX 输入走低精度浮点 GEMM。
48+- [W8A8 MX 动态量化](../quantization_mode/linear_layer_quantization/term_w8a8_mx_dynamic.md):配套模式,MXFP8 的典型实现。
49+- [W4A4 MX 动态量化](../quantization_mode/linear_layer_quantization/term_w4a4_mx_dynamic.md):配套模式,MXFP4 的典型实现。
50+ 
51+---
52+ 
53+## 5. 参考文档
54+ 
55+1. 《[量化模式](../quantization_mode/README.md)》
@@ -0,0 +1,87 @@
1+# 量化与反量化 量化术语百科词条
2+ 
3+> **词条类别**:量化基础概念([量化基础](../README.md))
4+> **英文名称**:Quantization / Dequantization
5+> **应用领域**:大语言模型量化压缩、推理加速、KVCache 压缩
6+ 
7+---
8+ 
9+## 1. 概述
10+ 
11+**量化**(Quantization)把高精度浮点张量映射到低精度张量,用较少的比特数保存同一批数据;**反量化**(Dequantization)是其逆过程。本词条介绍量化/反量化公式、量化参数(scale、zero_point)、参数获取方式(静态/动态)、量化粒度与对称性。
12+ 
13+---
14+ 
15+## 2. 词条介绍
16+ 
17+### 量化公式
18+ 
19+对浮点值 $x$,量化过程为:
20+ 
21+$$q = \mathrm{round}\left(\frac{x}{scale}\right) + zero\_point$$
22+ 
23+其中 $scale$(缩放系数)把浮点范围映射到整数档位,$zero\_point$(零点)是非对称量化引入的可选偏移,$q$ 是量化后的整数。
24+ 
25+**例子**:某张量的值都在 $[0, 12]$,用非对称 INT8(整数范围 $-128\sim127$)量化,取 $scale=12/255\approx0.047$、$zero\_point=-128$:
26+ 
27+- $x=12 \rightarrow q=\mathrm{round}(12/0.047)+(-128)=255-128=127$
28+- $x=6 \rightarrow q=\mathrm{round}(6/0.047)+(-128)\approx128-128=0$
29+- $x=0 \rightarrow q=\mathrm{round}(0)+(-128)=-128$
30+ 
31+### 反量化公式
32+ 
33+$$x \approx (q - zero\_point) \times scale$$
34+ 
35+如上例 $q=0$ 还原为 $(0-(-128))\times0.047\approx6.02$,接近原值 6。量化必然带来信息损失,误差来自 `round` 的舍入与有限位宽对数值范围的截断。
36+ 
37+### 为什么要量化
38+ 
39+- **减小存储与访存带宽**:权重从 [FP16/BF16](term_fp16_bf16.md)(2字节/元素)降为 [INT8](term_int8.md)(1字节/元素),权重占用与读取带宽减半;KVCache 同理。
40+- **使能低精度矩阵运算**:权重与激活都量化成整数后,矩阵乘可走整数/低精度算子(见 [GEMM](../quantization_mode/term_gemm.md)),在专用硬件上有计算收益。
41+- **压缩 KVCache 显存**:量化缓存的历史 K/V,显著降低长上下文推理的显存占用。
42+ 
43+### 量化参数:scale 与 zero_point
44+ 
45+量化参数决定浮点值到整数档位的映射:
46+ 
47+- **scale(缩放系数)**:1个整数档位代表的浮点步长,$scale=\frac{数值范围}{整数档位数}$。数值范围由被量化张量(或其一段)的实际 min/max 决定。
48+- **zero_point(零点)**:非对称量化中对应浮点 0 的整数偏移;对称量化中为 0,可省去。
49+ 
50+### 参数获取方式:静态与动态
51+ 
52+量化参数的**获取方式**分两类:
53+ 
54+- **静态量化**:离线用一批校准数据统计出 scale/zero_point,推理时直接使用(参数固化)。在线开销为零,但依赖校准集对真实分布的刻画。
55+- **动态量化**:推理时在线统计每个张量(或每行)的实际范围并实时计算 scale。免校准、对分布变化适应好,但每次多一次统计归约的开销。
56+ 
57+### 量化粒度
58+ 
59+量化粒度指**一份量化参数覆盖的元素范围**。粒度越细,数值分布刻画越准、精度越好,但量化参数数量与计算开销越大:
60+ 
61+- **per-tensor**:整个张量共享一份 scale。
62+- **per-channel**:按输出通道(如权重 W 的 out_dim 列)各一份参数,常用于权重。
63+- **per-group**:按固定大小分组(如 128个元素)各一份参数,如 [GPTQ](../quantization_algorithms/gptq/gptq.md)/[LAOS](../quantization_algorithms/laos/laos.md) 的分组量化。
64+- **per-token**:按输入行(每个 token)各一份参数,常用于激活的动态量化。
65+- **per-head**:按注意力头各一份参数,用于注意力相关张量。
66+- **per-block**:按固定大小分块(如 [MXFP8/MXFP4](term_mxfp.md) 的 32元素)共享一个块级指数,是 MX 格式的专用粒度;与 per-group 逐组记 scale 不同,per-block 共享的是指数。
67+ 
68+### 对称性与非对称性
69+ 
70+- **对称量化**:数值以 0 为中心,只记录 scale、无 zero_point。实现简单,适合分布近似对称的权重。
71+- **非对称量化**:记录 scale 与 zero_point,可覆盖整体偏移的数值,动态范围利用率更高。
72+ 
73+---
74+ 
75+## 3. 关联流程
76+ 
77+- 《[一键量化完整指南](../../user_guide/usage_quick_quantization.md)》:量化任务的执行入口。
78+- 《[量化精度调优指南](../../user_guide/process_quantization_precision_tuning.md)》:数据类型与量化方案导致的精度问题可通过该流程排查与调优。
79+ 
80+---
81+ 
82+## 4. 关联词条
83+ 
84+- [量化基础](README.md):上位概念,本词条所属目录。
85+- [GEMM](../quantization_mode/term_gemm.md):配套术语,量化是整数 GEMM 的前提。
86+- [数据类型 INT8](term_int8.md):配套术语,量化最常用的目标格式。
87+- [量化模式](../quantization_mode/README.md):上层概念,量化/反量化在各模式中的具体实施。
@@ -0,0 +1,130 @@
1+# 量化模式 量化术语百科词条
2+ 
3+<!-- waiver: G01 原因:本文件为量化模式目录的索引文档,不适用 term_<english_name>.md 词条命名 -->
4+<!-- waiver: S01 原因:索引/类别文档采用目录结构(术语列表 / 模式清单),不适用词条模板的「2. 词条介绍」必填章节,依 01 清单 S03 组织自身结构 -->
5+ 
6+> **英文名称**:Quantization Mode
7+> **应用领域**:大语言模型量化压缩、推理加速、KVCache 压缩
8+ 
9+---
10+ 
11+<a id="overview"></a>
12+ 
13+## 概述
14+ 
15+阅读本词条前,建议先了解[量化基础](../quantization_basic/README.md)中的量化/反量化、scale 与常用数据类型等基本概念。
16+ 
17+量化模式(Quantization Mode)是 msModelSlim 中用于描述**针对某一类特定的模型结构,如何实施一种特定的量化方式**的基础概念。量化操作的基本对象是**张量**——权重、激活、缓存的 K/V 等都是张量;量化模式即针对某个或某几个张量分别应用某种量化(位宽、数据类型、参数获取方式、量化粒度、对称性)后形成的组合。提及某个量化模式时,它通常同时指出:作用于哪类结构、量化其中的哪些张量、以什么位宽和参数获取方式量化。以 W8A8 静态量化为例——它就是**对 Linear 层进行量化**:权重与激活均为 8bit(INT8),且权重与激活均采用**静态量化**([W8A8 静态量化](linear_layer_quantization/term_w8a8_static.md))。
18+ 
19+按量化对象,常用量化模式可归为三类:**线性层量化**作用于矩阵乘法的权重与激活;**KVCache 量化**作用于注意力机制的 K/V 缓存;**FA 量化**是 KVCache 量化的进阶——在量化 K/V 的基础上进一步量化 Q,使能低精度注意力矩阵运算。三者分别见 [线性层量化](linear_layer_quantization/README.md)、[KVCache 量化](kv_cache_quantization/README.md)、[FA 量化](fa_quantization/README.md)。
20+ 
21+---
22+ 
23+<a id="how-to-read"></a>
24+ 
25+## 如何理解一个量化模式
26+ 
27+一个量化模式名通常由"作用结构 + 张量位宽 + 参数获取方式 + 量化粒度 + 数据类型"几部分构成,掌握了这些要素,就能读懂任意一个模式名:
28+ 
29+- **作用结构**:线性层(Linear/MatMul)用 `WxAy` 记法表示权重与激活的位宽组合(`y` 为可选后缀,表示数据类型与参数获取方式,如 W8A8 静态、W4A4 MX 动态),如 W8A8、W4A4;KVCache 作用于缓存的 K/V 张量;FA 量化作用于注意力输入 Q。
30+- **张量位宽**:W 与 A 分别表示权重与激活的位宽。位宽越低,访存与计算收益越大,但数值分辨率越低、精度损失风险越高。
31+- **参数获取方式**:静态(离线校准得到 scale/offset,推理时固化,如 [W8A8 静态量化](linear_layer_quantization/term_w8a8_static.md))或动态(推理时在线统计并计算,如 [W8A8 动态量化](linear_layer_quantization/term_w8a8_dynamic.md)、[W4A4 动态量化](linear_layer_quantization/term_w4a4_dynamic.md))。
32+- **量化粒度**:一组元素共享一个量化参数的范围。常用粒度有 per-tensor、per-channel、per-group、per-token、per-head、per-block 等,粗细取决于**每份量化参数覆盖的元素数**——覆盖越少(块越小)越细,数值分布刻画越准、精度越好,但量化参数数量与计算开销越大(如 per-token 见 [W8A8 动态量化](linear_layer_quantization/term_w8a8_dynamic.md),per-block 见 [W8A8 MX 动态量化](linear_layer_quantization/term_w8a8_mx_dynamic.md))。
33+- **数据类型**:量化后的数值格式,如 INT 整数(INT8/INT4)、FP8 浮点(E4M3)、带块级共享指数的 MXFP8/MXFP4。
34+ 
35+---
36+ 
37+<a id="categories"></a>
38+ 
39+## 量化模式的分类
40+ 
41+按量化对象,常用量化模式分为三类:
42+ 
43+- **[线性层量化](linear_layer_quantization/README.md)**:对大语言模型中占比最高的线性层(Linear / MatMul)权重与激活进行量化,是量化模式的主体、模式数量最多,如 [W8A8 静态量化](linear_layer_quantization/term_w8a8_static.md)、[W4A4 动态量化](linear_layer_quantization/term_w4a4_dynamic.md)。
44+- **[KVCache 量化](kv_cache_quantization/README.md)**:对注意力机制的 KVCache 进行量化。KVCache 本质上是一种特殊的激活——历史 token 的 Key/Value 投影被缓存下来供后续 token 复用,其显存随序列长度线性增长;量化 K/V 使缓存显存减半,如 [KVCache-PerChannel 量化](kv_cache_quantization/term_kv_cache_perchannel.md)。
45+- **[FA 量化](fa_quantization/README.md)**:KVCache 量化的进阶——在量化 K/V 的基础上进一步量化送入 Flash Attention 的 Q,使能低精度注意力矩阵运算,如 [FA PerHead 量化](fa_quantization/term_fa_perhead.md)。
46+ 
47+三类量化作用于计算图的不同位置,可以独立或组合使用,共同构成推理加速的优化空间;其中 FA 量化以 KVCache 量化为基础,是其在计算层面的延伸。
48+ 
49+---
50+ 
51+<a id="modes"></a>
52+ 
53+## 模式索引
54+ 
55+以下为 msModelSlim 支持的量化模式全量清单(按量化对象分类),也是各具体量化模式词条的总览入口。表中"承载 IR 类"为 `msmodelslim/ir/` 中的类名,类名里的 **FakeQuant**(伪量化)指量化后立即反量化的占位层,用于在浮点计算中模拟真实量化的数值效果:
56+ 
57+### 线性层量化
58+ 
59+| 模式 | 承载 IR 类 | 权重/激活量化 |
60+|------|-----------|---------------|
61+| [W8A8 静态量化](linear_layer_quantization/term_w8a8_static.md) | `W8A8StaticFakeQuantLinear` | INT8 per-channel / per-tensor 静态 |
62+| [W8A8 动态量化](linear_layer_quantization/term_w8a8_dynamic.md) | `W8A8DynamicPerChannel/PerGroupFakeQuantLinear` | INT8 per-channel/per-group / per-token 动态 |
63+| [W4A4 动态量化](linear_layer_quantization/term_w4a4_dynamic.md) | `W4A4DynamicPerChannel/PerGroupFakeQuantLinear` | INT4 per-channel/per-group / per-token 动态 |
64+| [W8A16 静态量化](linear_layer_quantization/term_w8a16_static.md) | `W8A16StaticPerChannel/PerGroupFakeQuantLinear` | INT8 / FP16 激活 |
65+| [W4A8 动态量化](linear_layer_quantization/term_w4a8_dynamic.md) | `W4A8DynamicFakeQuantLinear` | INT4 / INT8 per-token 动态 |
66+| [W8A8 PD-Mix 量化](linear_layer_quantization/term_w8a8_pdmix.md) | `W8A8PDMixFakeQuantLinear` | INT8 per-token(prefill)/ per-tensor(decode) |
67+| [W8A8 FP8 动态量化](linear_layer_quantization/term_w8a8_fp8_dynamic.md) | `WFP8AFP8DynamicPerChannelFakeQuantLinear` | FP8(E4M3) per-channel / per-token 动态 |
68+| [W8A8 MX 动态量化](linear_layer_quantization/term_w8a8_mx_dynamic.md) | `W8A8MXDynamicPerBlockFakeQuantLinear` | MXFP8 per-block / per-block 动态 |
69+| [W4A8 MX 动态量化](linear_layer_quantization/term_w4a8_mx_dynamic.md) | `W4A8MXDynamicPerBlockFakeQuantLinear` | MXFP4 / MXFP8 per-block 动态 |
70+| [W4A4 MX 动态量化](linear_layer_quantization/term_w4a4_mx_dynamic.md) | `W4A4MXDynamicPerBlockFakeQuantLinear` | MXFP4 per-block / per-block 动态 |
71+| [W4A4 MX 双 Scale 量化](linear_layer_quantization/term_w4a4_mx_dualscale.md) | `W4A4MXDynamicDualScaleFakeQuantLinear` | MXFP4 双 scale / per-block 动态 |
72+| [W16A16S 量化](linear_layer_quantization/term_w16a16s.md) | `W16A16sLinear` | 16bit 权重/激活(含稀疏) |
73+| [SVDQuant](../quantization_algorithms/svdquant/svdquant.md) | `SVDResidualWrapper`([`svd_residual.py`](../../../../msmodelslim/ir/svd_residual.py),配合 linear_quant) | 低秩分解 + 残差低比特量化 |
74+ 
75+> 注:prefill 与 decode 是 LLM 推理的两个阶段——prefill 一次处理整个输入 prompt(计算密集),decode 逐个生成 token(访存密集),详见[线性层量化](linear_layer_quantization/README.md)。
76+ 
77+### KVCache 量化
78+ 
79+| 模式 | 承载 IR 类 | 量化参数 |
80+|------|-----------|----------|
81+| [KVCache-PerChannel 量化](kv_cache_quantization/term_kv_cache_perchannel.md) | `FakeQuantDynamicCache` | INT8 per-channel(对称/非对称) |
82+ 
83+### FA 量化(KVCache 量化的进阶)
84+ 
85+| 模式 | 承载 IR 类 | 量化参数 |
86+|------|-----------|----------|
87+| [FA PerHead 量化](fa_quantization/term_fa_perhead.md) | INT8:`INT8FakeQuantActivationPerHead`;FP8:`FP8FakeQuantActivationPerHead` | INT8/FP8 per-head 静态 |
88+| [FA PerToken 量化](fa_quantization/term_fa_pertoken.md) | `FakeQuantActivationPerToken` | INT8/FP8 per-token 动态 |
89+| [FA PerBlock 量化](fa_quantization/term_fa_perblock.md) | `FakeQuantActivationPerBlock` | MXFP8/MXFP4 per-block 动态 |
90+ 
91+FA 量化**本质上是一个组合量化模式**,实际作用于注意力 **Q/K/V 三分支**`fa_q` / `fa_k` / `fa_v`),三分支各选一个量化模式组合成整体方案。当前最佳实践实际应用过的组合(均通过 `fa3_quant.qconfig` 统一配置三分支):
92+ 
93+| Q/K/V 组合 | 数据类型 / 粒度 | 参数获取 | 配置来源 |
94+|-----------|----------------|---------|---------|
95+| Q/K/V 统一 [INT8 per-head](fa_quantization/term_fa_perhead.md) | INT8 per-head | 静态(minmax) | `fa3_quant` 默认配置 |
96+| Q/K/V 统一 [FP8(E4M3)per-token](fa_quantization/term_fa_pertoken.md) | FP8 per-token | 动态 | Wan2_2、HunYuanVideo 示例 |
97+| Q/K/V 统一 [MXFP4 per-block](fa_quantization/term_fa_perblock.md) | MXFP4 per-block | 动态 | QwenImageEdit 示例 |
98+ 
99+框架亦支持通过 `fa3_quant.details``fa_q`/`fa_k`/`fa_v`)为各分支分别指定配置(未配置的分支不量化),当前示例均使用统一配置。
100+ 
101+---
102+ 
103+## 关联流程
104+ 
105+- 《[一键量化完整指南](../../user_guide/usage_quick_quantization.md)》:通过 `--quant_type` 或 YAML 配置选择并执行量化模式。
106+- 《[量化精度调优指南](../../user_guide/process_quantization_precision_tuning.md)》:量化模式导致的精度劣化可通过该流程逐层回退与调优。
107+ 
108+---
109+ 
110+<a id="related-terms"></a>
111+ 
112+## 关联词条
113+ 
114+- [线性层量化](linear_layer_quantization/README.md):下位概念,本词条下量化模式的主体类别。
115+- [KVCache 量化](kv_cache_quantization/README.md):下位概念,针对 KVCache 的量化类别。
116+- [FA 量化](fa_quantization/README.md):下位概念,KVCache 量化的进阶类别。
117+- [W8A8 静态量化](linear_layer_quantization/term_w8a8_static.md):下位概念,线性层量化中"权重/激活静态"的典型模式。
118+- 《[线性量化算法说明](../quantization_algorithms/linear_quant/linear_quant.md)》:配套术语,描述线性层量化模式的处理器实现。
119+- 《[KVCache量化:缓存量化算法说明](../quantization_algorithms/kvcache_quant/kvcache_quant.md)》:配套术语,描述 KVCache 量化算法。
120+- 《[FA3量化:Flash Attention 3激活量化算法说明](../quantization_algorithms/fa3_quant/fa3_quant.md)》:配套术语,描述 FA 量化算法。
121+ 
122+---
123+ 
124+## 参考资料
125+ 
126+1. Jacob B et al. Quantization and Training of Neural Networks for Efficient Integer-Arithmetic-Only Inference. CVPR 2018. https://arxiv.org/abs/1712.05877
127+2. Yao Z et al. ZeroQuant: Efficient and Affordable Post-Training Quantization for Large-Scale Transformers. NeurIPS 2022. https://arxiv.org/abs/2206.01861
128+3. Liu Z et al. KIVI: A Tuning-Free Asymmetric 2bit Quantization for KV Cache. ICML 2024. https://arxiv.org/abs/2402.02750
129+4. 《[线性量化算法说明](../quantization_algorithms/linear_quant/linear_quant.md)》
130+5. 《[AscendV1 格式说明](../quantization_format/ascendv1/ascendv1.md)》
@@ -0,0 +1,110 @@
1+# FA 量化 量化术语百科词条
2+ 
3+<!-- waiver: G01 原因:本文件为量化模式目录下的类别文档,不适用 term_<english_name>.md 词条命名 -->
4+<!-- waiver: S01 原因:索引/类别文档采用目录结构(术语列表 / 模式清单),不适用词条模板的「2. 词条介绍」必填章节,依 01 清单 S03 组织自身结构 -->
5+ 
6+> **词条类别**:量化数据格式([量化模式](../README.md))
7+> **英文名称**:Flash Attention Quantization
8+> **应用领域**:注意力计算加速、长上下文推理
9+> **msModelSlim 实现**:[`msmodelslim/ir/activation_static.py`](../../../../../msmodelslim/ir/activation_static.py)、[`msmodelslim/ir/activation_dynamic.py`](../../../../../msmodelslim/ir/activation_dynamic.py)(`FakeQuantActivation*` 系列)
10+ 
11+---
12+ 
13+<a id="overview"></a>
14+ 
15+## 概述
16+ 
17+FA(Flash Attention,一种高效的注意力计算实现)量化是对**送入 Flash Attention 的 Q/K/V 激活张量**进行量化的一类量化模式,属于[量化模式](../README.md)中的类别之一,是 [KVCache 量化](../kv_cache_quantization/README.md)的**进阶**。它在量化 K/V(压缩缓存显存)的基础上,进一步量化 Q。
18+ 
19+K/V 量化主要解决"存储"问题——缓存显存减半、支持更长上下文;Q 加入量化后,注意力得分计算(Q 与 K 的点乘)与加权求和(softmax 后与 V 点乘)的参与张量均为低比特,可直接调用整数/低精度矩阵乘算子,从而在继承 KVCache 显存收益的同时使能低精度的矩阵运算。它是长序列解码场景在"省显存"基础上进一步使能低精度注意力矩阵运算的手段。典型如 [FA PerHead 量化](term_fa_perhead.md)——对 Q 张量按注意力头(per-head)静态量化,INT8 或 FP8。
20+ 
21+FA 量化**本质上是一个组合量化模式**:Q/K/V 三分支各自独立选择量化模式(粒度 × 数据类型)。当前最佳实践均通过 `fa3_quant.qconfig` 统一配置三分支,见[分支组合](#branch-combination)。
22+ 
23+---
24+ 
25+<a id="mode-options"></a>
26+ 
27+## 该类一般的量化选择
28+ 
29+- **量化对象**:送入 Flash Attention 的 Q/K/V 三个分支的激活张量(K/V 承接缓存压缩,Q 使能低精度得分计算)。
30+- **量化粒度**:per-head(按注意力头共享 scale,静态,如 [FA PerHead 量化](term_fa_perhead.md))、per-token(逐 token 在线计算 scale,动态,如 [FA PerToken 量化](term_fa_pertoken.md))、per-block(块级共享指数,如 [FA PerBlock 量化](term_fa_perblock.md))。
31+- **数据类型**:INT8、FP8(E4M3)、MXFP8/MXFP4。
32+- **与 KV 的关系**:本类以 [KVCache 量化](../kv_cache_quantization/README.md)为基础(继承其显存收益),追加 Q 量化使能低精度注意力矩阵运算。
33+ 
34+---
35+ 
36+<a id="branch-combination"></a>
37+ 
38+## 分支组合
39+ 
40+FA 量化作用于 Q/K/V 三个分支(`fa_q` / `fa_k` / `fa_v`),三分支各选一个量化模式组合成整体方案。当前最佳实践实际应用过的组合(均通过 `fa3_quant.qconfig` 统一配置三分支):
41+ 
42+| 组合 | 数据类型 / 粒度 | 参数获取 | 应用示例 |
43+|------|----------------|---------|---------|
44+| Q/K/V 统一 INT8 per-head | INT8 per-head | 静态(minmax) | `fa3_quant` 默认配置 |
45+| Q/K/V 统一 FP8(E4M3)per-token | FP8 per-token | 动态 | Wan2_2、HunYuanVideo 示例 |
46+| Q/K/V 统一 MXFP4 per-block | MXFP4 per-block | 动态 | QwenImageEdit 示例 |
47+ 
48+框架亦支持通过 `fa3_quant.details``fa_q`/`fa_k`/`fa_v`)为各分支分别指定配置(未配置的分支不量化),当前示例均使用统一配置。
49+ 
50+### 组合 1:Q/K/V 统一 INT8 per-head 静态
51+ 
52+- **是什么**:Q/K/V 三分支均按注意力头(per-head)静态量化到 INT8。每个注意力头共享一个 scale(参数开销仅头数),scale 离线校准(minmax)确定并固化,推理零在线开销。
53+- **配置**`fa3_quant` 默认(不配 `qconfig` 即启用):`QConfig(dtype=INT8, scope=PER_HEAD, symmetric=True, method="minmax")`
54+- **效果**:三分支均为 8bit 对称量化,K/V 承接缓存压缩,Q 使能低精度得分计算;静态固化使推理无在线统计开销。
55+- **规格与限制**:需校准数据(无数据则报错);对称、无 offset。详见 [FA PerHead 量化](term_fa_perhead.md)。
56+ 
57+### 组合 2:Q/K/V 统一 FP8(E4M3)per-token 动态
58+ 
59+- **是什么**:Q/K/V 三分支均按 token 逐行动态量化到 FP8(E4M3),量化参数在线统计、免校准,每个 token 的激活分辨率贴合自身数值范围。
60+- **配置**`fa3_quant.qconfig``dtype: fp8_e4m3, scope: per_token, symmetric: True, method: minmax`
61+- **效果**:三分支均为 8bit FP8,动态 per-token 免校准且对 token 间分布差异更鲁棒,是长上下文、多模态生成场景的推荐默认。
62+- **规格与限制**:动态统计带来少量在线开销;FP8 可表示范围有限(E4M3 max 448),大离群值需留意。详见 [FA PerToken 量化](term_fa_pertoken.md)。
63+ 
64+### 组合 3:Q/K/V 统一 MXFP4 per-block 动态
65+ 
66+- **是什么**:Q/K/V 三分支均沿 head_dim 按32元素分块,每块共享一个 E8M0 指数做 MXFP4 动态量化。粒度比 per-token 更细(捕捉 head_dim 内分布差异),块级共享指数保留浮点动态范围、对离群值更耐受。
67+- **配置**`fa3_quant.qconfig``dtype: mxfp4, scope: per_block, symmetric: True, method: minmax`(QwenImageEdit 示例)。
68+- **效果**:三分支均为 4bit(MXFP4),带宽/计算位宽收益最大,是极端压缩场景的选择。
69+- **规格与限制**:块级指数前向在线统计(免校准);MXFP4 尾数仅 2bit(emax=2、max 6),精度敏感场景需权衡。详见 [FA PerBlock 量化](term_fa_perblock.md)。
70+ 
71+---
72+ 
73+<a id="modes"></a>
74+ 
75+## 该类下的模式清单
76+ 
77+以下为 msModelSlim 支持的 FA 量化模式清单(完整规格含承载 IR 类,见[量化模式](../README.md)「模式索引」):
78+ 
79+| 模式 | 一句话 |
80+|------|--------|
81+| [FA PerHead 量化](term_fa_perhead.md) | 按注意力头静态量化 Q,INT8/FP8 |
82+| [FA PerToken 量化](term_fa_pertoken.md) | 逐 token 动态量化 Q,INT8/FP8 |
83+| [FA PerBlock 量化](term_fa_perblock.md) | 块级共享指数量化 Q,MXFP8/MXFP4 |
84+ 
85+---
86+ 
87+## 关联流程
88+ 
89+- 《[一键量化完整指南](../../../user_guide/usage_quick_quantization.md)》:通过 `fa3_quant` 处理器启用本类模式。
90+- 《[量化精度调优指南](../../../user_guide/process_quantization_precision_tuning.md)》:注意力激活量化精度验证。
91+ 
92+---
93+ 
94+<a id="related-terms"></a>
95+ 
96+## 关联词条
97+ 
98+- [量化模式](../README.md):上位概念,本词条是"FA 量化"类别。
99+- [KVCache 量化](../kv_cache_quantization/README.md):上位概念(基础),本类在其基础上追加 Q 量化。
100+- [线性层量化](../linear_layer_quantization/README.md):同位概念,作用于权重与激活的量化类别,可与本类叠加。
101+- [FA PerHead 量化](term_fa_perhead.md):下位概念,本类别下 per-head 静态激活量化。
102+- 《[FA3量化:Flash Attention 3激活量化算法说明](../../quantization_algorithms/fa3_quant/fa3_quant.md)》:配套术语,描述 FA 量化算法。
103+ 
104+---
105+ 
106+## 参考资料
107+ 
108+1. Dao T et al. FlashAttention: Fast and Memory-Efficient Exact Attention with IO-Awareness. NeurIPS 2022. https://arxiv.org/abs/2205.14135
109+2. 《[FA3量化:Flash Attention 3激活量化算法说明](../../quantization_algorithms/fa3_quant/fa3_quant.md)》
110+3. 《[量化模式](../README.md)》
@@ -0,0 +1,87 @@
1+# FA PerBlock 量化
2+ 
3+> **词条类别**:量化数据格式([FA 量化](../README.md))
4+> **英文名称**:FA Per-Block Quantization
5+> **应用领域**:长上下文推理加速、低精度注意力计算
6+> **承载 IR 类**:`FakeQuantActivationPerBlock`([`msmodelslim/ir/activation_dynamic.py`](../../../../../msmodelslim/ir/activation_dynamic.py))
7+ 
8+---
9+ 
10+## 1. 概述
11+ 
12+FA PerBlock 量化 = 对送入 Flash Attention 的 Q/K/V 激活沿 head_dim 按32元素分块,每块共享一个 E8M0 指数做 MX 动态量化([MXFP8](../../quantization_basic/term_mxfp.md) 或 [MXFP4](../../quantization_basic/term_mxfp.md)),量化参数在线计算、免校准。它比 per-token 粒度更细(能捕捉 head_dim 内部分布差异),又以块级共享指数保留浮点动态范围、对离群值比整数格式更耐受,是注意力激活量化中「粒度/开销」折中最细的一档。
13+ 
14+---
15+ 
16+## 2. 词条介绍
17+ 
18+### 模式规格
19+ 
20+| 维度 | 取值 | 说明 |
21+|------|------|------|
22+| 量化对象 | 注意力 Q/K/V 激活 | 送入 Flash Attention 的激活张量(形状 (B, H, S, D)),Q/K/V 均被量化;K/V 承接缓存压缩,Q 使能低精度得分计算 |
23+| 位宽 | 4bit 或 8bit | MXFP4 为 4bit、MXFP8 为 8bit,按精度/吞吐需求选择 |
24+| 数据类型 | MXFP4 / MXFP8 | 每32元素共享一个 E8M0 指数;MXFP4 emax=2、max 6,MXFP8 emax=8、max 448 |
25+| 参数获取方式 | 动态 | 块级指数前向在线统计,免校准 |
26+| 量化粒度 | per-block | 沿最后维(head_dim)按32元素分块,每块共享一个指数 |
27+| 对称性 | 对称 | 仅指数/scale,无 offset |
28+ 
29+### 量化公式
30+ 
31+MX 格式按块共享 E8M0 指数,块内每个元素用块级指数缩放后量化为主尾数:
32+$$e = \lfloor \log_2(\max_{i \in \mathrm{block}}|x_i|) \rfloor, \qquad q_i = \mathrm{round}_{MX}\left(\frac{x_i}{2^e}\right), \qquad \hat{x}_i = q_i \cdot 2^e$$
33+ 
34+其中块大小32元素,$e$ 为块内共享的 E8M0 指数,$q_i$ 为块内第 $i$ 个元素的量化尾数(MXFP8 为 FP8 尾数、MXFP4 为 FP4 尾数),$\hat{x}_i$ 为反量化还原值。量化对象为送入 Flash Attention 的 Q/K/V 激活,量化参数在线计算,见「模式规格」表。
35+ 
36+### 与其他模式的关系
37+ 
38+- **与 [FA PerToken 量化](term_fa_pertoken.md)(同为 FA 激活量化,格式与粒度不同)**
39+ - 本模式(MX per-block):优势是块级共享指数保留浮点动态范围、对离群值比 INT8/FP8 每元素格式更耐受,粒度沿 head_dim 更细;劣势是依赖硬件 MX 支持、head_dim 需32对齐,块统计归约开销与块数相关。
40+ - PerToken:优势是 INT8/FP8 每元素格式、硬件生态成熟、实现简单;劣势是 scale 数与 token 数同量级、粒度行级。
41+ 
42+- **与 [FA PerHead 量化](term_fa_perhead.md)(同为 FA 激活量化,粒度与参数获取方式不同)**
43+ - 本模式:per-block 动态、免校准、粒度最细;劣势是在线归约开销、依赖 MX 硬件。
44+ - PerHead:per-head 静态、需校准、粒度最粗;优势是零在线开销、参数仅 head 数。
45+ 
46+- **与 [W8A8 MX 动态量化](../linear_layer_quantization/term_w8a8_mx_dynamic.md)(同类 MX per-block 动态思路)**
47+ - 本模式把同一思路应用于注意力 Q/K/V 激活;W8A8 MX 应用于线性层权重与激活。二者正交、可组合:线性层走 MX,注意力路径走本模式。
48+ 
49+### 适用场景与限制
50+ 
51+#### 1. 适用场景
52+ 
53+- **低比特注意力加速**:需要 4bit/8bit 注意力激活量化、又希望比整数格式精度更稳的场景。
54+- **离群值敏感的注意力**:MX 浮点动态范围对 Q/K/V 离群值更耐受。
55+- **昇腾 MXFP 推理路径**:硬件/算子库原生支持 MX 注意力计算的部署。
56+ 
57+#### 2. 使用限制
58+ 
59+- **依赖硬件 MX 支持**:MXFP4/MXFP8 注意力计算需目标硬件算子库支持。
60+- **块粒度对齐**:head_dim 需能被32整除,否则需 padding。
61+- **在线归约开销**:per-block 统计增加少量延迟,短序列下占比更明显。
62+- **注意力精度敏感**:Q/K 的量化误差直接影响注意力得分,需验证极端长序列下的精度。
63+ 
64+---
65+ 
66+## 3. 关联流程
67+ 
68+- 《[一键量化完整指南](../../../user_guide/usage_quick_quantization.md)》:通过 YAML 配置选择本模式并执行量化。
69+- 《[量化精度调优指南](../../../user_guide/process_quantization_precision_tuning.md)》:本模式导致的精度劣化可通过该流程逐层回退与调优。
70+ 
71+---
72+ 
73+## 4. 关联词条
74+ 
75+- [量化模式](../README.md):上位概念,本词条属于[FA 量化](README.md)类别,是该类别下的一种具体模式。
76+- [FA PerToken 量化](term_fa_pertoken.md):同类模式,per-token 动态激活量化。
77+- [FA PerHead 量化](term_fa_perhead.md):同类模式,per-head 静态激活量化。
78+- [KVCache 量化](../kv_cache_quantization/README.md):基础类别,本模式在其基础上追加 Q 量化。
79+- [W8A8 MX 动态量化](../linear_layer_quantization/term_w8a8_mx_dynamic.md):配套模式,MX per-block 思路在线性层上的应用。
80+- 《[FA3量化:Flash Attention 3激活量化算法说明](../../quantization_algorithms/fa3_quant/fa3_quant.md)》:配套术语,本模式对应的算法处理器文档。
81+ 
82+---
83+ 
84+## 5. 参考文档
85+ 
86+1. 《[FA3量化:Flash Attention 3激活量化算法说明](../../quantization_algorithms/fa3_quant/fa3_quant.md)》
87+2. 《[量化模式](../README.md)》
@@ -0,0 +1,89 @@
1+# FA PerHead 量化
2+ 
3+> **词条类别**:量化数据格式([FA 量化](../README.md))
4+> **英文名称**:FA Per-Head Quantization
5+> **应用领域**:长上下文推理加速、低精度注意力计算
6+> **承载 IR 类**:`FakeQuantActivationPerHead` 及 INT8/FP8 变体([`msmodelslim/ir/activation_static.py`](../../../../../msmodelslim/ir/activation_static.py))
7+ 
8+---
9+ 
10+## 1. 概述
11+ 
12+FA PerHead 量化 = 对送入 Flash Attention 的 Q/K/V 激活按注意力头(per-head)做静态量化。它是 [KVCache 量化](../kv_cache_quantization/README.md)的**进阶**:在量化 K/V(压缩缓存显存)的基础上进一步量化 Q,使注意力得分计算(Q 与 K 的点乘)与加权求和(softmax 后与 V 点乘)的参与张量均为低比特,从而在继承 KV 显存收益之外使能低精度矩阵运算。模式名中「PerHead」表示量化粒度为按注意力头。
13+ 
14+---
15+ 
16+## 2. 词条介绍
17+ 
18+### 模式规格
19+ 
20+| 维度 | 取值 | 说明 |
21+|------|------|------|
22+| 量化对象 | 注意力 Q/K/V 激活 | 送入 Flash Attention 的激活张量(形状 (B, H, S, D)),Q/K/V 均被量化;K/V 承接缓存压缩,Q 使能低精度得分计算 |
23+| 位宽 | 8bit | Q/K/V 均为 8bit |
24+| 数据类型 | INT8 / FP8(E4M3) | 两种实现按精度/吞吐需求选择 |
25+| 参数获取方式 | 静态 | scale 离线校准确定并固化,推理零在线开销;要求提供 `ext['scale']`,忽略 offset |
26+| 量化粒度 | per-head | 每个注意力头共享一个 scale,参数开销仅 head 数,适配各头独立的数值分布 |
27+| 对称性 | 对称 | 仅 scale,无 offset |
28+ 
29+### 量化公式
30+ 
31+量化与反量化采用标准线性映射。对称量化(仅 scale、无零点):
32+$$q = \mathrm{round}(x / s), \qquad \hat{x} = q \cdot s, \qquad s = \frac{\max(|x|)}{2^{b-1}}$$
33+ 
34+非对称量化(含零点 offset):
35+$$q = \mathrm{round}(x / s) + z, \qquad \hat{x} = (q - z) \cdot s, \qquad s = \frac{\max(x) - \min(x)}{2^b - 1}$$
36+ 
37+其中 $x$ 为待量化张量,$q$ 为量化后的数值,$\hat{x}$ 为反量化还原值,$s$ 为 scale,$z$ 为零点 offset,$b$ 为位宽,且 $z = \mathrm{round}(-\min(x)/s)$。本模式为对称量化(无 offset)。FP8(E4M3)变体的 scale 按 FP8 可表示最大值 448 确定。量化对象为送入 Flash Attention 的 Q/K/V 激活,参数获取方式与作用粒度(per-head / per-token)见「模式规格」表。
38+ 
39+### 与其他模式的关系
40+ 
41+- **与 [FA PerToken 量化](term_fa_pertoken.md)(同为 FA 激活量化,粒度与参数获取方式不同)**
42+ - 本模式(per-head 静态):优势是 scale 离线固化、推理零在线开销,参数开销仅 head 数;劣势是粒度较粗、需依赖校准数据,对逐 token 分布变化不敏感。
43+ - PerToken(per-token 动态):优势是逐 token 在线算 scale、免校准,量化更贴合每个 token 的数值范围;劣势是每次前向多一次按 token 的 min/max 归约,开销与 token 数同量级。
44+ 
45+- **与 [FA PerBlock 量化](term_fa_perblock.md)(同为 FA 激活量化,格式与粒度不同)**
46+ - 本模式:INT8/FP8 整数格式 + 静态 per-head 粒度,无需特殊硬件格式支持;劣势是粒度最粗(整头共享参数),对 head_dim 内部的分布差异不敏感。
47+ - PerBlock:MX 格式块级共享指数(32元素一块),粒度最细、对离群值比整数格式更耐受;劣势是依赖硬件 MX 支持、head_dim 需能被32整除、量化参数在线计算。
48+ 
49+- **与 [KVCache-PerChannel 量化](../kv_cache_quantization/term_kv_cache_perchannel.md)(基础关系)**
50+ - 本模式以 K/V 量化为基础:继承其缓存显存减半的收益,追加 Q 量化使能低精度矩阵运算。K/V 不量化则 Q 量化无法单独兑现整数/低精度注意力得分计算的收益。
51+ 
52+### 适用场景与限制
53+ 
54+#### 1. 适用场景
55+ 
56+- **长序列注意力加速**:注意力计算密集的长上下文解码场景,整数/低精度注意力降低带宽与计算开销。
57+- **与线性层量化组合**:作为整体量化方案的一部分,与 W8A8 等线性层模式叠加进一步压缩。
58+ 
59+#### 2. 使用限制
60+ 
61+- **静态依赖校准**:per-head scale 由校准集确定,分布偏差会影响注意力得分精度。
62+- **数据类型有限**:msModelSlim 中 per-head 量化仅提供 INT8 与 FP8 两种数据类型。
63+- **注意力精度敏感**:Q/K 的量化误差直接影响注意力得分,极端长序列下需验证。
64+ 
65+---
66+ 
67+## 3. 关联流程
68+ 
69+- 《[一键量化完整指南](../../../user_guide/usage_quick_quantization.md)》:通过 YAML 配置选择本模式并执行量化。
70+- 《[量化精度调优指南](../../../user_guide/process_quantization_precision_tuning.md)》:本模式导致的精度劣化可通过该流程逐层回退与调优。
71+ 
72+---
73+ 
74+## 4. 关联词条
75+ 
76+- [量化模式](../README.md):上位概念,本词条属于[FA 量化](README.md)类别,是该类别下的一种具体模式。
77+- [FA PerToken 量化](term_fa_pertoken.md):同类模式,per-token 动态激活量化。
78+- [FA PerBlock 量化](term_fa_perblock.md):同类模式,per-block MX 动态激活量化。
79+- [KVCache 量化](../kv_cache_quantization/README.md):基础类别,本模式在其基础上追加 Q 量化。
80+- [KVCache-PerChannel 量化](../kv_cache_quantization/term_kv_cache_perchannel.md):前置术语,K/V 量化的具体模式。
81+- [W8A8 静态量化](../linear_layer_quantization/term_w8a8_static.md):配套模式,可与本模式组合使用。
82+- 《[FA3量化:Flash Attention 3激活量化算法说明](../../quantization_algorithms/fa3_quant/fa3_quant.md)》:配套术语,本模式对应的算法处理器文档。
83+ 
84+---
85+ 
86+## 5. 参考文档
87+ 
88+1. 《[FA3量化:Flash Attention 3激活量化算法说明](../../quantization_algorithms/fa3_quant/fa3_quant.md)》
89+2. 《[量化模式](../README.md)》
@@ -0,0 +1,89 @@
1+# FA PerToken 量化
2+ 
3+> **词条类别**:量化数据格式([FA 量化](../README.md))
4+> **英文名称**:FA Per-Token Quantization
5+> **应用领域**:长上下文推理加速、低精度注意力计算
6+> **承载 IR 类**:`FakeQuantActivationPerToken`([`msmodelslim/ir/activation_dynamic.py`](../../../../../msmodelslim/ir/activation_dynamic.py))
7+ 
8+---
9+ 
10+## 1. 概述
11+ 
12+FA PerToken 量化 = 对送入 Flash Attention 的 Q/K/V 激活按 token 逐行动态量化([INT8](../../quantization_basic/term_int8.md) 或 [FP8(E4M3)](../../quantization_basic/term_fp8.md)),量化参数在线计算、免校准。它是 [KVCache 量化](../kv_cache_quantization/README.md)的**进阶**:K/V 量化省缓存显存,Q 一并量化后使注意力得分计算可走低精度矩阵运算;per-token 粒度让每个 token 的激活分辨率贴合自身数值范围。
13+ 
14+---
15+ 
16+## 2. 词条介绍
17+ 
18+### 模式规格
19+ 
20+| 维度 | 取值 | 说明 |
21+|------|------|------|
22+| 量化对象 | 注意力 Q/K/V 激活 | 送入 Flash Attention 的激活张量(形状 (B, H, S, D)),Q/K/V 均被量化;K/V 承接缓存压缩,Q 使能低精度得分计算 |
23+| 位宽 | 8bit | Q/K/V 均为 8bit |
24+| 数据类型 | INT8 / FP8(E4M3) | 两种实现按精度/吞吐需求选择 |
25+| 参数获取方式 | 动态 | 每个 token 前向在线求 min/max 并计算 scale,免校准 |
26+| 量化粒度 | per-token | reshape 为 (B\*H\*S, D) 后按行(token)共享 scale |
27+| 对称性 | 对称 | 仅 scale,无 offset |
28+ 
29+### 量化公式
30+ 
31+量化与反量化采用标准线性映射。对称量化(仅 scale、无零点):
32+$$q = \mathrm{round}(x / s), \qquad \hat{x} = q \cdot s, \qquad s = \frac{\max(|x|)}{2^{b-1}}$$
33+ 
34+非对称量化(含零点 offset):
35+$$q = \mathrm{round}(x / s) + z, \qquad \hat{x} = (q - z) \cdot s, \qquad s = \frac{\max(x) - \min(x)}{2^b - 1}$$
36+ 
37+其中 $x$ 为待量化张量,$q$ 为量化后的数值,$\hat{x}$ 为反量化还原值,$s$ 为 scale,$z$ 为零点 offset,$b$ 为位宽,且 $z = \mathrm{round}(-\min(x)/s)$。本模式为对称量化(无 offset)。FP8(E4M3)变体的 scale 按 FP8 可表示最大值 448 确定。量化对象为送入 Flash Attention 的 Q/K/V 激活,参数获取方式与作用粒度(per-head / per-token)见「模式规格」表。
38+ 
39+### 与其他模式的关系
40+ 
41+- **与 [FA PerHead 量化](term_fa_perhead.md)(同为 FA 激活量化,粒度与参数获取方式不同)**
42+ - 本模式(per-token 动态):优势是逐 token 在线算 scale、免校准,量化贴合每个 token 的数值范围,精度更高;劣势是每次前向多一次按 token 的 min/max 归约,开销与 token 数同量级。
43+ - PerHead(per-head 静态):优势是 scale 离线固化、推理零在线开销,参数仅 head 数;劣势是需依赖校准数据、粒度粗,对 token 间分布变化不敏感。
44+ 
45+- **与 [FA PerBlock 量化](term_fa_perblock.md)(同为 FA 激活量化,格式与粒度不同)**
46+ - 本模式:INT8/FP8 每元素格式 + per-token 粒度,无需特殊硬件格式支持;劣势是 scale 数与 token 数同量级、粒度行级。
47+ - PerBlock:MX 格式块级共享指数(32元素一块),粒度更细(沿 head_dim)、对离群值更耐受;劣势是依赖硬件 MX 支持、head_dim 需32对齐。
48+ 
49+- **与 [W8A8 动态量化](../linear_layer_quantization/term_w8a8_dynamic.md)(同类 per-token 动态思路)**
50+ - 本模式把同一思路应用于注意力 Q/K/V 激活;W8A8 动态应用于线性层权重与激活。二者正交、可组合:线性层走 W8A8,注意力路径走本模式,共同构成整体量化方案。
51+ 
52+### 适用场景与限制
53+ 
54+#### 1. 适用场景
55+ 
56+- **校准数据不可靠或缺失**:无法获得代表性校准集时,动态 per-token 方案更稳。
57+- **注意力精度要求高**:需要比静态方案更细粒度的激活量化,且接受在线归约开销。
58+- **长序列注意力加速**:与 Flash Attention 整数/低精度路径结合,降低带宽与计算开销。
59+ 
60+#### 2. 使用限制
61+ 
62+- **在线归约开销**:per-token min/max 归约增加少量延迟,短序列下占比更明显。
63+- **注意力精度敏感**:Q/K 的量化误差直接影响注意力得分,需验证极端长序列下的精度。
64+- **硬件算子依赖**:per-token 动态量化需推理框架/算子库支持逐 token 参数计算。
65+ 
66+---
67+ 
68+## 3. 关联流程
69+ 
70+- 《[一键量化完整指南](../../../user_guide/usage_quick_quantization.md)》:通过 YAML 配置选择本模式并执行量化。
71+- 《[量化精度调优指南](../../../user_guide/process_quantization_precision_tuning.md)》:本模式导致的精度劣化可通过该流程逐层回退与调优。
72+ 
73+---
74+ 
75+## 4. 关联词条
76+ 
77+- [量化模式](../README.md):上位概念,本词条属于[FA 量化](README.md)类别,是该类别下的一种具体模式。
78+- [FA PerHead 量化](term_fa_perhead.md):同类模式,per-head 静态激活量化。
79+- [FA PerBlock 量化](term_fa_perblock.md):同类模式,per-block MX 动态激活量化。
80+- [KVCache 量化](../kv_cache_quantization/README.md):基础类别,本模式在其基础上追加 Q 量化。
81+- [W8A8 动态量化](../linear_layer_quantization/term_w8a8_dynamic.md):配套模式,per-token 动态思路在线性层上的应用。
82+- 《[FA3量化:Flash Attention 3激活量化算法说明](../../quantization_algorithms/fa3_quant/fa3_quant.md)》:配套术语,本模式对应的算法处理器文档。
83+ 
84+---
85+ 
86+## 5. 参考文档
87+ 
88+1. 《[FA3量化:Flash Attention 3激活量化算法说明](../../quantization_algorithms/fa3_quant/fa3_quant.md)》
89+2. 《[量化模式](../README.md)》
@@ -0,0 +1,69 @@
1+# KVCache 量化 量化术语百科词条
2+ 
3+<!-- waiver: G01 原因:本文件为量化模式目录下的类别文档,不适用 term_<english_name>.md 词条命名 -->
4+<!-- waiver: S01 原因:索引/类别文档采用目录结构(术语列表 / 模式清单),不适用词条模板的「2. 词条介绍」必填章节,依 01 清单 S03 组织自身结构 -->
5+ 
6+> **词条类别**:量化数据格式([量化模式](../README.md))
7+> **英文名称**:KV Cache Quantization
8+> **应用领域**:KVCache 压缩、长上下文推理加速
9+> **msModelSlim 实现**:[`msmodelslim/ir/attention.py`](../../../../../msmodelslim/ir/attention.py)
10+ 
11+---
12+ 
13+<a id="overview"></a>
14+ 
15+## 概述
16+ 
17+KVCache 量化是对注意力机制中的 **KVCache(缓存的 Key/Value 张量)**进行量化的一类量化模式,属于[量化模式](../README.md)中的类别之一。KVCache 本质上是一种**特殊的激活**——历史 token 的 Key/Value 投影(K/V 线性层输出)被缓存下来,供后续 token 的注意力计算复用,而非模型权重;它不参与权重矩阵乘法,只影响注意力计算。其显存随序列长度线性增长,是长上下文推理的主要显存开销。
18+ 
19+量化 K/V 不改变权重与激活的量化方案,可与线性层量化叠加使用;量化后缓存显存约减半(INT8 约为 FP16 的一半),从而支持更长上下文或更大并发;对推理延迟的影响取决于算子与硬件实现,需实测评估。典型如 [KVCache-PerChannel 量化](term_kv_cache_perchannel.md)——对缓存的 K/V 按隐藏维度(通道)共享量化参数,INT8 量化。
20+ 
21+---
22+ 
23+<a id="mode-options"></a>
24+ 
25+## 该类一般的量化选择
26+ 
27+- **量化对象**:缓存的 K 与 V 张量(Q 不在此列,量化 Q 属于 [FA 量化](../fa_quantization/README.md))。
28+- **量化粒度**:目前 msModelSlim 中仅支持 per-channel——按隐藏维度(head_dim)共享 scale/offset,对称或非对称,即 [KVCache-PerChannel 量化](term_kv_cache_perchannel.md)。
29+- **数据类型**:INT8(对称/非对称)。更细粒度(如 per-head、per-token)或更低比特(INT4/FP8)属于研究中的方向,msModelSlim 暂不支持。
30+- **组合方式**:可与线性层量化叠加使用(两者量化对象不同、互不重叠)。在此基础上进一步量化**送入注意力计算的 Q 激活张量**,即升级为 [FA 量化](../fa_quantization/README.md)——FA 量化量化的是 Q 激活(QProj 的输出张量),而非对 QProj 线性层本身做权重/矩阵乘量化。
31+ 
32+---
33+ 
34+<a id="modes"></a>
35+ 
36+## 该类下的模式清单
37+ 
38+以下为 msModelSlim 支持的 KVCache 量化模式清单(完整规格含承载 IR 类,见[量化模式](../README.md)「模式索引」):
39+ 
40+| 模式 | 一句话 |
41+|------|--------|
42+| [KVCache-PerChannel 量化](term_kv_cache_perchannel.md) | 缓存 K/V 按隐藏维度共享参数,INT8 per-channel |
43+ 
44+---
45+ 
46+## 关联流程
47+ 
48+- 《[一键量化完整指南](../../../user_guide/usage_quick_quantization.md)》:通过 `dynamic_cache` 处理器启用本类模式。
49+- 《[量化精度调优指南](../../../user_guide/process_quantization_precision_tuning.md)》:长序列精度验证与 KV 回退。
50+ 
51+---
52+ 
53+<a id="related-terms"></a>
54+ 
55+## 关联词条
56+ 
57+- [量化模式](../README.md):上位概念,本词条是"KVCache 量化"类别。
58+- [线性层量化](../linear_layer_quantization/README.md):同位概念,作用于权重与激活的量化类别,可与本类叠加。
59+- [FA 量化](../fa_quantization/README.md):进阶概念,在本类基础上进一步量化 Q。
60+- [KVCache-PerChannel 量化](term_kv_cache_perchannel.md):下位概念,本类别当前唯一的量化模式。
61+- 《[KVCache量化:缓存量化算法说明](../../quantization_algorithms/kvcache_quant/kvcache_quant.md)》:配套术语,描述 KVCache 量化算法。
62+- 《[KVSmooth:KVCache量化离群值抑制算法说明](../../quantization_algorithms/kv_smooth/kv_smooth.md)》:前置术语,量化前对 KV 做平滑以降低量化误差。
63+ 
64+---
65+ 
66+## 参考资料
67+ 
68+1. 《[KVCache量化:缓存量化算法说明](../../quantization_algorithms/kvcache_quant/kvcache_quant.md)》
69+2. 《[量化模式](../README.md)》
@@ -0,0 +1,84 @@
1+# KVCache-PerChannel 量化
2+ 
3+> **词条类别**:量化数据格式([KVCache 量化](../README.md))
4+> **英文名称**:KV Cache Per-Channel Quantization
5+> **应用领域**:KVCache 压缩、长上下文推理加速
6+> **承载 IR 类**:`FakeQuantDynamicCache`([`msmodelslim/ir/attention.py`](../../../../../msmodelslim/ir/attention.py))
7+ 
8+---
9+ 
10+## 1. 概述
11+ 
12+KVCache-PerChannel 量化 = 对注意力机制缓存的 K/V 张量做 [INT8](../../quantization_basic/term_int8.md) per-channel 量化。KVCache 是历史 token 的 Key/Value 投影跨时间步缓存下来的**特殊激活**,显存随序列长度线性增长,是长上下文推理的主要显存瓶颈;量化 K/V 使缓存显存减半。它是[KVCache 量化](README.md)类别当前唯一的模式,模式名中「PerChannel」表示按隐藏维度(通道)共享量化参数。
13+ 
14+---
15+ 
16+## 2. 词条介绍
17+ 
18+### 模式规格
19+ 
20+| 维度 | 取值 | 说明 |
21+|------|------|------|
22+| 量化对象 | 缓存的 K/V 张量 | 注意力机制的 Key/Value 缓存,不参与权重矩阵乘法、只参与注意力计算;不改变权重与激活的量化方案,可与线性层量化叠加 |
23+| 位宽 | 8bit | 缓存从 FP16 降为 INT8,显存与 KV 读写带宽均减半 |
24+| 数据类型 | INT8 | 整数格式,缓存 1字节/元素 |
25+| 参数获取方式 | 静态 | scale/offset 在量化阶段确定并作为参数固化(`requires_grad=False`),推理时直接使用;名字中的 "Dynamic" 指推理时对动态增长的缓存实时量化,而非在线计算 scale |
26+| 量化粒度 | per-channel | 按隐藏维(head_dim)共享 scale/offset,参数数量与 hidden 同量级、开销可忽略;适配不同隐藏维的数值差异 |
27+| 对称性 | 对称或非对称 | 依据数值分布是否对称选择,对称仅 scale、非对称加 offset |
28+ 
29+### 量化公式
30+ 
31+量化与反量化采用标准线性映射。对称量化(仅 scale、无零点):
32+$$q = \mathrm{round}(x / s), \qquad \hat{x} = q \cdot s, \qquad s = \frac{\max(|x|)}{2^{b-1}}$$
33+ 
34+非对称量化(含零点 offset):
35+$$q = \mathrm{round}(x / s) + z, \qquad \hat{x} = (q - z) \cdot s, \qquad s = \frac{\max(x) - \min(x)}{2^b - 1}$$
36+ 
37+其中 $x$ 为待量化张量,$q$ 为量化后的整数值,$\hat{x}$ 为反量化还原值,$s$ 为 scale,$z$ 为零点 offset,$b$ 为位宽(此处 INT8 取 $b=8$),且 $z = \mathrm{round}(-\min(x)/s)$。作用对象为缓存的 K/V 张量,量化参数按隐藏维度(head_dim)per-channel 计算(对称或非对称),见「模式规格」表。
38+ 
39+### 与其他模式的关系
40+ 
41+- **与 [FA PerHead 量化](../fa_quantization/term_fa_perhead.md)(进阶关系)**
42+ - 本模式只量化 K/V,解决"存储"问题——缓存显存减半、支持更长上下文。
43+ - FA 量化在其基础上进一步量化 Q,额外使能低精度注意力矩阵运算。本模式是 FA 量化的必要基础:若 K 不量化,仅量化 Q 无法走整数/低精度注意力得分计算。
44+ 
45+- **与 [W8A8 静态量化](../linear_layer_quantization/term_w8a8_static.md)(正交关系,可叠加)**
46+ - 量化对象不同:本模式作用于注意力缓存(特殊激活),W8A8 作用于权重与激活矩阵乘。
47+ - 二者互不干扰、可组合:权重与激活按 W8A8 量化,KVCache 另行按本模式压缩,共同构成整体量化方案。
48+ 
49+### 适用场景与限制
50+ 
51+#### 1. 适用场景
52+ 
53+- **长上下文推理**:上下文长度大、KV 显存成为瓶颈的场景,如长文档问答、代码仓库理解。
54+- **高并发服务**:压缩每请求缓存显存,提升同显存下的并发 batch。
55+- **作为 FA 量化的基础**:K/V 量化后叠加 Q 量化,在省 KV 显存之外进一步使能低精度注意力矩阵运算。
56+ 
57+#### 2. 使用限制
58+ 
59+- **当前仅支持 per-channel + INT8**:msModelSlim 中 `FakeQuantDynamicCache` 仅注册 INT8 per-channel(对称/非对称),更细粒度或更低比特暂不支持。
60+- **精度敏感场景需评估**:KV 参与注意力得分计算,量化误差可能被累加放大,极端长序列下需验证精度。
61+ 
62+---
63+ 
64+## 3. 关联流程
65+ 
66+- 《[一键量化完整指南](../../../user_guide/usage_quick_quantization.md)》:通过 YAML 配置选择本模式并执行量化。
67+- 《[量化精度调优指南](../../../user_guide/process_quantization_precision_tuning.md)》:本模式导致的精度劣化可通过该流程逐层回退与调优。
68+ 
69+---
70+ 
71+## 4. 关联词条
72+ 
73+- [量化模式](../README.md):上位概念,本词条属于[KVCache 量化](README.md)类别,是该类别下的一种具体模式。
74+- [FA PerHead 量化](../fa_quantization/term_fa_perhead.md):进阶模式,在 K/V 量化基础上追加 Q 量化。
75+- [W8A8 静态量化](../linear_layer_quantization/term_w8a8_static.md):配套模式,可与本模式叠加使用。
76+- 《[KVCache量化:缓存量化算法说明](../../quantization_algorithms/kvcache_quant/kvcache_quant.md)》:配套术语,本模式对应的算法处理器文档。
77+- 《[KVSmooth:KVCache量化离群值抑制算法说明](../../quantization_algorithms/kv_smooth/kv_smooth.md)》:前置术语,量化前对 KV 做平滑以降低量化误差。
78+ 
79+---
80+ 
81+## 5. 参考文档
82+ 
83+1. 《[KVCache量化:缓存量化算法说明](../../quantization_algorithms/kvcache_quant/kvcache_quant.md)》
84+2. 《[量化模式](../README.md)》
@@ -0,0 +1,121 @@
1+# 线性层量化 量化术语百科词条
J
Jjoejoezhou23 天前

【review】改为README.md更清晰

likedislike
rookie_hongchuan
23 天前 评论:
2+ 
3+<!-- waiver: G01 原因:本文件为量化模式目录下的类别文档,不适用 term_<english_name>.md 词条命名 -->
4+<!-- waiver: S01 原因:索引/类别文档采用目录结构(术语列表 / 模式清单),不适用词条模板的「2. 词条介绍」必填章节,依 01 清单 S03 组织自身结构 -->
5+ 
6+> **词条类别**:量化数据格式([量化模式](../README.md))
7+> **英文名称**:Linear Layer Quantization
8+> **应用领域**:大语言模型量化压缩、推理加速
9+> **msModelSlim 实现**:[`msmodelslim/ir/w8a8_static.py`](../../../../../msmodelslim/ir/w8a8_static.py)(`*FakeQuantLinear` 系列)
10+ 
11+---
12+ 
13+<a id="overview"></a>
14+ 
15+## 概述
16+ 
17+线性层量化是对大语言模型中占比最高的**线性层(Linear / MatMul)的权重(W)与激活(A)**进行量化的一类量化模式,属于[量化模式](../README.md)中的主体类别。它量化的对象是线性层矩阵乘法两侧的张量:权重是静态参数、每个 token 都必须整体读取;激活是随输入实时变化的中间张量。对这两类张量的位宽组合,通常用 `WxAy` 记法表示,如 W8A8 表示权重与激活均为 8bit(INT8)。
18+ 
19+为何聚焦线性层:每个 token 前向都要读取全部权重,权重位宽直接决定访存带宽瓶颈;激活位宽则决定整数 GEMM 能否落地。因此此类模式数量最多,是量化模式的主体。典型如 [W8A8 静态量化](term_w8a8_static.md)——对 Linear 层权重与激活均做 INT8 静态量化。
20+ 
21+---
22+ 
23+<a id="linear-compute"></a>
24+ 
25+## 线性层如何运算与可量化对象
26+ 
27+线性层(Linear / MatMul)是 Transformer 的主体计算——Q/K/V 投影、注意力输出投影、MLP 的上/门/下三层都是线性层。一次线性层计算就是一次矩阵乘法:
28+ 
29+$$Y = X \cdot W + b$$
30+ 
31+其中 $X$ 是输入激活(形状 $(batch, seq, in\_dim)$),$W$ 是权重(形状 $(in\_dim, out\_dim)$),$b$ 是偏置,$Y$ 是输出激活。LLM 推理分两个阶段:**prefill** 一次处理整个输入 prompt(计算密集),**decode** 逐个生成 token(访存密集)。
32+ 
33+矩阵乘法只有两个输入张量,因此线性层中可量化对象也只有两个:
34+ 
35+- **权重 $W$**:静态张量,训练后固定、每步推理都要整体读取一次。decode 阶段权重访存是主要吞吐瓶颈,因此权重量化侧重**压缩**——压低位宽以减小访存,如 [W8A8 静态量化](term_w8a8_static.md) 的 INT8 权重、[W4A8 动态量化](term_w4a8_dynamic.md) 的 INT4 权重。
36+- **输入激活 $X$**:动态张量,由前一层实时产生、分布随输入变化,对量化误差敏感。激活量化侧重**保精度**——多配合动态量化或细粒度(如 per-token),如 [W8A8 动态量化](term_w8a8_dynamic.md) 的激活 per-token 动态量化。
37+ 
38+量化模式本质上是**对这两个张量分别应用某种量化(位宽、数据类型、参数获取方式、量化粒度、对称性)后的组合**:如 [W8A8 静态量化](term_w8a8_static.md) 对 W 与 A 均做 8bit INT8 静态量化、[W8A16 静态量化](term_w8a16_static.md) 只量化 W 而 A 保持 16bit、[W4A8 动态量化](term_w4a8_dynamic.md) 则 W 4bit、A 8bit 且激活走动态。两个张量各自的维度选择,就构成下述"该类一般的量化选择"。
39+ 
40+---
41+ 
42+<a id="mode-options"></a>
43+ 
44+## 该类一般的量化选择
J
Jjoejoezhou24 天前

【review】可以通过表格定性对比精度和性能

likedislike
rookie_hongchuan
23 天前 评论:
45+ 
46+同一类线性层结构可实施不同的量化方式,差异体现在以下几个维度:
47+ 
48+- **位宽组合**:权重与激活可取相同或不同位宽。相同位宽(W8A8、W4A4)压缩与精度较均衡;激活位宽高于权重(W8A16、W4A8)牺牲部分压缩换取精度。见 [W8A16 静态量化](term_w8a16_static.md)、[W4A8 动态量化](term_w4a8_dynamic.md)。
49+- **参数获取方式**:静态(离线校准、推理时固化,如 [W8A8 静态量化](term_w8a8_static.md))或动态(推理在线统计、免校准,如 [W8A8 动态量化](term_w8a8_dynamic.md)、[W4A4 动态量化](term_w4a4_dynamic.md))。
50+- **量化粒度**:权重通常按通道(per-channel)或分组(per-group)静态量化;激活通常按 token(per-token)动态量化或按整个张量(per-tensor)静态量化;MX 系列采用按块(per-block)块级共享指数。
51+- **数据类型**:INT 整数(INT8/INT4)、FP8 浮点(如 [W8A8 FP8 动态量化](term_w8a8_fp8_dynamic.md))、MX 块级共享指数(如 [W4A4 MX 动态量化](term_w4a4_mx_dynamic.md)、[W4A4 MX 双 Scale 量化](term_w4a4_mx_dualscale.md))。
52+- **特殊变体**:[W8A8 PD-Mix 量化](term_w8a8_pdmix.md) 按 Prefill/Decode 阶段切换激活策略;[W16A16S 量化](term_w16a16s.md) 不降位宽、承载上游稀疏权重,作为稀疏量化基线。
53+ 
54+各类模式在**精度**(量化误差对模型输出的影响)与**性能**(权重/激活访存与计算收益)之间取舍,可定性对比如下:
55+ 
56+| 模式 | 精度(定性) | 性能(定性) | 取舍要点 |
57+|------|------------|------------|---------|
58+| [W8A8 静态量化](term_w8a8_static.md) | 高 | 高 | INT8 主流方案,需离线校准,静态 scale 对分布变化略敏感 |
59+| [W8A8 动态量化](term_w8a8_dynamic.md) | 更高 | 高 | 激活 per-token 在线统计 scale,免校准,但增加少量在线开销 |
60+| [W4A4 动态量化](term_w4a4_dynamic.md) | 中 | 最高 | 双 4bit 访存收益最大,激活 4bit 精度风险高 |
61+| [W8A16 静态量化](term_w8a16_static.md) | 最高 | 中 | 仅压缩权重,激活保 16bit 精度,性能收益减半 |
62+| [W4A8 动态量化](term_w4a8_dynamic.md) | 中高 | 高 | 权重 4bit 极致压缩,激活 8bit 保精度,压缩与精度的折中 |
63+| [W8A8 PD-Mix 量化](term_w8a8_pdmix.md) | 高 | 高 | 激活策略随 prefill/decode 切换,兼顾两阶段特性 |
64+| [W8A8 FP8 动态量化](term_w8a8_fp8_dynamic.md) | 高 | 高 | FP8 保留浮点动态范围、对离群值耐受,依赖 FP8 算子 |
65+| [W8A8 MX 动态量化](term_w8a8_mx_dynamic.md) | 中高 | 高 | MXFP8 块级共享指数,缩放参数开销低,依赖 MX 硬件 |
66+| [W4A8 MX 动态量化](term_w4a8_mx_dynamic.md) | 中高 | 高 | MXFP4 权重 + MXFP8 激活,访存收益与精度折中 |
67+| [W4A4 MX 动态量化](term_w4a4_mx_dynamic.md) | 中 | 最高 | 双 4bit MX 压缩最大化,依赖 MX 硬件、需块对齐 |
68+| [W4A4 MX 双 Scale 量化](term_w4a4_mx_dualscale.md) | 中高 | 高 | 双层 scale 兜底 4bit 精度,实现与配置更复杂 |
69+| [W16A16S 量化](term_w16a16s.md) | 最高 | 中 | 不降位宽,承载上游稀疏权重,作为稀疏基线 |
70+ 
71+> 注:表中"性能"特指量化后的权重/激活访存与计算收益,均为定性排序;实际收益取决于目标硬件算子支持与模型分布,详见各模式词条与[量化模式](../README.md)「模式索引」。
72+ 
73+---
74+ 
75+<a id="modes"></a>
76+ 
77+## 该类下的模式清单
78+ 
79+以下为 msModelSlim 支持的线性层量化模式清单(完整规格含承载 IR 类与量化参数,见[量化模式](../README.md)「模式索引」):
80+ 
81+| 模式 | 一句话 |
82+|------|--------|
83+| [W8A8 静态量化](term_w8a8_static.md) | 权重与激活均 INT8 静态 |
84+| [W8A8 动态量化](term_w8a8_dynamic.md) | 权重静态、激活 per-token 动态 |
85+| [W4A4 动态量化](term_w4a4_dynamic.md) | 权重与激活均 INT4、激活动态 |
86+| [W8A16 静态量化](term_w8a16_static.md) | 仅权重 INT8,激活 FP16 不量化 |
87+| [W4A8 动态量化](term_w4a8_dynamic.md) | 权重 INT4、激活 INT8 动态 |
88+| [W8A8 PD-Mix 量化](term_w8a8_pdmix.md) | 激活策略随 Prefill/Decode 阶段切换 |
89+| [W8A8 FP8 动态量化](term_w8a8_fp8_dynamic.md) | 权重与激活均 FP8(E4M3) 动态 |
90+| [W8A8 MX 动态量化](term_w8a8_mx_dynamic.md) | 权重与激活均 MXFP8 per-block 动态 |
91+| [W4A8 MX 动态量化](term_w4a8_mx_dynamic.md) | 权重 MXFP4、激活 MXFP8 per-block 动态 |
92+| [W4A4 MX 动态量化](term_w4a4_mx_dynamic.md) | 权重与激活均 MXFP4 per-block 动态 |
93+| [W4A4 MX 双 Scale 量化](term_w4a4_mx_dualscale.md) | MXFP4 双 scale、per-block 动态 |
94+| [W16A16S 量化](term_w16a16s.md) | 16bit 权重/激活(含稀疏) |
95+| [SVDQuant](../../quantization_algorithms/svdquant/svdquant.md) | 低秩分解 + 残差低比特量化,配合线性层量化使用 |
96+ 
97+---
98+ 
99+## 关联流程
100+ 
101+- 《[一键量化完整指南](../../../user_guide/usage_quick_quantization.md)》:通过 `--quant_type` 或 YAML 配置选择线性层量化模式。
102+- 《[量化精度调优指南](../../../user_guide/process_quantization_precision_tuning.md)》:量化模式导致的精度劣化可通过该流程逐层回退与调优。
103+ 
104+---
105+ 
106+<a id="related-terms"></a>
107+ 
108+## 关联词条
109+ 
110+- [量化模式](../README.md):上位概念,本词条是"线性层量化"类别。
111+- [KVCache 量化](../kv_cache_quantization/README.md):同位概念,作用于注意力 K/V 缓存的量化类别,可与本类叠加。
112+- [FA 量化](../fa_quantization/README.md):同位概念,KVCache 量化的进阶。
113+- [W8A8 静态量化](term_w8a8_static.md):下位概念,本类别下最基础的静态模式。
114+- 《[线性量化算法说明](../../quantization_algorithms/linear_quant/linear_quant.md)》:配套术语,描述线性层量化模式的处理器实现。
115+ 
116+---
117+ 
118+## 参考资料
119+ 
120+1. 《[线性量化算法说明](../../quantization_algorithms/linear_quant/linear_quant.md)》
121+2. 《[量化模式](../README.md)》
@@ -0,0 +1,81 @@
1+# W16A16S 量化
2+ 
3+> **词条类别**:量化数据格式([线性层量化](../README.md))
4+> **英文名称**:W16A16S Quantization
5+> **应用领域**:大语言模型量化压缩、推理加速
6+> **承载 IR 类**:`W16A16sLinear`([`msmodelslim/ir/w16a16s.py`](../../../../../msmodelslim/ir/w16a16s.py),`nn.Module` 子类,非 `AutoFakeQuantLinear`)
7+ 
8+---
9+ 
10+## 1. 概述
11+ 
12+W16A16S 严格说不是「量化」模式,而是稀疏量化方案的**精度基线**:权重与激活都保持 [FP16/BF16](../../quantization_basic/term_fp16_bf16.md) 不量化,权重张量承载上游 ADMM 剪枝产出的、已按比例(如 30%)置零的稀疏权重。它隔离掉位宽量化误差,让稀疏方案的对照实验只反映「稀疏」一个维度的收益——前向仍是 [FP16/BF16](../../quantization_basic/term_fp16_bf16.md) 线性层计算,零值元素由硬件稀疏算子跳过。
13+ 
14+---
15+ 
16+## 2. 词条介绍
17+ 
18+### 模式规格
19+ 
20+| 维度 | 取值 | 说明 |
21+|------|------|------|
22+| 量化对象 | 权重 W、激活 A | 均不量化,保持 FP16 原样参与计算 |
23+| 位宽 | W 16bit,A 16bit | 无位宽压缩 |
24+| 数据类型 | FP16 | 浮点 |
25+| 参数获取方式 | 不适用 | 不产生量化参数;权重为上游剪枝产出的稀疏 FP16 权重 |
26+| 量化粒度 | 不适用 | 稀疏按元素幅值置零,无量化粒度概念 |
27+| 对称性 | 不适用 | 无量化参数 |
28+ 
29+### 量化公式
30+ 
31+本模式不降位宽、不引入量化误差,作为稀疏量化基线,无量化/反量化公式。其权重与激活保持 16bit(FP16/BF16),承载的是上游稀疏化后的张量。
32+ 
33+### 与其他模式的关系
34+ 
35+- **与 [W8A16 静态量化](term_w8a16_static.md)(同为高精度基线,收益来源不同)**
36+ - 本模式:W/A 均不量化,收益来自稀疏(跳过零值元素);是稀疏维度的对照基线。
37+ - W8A16:收益来自权重位宽压缩(8bit 访存减半);是位宽维度的对照基线。二者分别对应「稀疏」与「位宽」两条独立的压缩路径。
38+ 
39+- **与 [W8A8 静态量化](term_w8a8_static.md)(整数量化方案)**
40+ - 本模式是稀疏基线、零量化误差;W8A8 是整数量化方案。实际稀疏量化常把二者叠加(稀疏 W8A8),本模式用于评估稀疏单独引入的精度损失。
41+ 
42+- **与 [W4A4 动态量化](term_w4a4_dynamic.md)(极致压缩方案)**
43+ - 本模式完全不压缩位宽、是压缩-精度谱系的精度上界;W4A4 极致压缩位宽、精度风险最高。二者代表谱系的两端。
44+ 
45+### 适用场景与限制
46+ 
47+#### 1. 适用场景
48+ 
49+- **稀疏量化精度基线**:评估稀疏方案精度时,作为不受位宽量化干扰的对照。
50+- **稀疏收益评估**:单独衡量稀疏权重在目标硬件上的计算/访存收益。
51+- **精度敏感层**:需要完全保留精度的层,作为量化方案中的保留路径。
52+ 
53+#### 2. 使用限制
54+ 
55+- **无位宽压缩收益**:本身不降位宽,不作为最终部署的压缩方案。
56+- **依赖稀疏硬件支持**:稀疏收益需目标硬件稀疏算子支持,否则与普通 FP16 无异。
57+- **非量化 IR**:不属于 `AutoFakeQuantLinear` 体系,不参与量化参数的计算与校验。
58+ 
59+---
60+ 
61+## 3. 关联流程
62+ 
63+- 《[一键量化完整指南](../../../user_guide/usage_quick_quantization.md)》:通过 `--quant_type` 或 YAML 配置选择本模式并执行量化。
64+- 《[量化精度调优指南](../../../user_guide/process_quantization_precision_tuning.md)》:本模式导致的精度劣化可通过该流程逐层回退与调优。
65+ 
66+---
67+ 
68+## 4. 关联词条
69+ 
70+- [量化模式](../README.md):上位概念,本词条属于[线性层量化](README.md)类别,是该类别下的一种具体模式。
71+- [W8A16 静态量化](term_w8a16_static.md):同类模式,位宽维度的精度基线。
72+- [W8A8 静态量化](term_w8a8_static.md):对比模式,可与其叠加构成稀疏 W8A8。
73+- [W4A4 动态量化](term_w4a4_dynamic.md):对比模式,位宽维度上的极致压缩方案。
74+- 《[线性量化算法说明](../../quantization_algorithms/linear_quant/linear_quant.md)》:配套术语,线性层量化的处理器实现。
75+ 
76+---
77+ 
78+## 5. 参考文档
79+ 
80+1. 《[线性量化算法说明](../../quantization_algorithms/linear_quant/linear_quant.md)》
81+2. 《[量化模式](../README.md)》
@@ -0,0 +1,89 @@
1+# W4A4 动态量化
2+ 
3+> **词条类别**:量化数据格式([线性层量化](../README.md))
4+> **英文名称**:W4A4 Dynamic Quantization
5+> **应用领域**:大语言模型量化压缩、推理加速
6+> **承载 IR 类**:`W4A4DynamicPerChannelFakeQuantLinear` / `W4A4DynamicPerGroupFakeQuantLinear`([`msmodelslim/ir/w4a4_dynamic.py`](../../../../../msmodelslim/ir/w4a4_dynamic.py))
7+ 
8+---
9+ 
10+## 1. 概述
11+ 
12+W4A4 动态量化 = 对线性层的权重与激活都做 [INT4](../../quantization_basic/term_int4.md) 量化,激活量化参数逐 token 在线计算。它是压缩比最高的一类线性层方案:权重访存降至 [FP16/BF16](../../quantization_basic/term_fp16_bf16.md) 的 1/4;但 4bit 仅16个量化档位,必须依赖 per-token 动态量化与 per-channel/per-group 细粒度兜底,才能把精度损失压到可接受范围。
13+ 
14+---
15+ 
16+## 2. 词条介绍
17+ 
18+### 模式规格
19+ 
20+| 维度 | 取值 | 说明 |
21+|------|------|------|
22+| 量化对象 | 权重 W、激活 A | 线性层矩阵乘两侧的张量 |
23+| 位宽 | W 4bit,A 4bit | 同为 4bit,权重访存降至 [FP16/BF16](../../quantization_basic/term_fp16_bf16.md) 的 1/4、INT8 的 1/2 |
24+| 数据类型 | INT4 | 整数格式(内部以 INT8 承载存储) |
25+| 参数获取方式 | 激活动态 / 权重静态 | 激活逐 token 在线求 min/max 并计算 scale;权重 scale/offset 在量化阶段固化 |
26+| 量化粒度 | 权重 per-channel/per-group;激活 per-token | 权重逐输出通道或按固定分组(如 128元素)共享 scale/offset;激活逐 token 共享 scale |
27+| 对称性 | 激活对称;权重对称或非对称 | 激活对称仅 scale;权重可加 offset 适配非对称分布 |
28+ 
29+### 量化公式
30+ 
31+量化与反量化采用标准线性映射。对称量化(仅 scale、无零点):
32+$$q = \mathrm{round}(x / s), \qquad \hat{x} = q \cdot s, \qquad s = \frac{\max(|x|)}{2^{b-1}}$$
33+ 
34+非对称量化(含零点 offset):
35+$$q = \mathrm{round}(x / s) + z, \qquad \hat{x} = (q - z) \cdot s, \qquad s = \frac{\max(x) - \min(x)}{2^b - 1}$$
36+ 
37+其中 $x$ 为待量化张量,$q$ 为量化后的整数值,$\hat{x}$ 为反量化还原值,$s$ 为 scale,$z$ 为零点 offset,$b$ 为位宽(INT8 取 $b=8$,INT4 取 $b=4$),且 $z = \mathrm{round}(-\min(x)/s)$。量化参数 $s$、$z$ 的获取方式(静态校准或在线动态)与作用粒度(per-channel、per-token、per-tensor 等)见「模式规格」表。
38+ 
39+### 与其他模式的关系
40+ 
41+- **与 [W8A8 静态量化](term_w8a8_static.md)(位宽不同)**
42+ - 本模式:优势是权重访存降至 [FP16/BF16](../../quantization_basic/term_fp16_bf16.md) 的 1/4,压缩与带宽收益最大化;劣势是仅16个量化档位、精度风险高,需动态量化 + per-group 粒度 + 离群值抑制兜底。
43+ - W8A8:优势是 8bit 分辨率高、精度更稳,是通用部署基线;劣势是权重访存仅减半。
44+ 
45+- **与 [W8A8 动态量化](term_w8a8_dynamic.md)(同为动态家族,位宽不同)**
46+ - 本模式:优势是压缩更狠、计算位宽更低;劣势是激活 4bit 对分布极其敏感,精度风险显著高于 8bit。
47+ - W8A8 动态:优势是 8bit 精度更稳、在线归约与整体开销较低;劣势是压缩幅度小。
48+ 
49+- **与 [W4A4 MX 动态量化](term_w4a4_mx_dynamic.md)(同为 W4A4,数据类型不同)**
50+ - 本模式(INT4):优势是整数格式、硬件算子生态成熟;劣势是均匀分档对离群值敏感,动态范围受限。
51+ - MXFP4:优势是块级共享指数保留浮点动态范围,对离群值更耐受;劣势是依赖硬件 MX 支持、块粒度需对齐。
52+ 
53+### 适用场景与限制
54+ 
55+#### 1. 适用场景
56+ 
57+- **高压缩比部署**:显存/带宽受限、追求极致压缩的场景,如大规模服务端多模型部署。
58+- **对精度不敏感的任务**:任务本身对量化噪声容忍度高的场景。
59+ 
60+#### 2. 使用限制
61+ 
62+- **精度门槛高**:4bit 激活量化精度风险大,通常需要配合离群值抑制(如 [SmoothQuant](../../quantization_algorithms/smooth_quant/smooth_quant.md))与精度调优方可上线。
63+- **硬件算子依赖**:INT4 整数 GEMM 需目标硬件算子库支持,否则无法兑现计算收益。
64+ 
65+---
66+ 
67+## 3. 关联流程
68+ 
69+- 《[一键量化完整指南](../../../user_guide/usage_quick_quantization.md)》:通过 `--quant_type` 或 YAML 配置选择本模式并执行量化。
70+- 《[量化精度调优指南](../../../user_guide/process_quantization_precision_tuning.md)》:本模式导致的精度劣化可通过该流程逐层回退与调优。
71+ 
72+---
73+ 
74+## 4. 关联词条
75+ 
76+- [量化模式](../README.md):上位概念,本词条属于[线性层量化](README.md)类别,是该类别下的一种具体模式。
77+- [W8A8 动态量化](term_w8a8_dynamic.md):对比模式,INT8 位宽、精度更稳。
78+- [W8A8 静态量化](term_w8a8_static.md):对比模式,INT8 静态方案、精度基线。
79+- [W4A4 MX 动态量化](term_w4a4_mx_dynamic.md):同类模式,改用 MXFP4 浮点格式。
80+- [W8A16 静态量化](term_w8a16_static.md):对比模式,激活保持 16bit 的高精度方案。
81+- 《[线性量化算法说明](../../quantization_algorithms/linear_quant/linear_quant.md)》:配套术语,本模式的处理器实现。
82+- 《[LAOS:w4a4量化方案说明](../../quantization_algorithms/laos/laos.md)》:配套术语,面向 W4A4 的精度优化算法。
83+ 
84+---
85+ 
86+## 5. 参考文档
87+ 
88+1. 《[线性量化算法说明](../../quantization_algorithms/linear_quant/linear_quant.md)》
89+2. 《[量化模式](../README.md)》
@@ -0,0 +1,87 @@
1+# W4A4 MX 双 Scale 量化
2+ 
3+> **词条类别**:量化数据格式([线性层量化](../README.md))
4+> **英文名称**:W4A4 MX Dual-Scale Quantization
5+> **应用领域**:大语言模型量化压缩、推理加速
6+> **承载 IR 类**:`W4A4MXDynamicDualScaleFakeQuantLinear`([`msmodelslim/ir/w4a4_mx_dynamic_dualscale.py`](../../../../../msmodelslim/ir/w4a4_mx_dynamic_dualscale.py))
7+ 
8+---
9+ 
10+## 1. 概述
11+ 
12+W4A4 MX 双 Scale 量化 = [W4A4 MX 动态量化](term_w4a4_mx_dynamic.md) 的**精度增强版**:在单层块级指数之外,再叠一层大块(如 512元素)高精度浮点 scale,构成「外层保量级、内层保细节」的两级缩放。它解决单层 [MXFP4](../../quantization_basic/term_mxfp.md) 在大块内部量级差异大或存在强离群值时的精度不足问题,以极少的额外参数换取 4bit 位宽下的明显精度提升。
13+ 
14+---
15+ 
16+## 2. 词条介绍
17+ 
18+### 模式规格
19+ 
20+| 维度 | 取值 | 说明 |
21+|------|------|------|
22+| 量化对象 | 权重 W、激活 A | 线性层矩阵乘两侧的张量 |
23+| 位宽 | W 4bit,A 4bit | 权重与激活访存均降至 FP16 的 1/4 |
24+| 数据类型 | MXFP4 双 scale | 外层大块高精度浮点 scale + 内层 32元素 E8M0 指数,元素为 1符号 + 2指数 + 1尾数 |
25+| 参数获取方式 | 激活动态 / 权重静态 | 激活两级参数前向在线计算;权重两级参数量化阶段固化 |
26+| 量化粒度 | 双层块粒度 | 外层 `dual_block_size`(如 512)共享高精度 scale;内层 32元素共享 E8M0 指数 |
27+| 对称性 | 对称 | 仅 scale/指数,无 offset |
28+ 
29+### 量化公式
30+ 
31+MX 格式按块共享 E8M0 指数,块内每个元素用块级指数缩放后量化为主尾数:
32+$$e = \lfloor \log_2(\max_{i \in \mathrm{block}}|x_i|) \rfloor, \qquad q_i = \mathrm{round}_{MX}\left(\frac{x_i}{2^e}\right), \qquad \hat{x}_i = q_i \cdot 2^e$$
33+ 
34+其中块大小32元素,$e$ 为块内共享的 E8M0 指数,$q_i$ 为块内第 $i$ 个元素的量化尾数(MXFP8 为 FP8 尾数、MXFP4 为 FP4 尾数),$\hat{x}_i$ 为反量化还原值。每块共享一个 $e$;量化参数在线计算(激活)或量化阶段固化(权重),见「模式规格」表。
35+ 
36+### 与其他模式的关系
37+ 
38+- **与 [W4A4 MX 动态量化](term_w4a4_mx_dynamic.md)(同为 MXFP4,缩放层级不同)**
39+ - 本模式(双 scale):优势是两级缩放解耦「整体量级」与「局部动态范围」,强离群值或量级差异大的大块下精度明显更稳;劣势是多一层参数与配置(`dual_block_size`)、实现更复杂。
40+ - 单层:优势是实现简单、参数开销最低;劣势是单个块指数难以同时覆盖量级与细节,极端分布下精度受限。
41+ 
42+- **与 [W4A4 动态量化](term_w4a4_dynamic.md)(数据类型与缩放不同)**
43+ - 本模式(MXFP4 双 scale):优势是浮点动态范围 + 两级缩放,精度显著优于 INT4 均匀分档;劣势是依赖 MX 硬件支持、块对齐约束。
44+ - INT4:优势是整数 GEMM 生态成熟、实现简单;劣势是对离群值敏感、动态范围受限。
45+ 
46+- **与 [W4A8 MX 动态量化](term_w4a8_mx_dynamic.md)(激活位宽不同)**
47+ - 本模式:优势是激活亦压到 4bit、压缩比最大化,双 scale 用于兜底激活精度;劣势是 4bit 固有精度风险仍高于 8bit。
48+ - W4A8 MX:优势是激活保持 8bit、天然更稳;劣势是激活访存收益小于全 4bit。
49+ 
50+### 适用场景与限制
51+ 
52+#### 1. 适用场景
53+ 
54+- **W4A4 精度敏感部署**:需要在 4bit 位宽下尽量逼近 FP16 精度的场景。
55+- **存在离群值的超低比特量化**:单层 MXFP4 精度不足、需要两级缩放缓解离群值影响。
56+- **昇腾 MXFP 推理路径**:硬件/算子库原生支持 MX 格式及双 scale 计算的部署。
57+ 
58+#### 2. 使用限制
59+ 
60+- **依赖硬件/算子支持**:双 scale 计算需目标硬件算子库支持。
61+- **块粒度对齐**:外层大块与内层小块尺寸均需能整除张量最后维。
62+- **配置约束**`dual_block_size` 需按硬件与张量形状合理选取,取值不当会引入额外开销。
63+- **4bit 固有精度门槛**:即使双 scale,激活/权重 4bit 的精度风险仍高于 8bit 方案。
64+ 
65+---
66+ 
67+## 3. 关联流程
68+ 
69+- 《[一键量化完整指南](../../../user_guide/usage_quick_quantization.md)》:通过 `--quant_type` 或 YAML 配置选择本模式并执行量化。
70+- 《[量化精度调优指南](../../../user_guide/process_quantization_precision_tuning.md)》:本模式导致的精度劣化可通过该流程逐层回退与调优。
71+ 
72+---
73+ 
74+## 4. 关联词条
75+ 
76+- [量化模式](../README.md):上位概念,本词条属于[线性层量化](README.md)类别,是该类别下的一种具体模式。
77+- [W4A4 MX 动态量化](term_w4a4_mx_dynamic.md):同类模式,单层缩放的 MXFP4 基础版。
78+- [W4A4 动态量化](term_w4a4_dynamic.md):对比模式,INT4 整数方案。
79+- [W4A8 MX 动态量化](term_w4a8_mx_dynamic.md):同类模式,激活改用 MXFP8 保精度。
80+- 《[DualScale:w4a4量化方案说明](../../quantization_algorithms/dual_scale/dual_scale.md)》:配套术语,本模式对应的算法处理器文档。
81+ 
82+---
83+ 
84+## 5. 参考文档
85+ 
86+1. 《[线性量化算法说明](../../quantization_algorithms/linear_quant/linear_quant.md)》
87+2. 《[量化模式](../README.md)》
@@ -0,0 +1,87 @@
1+# W4A4 MX 动态量化
2+ 
3+> **词条类别**:量化数据格式([线性层量化](../README.md))
4+> **英文名称**:W4A4 MX Dynamic Quantization
5+> **应用领域**:大语言模型量化压缩、推理加速
6+> **承载 IR 类**:`W4A4MXDynamicPerBlockFakeQuantLinear`([`msmodelslim/ir/w4a4_mx_dynamic.py`](../../../../../msmodelslim/ir/w4a4_mx_dynamic.py))
7+ 
8+---
9+ 
10+## 1. 概述
11+ 
12+W4A4 MX 动态量化 = 双 4bit 的 MX 超低比特方案:权重与激活都按 32元素块共享 E8M0 指数、元素为 [MXFP4](../../quantization_basic/term_mxfp.md)。它在 4bit 位宽下用块级共享指数保留浮点动态范围,权重与激活访存都降至 [FP16/BF16](../../quantization_basic/term_fp16_bf16.md) 的 1/4,是压缩比最高的一类线性层方案;对离群值比 [INT4](../../quantization_basic/term_int4.md) 均匀分档更耐受,但激活 4bit 的固有精度风险依然存在。
13+ 
14+---
15+ 
16+## 2. 词条介绍
17+ 
18+### 模式规格
19+ 
20+| 维度 | 取值 | 说明 |
21+|------|------|------|
22+| 量化对象 | 权重 W、激活 A | 线性层矩阵乘两侧的张量 |
23+| 位宽 | W 4bit,A 4bit | 权重与激活访存均降至 FP16 的 1/4 |
24+| 数据类型 | MXFP4 | 每32元素共享一个 E8M0 指数,元素为 1符号 + 2指数 + 1尾数(emax=2,max 6) |
25+| 参数获取方式 | 激活动态 / 权重静态 | 激活块级指数前向在线统计;权重块级指数量化阶段固化 |
26+| 量化粒度 | 权重/激活均 per-block(32元素) | 最后维按 32元素分块,每块共享一个指数 |
27+| 对称性 | 对称 | 仅指数/scale,无 offset |
28+ 
29+### 量化公式
30+ 
31+MX 格式按块共享 E8M0 指数,块内每个元素用块级指数缩放后量化为主尾数:
32+$$e = \lfloor \log_2(\max_{i \in \mathrm{block}}|x_i|) \rfloor, \qquad q_i = \mathrm{round}_{MX}\left(\frac{x_i}{2^e}\right), \qquad \hat{x}_i = q_i \cdot 2^e$$
33+ 
34+其中块大小32元素,$e$ 为块内共享的 E8M0 指数,$q_i$ 为块内第 $i$ 个元素的量化尾数(MXFP8 为 FP8 尾数、MXFP4 为 FP4 尾数),$\hat{x}_i$ 为反量化还原值。每块共享一个 $e$;量化参数在线计算(激活)或量化阶段固化(权重),见「模式规格」表。
35+ 
36+### 与其他模式的关系
37+ 
38+- **与 [W4A4 动态量化](term_w4a4_dynamic.md)(同为 W4A4,数据类型不同)**
39+ - 本模式(MXFP4):优势是块级共享指数保留浮点动态范围、对离群值比 [INT4](../../quantization_basic/term_int4.md) 均匀分档更耐受;劣势是依赖硬件 MX 支持、最后维需 32 对齐。
40+ - INT4:优势是整数 GEMM 生态成熟、实现简单;劣势是均匀分档对离群值敏感,需更细粒度与离群抑制兜底。
41+ 
42+- **与 [W4A4 MX 双 Scale 量化](term_w4a4_mx_dualscale.md)(同为 MXFP4,缩放层级不同)**
43+ - 本模式(单层):优势是实现简单、参数开销最低;劣势是大块内部量级差异大或存在强离群值时,单个指数难以同时覆盖「整体量级」与「局部细节」。
44+ - 双 Scale:优势是外层高精度 scale 保不溢出、内层指数保细节,精度明显更稳;劣势是多一层参数与配置(`dual_block_size`),实现更复杂。
45+ 
46+- **与 [W4A8 MX 动态量化](term_w4a8_mx_dynamic.md)(激活位宽不同)**
47+ - 本模式:优势是激活亦压到 4bit、压缩比最大化;劣势是激活 4bit 精度风险远高于 8bit。
48+ - W4A8 MX:优势是激活保持 8bit、精度更稳,是压缩与精度的折中。
49+ 
50+### 适用场景与限制
51+ 
52+#### 1. 适用场景
53+ 
54+- **极致压缩部署**:显存/带宽受限、追求最大压缩比的场景,如大规模服务端多模型部署。
55+- **离群值敏感但需 4bit**:在 4bit 位宽下需要比 INT4 更好精度的场景。
56+- **昇腾 MXFP 推理路径**:硬件/算子库原生支持 MX 格式的部署。
57+ 
58+#### 2. 使用限制
59+ 
60+- **依赖硬件 MX 支持**:MXFP4 计算需目标硬件算子库支持。
61+- **块粒度对齐**:张量最后维需能被 32 整除,否则需 padding。
62+- **低比特精度门槛**:4bit 量化精度风险大,通常需配合离群值抑制与精度调优。
63+- **激活 4bit 风险**:激活 4bit 对分布极其敏感,比 W4A8 MX 方案风险更高。
64+ 
65+---
66+ 
67+## 3. 关联流程
68+ 
69+- 《[一键量化完整指南](../../../user_guide/usage_quick_quantization.md)》:通过 `--quant_type` 或 YAML 配置选择本模式并执行量化。
70+- 《[量化精度调优指南](../../../user_guide/process_quantization_precision_tuning.md)》:本模式导致的精度劣化可通过该流程逐层回退与调优。
71+ 
72+---
73+ 
74+## 4. 关联词条
75+ 
76+- [量化模式](../README.md):上位概念,本词条属于[线性层量化](README.md)类别,是该类别下的一种具体模式。
77+- [W4A4 动态量化](term_w4a4_dynamic.md):对比模式,INT4 整数方案。
78+- [W4A4 MX 双 Scale 量化](term_w4a4_mx_dualscale.md):同类模式,双层缩放的精度增强版。
79+- [W4A8 MX 动态量化](term_w4a8_mx_dynamic.md):同类模式,激活改用 MXFP8 保精度。
80+- 《[线性量化算法说明](../../quantization_algorithms/linear_quant/linear_quant.md)》:配套术语,本模式的处理器实现。
81+ 
82+---
83+ 
84+## 5. 参考文档
85+ 
86+1. 《[线性量化算法说明](../../quantization_algorithms/linear_quant/linear_quant.md)》
87+2. 《[量化模式](../README.md)》
@@ -0,0 +1,92 @@
1+# W4A8 动态量化
2+ 
3+> **词条类别**:量化数据格式([线性层量化](../README.md))
4+> **英文名称**:W4A8 Dynamic Quantization
5+> **应用领域**:大语言模型量化压缩、推理加速
6+> **承载 IR 类**:`W4A8DynamicFakeQuantLinear`([`msmodelslim/ir/w4a8_dynamic.py`](../../../../../msmodelslim/ir/w4a8_dynamic.py))
7+ 
8+---
9+ 
10+## 1. 概述
11+ 
12+W4A8 动态量化 = 权重压到 [INT4](../../quantization_basic/term_int4.md)、激活保持 [INT8](../../quantization_basic/term_int8.md) 的**混合位宽**线性层方案,激活量化参数逐 token 在线计算。它在压缩与精度之间取折中:权重是每 token 都要整体读取的静态数据,压到 4bit 把权重访存降至 [FP16/BF16](../../quantization_basic/term_fp16_bf16.md) 的 1/4;激活是量化误差最敏感的一方,保留 8bit 分辨率并逐 token 动态量化,是「权重使劲压、激活保精度」的典型配置。
13+ 
14+---
15+ 
16+## 2. 词条介绍
17+ 
18+### 模式规格
19+ 
20+| 维度 | 取值 | 说明 |
21+|------|------|------|
22+| 量化对象 | 权重 W、激活 A | 线性层矩阵乘两侧的张量 |
23+| 位宽 | W 4bit,A 8bit | 混合位宽,权重访存降至 [FP16/BF16](../../quantization_basic/term_fp16_bf16.md) 的 1/4、激活降至 1/2 |
24+| 数据类型 | 权重 INT4;激活 INT8 | 整数格式,权重以 INT8 容器打包存储(2个 INT4 装入 1字节) |
25+| 参数获取方式 | 激活动态 / 权重静态 | 激活逐 token 在线求 min/max 并计算 scale;权重 scale 在量化阶段固化 |
26+| 量化粒度 | 权重 per-channel;激活 per-token | 权重逐输出通道共享 scale;激活逐 token 共享 scale |
27+| 对称性 | 对称 | 仅 scale,无 offset |
28+ 
29+### 量化公式
30+ 
31+量化与反量化采用标准线性映射。对称量化(仅 scale、无零点):
32+$$q = \mathrm{round}(x / s), \qquad \hat{x} = q \cdot s, \qquad s = \frac{\max(|x|)}{2^{b-1}}$$
33+ 
34+非对称量化(含零点 offset):
35+$$q = \mathrm{round}(x / s) + z, \qquad \hat{x} = (q - z) \cdot s, \qquad s = \frac{\max(x) - \min(x)}{2^b - 1}$$
36+ 
37+其中 $x$ 为待量化张量,$q$ 为量化后的整数值,$\hat{x}$ 为反量化还原值,$s$ 为 scale,$z$ 为零点 offset,$b$ 为位宽(INT8 取 $b=8$,INT4 取 $b=4$),且 $z = \mathrm{round}(-\min(x)/s)$。量化参数 $s$、$z$ 的获取方式(静态校准或在线动态)与作用粒度(per-channel、per-token、per-tensor 等)见「模式规格」表。
38+ 
39+### 与其他模式的关系
40+ 
41+- **与 [W8A8 动态量化](term_w8a8_dynamic.md)(激活同为动态,权重位宽不同)**
42+ - 本模式:优势是权重压到 4bit、访存降至 FP16 的 1/4,权重侧压缩更彻底;劣势是权重仅16档、有精度风险,且权重/激活位宽不一致时算子需混合处理。
43+ - W8A8 动态:优势是权重 8bit 分辨率高、精度更稳,算子实现简单;劣势是权重访存仅减半。
44+ 
45+- **与 [W4A4 动态量化](term_w4a4_dynamic.md)(权重同为 4bit,激活位宽不同)**
46+ - 本模式:优势是激活保持 8bit、远离最敏感的激活量化误差,精度风险远低于 W4A4;劣势是激活访存只减半,压缩幅度小于全 4bit。
47+ - W4A4:优势是压缩比最大化、激活位宽同降;劣势是 4bit 激活精度风险极高,需要更多兜底手段。
48+ 
49+- **与 [W8A16 静态量化](term_w8a16_static.md)(高精度基线)**
50+ - 本模式:优势是权重、激活均量化,压缩远比 W8A16 彻底(权重 4bit + 激活 8bit);劣势是激活引入量化误差,权重/激活反量化回浮点执行时计算加速有限,收益主要来自访存。
51+ - W8A16:优势是激活 FP16 零误差、精度最稳;劣势是权重仅压到 8bit、且需反量化回浮点执行,无低精度 GEMM 加速。
52+ 
53+- **与 [W4A8 MX 动态量化](term_w4a8_mx_dynamic.md)(同为 W4A8,数据类型与粒度不同)**
54+ - 本模式(INT4 per-channel):优势是整数格式、硬件算子生态成熟;劣势是均匀分档对权重离群值敏感,per-channel 粒度需逐输出通道记 scale。
55+ - MXFP4:优势是块级共享指数保留浮点动态范围、对离群值更耐受;劣势是依赖硬件 MX 支持、块大小需对齐。
56+ 
57+### 适用场景与限制
58+ 
59+#### 1. 适用场景
60+ 
61+- **权重内存/带宽主导的部署**:模型权重是主要显存占用,decode 时(逐个生成 token 的推理阶段)权重读取是吞吐瓶颈的场景。
62+- **精度与压缩折中**:需要比 W8A8 更强的权重压缩,又不敢把激活压到 4bit 的场景。
63+ 
64+#### 2. 使用限制
65+ 
66+- **权重精度风险**:4bit 权重仅16档,对离群值敏感,需配合离群值抑制或更细分组。
67+- **混合位宽算子依赖**:INT4×INT8 混合位宽 GEMM 需要目标硬件算子库支持,否则收益打折。
68+ 
69+---
70+ 
71+## 3. 关联流程
72+ 
73+- 《[一键量化完整指南](../../../user_guide/usage_quick_quantization.md)》:通过 `--quant_type` 或 YAML 配置选择本模式并执行量化。
74+- 《[量化精度调优指南](../../../user_guide/process_quantization_precision_tuning.md)》:本模式导致的精度劣化可通过该流程逐层回退与调优。
75+ 
76+---
77+ 
78+## 4. 关联词条
79+ 
80+- [量化模式](../README.md):上位概念,本词条属于[线性层量化](README.md)类别,是该类别下的一种具体模式。
81+- [W8A8 动态量化](term_w8a8_dynamic.md):对比模式,权重升至 8bit、精度更稳。
82+- [W4A4 动态量化](term_w4a4_dynamic.md):对比模式,激活压到 4bit、压缩更狠。
83+- [W8A16 静态量化](term_w8a16_static.md):对比模式,激活不量化的高精度基线。
84+- [W4A8 MX 动态量化](term_w4a8_mx_dynamic.md):同类模式,改用 MX 浮点格式承载同一位宽。
85+- 《[线性量化算法说明](../../quantization_algorithms/linear_quant/linear_quant.md)》:配套术语,本模式的处理器实现。
86+ 
87+---
88+ 
89+## 5. 参考文档
90+ 
91+1. 《[线性量化算法说明](../../quantization_algorithms/linear_quant/linear_quant.md)》
92+2. 《[量化模式](../README.md)》
@@ -0,0 +1,86 @@
1+# W4A8 MX 动态量化
2+ 
3+> **词条类别**:量化数据格式([线性层量化](../README.md))
4+> **英文名称**:W4A8 MX Dynamic Quantization
5+> **应用领域**:大语言模型量化压缩、推理加速
6+> **承载 IR 类**:`W4A8MXDynamicPerBlockFakeQuantLinear`([`msmodelslim/ir/w4a8_mx_dynamic.py`](../../../../../msmodelslim/ir/w4a8_mx_dynamic.py))
7+ 
8+---
9+ 
10+## 1. 概述
11+ 
12+W4A8 MX 动态量化 = 把 W4A8 位宽搭配换成 MX 格式:权重用 [MXFP4](../../quantization_basic/term_mxfp.md)(1符号 + 2指数 + 1尾数)拿 4bit 压缩、激活用 [MXFP8](../../quantization_basic/term_mxfp.md)(E4M3)保8bit精度,两侧都按 32元素块共享 E8M0 指数。相比 [INT4](../../quantization_basic/term_int4.md)/[INT8](../../quantization_basic/term_int8.md) 组合,MX 浮点格式对离群值更耐受;相比全 4bit 方案,激活保持 8bit 显著降低精度风险,是「权重极致压缩 + 激活保精度」的 MX 版折中。
13+ 
14+---
15+ 
16+## 2. 词条介绍
17+ 
18+### 模式规格
19+ 
20+| 维度 | 取值 | 说明 |
21+|------|------|------|
22+| 量化对象 | 权重 W、激活 A | 线性层矩阵乘两侧的张量 |
23+| 位宽 | W 4bit,A 8bit | 权重访存降至 FP16 的 1/4,激活降至 1/2 |
24+| 数据类型 | 权重 MXFP4;激活 MXFP8 | MXFP4 emax=2、max 6;MXFP8 emax=8、max 448;均为每32元素共享 E8M0 指数 |
25+| 参数获取方式 | 激活动态 / 权重静态 | 激活块级指数前向在线统计;权重块级指数量化阶段固化 |
26+| 量化粒度 | 权重/激活均 per-block(32元素) | 最后维按 32元素分块,每块共享一个指数 |
27+| 对称性 | 对称 | 仅指数/scale,无 offset |
28+ 
29+### 量化公式
30+ 
31+MX 格式按块共享 E8M0 指数,块内每个元素用块级指数缩放后量化为主尾数:
32+$$e = \lfloor \log_2(\max_{i \in \mathrm{block}}|x_i|) \rfloor, \qquad q_i = \mathrm{round}_{MX}\left(\frac{x_i}{2^e}\right), \qquad \hat{x}_i = q_i \cdot 2^e$$
33+ 
34+其中块大小32元素,$e$ 为块内共享的 E8M0 指数,$q_i$ 为块内第 $i$ 个元素的量化尾数(MXFP8 为 FP8 尾数、MXFP4 为 FP4 尾数),$\hat{x}_i$ 为反量化还原值。每块共享一个 $e$;量化参数在线计算(激活)或量化阶段固化(权重),见「模式规格」表。
35+ 
36+### 与其他模式的关系
37+ 
38+- **与 [W4A8 动态量化](term_w4a8_dynamic.md)(同为 W4A8,数据类型与粒度不同)**
39+ - 本模式(MX 格式):优势是 MXFP4 权重块级共享指数对离群值更耐受、MXFP8 激活浮点动态范围更宽;劣势是依赖硬件 MX 支持、最后维需 32 对齐。
40+ - INT4/INT8:优势是整数格式、硬件算子生态成熟;劣势是均匀分档对离群值敏感。
41+ 
42+- **与 [W8A8 MX 动态量化](term_w8a8_mx_dynamic.md)(权重位宽不同)**
43+ - 本模式:优势是权重压缩至 4bit、访存降至 FP16 的 1/4;劣势是权重仅少量可表示值、精度风险高于 8bit。
44+ - W8A8 MX:优势是权重 8bit 精度更稳;劣势是权重访存仅减半。
45+ 
46+- **与 [W4A4 MX 动态量化](term_w4a4_mx_dynamic.md)(激活位宽不同)**
47+ - 本模式:优势是激活保持 8bit、远离最敏感的激活量化误差,是压缩与精度的折中;劣势是激活访存收益小于全 4bit。
48+ - W4A4 MX:优势是双 4bit 压缩最大化;劣势是激活 4bit 精度风险高。
49+ 
50+### 适用场景与限制
51+ 
52+#### 1. 适用场景
53+ 
54+- **权重访存受限 + 激活分布动态范围大**:需要权重 4bit 压缩、又担心 INT8 激活精度不足的场景。
55+- **离群值敏感的低比特部署**:MX 浮点格式比整数格式更耐受离群值。
56+- **昇腾 MXFP 推理路径**:硬件/算子库原生支持 MX 格式的部署。
57+ 
58+#### 2. 使用限制
59+ 
60+- **依赖硬件 MX 支持**:MXFP4/MXFP8 计算需目标硬件算子库支持。
61+- **块粒度对齐**:张量最后维需能被 32 整除,否则需 padding。
62+- **4bit 权重精度风险**:MXFP4 仅16个可表示值,极端权重分布下仍需验证精度。
63+ 
64+---
65+ 
66+## 3. 关联流程
67+ 
68+- 《[一键量化完整指南](../../../user_guide/usage_quick_quantization.md)》:通过 `--quant_type` 或 YAML 配置选择本模式并执行量化。
69+- 《[量化精度调优指南](../../../user_guide/process_quantization_precision_tuning.md)》:本模式导致的精度劣化可通过该流程逐层回退与调优。
70+ 
71+---
72+ 
73+## 4. 关联词条
74+ 
75+- [量化模式](../README.md):上位概念,本词条属于[线性层量化](README.md)类别,是该类别下的一种具体模式。
76+- [W4A8 动态量化](term_w4a8_dynamic.md):对比模式,INT4 权重 + INT8 激活的整数方案。
77+- [W8A8 MX 动态量化](term_w8a8_mx_dynamic.md):同类模式,权重亦为 MXFP8。
78+- [W4A4 MX 动态量化](term_w4a4_mx_dynamic.md):同类模式,激活亦降为 MXFP4。
79+- 《[线性量化算法说明](../../quantization_algorithms/linear_quant/linear_quant.md)》:配套术语,本模式的处理器实现。
80+ 
81+---
82+ 
83+## 5. 参考文档
84+ 
85+1. 《[线性量化算法说明](../../quantization_algorithms/linear_quant/linear_quant.md)》
86+2. 《[量化模式](../README.md)》
@@ -0,0 +1,89 @@
1+# W8A16 静态量化
2+ 
3+> **词条类别**:量化数据格式([线性层量化](../README.md))
4+> **英文名称**:W8A16 Static Quantization
5+> **应用领域**:大语言模型量化压缩、推理加速
6+> **承载 IR 类**:`W8A16StaticPerChannelFakeQuantLinear` / `W8A16StaticPerGroupFakeQuantLinear`([`msmodelslim/ir/w8a16_static.py`](../../../../../msmodelslim/ir/w8a16_static.py))
7+ 
8+---
9+ 
10+## 1. 概述
11+ 
12+W8A16 静态量化 = 只把线性层的权重压到 [INT8](../../quantization_basic/term_int8.md),激活保持 [FP16/BF16](../../quantization_basic/term_fp16_bf16.md) 不量化。它面向"激活精度敏感、不敢量化"的场景:权重是每 token 都要整体读取的静态数据,压到 [INT8](../../quantization_basic/term_int8.md) 使权重访存减半;激活不量化则完全规避激活量化误差,是精度最稳的线性层方案之一。代价是激活不量化意味着矩阵乘需把 [INT8](../../quantization_basic/term_int8.md) 权重反量化回浮点执行,没有[整数 GEMM](../term_gemm.md) 加速。
13+ 
14+---
15+ 
16+## 2. 词条介绍
17+ 
18+### 模式规格
19+ 
20+| 维度 | 取值 | 说明 |
21+|------|------|------|
22+| 量化对象 | 仅权重 W | 激活保持 FP16 原样参与计算,不引入任何量化误差 |
23+| 位宽 | W 8bit,A 16bit | 权重 1字节/元素、访存减半;激活 2字节/元素 |
24+| 数据类型 | 权重 INT8;激活 FP16 | 混合位宽,压缩收益全部来自权重侧 |
25+| 参数获取方式 | 静态 | 权重 scale/offset 量化阶段固化,推理零在线开销;激活无参数 |
26+| 量化粒度 | 权重 per-channel/per-group | 逐输出通道或按固定分组(如 128元素)共享 scale,适配通道/分组间数值差异 |
27+| 对称性 | 权重对称或非对称 | 依据权重分布选择,非对称加 offset |
28+ 
29+### 量化公式
30+ 
31+量化与反量化采用标准线性映射。对称量化(仅 scale、无零点):
32+$$q = \mathrm{round}(x / s), \qquad \hat{x} = q \cdot s, \qquad s = \frac{\max(|x|)}{2^{b-1}}$$
33+ 
34+非对称量化(含零点 offset):
35+$$q = \mathrm{round}(x / s) + z, \qquad \hat{x} = (q - z) \cdot s, \qquad s = \frac{\max(x) - \min(x)}{2^b - 1}$$
36+ 
37+其中 $x$ 为待量化张量,$q$ 为量化后的整数值,$\hat{x}$ 为反量化还原值,$s$ 为 scale,$z$ 为零点 offset,$b$ 为位宽(INT8 取 $b=8$,INT4 取 $b=4$),且 $z = \mathrm{round}(-\min(x)/s)$。量化参数 $s$、$z$ 的获取方式(静态校准或在线动态)与作用粒度(per-channel、per-token、per-tensor 等)见「模式规格」表。本模式仅权重走上述公式($b=8$),激活保持 FP16 不量化。
38+ 
39+### 与其他模式的关系
40+ 
41+- **与 [W8A8 静态量化](term_w8a8_static.md)(激活是否量化不同)**
42+ - 本模式:优势是激活保持 FP16、零量化误差,是精度最稳的基线之一,适合激活存在离群值或对量化敏感的层;劣势是激活不量化,矩阵乘需把 [INT8](../../quantization_basic/term_int8.md) 权重反量化回浮点执行,无整数 GEMM 带来的计算加速,性能较差,整体压缩低于 W8A8。
43+ - W8A8:优势是激活亦量化为 INT8、可走整数 GEMM,计算吞吐更高、压缩更彻底;劣势是激活引入量化误差。
44+ 
45+- **与 [W4A8 动态量化](term_w4a8_dynamic.md)(位宽搭配不同)**
46+ - 本模式:优势是激活完全无量化误差,且无在线归约开销;劣势是权重仅压到 8bit、访存收益有限,无计算加速。
47+ - W4A8:优势是权重压到 4bit、访存降至 FP16 的 1/4;劣势是权重仅16档有精度风险,激活动态引入归约开销。
48+ 
49+- **与 [W16A16S 量化](term_w16a16s.md)(同为高精度基线,收益来源不同)**
50+ - 本模式:收益来自权重位宽压缩(访存减半)。
51+ - W16A16S:权重与激活均不量化,收益来自承载的稀疏权重(跳过零值元素),是去除位宽量化后的稀疏对照基线。
52+ 
53+### 适用场景与限制
54+ 
55+#### 1. 适用场景
56+ 
57+- **激活精度敏感层**:激活分布离群值多、量化后精度劣化明显的层,可单独回退为 W8A16。
58+- **权重访存主导的 decode 场景(逐个生成 token 的推理阶段)**:权重压缩减半访存,同时保住激活精度。
59+- **精度优先的部署**:需要确定性精度的场景,W8A16 是介于不量化与 W8A8 之间的稳妥选择。
60+ 
61+#### 2. 使用限制
62+ 
63+- **无整数 GEMM 加速**:激活保持 FP16,矩阵乘仍为浮点,计算吞吐提升有限,只省权重访存。
64+- **压缩比低于 W8A8**:激活未压缩,整体位宽收益低于权重/激活同时量化的方案。
65+ 
66+---
67+ 
68+## 3. 关联流程
69+ 
70+- 《[一键量化完整指南](../../../user_guide/usage_quick_quantization.md)》:通过 `--quant_type` 或 YAML 配置选择本模式并执行量化。
71+- 《[量化精度调优指南](../../../user_guide/process_quantization_precision_tuning.md)》:本模式导致的精度劣化可通过该流程逐层回退与调优。
72+ 
73+---
74+ 
75+## 4. 关联词条
76+ 
77+- [量化模式](../README.md):上位概念,本词条属于[线性层量化](README.md)类别,是该类别下的一种具体模式。
78+- [W8A8 静态量化](term_w8a8_static.md):对比模式,激活亦量化为 INT8、换取整数 GEMM 加速。
79+- [W4A8 动态量化](term_w4a8_dynamic.md):对比模式,权重压到 4bit 的混合位宽方案。
80+- [W16A16S 量化](term_w16a16s.md):同类模式,完全不量化的稀疏基线。
81+- 《[线性量化算法说明](../../quantization_algorithms/linear_quant/linear_quant.md)》:配套术语,本模式的处理器实现。
82+- 《[MinMax:最小最大值量化算法说明](../../quantization_algorithms/minmax/minmax.md)》:配套术语,静态量化常用的量化参数统计方法。
83+ 
84+---
85+ 
86+## 5. 参考文档
87+ 
88+1. 《[线性量化算法说明](../../quantization_algorithms/linear_quant/linear_quant.md)》
89+2. 《[量化模式](../README.md)》
@@ -0,0 +1,88 @@
1+# W8A8 动态量化
2+ 
3+> **词条类别**:量化数据格式([线性层量化](../README.md))
4+> **英文名称**:W8A8 Dynamic Quantization
5+> **应用领域**:大语言模型量化压缩、推理加速
6+> **承载 IR 类**:`W8A8DynamicPerChannelFakeQuantLinear` / `W8A8DynamicPerGroupFakeQuantLinear`([`msmodelslim/ir/w8a8_dynamic.py`](../../../../../msmodelslim/ir/w8a8_dynamic.py))
7+ 
8+---
9+ 
10+## 1. 概述
11+ 
12+W8A8 动态量化 = 对线性层的权重与激活都做 [INT8](../../quantization_basic/term_int8.md) 量化,其中**激活的量化参数在推理时逐 token 在线计算**。它与 [W8A8 静态量化](term_w8a8_static.md) 位宽完全相同,唯一区别是参数获取方式:「静态」离线校准固化、「动态」在线统计。动态方案免校准、逐 token 更贴合自身数值范围,代价是每次前向多一次 min/max 归约。
13+ 
14+---
15+ 
16+## 2. 词条介绍
17+ 
18+### 模式规格
19+ 
20+| 维度 | 取值 | 说明 |
21+|------|------|------|
22+| 量化对象 | 权重 W、激活 A | 线性层矩阵乘两侧的张量 |
23+| 位宽 | W 8bit,A 8bit | 同为 8bit,访存减半 |
24+| 数据类型 | INT8 | 整数格式,可走 INT8 整数 GEMM |
25+| 参数获取方式 | 激活动态 / 权重静态 | 激活对每个 token 在线求 min/max 并计算 scale,免校准、随输入自适应;权重 scale 在量化阶段固化 |
26+| 量化粒度 | 权重 per-channel/per-group;激活 per-token | 权重逐输出通道或按固定分组(如 128元素)共享 scale;激活逐 token(一行)共享 scale |
27+| 对称性 | 激活对称;权重对称(per-group 支持非对称) | 激活对称仅 scale;权重 per-group 可加 offset |
28+ 
29+### 量化公式
30+ 
31+量化与反量化采用标准线性映射。对称量化(仅 scale、无零点):
32+$$q = \mathrm{round}(x / s), \qquad \hat{x} = q \cdot s, \qquad s = \frac{\max(|x|)}{2^{b-1}}$$
33+ 
34+非对称量化(含零点 offset):
35+$$q = \mathrm{round}(x / s) + z, \qquad \hat{x} = (q - z) \cdot s, \qquad s = \frac{\max(x) - \min(x)}{2^b - 1}$$
36+ 
37+其中 $x$ 为待量化张量,$q$ 为量化后的整数值,$\hat{x}$ 为反量化还原值,$s$ 为 scale,$z$ 为零点 offset,$b$ 为位宽(INT8 取 $b=8$,INT4 取 $b=4$),且 $z = \mathrm{round}(-\min(x)/s)$。量化参数 $s$、$z$ 的获取方式(静态校准或在线动态)与作用粒度(per-channel、per-token、per-tensor 等)见「模式规格」表。
38+ 
39+### 与其他模式的关系
40+ 
41+- **与 [W8A8 静态量化](term_w8a8_static.md)(位宽相同,参数获取方式不同)**
42+ - 本模式(动态):优势是逐 token 在线算 scale、免校准,激活量化贴合每个 token 的数值范围,精度高于静态 per-tensor,对输入分布漂移鲁棒;劣势是每次前向多一次 min/max 归约,带来少量延迟开销。
43+ - 静态:优势是激活 scale 离线固化、推理零在线开销;劣势是 per-tensor 粗粒度依赖校准数据,精度上限较低。
44+ 
45+- **与 [W8A8 PD-Mix 量化](term_w8a8_pdmix.md)(同为 W8A8,激活策略随阶段不同)**
46+ - 本模式:全阶段 per-token 动态,激活精度统一;劣势是 decode 阶段每步只有一个 token——激活即整张量,per-token 与 per-tensor 粒度等价,per-token 归约既无统计意义、开销又属多余。
47+ - PD-Mix:prefill 动态保精度、decode 退回静态零开销,两阶段各自最优;劣势是依赖推理框架的阶段感知与切换,当前仅限 MindIE 部署。
48+ 
49+- **与 [W4A4 动态量化](term_w4a4_dynamic.md)(同为动态家族,位宽不同)**
50+ - 本模式:优势是 8bit 分辨率高、精度更稳,是通用选择;劣势是权重访存仅减半(FP16 的 1/2)。
51+ - W4A4:优势是权重访存降至 FP16 的 1/4、压缩更彻底;劣势是仅16档、精度风险高,需更细粒度与离群抑制兜底。
52+ 
53+### 适用场景与限制
54+ 
55+#### 1. 适用场景
56+ 
57+- **校准数据不足或分布不确定**:免校准,适合无代表性校准集、或部署时输入分布变化大的场景。
58+- **精度要求高于静态**:需要比静态 W8A8 更好的激活精度,且可接受少量在线归约开销。
59+ 
60+#### 2. 使用限制
61+ 
62+- **在线归约开销**:per-token min/max 归约增加少量延迟,对每 token 计算量极小的层占比更明显。
63+- **硬件算子依赖**:per-token 动态量化需推理框架/算子库支持逐 token 参数计算,否则只能软件模拟、收益打折。
64+ 
65+---
66+ 
67+## 3. 关联流程
68+ 
69+- 《[一键量化完整指南](../../../user_guide/usage_quick_quantization.md)》:通过 `--quant_type` 或 YAML 配置选择本模式并执行量化。
70+- 《[量化精度调优指南](../../../user_guide/process_quantization_precision_tuning.md)》:本模式导致的精度劣化可通过该流程逐层回退与调优。
71+ 
72+---
73+ 
74+## 4. 关联词条
75+ 
76+- [量化模式](../README.md):上位概念,本词条属于[线性层量化](README.md)类别,是该类别下的一种具体模式。
77+- [W8A8 静态量化](term_w8a8_static.md):对比模式,激活参数离线固化。
78+- [W8A8 PD-Mix 量化](term_w8a8_pdmix.md):同类模式,激活策略随 Prefill/Decode 阶段切换。
79+- [W4A4 动态量化](term_w4a4_dynamic.md):同类模式,更低比特的权重+激活量化。
80+- [FA PerToken 量化](../fa_quantization/term_fa_pertoken.md):同类模式,把 per-token 动态量化应用于注意力 Q/K/V 激活。
81+- 《[线性量化算法说明](../../quantization_algorithms/linear_quant/linear_quant.md)》:配套术语,本模式的处理器实现。
82+ 
83+---
84+ 
85+## 5. 参考文档
86+ 
87+1. 《[线性量化算法说明](../../quantization_algorithms/linear_quant/linear_quant.md)》
88+2. 《[量化模式](../README.md)》
@@ -0,0 +1,87 @@
1+# W8A8 FP8 动态量化
2+ 
3+> **词条类别**:量化数据格式([线性层量化](../README.md))
4+> **英文名称**:W8A8 FP8 Dynamic Quantization
5+> **应用领域**:大语言模型量化压缩、推理加速
6+> **承载 IR 类**:`WFP8AFP8DynamicPerChannelFakeQuantLinear`([`msmodelslim/ir/w8a8_fp_dynamic.py`](../../../../../msmodelslim/ir/w8a8_fp_dynamic.py))
7+ 
8+---
9+ 
10+## 1. 概述
11+ 
12+W8A8 FP8 动态量化 = **[FP8(E4M3)](../../quantization_basic/term_fp8.md) 版本**的 W8A8 动态量化:权重与激活都以 [FP8(E4M3)](../../quantization_basic/term_fp8.md) 存储,激活量化参数逐 token 在线计算。与 [INT8](../../quantization_basic/term_int8.md) 相比,E4M3 的 4bit 指数保留了浮点动态范围,对「数值跨度大、离群值多」的激活更耐受,无需先做离群值抑制;位宽同为 8bit,访存收益与 [INT8](../../quantization_basic/term_int8.md) 一致。代价是必须依赖支持 [FP8](../../quantization_basic/term_fp8.md) [GEMM](../term_gemm.md) 的硬件算子。模式名按家族 `W{位宽}A{位宽} + 数据类型` 记法,`W8A8 FP8` 表示 W 与 A 均为 8bit、数据类型为 [FP8(E4M3)](../../quantization_basic/term_fp8.md)。
13+ 
14+---
15+ 
16+## 2. 词条介绍
17+ 
18+### 模式规格
19+ 
20+| 维度 | 取值 | 说明 |
21+|------|------|------|
22+| 量化对象 | 权重 W、激活 A | 线性层矩阵乘两侧的张量 |
23+| 位宽 | W 8bit,A 8bit | 同为 8bit,访存减半 |
24+| 数据类型 | FP8(E4M3) | 浮点格式,1bit 符号 + 4bit 指数 + 3bit 尾数,max 值 448 |
25+| 参数获取方式 | 激活动态 / 权重静态 | 激活逐 token 在线求 scale;权重 scale 在量化阶段固化 |
26+| 量化粒度 | 权重 per-channel;激活 per-token | 权重逐输出通道共享 scale;激活逐 token 共享 scale |
27+| 对称性 | 对称 | 仅 scale,无 offset |
28+ 
29+### 量化公式
30+ 
31+FP8(E4M3)量化的 scale 按 FP8 可表示最大值确定:
32+$$q = \mathrm{round}_{FP8}(x / s), \qquad \hat{x} = q \cdot s, \qquad s = \frac{\max(|x|)}{448}$$
33+ 
34+其中 $x$ 为待量化张量,$q$ 为量化后的 FP8 值($\mathrm{round}_{FP8}$ 表示舍入到 E4M3 可表示的最近值,最大有限值 448),$\hat{x}$ 为反量化还原值,$s$ 为 scale。量化参数的获取方式与作用粒度见「模式规格」表。
35+ 
36+### 与其他模式的关系
37+ 
38+- **与 [W8A8 动态量化](term_w8a8_dynamic.md)(同为 8bit 动态家族,数据类型不同)**
39+ - 本模式(FP8 E4M3):优势是浮点格式、4bit 指数保留动态范围,对宽动态范围与离群值比 INT8 均匀分档更耐受;劣势是 FP8 GEMM 的硬件支持面窄于 INT8,算子生态不成熟。
40+ - INT8:优势是整数 GEMM 生态成熟、硬件支持广泛;劣势是均匀分档对离群值敏感,宽动态范围激活常需先做 [SmoothQuant](../../quantization_algorithms/smooth_quant/smooth_quant.md) 等抑制。
41+ 
42+- **与 [W8A8 MX 动态量化](term_w8a8_mx_dynamic.md)(同为 FP8 家族,格式与粒度不同)**
43+ - 本模式:优势是 per-channel/per-token 粒度、逐元素 E4M3,粒度更细、无需块对齐;劣势是每个通道/token 都需额外记录 scale。
44+ - MXFP8:优势是块级共享 E8M0 指数,scale 存储开销低、数值表达更紧凑;劣势是需硬件 MX 支持、块大小(32元素)需对齐。
45+ 
46+- **与 [W8A16 静态量化](term_w8a16_static.md)(高精度基线)**
47+ - 本模式:优势是激活亦量化、可走低精度 GEMM,压缩彻底;劣势是激活引入 FP8 量化误差。
48+ - W8A16:优势是激活 FP16 零误差;劣势是权重反量化回浮点执行、无低精度 GEMM 加速。
49+ 
50+### 适用场景与限制
51+ 
52+#### 1. 适用场景
53+ 
54+- **支持 FP8 的硬件部署**:目标硬件原生支持 FP8 GEMM 的场景。
55+- **宽动态范围激活**:激活数值跨度大、离群值多的模型,FP8 浮点格式比 INT8 均匀分档更耐受。
56+ 
57+#### 2. 使用限制
58+ 
59+- **硬件算子依赖**:FP8 GEMM 需目标硬件算子库支持,否则只能软件模拟、收益打折。
60+- **溢出边界**:E4M3 表示范围有限(max 448),超出范围的值需依赖 scale 缩放兜底,极端分布仍需验证。
61+- **在线归约开销**:per-token 动态量化有少量 min/max 归约开销。
62+ 
63+---
64+ 
65+## 3. 关联流程
66+ 
67+- 《[一键量化完整指南](../../../user_guide/usage_quick_quantization.md)》:通过 `--quant_type` 或 YAML 配置选择本模式并执行量化。
68+- 《[量化精度调优指南](../../../user_guide/process_quantization_precision_tuning.md)》:本模式导致的精度劣化可通过该流程逐层回退与调优。
69+ 
70+---
71+ 
72+## 4. 关联词条
73+ 
74+- [量化模式](../README.md):上位概念,本词条属于[线性层量化](README.md)类别,是该类别下的一种具体模式。
75+- [W8A8 动态量化](term_w8a8_dynamic.md):对比模式,INT8 数据类型的同构方案。
76+- [W8A8 MX 动态量化](term_w8a8_mx_dynamic.md):同类模式,块级共享指数的 MXFP8 方案。
77+- [W8A16 静态量化](term_w8a16_static.md):对比模式,激活保持 16bit 的高精度基线。
78+- [FA PerHead 量化](../fa_quantization/term_fa_perhead.md):配套模式,同样使用 FP8 数据类型的注意力激活量化。
79+- 《[线性量化算法说明](../../quantization_algorithms/linear_quant/linear_quant.md)》:配套术语,本模式的处理器实现。
80+ 
81+---
82+ 
83+## 5. 参考文档
84+ 
85+1. Kuzmin A et al. FP8 Formats for Deep Learning. arXiv:2209.05433. https://arxiv.org/abs/2209.05433
86+2. 《[线性量化算法说明](../../quantization_algorithms/linear_quant/linear_quant.md)》
87+3. 《[量化模式](../README.md)》
@@ -0,0 +1,86 @@
1+# W8A8 MX 动态量化
2+ 
3+> **词条类别**:量化数据格式([线性层量化](../README.md))
4+> **英文名称**:W8A8 MX Dynamic Quantization
5+> **应用领域**:大语言模型量化压缩、推理加速
6+> **承载 IR 类**:`W8A8MXDynamicPerBlockFakeQuantLinear`([`msmodelslim/ir/w8a8_mx_dynamic.py`](../../../../../msmodelslim/ir/w8a8_mx_dynamic.py))
7+ 
8+---
9+ 
10+## 1. 概述
11+ 
12+W8A8 MX 动态量化 = **[MXFP8](../../quantization_basic/term_mxfp.md) 版本**的 W8A8:权重与激活都按 32元素分块,每块共享一个 8bit 指数(E8M0),元素为 8bit 浮点(E4M3)。块级共享指数把缩放参数开销从「每元素一份」摊薄到「每32元素一份」,同时保留浮点动态范围——相比 [INT8](../../quantization_basic/term_int8.md) 均匀分档对离群值更耐受,相比普通 [FP8(E4M3)](../../quantization_basic/term_fp8.md) 每元素 scale 参数开销更低。
13+ 
14+---
15+ 
16+## 2. 词条介绍
17+ 
18+### 模式规格
19+ 
20+| 维度 | 取值 | 说明 |
21+|------|------|------|
22+| 量化对象 | 权重 W、激活 A | 线性层矩阵乘两侧的张量 |
23+| 位宽 | W 8bit,A 8bit | 元素位宽 8bit,访存减半 |
24+| 数据类型 | MXFP8 | 每32元素共享一个 E8M0 8bit 指数,元素为 E4M3(emax=8,max 448) |
25+| 参数获取方式 | 激活动态 / 权重静态 | 激活块级指数前向在线统计;权重块级指数量化阶段固化 |
26+| 量化粒度 | 权重/激活均 per-block(32元素) | 最后维按 32元素分块,每块共享一个指数 |
27+| 对称性 | 对称 | 仅指数/scale,无 offset |
28+ 
29+### 量化公式
30+ 
31+MX 格式按块共享 E8M0 指数,块内每个元素用块级指数缩放后量化为主尾数:
32+$$e = \lfloor \log_2(\max_{i \in \mathrm{block}}|x_i|) \rfloor, \qquad q_i = \mathrm{round}_{MX}\left(\frac{x_i}{2^e}\right), \qquad \hat{x}_i = q_i \cdot 2^e$$
33+ 
34+其中块大小32元素,$e$ 为块内共享的 E8M0 指数,$q_i$ 为块内第 $i$ 个元素的量化尾数(MXFP8 为 FP8 尾数、MXFP4 为 FP4 尾数),$\hat{x}_i$ 为反量化还原值。每块共享一个 $e$;量化参数在线计算(激活)或量化阶段固化(权重),见「模式规格」表。
35+ 
36+### 与其他模式的关系
37+ 
38+- **与 [W8A8 动态量化](term_w8a8_dynamic.md)(同为 8bit 动态家族,格式与粒度不同)**
39+ - 本模式(MXFP8):优势是块级共享指数保留浮点动态范围、对离群值比 INT8 更耐受,缩放参数开销约为每元素独立 scale 的 1/32;劣势是依赖硬件 MX 支持、最后维需 32 对齐,块粒度(32元素)比 per-token 粗。
40+ - INT8:优势是整数 GEMM 生态成熟、per-token 粒度更细;劣势是均匀分档对离群值敏感、每 token 都需记 scale。
41+ 
42+- **与 [W8A8 FP8 动态量化](term_w8a8_fp8_dynamic.md)(同为 FP8 家族,格式不同)**
43+ - 本模式(MXFP8 块级共享指数):优势是 scale 参数开销低、数值表达紧凑;劣势是块粒度(32元素)较粗、依赖 MX 硬件。
44+ - 普通 FP8:优势是 per-channel/per-token 细粒度、无需 MX 特殊硬件;劣势是每元素/每通道独立 scale,参数开销大。
45+ 
46+- **与 [W4A4 MX 动态量化](term_w4a4_mx_dynamic.md)(位宽不同)**
47+ - 本模式:优势是 8bit 精度更稳;劣势是权重访存仅减半。
48+ - W4A4 MX:优势是权重与激活均压缩至 FP16 的 1/4、压缩比最大化;劣势是 4bit 激活精度风险高。
49+ 
50+### 适用场景与限制
51+ 
52+#### 1. 适用场景
53+ 
54+- **存在离群值的低比特部署**:MXFP8 的浮点动态范围比 INT8 更耐受离群值。
55+- **需要低参数开销的 8bit**:块级共享指数在参数开销上优于每元素 scale 方案。
56+- **昇腾 MXFP 推理路径**:硬件/算子库原生支持 MX 格式的部署。
57+ 
58+#### 2. 使用限制
59+ 
60+- **依赖硬件 MX 支持**:MXFP8 计算需目标硬件算子库支持,否则无法兑现收益。
61+- **块粒度对齐**:张量最后维需能被 32 整除,否则需 padding。
62+- **动态归约开销**:激活 per-block 在线统计增加少量延迟。
63+ 
64+---
65+ 
66+## 3. 关联流程
67+ 
68+- 《[一键量化完整指南](../../../user_guide/usage_quick_quantization.md)》:通过 `--quant_type` 或 YAML 配置选择本模式并执行量化。
69+- 《[量化精度调优指南](../../../user_guide/process_quantization_precision_tuning.md)》:本模式导致的精度劣化可通过该流程逐层回退与调优。
70+ 
71+---
72+ 
73+## 4. 关联词条
74+ 
75+- [量化模式](../README.md):上位概念,本词条属于[线性层量化](README.md)类别,是该类别下的一种具体模式。
76+- [W8A8 动态量化](term_w8a8_dynamic.md):对比模式,INT8 整数方案。
77+- [W8A8 FP8 动态量化](term_w8a8_fp8_dynamic.md):对比模式,普通 FP8 每元素缩放方案。
78+- [W4A4 MX 动态量化](term_w4a4_mx_dynamic.md):同类模式,MXFP4 更低比特方案。
79+- 《[线性量化算法说明](../../quantization_algorithms/linear_quant/linear_quant.md)》:配套术语,本模式的处理器实现。
80+ 
81+---
82+ 
83+## 5. 参考文档
84+ 
85+1. 《[线性量化算法说明](../../quantization_algorithms/linear_quant/linear_quant.md)》
86+2. 《[量化模式](../README.md)》
@@ -0,0 +1,89 @@
1+# W8A8 PD-Mix 量化
2+ 
3+> **词条类别**:量化数据格式([线性层量化](../README.md))
4+> **英文名称**:W8A8 PD-Mix Quantization
5+> **应用领域**:大语言模型量化压缩、推理加速
6+> **承载 IR 类**:`W8A8PDMixFakeQuantLinear`([`msmodelslim/ir/w8a8_pdmix.py`](../../../../../msmodelslim/ir/w8a8_pdmix.py))
7+ 
8+---
9+ 
10+## 1. 概述
11+ 
12+W8A8 PD-Mix 量化 = 以 **Prefill / Decode 推理阶段**为界混合两种激活量化策略的 W8A8 方案:Prefill 阶段激活逐 token 动态量化(保精度),Decode 阶段激活整体静态量化(零在线开销)。它是 [W8A8 动态](term_w8a8_dynamic.md) 与 [W8A8 静态](term_w8a8_static.md) 的分阶段融合,「PD-Mix」即 Prefill-Decode Mix。
13+ 
14+---
15+ 
16+## 2. 词条介绍
17+ 
18+### 模式规格
19+ 
20+| 维度 | 取值 | 说明 |
21+|------|------|------|
22+| 量化对象 | 权重 W、激活 A | 线性层矩阵乘两侧的张量 |
23+| 位宽 | W 8bit,A 8bit | 同为 8bit,访存减半 |
24+| 数据类型 | INT8 | 整数格式,可走 INT8 整数 GEMM |
25+| 参数获取方式 | 混合(激活动态/静态随阶段切换;权重静态) | Prefill 阶段激活逐 token 在线求 min/max 算 scale;Decode 阶段激活整体静态(复用预置参数,此时单 token 激活即整张量,粒度与 per-token 等价);权重 scale 固化 |
26+| 量化粒度 | 权重 per-channel;激活 Prefill per-token / Decode per-tensor | 权重逐输出通道共享 scale;激活按阶段取 per-token 或整体粒度 |
27+| 对称性 | 权重对称;激活非对称 | 激活非对称加 offset 适配各 token 分布 |
28+ 
29+### 量化公式
30+ 
31+量化与反量化采用标准线性映射。对称量化(仅 scale、无零点):
32+$$q = \mathrm{round}(x / s), \qquad \hat{x} = q \cdot s, \qquad s = \frac{\max(|x|)}{2^{b-1}}$$
33+ 
34+非对称量化(含零点 offset):
35+$$q = \mathrm{round}(x / s) + z, \qquad \hat{x} = (q - z) \cdot s, \qquad s = \frac{\max(x) - \min(x)}{2^b - 1}$$
36+ 
37+其中 $x$ 为待量化张量,$q$ 为量化后的整数值,$\hat{x}$ 为反量化还原值,$s$ 为 scale,$z$ 为零点 offset,$b$ 为位宽(INT8 取 $b=8$,INT4 取 $b=4$),且 $z = \mathrm{round}(-\min(x)/s)$。量化参数 $s$、$z$ 的获取方式(静态校准或在线动态)与作用粒度(per-channel、per-token、per-tensor 等)见「模式规格」表。
38+ 
39+### 与其他模式的关系
40+ 
41+- **与 [W8A8 动态量化](term_w8a8_dynamic.md)(同为 W8A8,激活策略不同)**
42+ - 本模式:优势是 decode 阶段退回静态、去掉每步 per-token 归约的无谓开销,而 prefill 阶段仍保住动态精度;劣势是需推理框架识别阶段并切换量化策略,复杂度与部署约束更高。
43+ - W8A8 动态:优势是全程 per-token 动态、激活精度统一,实现简单;劣势是 decode 阶段单 token 归约既无统计意义又增加延迟。
44+ 
45+- **与 [W8A8 静态量化](term_w8a8_static.md)(同为 W8A8,激活策略不同)**
46+ - 本模式:优势是 prefill 阶段逐 token 动态、激活精度高于静态 per-tensor;劣势是复杂度更高、有阶段依赖。
47+ - 静态:优势是激活 scale 全程固化、零在线归约、实现与部署最简单;劣势是 prefill 阶段 per-tensor 粗粒度、精度上限低。
48+ 
49+- **与 [W4A8 动态量化](term_w4a8_dynamic.md)(位宽不同)**
50+ - 本模式:优势是权重 8bit 精度更稳;劣势是权重访存仅减半。
51+ - W4A8:优势是权重压缩至 FP16 的 1/4;劣势是权重仅16档、有精度风险。
52+ 
53+### 适用场景与限制
54+ 
55+#### 1. 适用场景
56+ 
57+- **Prefill 与 Decode 并重的服务端推理**:prefill 阶段需要激活精度、decode 阶段需要低延迟低开销的场景,如长上下文服务的增量生成。
58+- **激活分布随阶段显著变化的模型**:prefill 激活范围大而离散、decode 激活相对稳定的模型。
59+ 
60+#### 2. 使用限制
61+ 
62+- **依赖阶段感知**:量化策略切换需推理框架识别当前是 Prefill 还是 Decode,且两阶段共享同一套 INT8 数据流。
63+- **当前仅限 MindIE 部署**:阶段感知与切换当前仅在 MindIE 推理框架下生效。
64+- **仅支持 INT8**:本模式不提供 INT4/FP8 等数据类型变体。
65+ 
66+---
67+ 
68+## 3. 关联流程
69+ 
70+- 《[一键量化完整指南](../../../user_guide/usage_quick_quantization.md)》:通过 `--quant_type` 或 YAML 配置选择本模式并执行量化。
71+- 《[量化精度调优指南](../../../user_guide/process_quantization_precision_tuning.md)》:本模式导致的精度劣化可通过该流程逐层回退与调优。
72+ 
73+---
74+ 
75+## 4. 关联词条
76+ 
77+- [量化模式](../README.md):上位概念,本词条属于[线性层量化](README.md)类别,是该类别下的一种具体模式。
78+- [W8A8 动态量化](term_w8a8_dynamic.md):对比模式,全程 per-token 动态。
79+- [W8A8 静态量化](term_w8a8_static.md):对比模式,全程静态。
80+- [W4A8 动态量化](term_w4a8_dynamic.md):对比模式,权重 4bit 的混合位宽方案。
81+- 《[PDMIX:激活值阶段间混合量化算法说明](../../quantization_algorithms/pdmix/pdmix.md)》:配套术语,本模式对应的算法处理器文档。
82+- 《[线性量化算法说明](../../quantization_algorithms/linear_quant/linear_quant.md)》:配套术语,线性层量化的处理器实现。
83+ 
84+---
85+ 
86+## 5. 参考文档
87+ 
88+1. 《[线性量化算法说明](../../quantization_algorithms/linear_quant/linear_quant.md)》
89+2. 《[量化模式](../README.md)》
@@ -0,0 +1,88 @@
1+# W8A8 静态量化
2+ 
3+> **词条类别**:量化数据格式([线性层量化](../README.md))
4+> **英文名称**:W8A8 Static Quantization
5+> **应用领域**:大语言模型量化压缩、推理加速
6+> **承载 IR 类**:`W8A8StaticFakeQuantLinear`([`msmodelslim/ir/w8a8_static.py`](../../../../../msmodelslim/ir/w8a8_static.py))
7+ 
8+---
9+ 
10+## 1. 概述
11+ 
12+W8A8 静态量化 = 对线性层的权重与激活都做 [INT8](../../quantization_basic/term_int8.md) 静态量化。模式名按[量化模式](../README.md)的命名法则解码:W8A8 表示权重(W)与激活(A)均为 8bit([INT8](../../quantization_basic/term_int8.md));「静态」指量化参数(scale/offset)在离线校准阶段确定并固化,推理时直接使用、零在线开销。它是[线性层量化](README.md)中最基础、应用最广的线性层量化模式。
13+ 
14+---
15+ 
16+## 2. 词条介绍
17+ 
18+### 模式规格
19+ 
20+| 维度 | 取值 | 说明 |
21+|------|------|------|
22+| 量化对象 | 权重 W、激活 A | 线性层矩阵乘两侧的张量;权重是静态参数、每个 token 前向都整体读取,激活是逐 token 生成的中间张量 |
23+| 位宽 | W 8bit,A 8bit | 两者同为 8bit,访存减半,可走 INT8 整数 GEMM |
24+| 数据类型 | INT8 | 整数格式,权重 1字节/元素;decode 阶段(逐个生成 token 的推理阶段)权重访存占用减半 |
25+| 参数获取方式 | 静态 | scale/offset 由校准集统计(如 minmax)后固化,推理零在线统计开销;精度依赖校准集与真实分布的匹配 |
26+| 量化粒度 | 权重 per-channel;激活 per-tensor | 权重每输出通道共享一个 scale,适配通道间数值差异;激活整张量共享 scale/offset,参数开销最小 |
27+| 对称性 | 权重对称;激活对称或非对称 | 权重分布天然对称免 offset;激活分布常非对称,需 scale + 零点 offset |
28+ 
29+### 量化公式
30+ 
31+量化与反量化采用标准线性映射。对称量化(仅 scale、无零点):
32+$$q = \mathrm{round}(x / s), \qquad \hat{x} = q \cdot s, \qquad s = \frac{\max(|x|)}{2^{b-1}}$$
33+ 
34+非对称量化(含零点 offset):
35+$$q = \mathrm{round}(x / s) + z, \qquad \hat{x} = (q - z) \cdot s, \qquad s = \frac{\max(x) - \min(x)}{2^b - 1}$$
36+ 
37+其中 $x$ 为待量化张量,$q$ 为量化后的整数值,$\hat{x}$ 为反量化还原值,$s$ 为 scale,$z$ 为零点 offset,$b$ 为位宽(INT8 取 $b=8$,INT4 取 $b=4$),且 $z = \mathrm{round}(-\min(x)/s)$。量化参数 $s$、$z$ 的获取方式(静态校准或在线动态)与作用粒度(per-channel、per-token、per-tensor 等)见「模式规格」表。
38+ 
39+### 与其他模式的关系
40+ 
41+- **与 [W8A8 动态量化](term_w8a8_dynamic.md)(位宽相同,参数获取方式不同)**
42+ - 本模式(静态):优势是激活 scale 离线固化、推理零在线开销;劣势是激活为整张量共享参数的粗粒度,对逐 token 分布变化不敏感,精度上限低于动态方案。
43+ - 动态:优势是逐 token 在线算 scale、免校准,激活精度更高;劣势是每次前向多一次 min/max 归约,带来少量延迟开销。
44+ 
45+- **与 [W8A16 静态量化](term_w8a16_static.md)(激活是否量化不同)**
46+ - 本模式:优势是激活亦量化为 INT8,可走 INT8 整数 GEMM,计算吞吐更高、压缩更彻底;劣势是激活引入量化误差,对存在离群值或量化敏感的层精度劣化。
47+ - W8A16:优势是激活保持 FP16、零量化误差,是激活精度最稳的基线之一;劣势是激活不量化意味着矩阵乘仍需将 INT8 权重反量化回浮点执行,无整数 GEMM 加速,性能较差,整体压缩低于 W8A8。
48+ 
49+- **与 [W4A4 动态量化](term_w4a4_dynamic.md)(位宽不同)**
50+ - 本模式:优势是 8bit 分辨率高、精度更稳,是通用部署基线;劣势是权重访存仅减半(FP16 的 1/2)。
51+ - W4A4:优势是权重访存降至 FP16 的 1/4,压缩最彻底;劣势是仅16个量化档位、精度风险高,需动态量化 + per-group 粒度 + 离群值抑制兜底。
52+ 
53+### 适用场景与限制
54+ 
55+#### 1. 适用场景
56+ 
57+- **通用部署基线**:精度与性能最均衡的成熟方案,适用于大多数大语言模型的默认量化。
58+- **带宽受限的 decode 阶段(逐个生成 token)**:每 token 全量读取权重,INT8 权重访存减半的收益最明显。
59+ 
60+#### 2. 使用限制
61+ 
62+- **依赖校准数据**:校准集分布偏差过大会导致 scale 失真、精度漂移。
63+- **激活离群值敏感**:per-tensor 静态量化在激活存在显著离群值时精度劣化,需先做离群值抑制(如 [SmoothQuant](../../quantization_algorithms/smooth_quant/smooth_quant.md))或改用[动态量化](term_w8a8_dynamic.md)。
64+ 
65+---
66+ 
67+## 3. 关联流程
68+ 
69+- 《[一键量化完整指南](../../../user_guide/usage_quick_quantization.md)》:通过 `--quant_type` 或 YAML 配置选择本模式并执行量化。
70+- 《[量化精度调优指南](../../../user_guide/process_quantization_precision_tuning.md)》:本模式导致的精度劣化可通过该流程逐层回退与调优。
71+ 
72+---
73+ 
74+## 4. 关联词条
75+ 
76+- [量化模式](../README.md):上位概念,本词条属于[线性层量化](README.md)类别,是该类别下的一种具体模式。
77+- [W8A8 动态量化](term_w8a8_dynamic.md):对比模式,激活量化参数在线计算。
78+- [W8A16 静态量化](term_w8a16_static.md):同类模式,激活保持 16bit。
79+- [W4A4 动态量化](term_w4a4_dynamic.md):同类模式,更低比特的权重+激活量化。
80+- 《[线性量化算法说明](../../quantization_algorithms/linear_quant/linear_quant.md)》:配套术语,本模式的处理器实现。
81+- 《[MinMax:最小最大值量化算法说明](../../quantization_algorithms/minmax/minmax.md)》:配套术语,静态量化常用的量化参数统计方法。
82+ 
83+---
84+ 
85+## 5. 参考文档
86+ 
87+1. 《[线性量化算法说明](../../quantization_algorithms/linear_quant/linear_quant.md)》
88+2. 《[量化模式](../README.md)》
@@ -0,0 +1,52 @@
1+# GEMM 量化术语百科词条
2+ 
3+> **词条类别**:量化基础概念([量化模式](../README.md))
4+> **英文名称**:GEMM(General Matrix Multiply)
5+> **应用领域**:线性层计算、推理加速
6+ 
7+---
8+ 
9+## 1. 概述
10+ 
11+**GEMM**(General Matrix Multiply,通用矩阵乘法)即矩阵乘 $C=A\times B$,是 Transformer 中[线性层](linear_layer_quantization/README.md)计算 $Y=X\cdot W$ 的数学形式。量化使 GEMM 能以整数/低精度输入运行,是量化的主要计算收益来源。
12+ 
13+---
14+ 
15+## 2. 词条介绍
16+ 
17+### 定义
18+ 
19+GEMM 是 $C=A\times B$ 形式的矩阵乘法。Transformer 中占比最高的计算就是 GEMM:Q/K/V 投影、注意力输出投影、MLP 三层都是线性层,各自做一次矩阵乘。
20+ 
21+### 整数 GEMM
22+ 
23+**整数 GEMM**(Integer GEMM)指输入为 [INT8](../quantization_basic/term_int8.md)/[INT4](../quantization_basic/term_int4.md) 等低精度整数、乘累加在整数域进行的矩阵乘:权重与激活都量化成整数后,全程整数计算,结果再乘回 scale 还原。整数 GEMM 可调用专用低精度算子,是量化的主要计算收益来源。
24+ 
25+若只有一侧量化(如 [W8A16 静态量化](linear_layer_quantization/term_w8a16_static.md)),则需把整数反量化回浮点再做浮点 GEMM,没有整数 GEMM 的加速。
26+ 
27+### 与量化的关系
28+ 
29+- 前提是[量化与反量化](../quantization_basic/term_quantization.md):权重与激活都量化成整数,才能进入整数域计算。
30+- 数据类型的选取([INT8](../quantization_basic/term_int8.md)、[FP8](../quantization_basic/term_fp8.md)、[MXFP8/MXFP4](../quantization_basic/term_mxfp.md))决定整数/低精度 GEMM 的硬件算子与精度表现。
31+ 
32+---
33+ 
34+## 3. 关联流程
35+ 
36+- 《[一键量化完整指南](../../user_guide/usage_quick_quantization.md)》:量化任务的执行入口。
37+- 《[量化精度调优指南](../../user_guide/process_quantization_precision_tuning.md)》:数据类型与量化方案导致的精度问题可通过该流程排查与调优。
38+ 
39+---
40+ 
41+## 4. 关联词条
42+ 
43+- [量化模式](README.md):上位概念,本词条所属目录。
44+- [量化与反量化](../quantization_basic/term_quantization.md):配套术语,整数 GEMM 的前提。
45+- [线性层量化](linear_layer_quantization/README.md):下位概念,GEMM 的量化应用。
46+- [W8A8 静态量化](linear_layer_quantization/term_w8a8_static.md):配套模式,整数 GEMM 的典型实现。
47+ 
48+---
49+ 
50+## 5. 参考文档
51+ 
52+1. 《[量化模式](README.md)》