已合并
[Doc] 修复文档失效链接并补齐缺失的 SVDQuant 量化模式描述 #487 #866
[Doc] 修复文档失效链接并补齐缺失的 SVDQuant 量化模式描述 #487 #866
已合并
rookie_hongchuan创建于 14 天前
12 个文件变更+129-27
@@ -21,7 +21,7 @@ INT4 占 4位,可表示 $-8\sim7$ 共 16个整数档位。按[量化公式](te
21### 使用场景21### 使用场景
22 22 
23- **权重**:如 [W4A8 动态量化](../quantization_mode/linear_layer_quantization/term_w4a8_dynamic.md) 的 INT4 权重、[W4A4 动态量化](../quantization_mode/linear_layer_quantization/term_w4a4_dynamic.md)。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))降低损失。24+- **配合重构算法**:INT4 精度风险高,常配合分组量化与权重重构(如 [GPTQ](../quantization_algorithms/gptq/term_gptq.md)、[LAOS](../quantization_algorithms/laos/term_laos.md))降低损失。
25 25 
26### 与相关类型对比26### 与相关类型对比
27 27 
@@ -36,7 +36,7 @@ $$x \approx (q - zero\_point) \times scale$$
36 36 
37### 为什么要量化37### 为什么要量化
38 38 
39-- **减小存与访存带宽**:权重从 [FP16/BF16](term_fp16_bf16.md)(2字节/元素)降为 [INT8](term_int8.md)(1字节/元素),权重占用与读取带宽减半;KVCache 同理。39+- **减小存与访存带宽**:权重从 [FP16/BF16](term_fp16_bf16.md)(2字节/元素)降为 [INT8](term_int8.md)(1字节/元素),权重占用与读取带宽减半;KVCache 同理。
40- **使能低精度矩阵运算**:权重与激活都量化成整数后,矩阵乘可走整数/低精度算子(见 [GEMM](../quantization_mode/term_gemm.md)),在专用硬件上有计算收益。40- **使能低精度矩阵运算**:权重与激活都量化成整数后,矩阵乘可走整数/低精度算子(见 [GEMM](../quantization_mode/term_gemm.md)),在专用硬件上有计算收益。
41- **压缩 KVCache 显存**:量化缓存的历史 K/V,显著降低长上下文推理的显存占用。41- **压缩 KVCache 显存**:量化缓存的历史 K/V,显著降低长上下文推理的显存占用。
42 42 
@@ -60,7 +60,7 @@ $$x \approx (q - zero\_point) \times scale$$
60 60 
61- **per-tensor**:整个张量共享一份 scale。61- **per-tensor**:整个张量共享一份 scale。
62- **per-channel**:按输出通道(如权重 W 的 out_dim 列)各一份参数,常用于权重。62- **per-channel**:按输出通道(如权重 W 的 out_dim 列)各一份参数,常用于权重。
63-- **per-group**:按固定大小分组(如 128个元素)各一份参数,如 [GPTQ](../quantization_algorithms/gptq/gptq.md)/[LAOS](../quantization_algorithms/laos/laos.md) 的分组量化。63+- **per-group**:按固定大小分组(如 128个元素)各一份参数,如 [GPTQ](../quantization_algorithms/gptq/term_gptq.md)/[LAOS](../quantization_algorithms/laos/term_laos.md) 的分组量化。
64- **per-token**:按输入行(每个 token)各一份参数,常用于激活的动态量化。64- **per-token**:按输入行(每个 token)各一份参数,常用于激活的动态量化。
65- **per-head**:按注意力头各一份参数,用于注意力相关张量。65- **per-head**:按注意力头各一份参数,用于注意力相关张量。
66- **per-block**:按固定大小分块(如 [MXFP8/MXFP4](term_mxfp.md) 的 32元素)共享一个块级指数,是 MX 格式的专用粒度;与 per-group 逐组记 scale 不同,per-block 共享的是指数。66- **per-block**:按固定大小分块(如 [MXFP8/MXFP4](term_mxfp.md) 的 32元素)共享一个块级指数,是 MX 格式的专用粒度;与 per-group 逐组记 scale 不同,per-block 共享的是指数。
@@ -54,5 +54,5 @@
54- [compressed-tensors](compressed_tensors/term_compressed_tensors.md):下位概念,HuggingFace / vLLM 生态兼容的量化落盘格式。54- [compressed-tensors](compressed_tensors/term_compressed_tensors.md):下位概念,HuggingFace / vLLM 生态兼容的量化落盘格式。
55- [MindIE-SD](mindie_sd/term_mindie_sd.md):下位概念,多模态生成场景的 MindIE 落盘格式。55- [MindIE-SD](mindie_sd/term_mindie_sd.md):下位概念,多模态生成场景的 MindIE 落盘格式。
56- [量化算法](../quantization_algorithms/README.md):其他,量化计算与校准侧算法族,产出由本格式落盘。56- [量化算法](../quantization_algorithms/README.md):其他,量化计算与校准侧算法族,产出由本格式落盘。
57-- [量化模式](../quantization_mode/term_quantization_mode.md):配套术语,格式枚举与交付件字段对应各量化模式。57+- [量化模式](../quantization_mode/README.md):配套术语,格式枚举与交付件字段对应各量化模式。
58- [大模型支持矩阵](../model/README.md):其他,模型 × 模式 × 推理栈的选型与验证口径。58- [大模型支持矩阵](../model/README.md):其他,模型 × 模式 × 推理栈的选型与验证口径。
@@ -63,7 +63,7 @@ flowchart LR
63 63 
64**操作**64**操作**
65 65 
66-1. 让模型适配器继承 [`AscendV1SaveInterface`](../../../../msmodelslim/core/quant_service/modelslim_v1/save/interface.py),按需实现:66+1. 让模型适配器继承 `AscendV1SaveInterface`,按需实现:
67 - `ascendv1_save_module_preprocess(prefix, module, model)`:保存模块前返回新的 `(prefix, module)`67 - `ascendv1_save_module_preprocess(prefix, module, model)`:保存模块前返回新的 `(prefix, module)`
68 - `ascendv1_save_postprocess(model, save_directory)`:全部导出件写完后的目录后处理68 - `ascendv1_save_postprocess(model, save_directory)`:全部导出件写完后的目录后处理
692. 保存器仅在 `isinstance(adapter, AscendV1SaveInterface)` 时调用上述钩子;未实现则走默认落盘路径。692. 保存器仅在 `isinstance(adapter, AscendV1SaveInterface)` 时调用上述钩子;未实现则走默认落盘路径。
@@ -144,7 +144,7 @@ spec:
1443. 核对 `${SAVE_PATH}` 中至少存在:1443. 核对 `${SAVE_PATH}` 中至少存在:
145 - `quant_model_description.json`(含 `model_quant_type` 与各张量类型)145 - `quant_model_description.json`(含 `model_quant_type` 与各张量类型)
146 - `quant_model_weights.safetensors` 或分片权重 + index146 - `quant_model_weights.safetensors` 或分片权重 + index
147- - 自源模型复制的 `config.json` / tokenizer 等辅助文件 147+ - 自源模型复制的 `config.json` / tokenizer 等辅助文件
148 目录树与字段细则见《[AscendV1](term_ascendv1.md#export-artifacts)》导出产物及「各量化模式交付件格式」。148 目录树与字段细则见《[AscendV1](term_ascendv1.md#export-artifacts)》导出产物及「各量化模式交付件格式」。
1494. 使用目标推理框架加载该目录,完成 ≥1 条 generate 或 API 请求冒烟。1494. 使用目标推理框架加载该目录,完成 ≥1 条 generate 或 API 请求冒烟。
150 150 
@@ -14,7 +14,7 @@
14 14 
15AscendV1 是 msModelSlim 面向昇腾 NPU 推理的[量化格式](../README.md)。推理框架(vLLM Ascend、SGLang、MindIE)通过 `quant_model_description.json` 识别各张量的量化类型,并从 `quant_model_weights.safetensors` 加载对应参数。它解决昇腾侧量化权重的统一落盘与加载问题;核心特征是覆盖多种量化模式枚举,并与 vLLM Ascend、SGLang、MindIE 加载路径对齐。15AscendV1 是 msModelSlim 面向昇腾 NPU 推理的[量化格式](../README.md)。推理框架(vLLM Ascend、SGLang、MindIE)通过 `quant_model_description.json` 识别各张量的量化类型,并从 `quant_model_weights.safetensors` 加载对应参数。它解决昇腾侧量化权重的统一落盘与加载问题;核心特征是覆盖多种量化模式枚举,并与 vLLM Ascend、SGLang、MindIE 加载路径对齐。
16 16 
17-配置、执行与部署步骤见《[AscendV1 使用指南](ascendv1_usage.md)》。各量化模式的原理与公式见《[量化模式](../../quantization_mode/term_quantization_mode.md)》及下文支持表中的词条链接。17+配置、执行与部署步骤见《[AscendV1 使用指南](ascendv1_usage.md)》。各量化模式的原理与公式见《[量化模式](../../quantization_mode/README.md)》及下文支持表中的词条链接。
18 18 
19## 2. 词条介绍19## 2. 词条介绍
20 20 
@@ -160,11 +160,11 @@ AscendV1 **均可落盘**下表中的格式枚举;下表描述的是产物能
160 160 
161### 2.4 <span id="mode-support">量化模式支持情况</span>161### 2.4 <span id="mode-support">量化模式支持情况</span>
162 162 
163-> **交付件说明**:「交付件:量化描述 JSON」→ `quant_model_description.json`;「交付件:量化 safetensors」→ `quant_model_weights*.safetensors`。模式原理见《[量化模式](../../quantization_mode/term_quantization_mode.md)》词条,本表不展开反量化公式与 NPU 算子。163+> **交付件说明**:「交付件:量化描述 JSON」→ `quant_model_description.json`;「交付件:量化 safetensors」→ `quant_model_weights*.safetensors`。模式原理见《[量化模式](../../quantization_mode/README.md)》词条,本表不展开反量化公式与 NPU 算子。
164 164 
165| 格式枚举值 | AscendV1 是否支持落盘 | 量化模式词条 | 交付件:量化描述 JSON | 交付件:量化 safetensors |165| 格式枚举值 | AscendV1 是否支持落盘 | 量化模式词条 | 交付件:量化描述 JSON | 交付件:量化 safetensors |
166| --- | --- | --- | --- | --- |166| --- | --- | --- | --- | --- |
167-| `FLOAT` | 支持 | [量化模式总览](../../quantization_mode/term_quantization_mode.md) | [FLOAT 描述键](#desc-float) | [FLOAT 权重张量](#st-float) |167+| `FLOAT` | 支持 | [量化模式总览](../../quantization_mode/README.md) | [FLOAT 描述键](#desc-float) | [FLOAT 权重张量](#st-float) |
168| `W16A16S` | 支持 | [W16A16S](../../quantization_mode/linear_layer_quantization/term_w16a16s.md) | [W16A16S 描述键](#desc-w16a16s) | [W16A16S 权重张量](#st-w16a16s) |168| `W16A16S` | 支持 | [W16A16S](../../quantization_mode/linear_layer_quantization/term_w16a16s.md) | [W16A16S 描述键](#desc-w16a16s) | [W16A16S 权重张量](#st-w16a16s) |
169| `W8A8` | 支持 | [W8A8 静态量化](../../quantization_mode/linear_layer_quantization/term_w8a8_static.md) | [W8A8 描述键](#desc-w8a8) | [W8A8 权重张量](#st-w8a8) |169| `W8A8` | 支持 | [W8A8 静态量化](../../quantization_mode/linear_layer_quantization/term_w8a8_static.md) | [W8A8 描述键](#desc-w8a8) | [W8A8 权重张量](#st-w8a8) |
170| `W8A8_DYNAMIC` | 支持 | [W8A8 动态量化](../../quantization_mode/linear_layer_quantization/term_w8a8_dynamic.md) | [W8A8_DYNAMIC 描述键](#desc-w8a8-dynamic) | [W8A8_DYNAMIC 权重张量](#st-w8a8-dynamic) |170| `W8A8_DYNAMIC` | 支持 | [W8A8 动态量化](../../quantization_mode/linear_layer_quantization/term_w8a8_dynamic.md) | [W8A8_DYNAMIC 描述键](#desc-w8a8-dynamic) | [W8A8_DYNAMIC 权重张量](#st-w8a8-dynamic) |
@@ -493,4 +493,4 @@ W8A8 静态激活相关字段与 W8A8_DYNAMIC 权重量化字段的并集:
493- [量化格式](../README.md):上位概念,本词条所属目录。493- [量化格式](../README.md):上位概念,本词条所属目录。
494- [compressed-tensors](../compressed_tensors/term_compressed_tensors.md):其他,同属量化格式的并列落盘协议。494- [compressed-tensors](../compressed_tensors/term_compressed_tensors.md):其他,同属量化格式的并列落盘协议。
495- [MindIE-SD](../mindie_sd/term_mindie_sd.md):其他,同属量化格式的并列落盘协议。495- [MindIE-SD](../mindie_sd/term_mindie_sd.md):其他,同属量化格式的并列落盘协议。
496-- [量化模式](../../quantization_mode/term_quantization_mode.md):配套术语,本格式交付件枚举对应各量化模式。496+- [量化模式](../../quantization_mode/README.md):配套术语,本格式交付件枚举对应各量化模式。
@@ -12,7 +12,7 @@
12 12 
13compressed-tensors 是与 HuggingFace / vLLM 生态兼容的[量化格式](../README.md),字段约定遵循 [vllm-project/compressed-tensors](https://github.com/vllm-project/compressed-tensors) 规范。msModelSlim **导出时内置**该规范的结构定义,量化过程**无需**安装 `compressed-tensors` 包。核心特征是将方案写入 `config.json``quantization_config`,权重写入 HF 风格 safetensors。13compressed-tensors 是与 HuggingFace / vLLM 生态兼容的[量化格式](../README.md),字段约定遵循 [vllm-project/compressed-tensors](https://github.com/vllm-project/compressed-tensors) 规范。msModelSlim **导出时内置**该规范的结构定义,量化过程**无需**安装 `compressed-tensors` 包。核心特征是将方案写入 `config.json``quantization_config`,权重写入 HF 风格 safetensors。
14 14 
15-配置、执行与部署步骤见《[compressed-tensors 使用指南](compressed_tensors_usage.md)》。各量化模式的原理与公式见《[量化模式](../../quantization_mode/term_quantization_mode.md)》及下文支持表中的词条链接。15+配置、执行与部署步骤见《[compressed-tensors 使用指南](compressed_tensors_usage.md)》。各量化模式的原理与公式见《[量化模式](../../quantization_mode/README.md)》及下文支持表中的词条链接。
16 16 
17## 2. 词条介绍17## 2. 词条介绍
18 18 
@@ -136,7 +136,7 @@ compressed-tensors **均可导出**下表中的 Preset;下表描述的是产
136 136 
137### 2.4 <span id="mode-support">量化模式支持情况</span>137### 2.4 <span id="mode-support">量化模式支持情况</span>
138 138 
139-> **交付件说明**:「交付件:quantization_config」→ `config.json` 内 scheme;「交付件:safetensors」→ `model*.safetensors`。模式原理见《[量化模式](../../quantization_mode/term_quantization_mode.md)》词条。139+> **交付件说明**:「交付件:quantization_config」→ `config.json` 内 scheme;「交付件:safetensors」→ `model*.safetensors`。模式原理见《[量化模式](../../quantization_mode/README.md)》词条。
140 140 
141| 格式 Preset | compressed-tensors 是否支持导出 | 量化模式词条 | 交付件:quantization_config | 交付件:safetensors |141| 格式 Preset | compressed-tensors 是否支持导出 | 量化模式词条 | 交付件:quantization_config | 交付件:safetensors |
142| ------------ | ------------------------- | ---------------- | ----------------------------------------- | ------------------------------------- |142| ------------ | ------------------------- | ---------------- | ----------------------------------------- | ------------------------------------- |
@@ -207,7 +207,7 @@ compressed-tensors **均可导出**下表中的 Preset;下表描述的是产
207- 不支持分布式导出(`support_distributed() = False`)。207- 不支持分布式导出(`support_distributed() = False`)。
208- KV Cache 量化暂不支持(`kv_cache_scheme = null`)。208- KV Cache 量化暂不支持(`kv_cache_scheme = null`)。
209- 仅 W8A8 Static / W8A8 Dynamic 两种 QIR 有 handler。209- 仅 W8A8 Static / W8A8 Dynamic 两种 QIR 有 handler。
210-- 本词条交付件分两列说明:`quantization_config` 与 `model*.safetensors`;不展开量化模式原理与算子说明(见《[量化模式](../../quantization_mode/term_quantization_mode.md)》)。210+- 本词条交付件分两列说明:`quantization_config` 与 `model*.safetensors`;不展开量化模式原理与算子说明(见《[量化模式](../../quantization_mode/README.md)》)。
211 211 
212## 3. 关联流程212## 3. 关联流程
213 213 
@@ -222,4 +222,4 @@ compressed-tensors **均可导出**下表中的 Preset;下表描述的是产
222- [量化格式](../README.md):上位概念,本词条所属目录。222- [量化格式](../README.md):上位概念,本词条所属目录。
223- [AscendV1](../ascendv1/term_ascendv1.md):其他,同属量化格式的并列落盘协议。223- [AscendV1](../ascendv1/term_ascendv1.md):其他,同属量化格式的并列落盘协议。
224- [MindIE-SD](../mindie_sd/term_mindie_sd.md):其他,同属量化格式的并列落盘协议。224- [MindIE-SD](../mindie_sd/term_mindie_sd.md):其他,同属量化格式的并列落盘协议。
225-- [量化模式](../../quantization_mode/term_quantization_mode.md):配套术语,本格式 Preset 与交付件字段对应各量化模式;详见本页「[量化模式支持情况](#mode-support)」。225+- [量化模式](../../quantization_mode/README.md):配套术语,本格式 Preset 与交付件字段对应各量化模式;详见本页「[量化模式支持情况](#mode-support)」。
@@ -16,7 +16,7 @@
16 16 
17MindIE-SD 是 msModelSlim 面向 **多模态生成** 场景、供 MindIE-SD 消费的[量化格式](../README.md)。一键量化通过保存器类型 `mindie_format_saver` 启用。它解决扩散 / DiT 等多模态生成模型量化权重与 MindIE-SD 加载约定对齐的问题;核心特征是与 `multimodal_sd_modelslim_v1` 配置协议配合,并以 `quant_model_description.json` + `quant_model_weight.safetensors` 落盘。17MindIE-SD 是 msModelSlim 面向 **多模态生成** 场景、供 MindIE-SD 消费的[量化格式](../README.md)。一键量化通过保存器类型 `mindie_format_saver` 启用。它解决扩散 / DiT 等多模态生成模型量化权重与 MindIE-SD 加载约定对齐的问题;核心特征是与 `multimodal_sd_modelslim_v1` 配置协议配合,并以 `quant_model_description.json` + `quant_model_weight.safetensors` 落盘。
18 18 
19-配置、执行与部署步骤见《[MindIE-SD 使用指南](mindie_sd_usage.md)》。各量化模式的原理与公式见《[量化模式](../../quantization_mode/term_quantization_mode.md)》及下文支持表中的词条链接。19+配置、执行与部署步骤见《[MindIE-SD 使用指南](mindie_sd_usage.md)》。各量化模式的原理与公式见《[量化模式](../../quantization_mode/README.md)》及下文支持表中的词条链接。
20 20 
21## 2. 词条介绍21## 2. 词条介绍
22 22 
@@ -120,11 +120,11 @@ MindIE-SD **均可落盘**下表中的格式枚举;下表描述的是产物能
120 120 
121### 2.4 <span id="mode-support">量化模式支持情况</span>121### 2.4 <span id="mode-support">量化模式支持情况</span>
122 122 
123-> **交付件说明**:「交付件:量化描述 JSON」→ `quant_model_description*.json`;「交付件:量化 safetensors」→ `quant_model_weight*.safetensors`。模式原理见《[量化模式](../../quantization_mode/term_quantization_mode.md)》词条。具体模型与 `quant_type` 组合以《[大模型支持矩阵](../../model/README.md)》及 lab_practice / example 为准。123+> **交付件说明**:「交付件:量化描述 JSON」→ `quant_model_description*.json`;「交付件:量化 safetensors」→ `quant_model_weight*.safetensors`。模式原理见《[量化模式](../../quantization_mode/README.md)》词条。具体模型与 `quant_type` 组合以《[大模型支持矩阵](../../model/README.md)》及 lab_practice / example 为准。
124 124 
125| 格式枚举值 | MindIE-SD 是否支持落盘 | 量化模式词条 | 交付件:量化描述 JSON | 交付件:量化 safetensors |125| 格式枚举值 | MindIE-SD 是否支持落盘 | 量化模式词条 | 交付件:量化描述 JSON | 交付件:量化 safetensors |
126| ---------------------- | ---------------- | ------ | ------------------------------------------------ | ----------------------------------------------- |126| ---------------------- | ---------------- | ------ | ------------------------------------------------ | ----------------------------------------------- |
127-| `FLOAT` | 支持 | [量化模式总览](../../quantization_mode/term_quantization_mode.md) | [FLOAT 描述键](#desc-float) | [FLOAT 权重张量](#st-float) |127+| `FLOAT` | 支持 | [量化模式总览](../../quantization_mode/README.md) | [FLOAT 描述键](#desc-float) | [FLOAT 权重张量](#st-float) |
128| `W8A8` | 支持 | [W8A8 静态量化](../../quantization_mode/linear_layer_quantization/term_w8a8_static.md) | [W8A8 描述键](#desc-w8a8) | [W8A8 权重张量](#st-w8a8) |128| `W8A8` | 支持 | [W8A8 静态量化](../../quantization_mode/linear_layer_quantization/term_w8a8_static.md) | [W8A8 描述键](#desc-w8a8) | [W8A8 权重张量](#st-w8a8) |
129| `W8A8_DYNAMIC` | 支持 | [W8A8 动态量化](../../quantization_mode/linear_layer_quantization/term_w8a8_dynamic.md) | [W8A8_DYNAMIC 描述键](#desc-w8a8-dynamic) | [W8A8_DYNAMIC 权重张量](#st-w8a8-dynamic) |129| `W8A8_DYNAMIC` | 支持 | [W8A8 动态量化](../../quantization_mode/linear_layer_quantization/term_w8a8_dynamic.md) | [W8A8_DYNAMIC 描述键](#desc-w8a8-dynamic) | [W8A8_DYNAMIC 权重张量](#st-w8a8-dynamic) |
130| `W8A8_MXFP8` | 支持 | [W8A8 MX 动态量化](../../quantization_mode/linear_layer_quantization/term_w8a8_mx_dynamic.md) | [W8A8_MXFP8 描述键](#desc-w8a8-mxfp8) | [W8A8_MXFP8 权重张量](#st-w8a8-mxfp8) |130| `W8A8_MXFP8` | 支持 | [W8A8 MX 动态量化](../../quantization_mode/linear_layer_quantization/term_w8a8_mx_dynamic.md) | [W8A8_MXFP8 描述键](#desc-w8a8-mxfp8) | [W8A8_MXFP8 权重张量](#st-w8a8-mxfp8) |
@@ -283,7 +283,7 @@ MindIE-SD **均可落盘**下表中的格式枚举;下表描述的是产物能
283 283 
284- 不替代 AscendV1 作为通用 LLM 默认导出格式;未实现 handler 的模式会提示改用 AscendV1。284- 不替代 AscendV1 作为通用 LLM 默认导出格式;未实现 handler 的模式会提示改用 AscendV1。
285- 产物文件命名与字段随模型适配器演进,部署前须按目标 MindIE 版本核对。285- 产物文件命名与字段随模型适配器演进,部署前须按目标 MindIE 版本核对。
286-- 本词条不展开量化模式原理、反量化公式与 NPU 算子说明(见《[量化模式](../../quantization_mode/term_quantization_mode.md)》)。286+- 本词条不展开量化模式原理、反量化公式与 NPU 算子说明(见《[量化模式](../../quantization_mode/README.md)》)。
287 287 
288## 3. 关联流程288## 3. 关联流程
289 289 
@@ -299,4 +299,4 @@ MindIE-SD **均可落盘**下表中的格式枚举;下表描述的是产物能
299- [量化格式](../README.md):上位概念,本词条所属目录。299- [量化格式](../README.md):上位概念,本词条所属目录。
300- [AscendV1](../ascendv1/term_ascendv1.md):其他,同属量化格式的并列落盘协议;未实现 handler 的模式可改用 AscendV1。300- [AscendV1](../ascendv1/term_ascendv1.md):其他,同属量化格式的并列落盘协议;未实现 handler 的模式可改用 AscendV1。
301- [compressed-tensors](../compressed_tensors/term_compressed_tensors.md):其他,同属量化格式的并列落盘协议。301- [compressed-tensors](../compressed_tensors/term_compressed_tensors.md):其他,同属量化格式的并列落盘协议。
302-- [量化模式](../../quantization_mode/term_quantization_mode.md):配套术语,本格式交付件枚举对应各量化模式;详见本页「[量化模式支持情况](#mode-support)」。302+- [量化模式](../../quantization_mode/README.md):配套术语,本格式交付件枚举对应各量化模式;详见本页「[量化模式支持情况](#mode-support)」。
@@ -70,7 +70,7 @@
70| [W4A4 MX 动态量化](linear_layer_quantization/term_w4a4_mx_dynamic.md) | `W4A4MXDynamicPerBlockFakeQuantLinear` | MXFP4 per-block / 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 动态 |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 权重/激活(含稀疏) |72| [W16A16S 量化](linear_layer_quantization/term_w16a16s.md) | `W16A16sLinear` | 16bit 权重/激活(含稀疏) |
73-| [SVDQuant](../quantization_algorithms/svdquant/usage_svdquant.md) | `SVDResidualWrapper`([`svd_residual.py`](../../../../msmodelslim/ir/svd_residual.py),配合 linear_quant) | 低秩分解 + 残差低比特量化 |73+| [SVDQuant 量化](linear_layer_quantization/term_svdquant.md) | `SVDResidualWrapper`([`svd_residual.py`](../../../../msmodelslim/ir/svd_residual.py),配合 linear_quant) | 低秩分解 + 残差低比特量化 |
74 74 
75> 注:prefill 与 decode 是 LLM 推理的两个阶段——prefill 一次处理整个输入 prompt(计算密集),decode 逐个生成 token(访存密集),详见[线性层量化](linear_layer_quantization/README.md)。75> 注:prefill 与 decode 是 LLM 推理的两个阶段——prefill 一次处理整个输入 prompt(计算密集),decode 逐个生成 token(访存密集),详见[线性层量化](linear_layer_quantization/README.md)。
76 76 
@@ -16,7 +16,7 @@
16 16 
17FA(Flash Attention,一种高效的注意力计算实现)量化是对**送入 Flash Attention 的 Q/K/V 激活张量**进行量化的一类量化模式,属于[量化模式](../README.md)中的类别之一,是 [KVCache 量化](../kv_cache_quantization/README.md)的**进阶**。它在量化 K/V(压缩缓存显存)的基础上,进一步量化 Q。17FA(Flash Attention,一种高效的注意力计算实现)量化是对**送入 Flash Attention 的 Q/K/V 激活张量**进行量化的一类量化模式,属于[量化模式](../README.md)中的类别之一,是 [KVCache 量化](../kv_cache_quantization/README.md)的**进阶**。它在量化 K/V(压缩缓存显存)的基础上,进一步量化 Q。
18 18 
19-K/V 量化主要解决"存"问题——缓存显存减半、支持更长上下文;Q 加入量化后,注意力得分计算(Q 与 K 的点乘)与加权求和(softmax 后与 V 点乘)的参与张量均为低比特,可直接调用整数/低精度矩阵乘算子,从而在继承 KVCache 显存收益的同时使能低精度的矩阵运算。它是长序列解码场景在"省显存"基础上进一步使能低精度注意力矩阵运算的手段。典型如 [FA PerHead 量化](term_fa_perhead.md)——对 Q 张量按注意力头(per-head)静态量化,INT8 或 FP8。19+K/V 量化主要解决"存"问题——缓存显存减半、支持更长上下文;Q 加入量化后,注意力得分计算(Q 与 K 的点乘)与加权求和(softmax 后与 V 点乘)的参与张量均为低比特,可直接调用整数/低精度矩阵乘算子,从而在继承 KVCache 显存收益的同时使能低精度的矩阵运算。它是长序列解码场景在"省显存"基础上进一步使能低精度注意力矩阵运算的手段。典型如 [FA PerHead 量化](term_fa_perhead.md)——对 Q 张量按注意力头(per-head)静态量化,INT8 或 FP8。
20 20 
21FA 量化**本质上是一个组合量化模式**:Q/K/V 三分支各自独立选择量化模式(粒度 × 数据类型)。当前最佳实践均通过 `fa3_quant.qconfig` 统一配置三分支,见[分支组合](#branch-combination)。21FA 量化**本质上是一个组合量化模式**:Q/K/V 三分支各自独立选择量化模式(粒度 × 数据类型)。当前最佳实践均通过 `fa3_quant.qconfig` 统一配置三分支,见[分支组合](#branch-combination)。
22 22 
@@ -66,7 +66,7 @@ FA 量化作用于 Q/K/V 三个分支(`fa_q` / `fa_k` / `fa_v`),三分支
66- **是什么**:Q/K/V 三分支均沿 head_dim 按32元素分块,每块共享一个 E8M0 指数做 MXFP4 动态量化。粒度比 per-token 更细(捕捉 head_dim 内分布差异),块级共享指数保留浮点动态范围、对离群值更耐受。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 示例)。67- **配置**`fa3_quant.qconfig``dtype: mxfp4, scope: per_block, symmetric: True, method: minmax`(QwenImageEdit 示例)。
68- **效果**:三分支均为 4bit(MXFP4),带宽/计算位宽收益最大,是极端压缩场景的选择。68- **效果**:三分支均为 4bit(MXFP4),带宽/计算位宽收益最大,是极端压缩场景的选择。
69-- **规格与限制**:块级指数前向在线统计(免校准);MXFP4 尾数仅 2bit(emax=2、max 6),精度敏感场景需权衡。详见 [FA PerBlock 量化](term_fa_perblock.md)。69+- **规格与限制**:块级指数前向在线统计(免校准);MXFP4 尾数仅 1bit(emax=2、max 6),精度敏感场景需权衡。详见 [FA PerBlock 量化](term_fa_perblock.md)。
70 70 
71---71---
72 72 
@@ -99,12 +99,12 @@ FA 量化作用于 Q/K/V 三个分支(`fa_q` / `fa_k` / `fa_v`),三分支
99- [KVCache 量化](../kv_cache_quantization/README.md):上位概念(基础),本类在其基础上追加 Q 量化。99- [KVCache 量化](../kv_cache_quantization/README.md):上位概念(基础),本类在其基础上追加 Q 量化。
100- [线性层量化](../linear_layer_quantization/README.md):同位概念,作用于权重与激活的量化类别,可与本类叠加。100- [线性层量化](../linear_layer_quantization/README.md):同位概念,作用于权重与激活的量化类别,可与本类叠加。
101- [FA PerHead 量化](term_fa_perhead.md):下位概念,本类别下 per-head 静态激活量化。101- [FA PerHead 量化](term_fa_perhead.md):下位概念,本类别下 per-head 静态激活量化。
102-- 《[FA3量化:Flash Attention 3激活量化算法说明](../../quantization_algorithms/fa3_quant/fa3_quant.md)》:配套术语,描述 FA 量化算法。102+- 《[FA3量化:Flash Attention 3激活量化算法说明](../../quantization_algorithms/fa3_quant/term_fa3_quant.md)》:配套术语,描述 FA 量化算法。
103 103 
104---104---
105 105 
106## 参考资料106## 参考资料
107 107 
1081. Dao T et al. FlashAttention: Fast and Memory-Efficient Exact Attention with IO-Awareness. NeurIPS 2022. https://arxiv.org/abs/2205.141351081. 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)》109+2. 《[FA3量化:Flash Attention 3激活量化算法说明](../../quantization_algorithms/fa3_quant/term_fa3_quant.md)》
1103. 《[量化模式](../README.md)》1103. 《[量化模式](../README.md)》
@@ -92,7 +92,7 @@ $$Y = X \cdot W + b$$
92| [W4A4 MX 动态量化](term_w4a4_mx_dynamic.md) | 权重与激活均 MXFP4 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 动态 |93| [W4A4 MX 双 Scale 量化](term_w4a4_mx_dualscale.md) | MXFP4 双 scale、per-block 动态 |
94| [W16A16S 量化](term_w16a16s.md) | 16bit 权重/激活(含稀疏) |94| [W16A16S 量化](term_w16a16s.md) | 16bit 权重/激活(含稀疏) |
95-| [SVDQuant](../../quantization_algorithms/svdquant/svdquant.md) | 低秩分解 + 残差低比特量化,配合线性层量化使用 |95+| [SVDQuant 量化](term_svdquant.md) | 低秩分解 + 残差低比特量化,配合线性层量化使用 |
96 96 
97---97---
98 98 
@@ -111,11 +111,11 @@ $$Y = X \cdot W + b$$
111- [KVCache 量化](../kv_cache_quantization/README.md):同位概念,作用于注意力 K/V 缓存的量化类别,可与本类叠加。111- [KVCache 量化](../kv_cache_quantization/README.md):同位概念,作用于注意力 K/V 缓存的量化类别,可与本类叠加。
112- [FA 量化](../fa_quantization/README.md):同位概念,KVCache 量化的进阶。112- [FA 量化](../fa_quantization/README.md):同位概念,KVCache 量化的进阶。
113- [W8A8 静态量化](term_w8a8_static.md):下位概念,本类别下最基础的静态模式。113- [W8A8 静态量化](term_w8a8_static.md):下位概念,本类别下最基础的静态模式。
114-- 《[线性量化算法说明](../../quantization_algorithms/linear_quant/linear_quant.md)》:配套术语,描述线性层量化模式的处理器实现。114+- 《[线性量化算法说明](../../quantization_algorithms/linear_quant/term_linear_quant.md)》:配套术语,描述线性层量化模式的处理器实现。
115 115 
116---116---
117 117 
118## 参考资料118## 参考资料
119 119 
120-1. 《[线性量化算法说明](../../quantization_algorithms/linear_quant/linear_quant.md)》120+1. 《[线性量化算法说明](../../quantization_algorithms/linear_quant/term_linear_quant.md)》
1212. 《[量化模式](../README.md)》1212. 《[量化模式](../README.md)》
@@ -0,0 +1,101 @@
1+# SVDQuant 量化
2+ 
3+> **词条类别**:量化数据格式([线性层量化](README.md))
4+> **英文名称**:SVDQuant Quantization
5+> **首次提出**:Li et al., NeurIPS 2024
6+> **应用领域**:大语言模型量化压缩、低比特量化精度优化
7+> **承载 IR 类**:`SVDResidualWrapper`([`msmodelslim/ir/svd_residual.py`](../../../../../msmodelslim/ir/svd_residual.py),`WrapperIR` 子类,配合 `linear_quant` 对残差分量做低比特量化)
8+ 
9+---
10+ 
11+## 1. 概述
12+ 
13+SVDQuant 是一种面向极低比特场景的[线性层量化](README.md)模式:通过离群值迁移、SVD 低秩分解与残差量化三阶段协同,把权重拆成高精度低秩旁路与低比特残差主通路,推理时双通路相加还原原线性变换。它解决 4bit 等极低比特下激活与权重中离群值导致量化精度严重损失的问题,区别于以 [W4A4 动态量化](term_w4a4_dynamic.md) 为代表的直接整数量化;核心特征是低秩旁路高精度吸收主体结构、残差主通路低比特量化。
14+ 
15+---
16+ 
17+## 2. 词条介绍
18+ 
19+SVDQuant 不是对线性层权重与激活直接做低位宽量化,而是在量化之前先改变权重的数值结构:离群值先被迁移进权重,再经 SVD 分解将主体结构提取到低秩旁路,使剩下的残差权重分布更均匀、更适合低比特量化。低秩旁路以 [FP16/BF16](../../quantization_basic/term_fp16_bf16.md) 高精度运行,残差主通路按 `linear_quant` 配置量化,两者输出相加,在数学上近似未分解前的线性变换。
20+ 
21+### 模式规格
22+ 
23+| 维度 | 取值 | 说明 |
24+|------|------|------|
25+| 量化对象 | 残差主通路的权重 W 与激活 A;低秩旁路不量化 | 离群值迁移后权重被拆为低秩分量(高精度)与残差分量(低比特量化) |
26+| 位宽 | 残差 W/A 低比特(如 4bit);低秩旁路 FP16 | 位宽取决于残差线性量化配置 |
27+| 数据类型 | 混合 | 残差走低比特(如 MXFP4 / INT4),低秩旁路 FP16 |
28+| 参数获取方式 | 跟随残差线性量化配置(静态 / 动态) | 由 [`linear_quant`](../../quantization_algorithms/linear_quant/term_linear_quant.md) 决定 |
29+| 量化粒度 | 跟随残差线性量化配置(如 per-block) | 无固定粒度,随配置而定 |
30+| 对称性 | 跟随残差线性量化配置 | 随配置而定 |
31+ 
32+### 量化公式
33+ 
34+阶段一(离群值迁移):用逐通道缩放因子改造权重与激活,使激活离群值迁入权重。阶段二(低秩分解):对迁移后的权重 $W$ 做 SVD 分解:
35+ 
36+$$
37+W \approx (U \cdot S) \cdot V^\top, \qquad R = W - (U \cdot S) \cdot V^\top
38+$$
39+ 
40+- $W$:离群值迁移后的权重矩阵
41+- $U$:左奇异向量,形状 $[\text{out\_dim}, \text{rank}]$
42+- $S$:奇异值,形状 $[\text{rank}]$
43+- $V$:右奇异向量,形状 $[\text{in\_dim}, \text{rank}]$,$V^\top$ 为其转置
44+- $R$:残差权重,进入低比特量化
45+ 
46+阶段三(推理时双通路计算):
47+ 
48+$$
49+\text{out} = Q(X \cdot \operatorname{diag}(s)^{-1}) \cdot Q(R) + (X \cdot \operatorname{diag}(s)^{-1} \cdot V) \cdot (U \cdot S)^\top \approx XW + b
50+$$
51+ 
52+- $X$:输入激活
53+- $s$:离群值迁移的逐通道缩放因子,由激活与权重统计联合计算
54+- $Q(\cdot)$:低比特量化操作(如 4bit 量化)
55+- $b$:线性层偏置
56+ 
57+### 与其他模式的关系
58+ 
59+- **与 [W4A4 动态量化](term_w4a4_dynamic.md)(同为极低比特方案)**:W4A4 直接对全部权重与激活整数量化;SVDQuant 先分解权重、仅量化残差分量,借低秩旁路吸收离群值,降低 4bit 的量化精度风险。二者可理解为"直接量化"与"分解后量化"两条路径。
60+- **与 [W8A8 静态量化](term_w8a8_static.md)(基础线性量化方案)**:残差主通路的量化即通过 [`linear_quant`](../../quantization_algorithms/linear_quant/term_linear_quant.md) 实现,W8A8 等线性量化模式可作为残差主通路的底层量化方式。
61+- **与 [W16A16S 量化](term_w16a16s.md)(同为结构级模式)**:W16A16S 以保留高位宽、跳过稀疏零值为收益;SVDQuant 以低秩分量吸收离群值为收益。两者都通过"保留部分高精度分量 + 压缩主体"的结构性思路降低压缩精度风险。
62+ 
63+### 适用场景与限制
64+ 
65+#### 1. 适用场景
66+ 
67+- 极低比特(如 W4A4)且激活 / 权重存在显著离群值的层,尤其适用于扩散模型与含大量 Linear 的模型。
68+- 需要尽量保留精度的压缩场景:低秩旁路以高精度保留主体结构,残差分量低比特化。
69+ 
70+#### 2. 使用限制
71+ 
72+- 目标层须为标准 `torch.nn.Linear`,且可通过 `model.named_modules()` 获取模块名。
73+- 离群值迁移、SVD 分解、残差量化三阶段的 `include` / `exclude` 应保持一致,确保同一组层依次经历三阶段。
74+- 分解秩 `rank` 受算子实现限制,建议不超过 128。
75+ 
76+---
77+ 
78+## 3. 关联流程
79+ 
80+- 《[一键量化完整指南](../../../user_guide/usage_quick_quantization.md)》:通过 `--quant_type` 或 YAML 配置 SVDQuant 的 `iter_smooth``svd_res``linear_quant` 三阶段流水线。
81+- 《[量化精度调优指南](../../../user_guide/process_quantization_precision_tuning.md)》:精度不达标时可调整分解秩 `rank` 与离群值迁移强度 `alpha`
82+ 
83+---
84+ 
85+## 4. 关联词条
86+ 
87+- [量化模式](../README.md):上位概念,本词条属于[线性层量化](README.md)类别,是该类别下的一种结构级模式。
88+- [线性层量化](README.md):上位概念,本词条所属类别,SVDQuant 作用于其中的 Linear 层。
89+- [W4A4 动态量化](term_w4a4_dynamic.md):对比模式,同属极低比特方案,SVDQuant 以分解方式降低 4bit 精度风险。
90+- [W8A8 静态量化](term_w8a8_static.md):配套模式,可作为残差主通路的底层量化方式。
91+- [W16A16S 量化](term_w16a16s.md):对比模式,同为"保留高精度分量 + 压缩主体"的结构级模式。
92+- [FP16/BF16](../../quantization_basic/term_fp16_bf16.md):配套术语,低秩旁路使用的高精度数据类型。
93+- 《[SVDQuant 低秩残差量化算法词条](../../quantization_algorithms/svdquant/term_svdquant.md)》:配套术语,算法侧的原理与实现说明。
94+ 
95+---
96+ 
97+## 5. 参考文档
98+ 
99+1. Li M et al. SVDQuant: Absorbing Outliers by Low-Rank Components for 4-Bit Diffusion Models. NeurIPS 2024. https://arxiv.org/abs/2411.05007
100+2. 《[SVDQuant 使用指南](../../quantization_algorithms/svdquant/usage_svdquant.md)》
101+3. 《[量化模式](../README.md)》
@@ -78,6 +78,7 @@ $$q = \mathrm{round}(x / s) + z, \qquad \hat{x} = (q - z) \cdot s, \qquad s = \f
78- [W8A8 静态量化](term_w8a8_static.md):对比模式,INT8 静态方案、精度基线。78- [W8A8 静态量化](term_w8a8_static.md):对比模式,INT8 静态方案、精度基线。
79- [W4A4 MX 动态量化](term_w4a4_mx_dynamic.md):同类模式,改用 MXFP4 浮点格式。79- [W4A4 MX 动态量化](term_w4a4_mx_dynamic.md):同类模式,改用 MXFP4 浮点格式。
80- [W8A16 静态量化](term_w8a16_static.md):对比模式,激活保持 16bit 的高精度方案。80- [W8A16 静态量化](term_w8a16_static.md):对比模式,激活保持 16bit 的高精度方案。
81+- [SVDQuant 量化](term_svdquant.md):对比模式,以低秩分解吸收离群值、仅量化残差分量,降低 4bit 精度风险。
81- 《[线性量化算法说明](../../quantization_algorithms/linear_quant/usage_linear_quant.md)》:配套术语,本模式的处理器实现。82- 《[线性量化算法说明](../../quantization_algorithms/linear_quant/usage_linear_quant.md)》:配套术语,本模式的处理器实现。
82- 《[LAOS:w4a4量化方案说明](../../quantization_algorithms/laos/usage_laos.md)》:配套术语,面向 W4A4 的精度优化算法。83- 《[LAOS:w4a4量化方案说明](../../quantization_algorithms/laos/usage_laos.md)》:配套术语,面向 W4A4 的精度优化算法。
83 84