已合并
[Doc] 优化接口文档:配置文档源码自动生成与结构重组,接口文档按检视整改 #845
rookie_hongchuan创建于 8月18日
[Doc] 优化接口文档:配置文档源码自动生成与结构重组,接口文档按检视整改 #845
已合并
共 106 个文件变更+8243-838
| @@ -39,7 +39,7 @@ repos: | |||
| 39 | - id: codespell | 39 | - id: codespell |
| 40 | args: [ | 40 | args: [ |
| 41 | "-L", | 41 | "-L", |
| 42 | - "CANN,cann,NNAL,nnal,ASCEND,ascend,EnQue,CopyIn,ArchType,AND,ND,tbe,copyin,alog,datas,ans,indexs", | 42 | + "CANN,cann,NNAL,nnal,ASCEND,ascend,EnQue,CopyIn,ArchType,AND,ND,tbe,copyin,alog,datas,ans,indexs,TE", |
| 43 | "--skip", | 43 | "--skip", |
| 44 | "*.py,*.cpp,*.hpp,*.c,*.h,pre-commit/typos.toml", | 44 | "*.py,*.cpp,*.hpp,*.c,*.h,pre-commit/typos.toml", |
| 45 | ] | 45 | ] |
| @@ -0,0 +1,133 @@ | |||
| 1 | +# msmodelslim analyze 命令行 API 文档 | ||
| 2 | + | ||
| 3 | +## 1. 功能说明 | ||
| 4 | + | ||
| 5 | +`msmodelslim analyze` 在量化前对模型做敏感层分析,输出建议回退或重点关注的层名列表,供后续写入量化配置的 `exclude` 等字段。按分析粒度分为三个 scope:`linear`(逐个线性层)、`layer`(按层/块分组)、`attn`(Attention 模块)。分析使用校准数据集在目标设备上计算敏感度指标,并按 `--topk` 输出敏感度最高的层名(`disable_names`)。 | ||
| 6 | + | ||
| 7 | +命令边界:本命令只做分析与结果输出,不执行量化,且需要模型适配器实现分析接口。操作步骤见《[线性层敏感层分析使用指南](../../user_guide/usage_sensitive_linear_analysis.md)》、《[层级敏感层分析使用指南](../../user_guide/usage_sensitive_layer_wise_analysis.md)》、《[Attention 敏感层分析使用指南](../../user_guide/usage_sensitive_attn_analysis.md)》。 | ||
| 8 | + | ||
| 9 | +## 2. 命令格式 | ||
| 10 | + | ||
| 11 | +```text | ||
| 12 | +msmodelslim analyze linear --model_type <model_type> --model_path <model_path> [--device <device>] [--calib_dataset <calib_dataset>] [--topk <topk>] [--trust_remote_code <True|False>] [--metrics <metrics>] [--pattern <pattern> ...] | ||
| 13 | + | ||
| 14 | +msmodelslim analyze layer --model_type <model_type> --model_path <model_path> [--device <device>] [--calib_dataset <calib_dataset>] [--topk <topk>] [--trust_remote_code <True|False>] [--metrics <metrics>] [--quant_modules <module> ...] | ||
| 15 | + | ||
| 16 | +msmodelslim analyze attn --model_type <model_type> --model_path <model_path> [--device <device>] [--calib_dataset <calib_dataset>] [--topk <topk>] [--trust_remote_code <True|False>] [--metrics <metrics>] | ||
| 17 | +``` | ||
| 18 | + | ||
| 19 | +符号说明: | ||
| 20 | + | ||
| 21 | +- `<scope>`(`linear`/`layer`/`attn`)为位置参数,也是子命令名。 | ||
| 22 | +- 尖括号内为需替换的值,方括号内为可选参数。 | ||
| 23 | +- `--trust_remote_code` 是显式值布尔参数,必须紧跟字面量 `True` 或 `False`。 | ||
| 24 | +- `--pattern`、`--quant_modules` 一次接收多个值,`...` 表示可跟多个以空格分隔的值。 | ||
| 25 | +- 各 scope 的专有选项不同:`linear` 有 `--metrics`、`--pattern`;`layer` 有 `--metrics`、`--quant_modules`;`attn` 只有 `--metrics`。 | ||
| 26 | +- 省略 `<scope>` 时(非帮助请求)自动按 `linear` 执行;本命令无其他位置参数。本语法摘要用于说明参数结构,不作为可复制命令;可复制命令见「使用示例」。 | ||
| 27 | + | ||
| 28 | +## 3. 参数列表 | ||
| 29 | + | ||
| 30 | +公共参数(所有 scope 通用): | ||
| 31 | + | ||
| 32 | +| 参数 | 别名 | 类型 | 传入形式 | 必选/可选 | 默认值 | 取值范围或格式 | 含义 | | ||
| 33 | +|------|------|------|----------|-----------|--------|----------------|------| | ||
| 34 | +| `--model_type` | 无 | `string` | 单值 | 必选 | 无 | 模型类型名称,如 `Qwen2.5-7B-Instruct`、`Qwen-QwQ-32B` | 待分析模型类型,须与支持矩阵中的名称一致。 | | ||
| 35 | +| `--model_path` | 无 | `string` | 单值 | 必选 | 无 | 原始模型权重目录(需存在且可读) | 待分析模型的权重目录。 | | ||
| 36 | +| `--device` | 无 | `string` | 单值 | 可选 | `npu` | `npu`、`cpu` | 运行设备类型;与 `msmodelslim quant --device` 不同,不支持 `npu:0,1,2,3` 这类索引列表。 | | ||
| 37 | +| `--calib_dataset` | 无 | `string` | 单值 | 可选 | `mix_calib.jsonl` | 可直接给文件路径,或给 `lab_calib` 目录下的文件名;后缀须为 `.json` 或 `.jsonl` | 校准数据集。 | | ||
| 38 | +| `--topk` | 无 | `int` | 单值 | 可选 | `15` | 大于0的整数 | 输出到 `disable_names` 的最高敏感层数(经验值,仅供参考)。 | | ||
| 39 | +| `--trust_remote_code` | 无 | `bool` | 显式值(必须跟字面量 `True` 或 `False`) | 可选 | `False` | 字面量 `True` 或 `False`(大小写敏感) | 是否信任并执行模型目录中的自定义 Python 代码;仅在确认代码来源可信时开启。 | | ||
| 40 | + | ||
| 41 | +位置参数: | ||
| 42 | + | ||
| 43 | +| 位置参数 | 类型 | 传入形式 | 必选/可选 | 默认值 | 取值范围或格式 | 含义 | | ||
| 44 | +|----------|------|----------|-----------|--------|----------------|------| | ||
| 45 | +| `scope` | `string` | 位置参数(子命令) | 可选 | 未指定且非帮助请求时注入 `linear` | `linear`、`layer`、`attn` | 分析粒度。省略时默认 `linear`;请求帮助(`-h`/`--help`)时不注入。 | | ||
| 46 | + | ||
| 47 | +`linear` 专有参数: | ||
| 48 | + | ||
| 49 | +| 参数 | 别名 | 类型 | 传入形式 | 必选/可选 | 默认值 | 取值范围或格式 | 含义 | | ||
| 50 | +|------|------|------|----------|-----------|--------|----------------|------| | ||
| 51 | +| `--metrics` | 无 | `string` | 单值 | 可选 | `kurtosis` | `std`、`quantile`、`kurtosis` | 线性层敏感度指标:标准差、分位数、峰度。 | | ||
| 52 | +| `--pattern` | 无 | `list` | 一次接收多个值,空格分隔 | 可选 | `['*']` | 通配符模式列表 | 过滤要展示的线性层;`*` 表示全部。 | | ||
| 53 | + | ||
| 54 | +`layer` 专有参数: | ||
| 55 | + | ||
| 56 | +| 参数 | 别名 | 类型 | 传入形式 | 必选/可选 | 默认值 | 取值范围或格式 | 含义 | | ||
| 57 | +|------|------|------|----------|-----------|--------|----------------|------| | ||
| 58 | +| `--metrics` | 无 | `string` | 单值 | 可选 | `mse_layer_wise` | `mse_model_wise`、`mse_layer_wise` | 层级敏感度指标:按层计算误差或按模型整体计算误差。 | | ||
| 59 | +| `--quant_modules` | 无 | `list` | 一次接收多个值,空格分隔 | 可选 | `['*']` | 通配符模块列表 | 映射到 pipeline 量化范围的模块通配符;`*` 表示全部。 | | ||
| 60 | + | ||
| 61 | +`attn` 专有参数: | ||
| 62 | + | ||
| 63 | +| 参数 | 别名 | 类型 | 传入形式 | 必选/可选 | 默认值 | 取值范围或格式 | 含义 | | ||
| 64 | +|------|------|------|----------|-----------|--------|----------------|------| | ||
| 65 | +| `--metrics` | 无 | `string` | 单值 | 可选 | `mse` | `mse` | Attention 模块敏感度指标,仅支持 `mse`,作用于全部 Attention 模块。 | | ||
| 66 | + | ||
| 67 | +## 4. 参数关系 | ||
| 68 | + | ||
| 69 | +- `scope` 决定可用的 `--metrics` 取值与专有参数;跨 scope 混用(如 `analyze attn --pattern`)会导致参数解析失败,提示不支持的参数或取值。 | ||
| 70 | +- 省略 `scope` 时默认按 `linear` 执行;`msmodelslim analyze -h`/`--help` 时不注入 scope,展示 scope 帮助。 | ||
| 71 | +- `--device` 仅接受 `npu`/`cpu`,不支持 `npu:0,1,2,3` 索引列表写法。 | ||
| 72 | +- 历史用法 `--metrics attention_mse`(省略 scope 时)会转换为 `analyze attn --metrics mse` 并丢弃 `--pattern`;该行为仅为向后兼容,命令会给出废弃提示,不推荐作为正式用法。 | ||
| 73 | +- `--topk` 必须为大于0的整数;`--calib_dataset` 后缀必须为 `.json` 或 `.jsonl`。 | ||
| 74 | + | ||
| 75 | +## 5. 使用示例 | ||
| 76 | + | ||
| 77 | +### 5.1 最小可运行场景(线性层敏感度分析) | ||
| 78 | + | ||
| 79 | +省略 scope,按默认 `linear` 执行: | ||
| 80 | + | ||
| 81 | +```bash | ||
| 82 | +msmodelslim analyze \ | ||
| 83 | + --model_type "${MODEL_TYPE}" \ | ||
| 84 | + --model_path "${MODEL_PATH}" | ||
| 85 | +``` | ||
| 86 | + | ||
| 87 | +`${MODEL_TYPE}` 为模型类型名称,`${MODEL_PATH}` 为权重目录。省略 `scope` 时默认按 `linear` 分析,使用默认指标 `kurtosis`、默认 `--topk 15` 与默认校准集 `mix_calib.jsonl`,输出敏感度最高的15个层名(`disable_names`),可写入量化 YAML 的 `exclude`。 | ||
| 88 | + | ||
| 89 | +### 5.2 指定 linear 指标与 topk | ||
| 90 | + | ||
| 91 | +```bash | ||
| 92 | +msmodelslim analyze linear \ | ||
| 93 | + --model_type "${MODEL_TYPE}" \ | ||
| 94 | + --model_path "${MODEL_PATH}" \ | ||
| 95 | + --metrics kurtosis \ | ||
| 96 | + --topk 15 | ||
| 97 | +``` | ||
| 98 | + | ||
| 99 | +显式指定 `linear` scope,使用峰度指标,并按 `--topk 15` 输出高敏感层名。 | ||
| 100 | + | ||
| 101 | +### 5.3 Attention MSE 分析 | ||
| 102 | + | ||
| 103 | +```bash | ||
| 104 | +msmodelslim analyze attn \ | ||
| 105 | + --model_type "${MODEL_TYPE}" \ | ||
| 106 | + --model_path "${MODEL_PATH}" \ | ||
| 107 | + --metrics mse | ||
| 108 | +``` | ||
| 109 | + | ||
| 110 | +对全部 Attention 模块计算 MSE 敏感度。 | ||
| 111 | + | ||
| 112 | +### 5.4 层级分析与量化模块 | ||
| 113 | + | ||
| 114 | +```bash | ||
| 115 | +msmodelslim analyze layer \ | ||
| 116 | + --model_type "${MODEL_TYPE}" \ | ||
| 117 | + --model_path "${MODEL_PATH}" \ | ||
| 118 | + --metrics mse_layer_wise \ | ||
| 119 | + --quant_modules "${MODULE_1}" "${MODULE_2}" | ||
| 120 | +``` | ||
| 121 | + | ||
| 122 | +`${MODULE_1}`、`${MODULE_2}` 为要映射到 pipeline 量化范围的模块通配符(空格分隔多个值)。 | ||
| 123 | + | ||
| 124 | +## 6. 退出码与异常处理 | ||
| 125 | + | ||
| 126 | +| 退出码或异常 | 含义 | 处理建议 | | ||
| 127 | +|--------------|------|----------| | ||
| 128 | +| `0` | 分析成功 | 按输出的层名更新量化配置(如写入 `exclude`)。 | | ||
| 129 | +| 非 `0` | 失败 | 查看错误日志。常见原因:scope 与 `--metrics` 取值不匹配、`--device` 取值非法、`--calib_dataset` 后缀非 `.json`/`.jsonl`、`--topk` 非大于0的整数、模型适配器未实现分析接口。 | | ||
| 130 | + | ||
| 131 | +## 7. 安全说明 | ||
| 132 | + | ||
| 133 | +- `--trust_remote_code True` 会执行模型目录中的自定义 Python 代码,仅在确认来源可信时开启。 | ||
| @@ -0,0 +1,128 @@ | |||
| 1 | +# msmodelslim quant 命令行 API 文档 | ||
| 2 | + | ||
| 3 | +## 1. 功能说明 | ||
| 4 | + | ||
| 5 | +`msmodelslim quant` 是一键量化命令,加载原始模型权重并执行权重/激活量化,导出可部署的量化权重与描述文件。配置来源有两种:通过 `--quant_type` 按模型与量化类型自动匹配 `lab_practice` 中的最佳实践 YAML;或通过 `--config_path` 直接指定用户 YAML(支持 `modelslim_v1`、多模态以及 `modelslim_convert` 纯权重转换等协议,后者的配置可省略 `--model_type`)。两者都不传时按默认量化类型 `w8a8` 匹配最佳实践。 | ||
| 6 | + | ||
| 7 | +命令边界:设备支持 `npu`、`cpu` 以及 `npu:0,1,2,3` 形式的多设备索引;还支持场景标签匹配与 `--debug` 调试上下文落盘。校准数据准备与部署等操作步骤见《[一键量化完整指南](../../user_guide/usage_quick_quantization.md)》,YAML 字段说明见《[modelslim_v1 配置说明](../config/modelslim_v1.md)》等引用的配置文档。 | ||
| 8 | + | ||
| 9 | +## 2. 命令格式 | ||
| 10 | + | ||
| 11 | +```text | ||
| 12 | +msmodelslim quant [--model_type <model_type>] --model_path <model_path> --save_path <save_path> [--device <device>] [--config_path <config_path> | --quant_type <quant_type>] [--trust_remote_code <True|False>] [--debug] [--tag <tag> ...] | ||
| 13 | +``` | ||
| 14 | + | ||
| 15 | +符号说明: | ||
| 16 | + | ||
| 17 | +- 尖括号内为需替换的值,方括号内为可选参数。 | ||
| 18 | +- `--config_path` 与 `--quant_type` 属于互斥组,用 `|` 表示,二者不能同时传入。 | ||
| 19 | +- `--trust_remote_code` 是显式值布尔参数,必须紧跟字面量 `True` 或 `False`。 | ||
| 20 | +- `--debug` 是不带值的布尔开关。 | ||
| 21 | +- `--tag` 一次接收多个值,`...` 表示可跟多个以空格分隔的值。 | ||
| 22 | +- 本命令无位置参数,全部参数通过选项传入。本语法摘要用于说明参数结构,不作为可复制命令;可复制命令见「使用示例」。 | ||
| 23 | + | ||
| 24 | +## 3. 参数列表 | ||
| 25 | + | ||
| 26 | +| 参数 | 别名 | 类型 | 传入形式 | 必选/可选 | 默认值 | 取值范围或格式 | 含义 | | ||
| 27 | +|------|------|------|----------|-----------|--------|----------------|------| | ||
| 28 | +| `--model_type` | 无 | `string` | 单值 | 条件必选(普通量化路径必选;`--config_path` 指向 `apiversion: modelslim_convert` 的配置时可省略) | 无 | 模型类型名称,如 `Qwen2.5-7B-Instruct` | 指定待量化模型类型,用于加载对应模型适配器并匹配最佳实践;仅当 `--config_path` 指向 `apiversion: modelslim_convert` 的配置时可省略。 | | ||
| 29 | +| `--model_path` | 无 | `string` | 单值 | 必选 | 无 | 原始模型权重目录(需存在且可读) | 待量化模型的权重目录。 | | ||
| 30 | +| `--save_path` | 无 | `string` | 单值 | 必选 | 无 | 输出目录(需可写) | 量化权重与描述文件的保存目录。 | | ||
| 31 | +| `--device` | 无 | `string` | 单值 | 可选 | `npu` | `npu`、`cpu`,或 `npu:<index>[,<index>...]`(如 `npu:0,1,2,3`);索引为逗号分隔的非负整数、不重复且小于可用设备数;`cpu` 不支持多于1个索引 | 运行设备。索引列表形式在 `apiversion: modelslim_v1` 配置(含 `lab_practice` 最佳实践)下受支持。 | | ||
| 32 | +| `--config_path` | 无 | `string` | 单值 | 可选 | 无 | 可读 YAML 文件路径 | 显式指定的量化配置 YAML;加载后直接采用,并忽略 `--quant_type` 与 `--tag` 的最佳实践匹配。与 `--quant_type` 互斥。 | | ||
| 33 | +| `--quant_type` | 无 | `string` | 单值 | 可选 | 无(与 `--config_path` 均未提供时按 `w8a8` 匹配) | `w4a4`、`w4a8`、`w4a4c8`、`w4a4f8`、`w4a8c8`、`w8a16`、`w8a8`、`w8a8s`、`w8a8c8`、`w8a8f8`、`w4a4f4`、`w16a16s` | 量化类型,用于按模型与量化类型匹配最佳实践 YAML。与 `--config_path` 互斥。 | | ||
| 34 | +| `--trust_remote_code` | 无 | `bool` | 显式值(必须跟字面量 `True` 或 `False`) | 可选 | `False` | 字面量 `True` 或 `False`(大小写敏感) | 是否信任并执行模型目录中的自定义 Python 代码;仅在确认代码来源可信时开启。 | | ||
| 35 | +| `--debug` | 无 | `bool` | 不带值开关 | 可选 | `False` | 传入即启用 | 启用调试模式,将量化中间上下文写入 `save_path/debug_info/`(`debug_info.json` 与 `debug_info.safetensors`)。 | | ||
| 36 | +| `--tag` | 无 | `list` | 一次接收多个值,空格分隔 | 可选 | 无 | 场景标签,如 `mindie`、`Atlas_A2_Inference`、`vllm` | 匹配带已验证场景标签的最佳实践;多个标签须同时出现在同一场景中,未提供硬件类型标签时自动匹配当前设备类型。 | | ||
| 37 | + | ||
| 38 | +## 4. 参数关系 | ||
| 39 | + | ||
| 40 | +- `--config_path` 与 `--quant_type` 互斥,同时传入会报错。 | ||
| 41 | +- 两者都不传时,按默认量化类型 `w8a8` 匹配最佳实践;未匹配到最佳实践时会给出提示并等待确认(输入 `y` 继续,否则退出)。 | ||
| 42 | +- 指定 `--config_path` 后直接采用该配置,`--quant_type` 与 `--tag` 的最佳实践匹配均被忽略。 | ||
| 43 | +- `--model_type` 在普通量化路径下必须提供;仅当 `--config_path` 指向 `apiversion: modelslim_convert` 的配置时可省略。 | ||
| 44 | +- `--tag` 指定多个值时须同时出现在同一已验证场景;未提供硬件类型标签时自动匹配当前设备类型。 | ||
| 45 | +- `--debug` 启用后量化上下文写入 `save_path/debug_info/`。 | ||
| 46 | + | ||
| 47 | +## 5. 引用的配置 | ||
| 48 | + | ||
| 49 | +| 关联参数 | 配置名称 | 引用关系 | 配置文档 | | ||
| 50 | +|----------|----------|----------|----------| | ||
| 51 | +| `--config_path` | `modelslim_v1` | 加载整份量化 YAML | 《[modelslim_v1 配置说明](../config/modelslim_v1.md)》 | | ||
| 52 | +| `--config_path` | `multimodal_vlm_modelslim_v1` | 多模态理解模型量化 YAML | 《[multimodal_vlm_modelslim_v1 配置说明](../config/multimodal_vlm_modelslim_v1.md)》 | | ||
| 53 | +| `--config_path` | `multimodal_sd_modelslim_v1` | 多模态生成模型量化 YAML | 《[multimodal_sd_modelslim_v1 配置说明](../config/multimodal_sd_modelslim_v1.md)》 | | ||
| 54 | +| `--config_path` | `modelslim_convert` | 纯权重转换协议 YAML,可省略 `--model_type` | 《[modelslim_convert 配置说明](../config/modelslim_convert.md)》 | | ||
| 55 | +| `--quant_type` | `lab_practice` 最佳实践 YAML | 按模型与量化类型匹配 | 《[一键量化完整指南](../../user_guide/usage_quick_quantization.md)》 | | ||
| 56 | + | ||
| 57 | +## 6. 环境变量 | ||
| 58 | + | ||
| 59 | +| 环境变量 | 类型 | 必选/可选 | 默认值 | 取值范围或格式 | 含义 | | ||
| 60 | +|----------|------|-----------|--------|----------------|------| | ||
| 61 | +| `MSMODELSLIM_CUSTOM_PRACTICE_REPO` | `string` | 可选 | 无(未设置) | 目录路径 | 自定义最佳实践仓库目录;设置后与官方 `lab_practice` 一并参与最佳实践匹配。 | | ||
Z | |||
| 62 | +| `MSMODELSLIM_LOG_LEVEL` | `string` | 可选 | `INFO` | `INFO`、`DEBUG` | 设置日志级别;设置后打印同级及以上日志。 | | ||
| 63 | + | ||
| 64 | +## 7. 使用示例 | ||
| 65 | + | ||
| 66 | +### 7.1 按默认量化类型一键量化(最小可运行场景) | ||
| 67 | + | ||
| 68 | +只包含完成一次量化所需的最少参数: | ||
| 69 | + | ||
| 70 | +```bash | ||
| 71 | +msmodelslim quant \ | ||
| 72 | + --model_type "${MODEL_TYPE}" \ | ||
| 73 | + --model_path "${MODEL_PATH}" \ | ||
| 74 | + --save_path "${SAVE_PATH}" | ||
| 75 | +``` | ||
| 76 | + | ||
| 77 | +`${MODEL_TYPE}` 为模型类型名称(如 `Qwen2.5-7B-Instruct`),`${MODEL_PATH}` 为浮点权重目录,`${SAVE_PATH}` 为量化输出目录。未指定 `--quant_type` 与 `--config_path` 时,默认按量化类型 `w8a8` 匹配最佳实践并执行量化;若模型加载需要模型目录内的自定义代码,再补充 `--trust_remote_code True`。 | ||
| 78 | + | ||
| 79 | +### 7.2 显式指定量化类型与设备 | ||
| 80 | + | ||
| 81 | +```bash | ||
| 82 | +msmodelslim quant \ | ||
| 83 | + --model_type "${MODEL_TYPE}" \ | ||
| 84 | + --model_path "${MODEL_PATH}" \ | ||
| 85 | + --save_path "${SAVE_PATH}" \ | ||
| 86 | + --quant_type w8a8c8 \ | ||
| 87 | + --device npu:0,1,2,3 | ||
| 88 | +``` | ||
| 89 | + | ||
| 90 | +`--quant_type w8a8c8` 表示权重8bit、激活8bit、KVCache 8bit 量化;`--device npu:0,1,2,3` 使用4个 NPU 设备,索引列表形式在 `apiversion: modelslim_v1` 配置(含 `lab_practice` 最佳实践)下受支持。 | ||
| 91 | + | ||
| 92 | +### 7.3 使用自定义配置文件 | ||
| 93 | + | ||
| 94 | +```bash | ||
| 95 | +msmodelslim quant \ | ||
| 96 | + --model_type "${MODEL_TYPE}" \ | ||
| 97 | + --model_path "${MODEL_PATH}" \ | ||
| 98 | + --save_path "${SAVE_PATH}" \ | ||
| 99 | + --config_path "${CONFIG_PATH}" | ||
| 100 | +``` | ||
| 101 | + | ||
| 102 | +`${CONFIG_PATH}` 指向符合 V1 等协议的量化 YAML;指定后直接采用该配置,不再做最佳实践匹配。字段说明见引用的配置文档。 | ||
| 103 | + | ||
| 104 | +### 7.4 使用场景标签匹配最佳实践 | ||
| 105 | + | ||
| 106 | +```bash | ||
| 107 | +msmodelslim quant \ | ||
| 108 | + --model_type "${MODEL_TYPE}" \ | ||
| 109 | + --model_path "${MODEL_PATH}" \ | ||
| 110 | + --save_path "${SAVE_PATH}" \ | ||
| 111 | + --quant_type w8a8 \ | ||
| 112 | + --tag mindie Atlas_A2_Inference | ||
| 113 | +``` | ||
| 114 | + | ||
| 115 | +`--tag` 后的多个标签须同时出现在同一已验证场景中;未精确匹配时命令会给出提示并等待确认(输入 `y` 继续,否则退出);命中备用(standby)配置时提示改用备用配置,仍需用户确认。 | ||
| 116 | + | ||
| 117 | +## 8. 退出码与异常处理 | ||
| 118 | + | ||
| 119 | +| 退出码或异常 | 含义 | 处理建议 | | ||
| 120 | +|--------------|------|----------| | ||
| 121 | +| `0` | 量化成功 | 检查 `${SAVE_PATH}` 是否生成量化权重与描述文件。 | | ||
| 122 | +| 非 `0` | 失败 | 查看错误日志。常见原因:`--config_path` 与 `--quant_type` 同时传入、普通量化路径缺少 `--model_type`、YAML 校验失败、设备索引非法或超出可用设备。 | | ||
| 123 | + | ||
| 124 | +## 9. 安全说明 | ||
| 125 | + | ||
| 126 | +- `--trust_remote_code True` 会执行模型目录中的自定义 Python 代码,仅在确认来源可信时开启。 | ||
| 127 | +- `--save_path` 会写入量化结果文件;请确认目录可写且不会覆盖非预期数据。 | ||
| 128 | +- `--debug` 会把量化中间上下文(含张量数据)写入 `save_path/debug_info/`,请按组织安全策略管理该目录。 | ||
| @@ -0,0 +1,95 @@ | |||
| 1 | +# msmodelslim tune 命令行 API 文档 | ||
| 2 | + | ||
| 3 | +## 1. 功能说明 | ||
| 4 | + | ||
| 5 | +`msmodelslim tune` 是自动调优命令,读取包含 `strategy` 与 `evaluation` 的调优 YAML,循环执行「生成量化配置 → 量化 → 精度评估」,根据评估结果迭代搜索满足精度期望的量化配置,直至策略生成器耗尽、达到 `--timeout` 超时或达到最大迭代次数。量化模型与评估历史等结果写入 `--save_path`;调优结束后,最终最佳实践可保存到自定义最佳实践仓库。 | ||
| 6 | + | ||
| 7 | +命令边界:本命令不展开具体调优策略与评估配置的编写;字段说明见《[自动调优配置协议说明](../config/auto_precision_tuning.md)》,操作步骤见《[自动调优使用说明](../../user_guide/usage_auto_precision_tuning.md)》。 | ||
| 8 | + | ||
| 9 | +## 2. 命令格式 | ||
| 10 | + | ||
| 11 | +```text | ||
| 12 | +msmodelslim tune --model_path <model_path> --save_path <save_path> --config <config> [--model_type <model_type>] [--device <device>] [--timeout <timeout>] [--trust_remote_code <True|False>] | ||
| 13 | +``` | ||
| 14 | + | ||
| 15 | +符号说明: | ||
| 16 | + | ||
| 17 | +- 尖括号内为需替换的值,方括号内为可选参数。 | ||
| 18 | +- `--model_path`、`--save_path`、`--config` 为必选参数。 | ||
| 19 | +- `--config` 是调优 YAML 的路径,与一键量化的 `--config_path` 不是同一参数。 | ||
| 20 | +- `--timeout` 为时长字符串,如 `2H`、`3D4H`。 | ||
| 21 | +- `--trust_remote_code` 是显式值布尔参数,必须紧跟字面量 `True` 或 `False`。 | ||
| 22 | +- 本命令无位置参数。本语法摘要用于说明参数结构,不作为可复制命令;可复制命令见「使用示例」。 | ||
| 23 | + | ||
| 24 | +## 3. 参数列表 | ||
| 25 | + | ||
| 26 | +| 参数 | 别名 | 类型 | 传入形式 | 必选/可选 | 默认值 | 取值范围或格式 | 含义 | | ||
| 27 | +|------|------|------|----------|-----------|--------|----------------|------| | ||
| 28 | +| `--model_type` | 无 | `string` | 单值 | 可选 | `default` | 模型类型名称,如 `Qwen2.5-7B-Instruct`、`Qwen-QwQ-32B` | 待调优模型类型;不传时使用默认适配器 `default`。 | | ||
| 29 | +| `--model_path` | 无 | `string` | 单值 | 必选 | 无 | 原始模型权重目录(需存在且可读) | 待调优模型的权重目录。 | | ||
| 30 | +| `--save_path` | 无 | `string` | 单值 | 必选 | 无 | 输出目录(需可写) | 调优结果、量化模型与历史记录的保存目录。 | | ||
| 31 | +| `--config` | 无 | `string` | 单值 | 必选 | 无 | 可读 YAML 文件路径 | 调优配置 YAML,含 `strategy` 与 `evaluation` 字段。 | | ||
| 32 | +| `--device` | 无 | `string` | 单值 | 可选 | `npu` | `npu`、`cpu`,或 `npu:<index>[,<index>...]`(如 `npu:0,1,2,3`) | 运行设备,多卡索引写法与 `msmodelslim quant --device` 约束相同。 | | ||
| 33 | +| `--timeout` | 无 | `string` | 单值 | 可选 | 无(不限时) | 形如 `1D2H30M15S`,单位固定顺序 D/H/M/S,可省略任意一段(如 `1D2H`、`30M`、`10S`),至少含一个单位,字母大写 | 调优墙钟超时;到达超时时间后停止本次调优。 | | ||
| 34 | +| `--trust_remote_code` | 无 | `bool` | 显式值(必须跟字面量 `True` 或 `False`) | 可选 | `False` | 字面量 `True` 或 `False`(大小写敏感) | 是否信任并执行模型目录中的自定义 Python 代码;仅在确认代码来源可信时开启。 | | ||
| 35 | + | ||
| 36 | +## 4. 参数关系 | ||
| 37 | + | ||
| 38 | +- 本命令通过 `--config` 加载调优 YAML,与一键量化的 `--config_path` 不是同一参数;本命令只接受 `--config`。 | ||
| 39 | +- `--timeout` 未设置时不限制调优墙钟时间;设置后超时即停止当前调优。 | ||
| 40 | +- `--device` 多卡索引写法的约束与 `msmodelslim quant --device` 相同。 | ||
| 41 | +- `--model_type` 不传时使用默认值 `default`。 | ||
| 42 | + | ||
| 43 | +## 5. 引用的配置 | ||
| 44 | + | ||
| 45 | +| 关联参数 | 配置名称 | 引用关系 | 配置文档 | | ||
| 46 | +|----------|----------|----------|----------| | ||
| 47 | +| `--config` | 自动调优配置 | 加载 `strategy` 与 `evaluation` | 《[自动调优配置协议说明](../config/auto_precision_tuning.md)》 | | ||
| 48 | + | ||
| 49 | +## 6. 环境变量 | ||
| 50 | + | ||
| 51 | +| 环境变量 | 类型 | 必选/可选 | 默认值 | 取值范围或格式 | 含义 | | ||
| 52 | +|----------|------|-----------|--------|----------------|------| | ||
| 53 | +| `MSMODELSLIM_CUSTOM_PRACTICE_REPO` | `string` | 可选 | 无(未设置) | 目录路径 | 调优结束后将最终最佳实践保存到该自定义最佳实践仓库;未设置时命令仅记录「不支持保存」的提示。 | | ||
| 54 | +| `MSMODELSLIM_LOG_LEVEL` | `string` | 可选 | `INFO` | `INFO`、`DEBUG` | 设置日志级别;设置后打印同级及以上日志。 | | ||
| 55 | + | ||
| 56 | +## 7. 使用示例 | ||
| 57 | + | ||
| 58 | +### 7.1 最小调优命令 | ||
| 59 | + | ||
| 60 | +只包含完成一次自动调优所需的最少参数: | ||
| 61 | + | ||
| 62 | +```bash | ||
| 63 | +msmodelslim tune \ | ||
| 64 | + --model_path "${MODEL_PATH}" \ | ||
| 65 | + --save_path "${SAVE_PATH}" \ | ||
| 66 | + --config "${CONFIG_PATH}" | ||
| 67 | +``` | ||
| 68 | + | ||
| 69 | +`${MODEL_PATH}` 为权重目录,`${SAVE_PATH}` 为调优结果目录,`${CONFIG_PATH}` 为调优 YAML(含 `strategy` 与 `evaluation`)。未指定 `--model_type` 时使用默认适配器 `default`,推荐显式指定。 | ||
| 70 | + | ||
| 71 | +### 7.2 指定模型类型与超时 | ||
| 72 | + | ||
| 73 | +```bash | ||
| 74 | +msmodelslim tune \ | ||
| 75 | + --model_type "${MODEL_TYPE}" \ | ||
| 76 | + --model_path "${MODEL_PATH}" \ | ||
| 77 | + --save_path "${SAVE_PATH}" \ | ||
| 78 | + --config "${CONFIG_PATH}" \ | ||
| 79 | + --timeout 2H \ | ||
| 80 | + --device npu:0,1,2,3 | ||
| 81 | +``` | ||
| 82 | + | ||
| 83 | +`--timeout 2H` 表示最多运行2小时;`--device npu:0,1,2,3` 使用4个 NPU 设备。 | ||
| 84 | + | ||
| 85 | +## 8. 退出码与异常处理 | ||
| 86 | + | ||
| 87 | +| 退出码或异常 | 含义 | 处理建议 | | ||
| 88 | +|--------------|------|----------| | ||
| 89 | +| `0` | 调优流程正常结束(含策略迭代完成、超时或达到最大迭代次数) | 查看 `${SAVE_PATH}` 下的量化模型、结果与历史记录。 | | ||
| 90 | +| 非 `0` | 失败 | 查看错误日志。常见原因:`--config` YAML 校验失败、`--timeout` 格式非法、模型适配器加载失败。 | | ||
| 91 | + | ||
| 92 | +## 9. 安全说明 | ||
| 93 | + | ||
| 94 | +- `--trust_remote_code True` 会执行模型目录中的自定义 Python 代码,仅在确认来源可信时开启。 | ||
| 95 | +- `--save_path` 会写入调优结果与历史记录;请确认目录可写且不会覆盖非预期数据。 | ||
| @@ -0,0 +1,36 @@ | |||
| 1 | +<!-- generated-by: skills/docs-management/scripts/gen_quant_config_docs.py ; class: msmodelslim.format.ascendV1_format.ascendV1.AscendV1QuantFormatConfig --> | ||
| 2 | +# ascendv1_saver 配置说明 | ||
| 3 | + | ||
| 4 | +## 1. 配置概述 | ||
| 5 | + | ||
| 6 | +AscendV1 保存格式配置,导出昇腾落盘格式的权重文件。 | ||
| 7 | + | ||
| 8 | +| 项目 | 内容 | | ||
| 9 | +|------|------| | ||
| 10 | +| 配置类 | `AscendV1QuantFormatConfig` | | ||
| 11 | +| 源码 | [ascendV1.py](../../../../../msmodelslim/format/ascendV1_format/ascendV1.py) | | ||
| 12 | + | ||
| 13 | +## 2. 参数列表 | ||
| 14 | + | ||
| 15 | +<h3 id="2-1-ascendv1-saver">2.1 AscendV1QuantFormatConfig</h3> | ||
| 16 | + | ||
| 17 | +| 字段路径 | 类型 | 必选/可选 | 默认值 | 取值范围或格式 | 含义 | 引用配置 | | ||
| 18 | +|----------|------|-----------|--------|----------------|------|----------| | ||
| 19 | +| `type` | `string` | 可选 | `ascendv1_saver` | `ascendv1_saver` | 保存格式类型,固定为 `ascendv1_saver`。 | 无 | | ||
| 20 | +| `part_file_size` | `int` | 可选 | `4` | — | 分片文件大小,单位 GB;0 表示不分片。 | 无 | | ||
| 21 | +| `ext` | `object` | 可选 | `{}` | — | 保存格式扩展参数,随实现而定;空对象表示无扩展参数。 | 无 | | ||
| 22 | + | ||
| 23 | +**配置约束** | ||
| 24 | + | ||
| 25 | +- 无。 | ||
| 26 | + | ||
| 27 | +## 3. 完整配置参考 | ||
| 28 | + | ||
| 29 | +```yaml | ||
| 30 | +apiversion: modelslim_v1 | ||
| 31 | +spec: | ||
| 32 | + save: | ||
| 33 | + - type: ascendv1_saver | ||
| 34 | + part_file_size: 4 | ||
| 35 | + ext: {} | ||
| 36 | +``` | ||
| @@ -0,0 +1,34 @@ | |||
| 1 | +<!-- generated-by: skills/docs-management/scripts/gen_quant_config_docs.py ; class: msmodelslim.format.compressed_tensors_format.compressed_tensors.CompressedTensorsQuantFormatConfig --> | ||
| 2 | +# compressed_tensors 配置说明 | ||
| 3 | + | ||
| 4 | +## 1. 配置概述 | ||
| 5 | + | ||
| 6 | +compressed_tensors 保存格式配置,导出 safetensors 权重与 config.json。 | ||
| 7 | + | ||
| 8 | +| 项目 | 内容 | | ||
| 9 | +|------|------| | ||
| 10 | +| 配置类 | `CompressedTensorsQuantFormatConfig` | | ||
| 11 | +| 源码 | [compressed_tensors.py](../../../../../msmodelslim/format/compressed_tensors_format/compressed_tensors.py) | | ||
| 12 | + | ||
| 13 | +## 2. 参数列表 | ||
| 14 | + | ||
| 15 | +<h3 id="2-1-compressed-tensors">2.1 CompressedTensorsQuantFormatConfig</h3> | ||
| 16 | + | ||
| 17 | +| 字段路径 | 类型 | 必选/可选 | 默认值 | 取值范围或格式 | 含义 | 引用配置 | | ||
| 18 | +|----------|------|-----------|--------|----------------|------|----------| | ||
| 19 | +| `type` | `string` | 可选 | `compressed_tensors` | `compressed_tensors` | 保存格式类型,固定为 `compressed_tensors`。 | 无 | | ||
| 20 | +| `part_file_size` | `int` | 可选 | `4` | — | 分片文件大小,单位 GB;0 表示不分片。 | 无 | | ||
| 21 | + | ||
| 22 | +**配置约束** | ||
| 23 | + | ||
| 24 | +- 无。 | ||
| 25 | + | ||
| 26 | +## 3. 完整配置参考 | ||
| 27 | + | ||
| 28 | +```yaml | ||
| 29 | +apiversion: modelslim_v1 | ||
| 30 | +spec: | ||
| 31 | + save: | ||
| 32 | + - type: compressed_tensors | ||
| 33 | + part_file_size: 4 | ||
| 34 | +``` | ||
| @@ -0,0 +1,36 @@ | |||
| 1 | +<!-- generated-by: skills/docs-management/scripts/gen_quant_config_docs.py ; class: msmodelslim.format.mindie_format.mindie.MindIEQuantFormatConfig --> | ||
| 2 | +# mindie_format_saver 配置说明 | ||
| 3 | + | ||
| 4 | +## 1. 配置概述 | ||
| 5 | + | ||
| 6 | +MindIE 保存格式配置,导出 MindIE 落盘格式的权重文件。 | ||
| 7 | + | ||
| 8 | +| 项目 | 内容 | | ||
| 9 | +|------|------| | ||
| 10 | +| 配置类 | `MindIEQuantFormatConfig` | | ||
| 11 | +| 源码 | [mindie.py](../../../../../msmodelslim/format/mindie_format/mindie.py) | | ||
| 12 | + | ||
| 13 | +## 2. 参数列表 | ||
| 14 | + | ||
| 15 | +<h3 id="2-1-mindie-format-saver">2.1 MindIEQuantFormatConfig</h3> | ||
| 16 | + | ||
| 17 | +| 字段路径 | 类型 | 必选/可选 | 默认值 | 取值范围或格式 | 含义 | 引用配置 | | ||
| 18 | +|----------|------|-----------|--------|----------------|------|----------| | ||
| 19 | +| `type` | `string` | 可选 | `mindie_format_saver` | `mindie_format_saver` | 保存格式类型,固定为 `mindie_format_saver`。 | 无 | | ||
| 20 | +| `part_file_size` | `int` | 可选 | `4` | — | 分片文件大小,单位 GB;0 表示不分片。 | 无 | | ||
| 21 | +| `ext` | `object` | 可选 | `{}` | — | 保存格式扩展参数,随实现而定;空对象表示无扩展参数。 | 无 | | ||
| 22 | + | ||
| 23 | +**配置约束** | ||
| 24 | + | ||
| 25 | +- 无。 | ||
| 26 | + | ||
| 27 | +## 3. 完整配置参考 | ||
| 28 | + | ||
| 29 | +```yaml | ||
| 30 | +apiversion: modelslim_v1 | ||
| 31 | +spec: | ||
| 32 | + save: | ||
| 33 | + - type: mindie_format_saver | ||
| 34 | + part_file_size: 4 | ||
| 35 | + ext: {} | ||
| 36 | +``` | ||
| @@ -0,0 +1,84 @@ | |||
| 1 | +<!-- generated-by: skills/docs-management/scripts/gen_quant_config_docs.py ; class: msmodelslim.processor.adapt_rotation.adapt_rotation.AdaptRotationProcessorConfig --> | ||
| 2 | +# adapt_rotation 配置说明 | ||
| 3 | + | ||
| 4 | +## 1. 配置概述 | ||
| 5 | + | ||
| 6 | +自适应旋转(adapt_rotation)处理器配置。 | ||
| 7 | + | ||
| 8 | +| 项目 | 内容 | | ||
| 9 | +|------|------| | ||
| 10 | +| 配置类 | `AdaptRotationProcessorConfig` | | ||
| 11 | +| 源码 | [adapt_rotation.py](../../../../../msmodelslim/processor/adapt_rotation/adapt_rotation.py) | | ||
| 12 | + | ||
| 13 | +## 2. 参数列表 | ||
| 14 | + | ||
| 15 | +<h3 id="2-1-adapt-rotation">2.1 AdaptRotationProcessorConfig</h3> | ||
| 16 | + | ||
| 17 | +| 字段路径 | 类型 | 必选/可选 | 默认值 | 取值范围或格式 | 含义 | 引用配置 | | ||
| 18 | +|----------|------|-----------|--------|----------------|------|----------| | ||
| 19 | +| `type` | `string` | 可选 | `adapt_rotation` | `adapt_rotation` | 处理器类型,固定为 `adapt_rotation`。 | 无 | | ||
| 20 | +| `stage` | `int` | 必选 | 无 | `1`、`2` | 旋转适配阶段:1 或 2,决定使用哪个阶段配置。 | 无 | | ||
| 21 | +| `stage_config` | `object` | 必选 | 无 | — | 阶段配置对象(内部自动组装字段,必选但由 before-validator 根据 `stage` 自动生成,用户无需在 YAML 中配置);YAML 中不要直接配置该字段,请把阶段字段(如 steps、quant_dtype)平铺在处理器下,见《AdaptRotationStage1ProcessorConfig 配置说明》/《AdaptRotationStage2ProcessorConfig 配置说明》。 | 本页 <a href="#2-2-processorconfig">§2.2</a> | | ||
| 22 | + | ||
| 23 | +**配置约束** | ||
| 24 | + | ||
| 25 | +- 按 stage 把扁平字段组装为 stage_config:仅允许对应阶段字段,多余字段报错。 | ||
| 26 | + | ||
| 27 | +<h3 id="2-2-processorconfig">2.2 ProcessorConfig</h3> | ||
| 28 | + | ||
| 29 | +**派生类** | ||
| 30 | + | ||
| 31 | +- `AdaptRotationStage1ProcessorConfig` — adapt_rotation 阶段1的配置。 本页 <a href="#2-3-adapt-rotation-stage1">§2.3</a> | ||
| 32 | +- `AdaptRotationStage2ProcessorConfig` — adapt_rotation 阶段2的配置。 本页 <a href="#2-4-adapt-rotation-stage2">§2.4</a> | ||
| 33 | + | ||
| 34 | +<h4 id="2-3-adapt-rotation-stage1">2.3 AdaptRotationStage1ProcessorConfig</h4> | ||
| 35 | + | ||
| 36 | +adapt_rotation 阶段1的配置。 | ||
| 37 | + | ||
| 38 | +| 字段路径 | 类型 | 必选/可选 | 默认值 | 取值范围或格式 | 含义 | 引用配置 | | ||
| 39 | +|----------|------|-----------|--------|----------------|------|----------| | ||
| 40 | +| `type` | `string` | 可选 | `_adapt_rotation_stage1` | `_adapt_rotation_stage1` | 阶段配置类型,内部标识,无需配置。 | 无 | | ||
| 41 | +| `steps` | `int` | 可选 | `20` | — | 迭代优化步数 | 无 | | ||
| 42 | +| `quant_dtype` | `string` | 可选 | `int4` | `int4`、`int8` | 量化比特数,应与下游量化中激活值量化类型一致(如 w4a4 用 int4,w8a8 用 int8) | 无 | | ||
| 43 | +| `layer_type` | `list[string]` | 可选 | `['up_proj']` | 最少1项 | 要收集激活的层名子串列表 | 无 | | ||
| 44 | +| `block_size` | `int` | 可选 | `-1` | — | 块大小,-1 表示 hidden_dim | 无 | | ||
| 45 | +| `max_samples` | `int` | 可选 | `2048` | — | 每层最大采样数 | 无 | | ||
| 46 | + | ||
| 47 | +**配置约束** | ||
| 48 | + | ||
| 49 | +- 校验 layer_type:每个元素为非空字符串且长度 <= 128 | ||
| 50 | +- 校验 block_size:取值范围为-1或2的非负整数次幂 | ||
| 51 | + | ||
| 52 | +<h4 id="2-4-adapt-rotation-stage2">2.4 AdaptRotationStage2ProcessorConfig</h4> | ||
| 53 | + | ||
| 54 | +adapt_rotation 阶段2的配置。 | ||
| 55 | + | ||
| 56 | +| 字段路径 | 类型 | 必选/可选 | 默认值 | 取值范围或格式 | 含义 | 引用配置 | | ||
| 57 | +|----------|------|-----------|--------|----------------|------|----------| | ||
| 58 | +| `type` | `string` | 可选 | `_adapt_rotation_stage2` | `_adapt_rotation_stage2` | 阶段配置类型,内部标识,无需配置。 | 无 | | ||
| 59 | +| `online` | `bool` | 可选 | `false` | — | 是否启用在线旋转 | 无 | | ||
| 60 | +| `block_size` | `int` | 可选 | `-1` | — | 块大小,-1 表示 hidden_dim | 无 | | ||
| 61 | +| `down_proj_online_layers` | `list[int]` | 可选 | `[]` | — | down_proj 在线层索引列表 | 无 | | ||
| 62 | +| `max_tp_size` | `int` | 可选 | `4` | — | 最大 TP 并行度 | 无 | | ||
| 63 | + | ||
| 64 | +**配置约束** | ||
| 65 | + | ||
| 66 | +- 校验 down_proj_online_layers:每个元素为非负整数 | ||
| 67 | +- 校验 max_tp_size:必须大于等于1且为2的幂 | ||
| 68 | +- 校验 block_size:取值范围为-1或2的非负整数次幂 | ||
| 69 | + | ||
| 70 | +## 3. 完整配置参考 | ||
| 71 | + | ||
| 72 | +```yaml | ||
| 73 | +apiversion: modelslim_v1 | ||
| 74 | +spec: | ||
| 75 | + process: | ||
| 76 | + - type: adapt_rotation | ||
| 77 | + stage: 1 | ||
| 78 | + steps: 20 | ||
| 79 | + quant_dtype: int4 | ||
| 80 | + layer_type: | ||
| 81 | + - up_proj | ||
| 82 | + block_size: -1 | ||
| 83 | + max_samples: 2048 | ||
| 84 | +``` | ||
| @@ -0,0 +1,99 @@ | |||
| 1 | +<!-- generated-by: skills/docs-management/scripts/gen_quant_config_docs.py ; class: msmodelslim.processor.quant.autoround.AutoroundProcessorConfig --> | ||
| 2 | +# autoround_quant 配置说明 | ||
| 3 | + | ||
| 4 | +## 1. 配置概述 | ||
| 5 | + | ||
| 6 | +autoround 量化处理器配置。 | ||
| 7 | + | ||
| 8 | +| 项目 | 内容 | | ||
| 9 | +|------|------| | ||
| 10 | +| 配置类 | `AutoroundProcessorConfig` | | ||
| 11 | +| 源码 | [autoround.py](../../../../../msmodelslim/processor/quant/autoround.py) | | ||
| 12 | + | ||
| 13 | +## 2. 参数列表 | ||
| 14 | + | ||
| 15 | +<h3 id="2-1-autoround-quant">2.1 AutoroundProcessorConfig</h3> | ||
| 16 | + | ||
| 17 | +| 字段路径 | 类型 | 必选/可选 | 默认值 | 取值范围或格式 | 含义 | 引用配置 | | ||
| 18 | +|----------|------|-----------|--------|----------------|------|----------| | ||
| 19 | +| `type` | `string` | 可选 | `autoround_quant` | `autoround_quant` | 处理器类型,固定为 `autoround_quant`。 | 无 | | ||
| 20 | +| `iters` | `int` | 可选 | `10` | — | 迭代次数,必须大于0 | 无 | | ||
| 21 | +| `enable_minmax_tuning` | `bool` | 可选 | `true` | — | 是否启用最小最大值调优 | 无 | | ||
| 22 | +| `enable_round_tuning` | `bool` | 可选 | `true` | — | 是否启用舍入调优 | 无 | | ||
| 23 | +| `strategies` | `list[object]` | 可选 | `[]` | — | 量化策略配置列表,至少配置一个 | 本页 <a href="#2-2-autoround-quant-strategy-config">§2.2</a> | | ||
| 24 | + | ||
| 25 | +**配置约束** | ||
| 26 | + | ||
| 27 | +- 校验 strategies:非空;每个 strategy 的 qconfig 满足 group_size 规则(scope=per_group 时 ext.group_size 必须为正整数,scope≠per_group 时不得含 group_size);并通过量化器 layer 配置预检。 | ||
| 28 | + | ||
| 29 | +<h3 id="2-2-autoround-quant-strategy-config">2.2 QuantStrategyConfig</h3> | ||
| 30 | + | ||
| 31 | +autoround 量化策略:对匹配的线性层应用一组量化配置。 | ||
| 32 | + | ||
| 33 | +| 字段路径 | 类型 | 必选/可选 | 默认值 | 取值范围或格式 | 含义 | 引用配置 | | ||
| 34 | +|----------|------|-----------|--------|----------------|------|----------| | ||
| 35 | +| `qconfig` | `object` | 必选 | 无 | — | 激活与权重的量化配置,见《LinearQConfig 配置说明》。 | 本页 <a href="#2-3-linear-qconfig">§2.3</a> | | ||
| 36 | +| `include` | `list[string]` | 可选 | `['*']` | — | 包含的模块名称模式,默认 `*` 匹配全部模块 | 无 | | ||
| 37 | +| `exclude` | `list[string]` | 可选 | `[]` | — | 排除的模块名称模式,优先级高于 `include` | 无 | | ||
| 38 | + | ||
| 39 | +**配置约束** | ||
| 40 | + | ||
| 41 | +- 无。 | ||
| 42 | + | ||
| 43 | +<h3 id="2-3-linear-qconfig">2.3 LinearQConfig</h3> | ||
| 44 | + | ||
| 45 | +线性层(Linear)的量化配置,含激活与权重两路量化。 | ||
| 46 | + | ||
| 47 | +| 字段路径 | 类型 | 必选/可选 | 默认值 | 取值范围或格式 | 含义 | 引用配置 | | ||
| 48 | +|----------|------|-----------|--------|----------------|------|----------| | ||
| 49 | +| `act` | `object` | 可选 | `{'dtype': 'float', 'scope': 'per_tensor', 'symmetric': True, 'method': 'none', 'ext': {}}` | — | 激活值的量化配置。默认 `float`(不量化激活),仅对权重做量化。 | 本页 <a href="#2-4-qconfig">§2.4</a> | | ||
| 50 | +| `weight` | `object` | 必选 | 无 | — | 权重的量化配置,必选。 | 本页 <a href="#2-4-qconfig">§2.4</a> | | ||
| 51 | + | ||
| 52 | +**配置约束** | ||
| 53 | + | ||
| 54 | +- 无。 | ||
| 55 | + | ||
| 56 | +<h3 id="2-4-qconfig">2.4 QConfig</h3> | ||
| 57 | + | ||
| 58 | +描述单个张量(权重或激活)的量化方式。 | ||
| 59 | + | ||
| 60 | +| 字段路径 | 类型 | 必选/可选 | 默认值 | 取值范围或格式 | 含义 | 引用配置 | | ||
| 61 | +|----------|------|-----------|--------|----------------|------|----------| | ||
| 62 | +| `dtype` | `string` | 必选 | 无 | `float`、`int8`、`int4`、`mxfp8`、`mxfp4`、`fp8_e4m3` | 量化数据类型,如 `int8`、`int4`、`mxfp8`、`mxfp4`、`fp8_e4m3`;`float` 表示该张量不量化。 | 无 | | ||
| 63 | +| `scope` | `string` | 必选 | 无 | `per_tensor`、`per_channel`、`per_group`、`per_block`、`per_token`、`pd_mix`、`per_head`、`dual_scale` | 量化粒度,即 scale/zero_point 的计算范围:`per_tensor`(整张量一个尺度)、`per_channel`(按通道)、`per_group`/`per_block`(按分组或固定块)、`per_token`(按 token)、`per_head`(按注意力头)、`dual_scale`(双尺度)等;合法取值组合取决于 `dtype` 与量化器实现。 | 无 | | ||
| 64 | +| `symmetric` | `bool` | 必选 | 无 | — | 是否对称量化。对称量化只保存 scale;非对称量化额外保存 zero_point,可用性取决于 `dtype`/`scope` 组合。 | 无 | | ||
| 65 | +| `method` | `string` | 必选 | 无 | — | 量化参数估计算法,如 `minmax`、`mse_round`、`histogram`、`ssz`、`none` 等;可用取值取决于 `dtype`/`scope`/`symmetric` 组合,`none` 表示不估计参数(配合 `float` 使用)。 | 无 | | ||
| 66 | +| `ext` | `object` | 可选 | `{}` | — | 量化器扩展参数,随 `method` 与量化器实现而定(如 gptq 的 `percdamp`/`group_size`);空对象表示无扩展参数。 | 无 | | ||
| 67 | + | ||
| 68 | +**配置约束** | ||
| 69 | + | ||
| 70 | +- 无。 | ||
| 71 | + | ||
| 72 | +## 3. 完整配置参考 | ||
| 73 | + | ||
| 74 | +```yaml | ||
| 75 | +apiversion: modelslim_v1 | ||
| 76 | +spec: | ||
| 77 | + process: | ||
| 78 | + - type: autoround_quant | ||
| 79 | + iters: 10 | ||
| 80 | + enable_minmax_tuning: true | ||
| 81 | + enable_round_tuning: true | ||
| 82 | + strategies: | ||
| 83 | + - qconfig: | ||
| 84 | + act: | ||
| 85 | + dtype: float | ||
| 86 | + scope: per_tensor | ||
| 87 | + symmetric: true | ||
| 88 | + method: none | ||
| 89 | + ext: {} | ||
| 90 | + weight: | ||
| 91 | + dtype: int8 | ||
| 92 | + scope: per_channel | ||
| 93 | + symmetric: true | ||
| 94 | + method: minmax | ||
| 95 | + ext: {} | ||
| 96 | + include: | ||
| 97 | + - '*' | ||
| 98 | + exclude: [] | ||
| 99 | +``` | ||
| @@ -0,0 +1,65 @@ | |||
| 1 | +<!-- generated-by: skills/docs-management/scripts/gen_quant_config_docs.py ; class: msmodelslim.processor.anti_outlier.awq.processor.AWQProcessorConfig --> | ||
| 2 | +# awq 配置说明 | ||
| 3 | + | ||
| 4 | +## 1. 配置概述 | ||
| 5 | + | ||
| 6 | +AWQ(Activation-aware Weight Quantization)处理器配置。 | ||
| 7 | + | ||
| 8 | +| 项目 | 内容 | | ||
| 9 | +|------|------| | ||
| 10 | +| 配置类 | `AWQProcessorConfig` | | ||
| 11 | +| 源码 | [processor.py](../../../../../msmodelslim/processor/anti_outlier/awq/processor.py) | | ||
| 12 | + | ||
| 13 | +## 2. 参数列表 | ||
| 14 | + | ||
| 15 | +<h3 id="2-1-awq">2.1 AWQProcessorConfig</h3> | ||
| 16 | + | ||
| 17 | +| 字段路径 | 类型 | 必选/可选 | 默认值 | 取值范围或格式 | 含义 | 引用配置 | | ||
| 18 | +|----------|------|-----------|--------|----------------|------|----------| | ||
| 19 | +| `type` | `string` | 可选 | `awq` | `awq` | 处理器类型,固定为 `awq`。 | 无 | | ||
| 20 | +| `weight_qconfig` | `object` | 必选 | 无 | — | 权重的量化配置(QConfig),必选,见《QConfig 配置说明》。 | 本页 <a href="#2-2-qconfig">§2.2</a> | | ||
| 21 | +| `enable_subgraph_type` | `list[any]` | 可选 | `['norm-linear', 'linear-linear', 'ov', 'up-down']` | — | 应用 AWQ 的子图类型列表,默认 `norm-linear`、`linear-linear`、`ov`、`up-down`。 | 无 | | ||
| 22 | +| `n_grid` | `int` | 可选 | `20` | — | 网格搜索的网格数,用于搜索最优量化尺度/裁剪点,必须大于0。 | 无 | | ||
| 23 | +| `include` | `list[string] / null` | 可选 | `null` | — | 包含的模块名称模式;不设置表示全部匹配。 | 无 | | ||
| 24 | +| `exclude` | `list[string] / null` | 可选 | `null` | — | 排除的模块名称模式,优先级高于 `include`。 | 无 | | ||
| 25 | + | ||
| 26 | +**配置约束** | ||
| 27 | + | ||
| 28 | +- 无。 | ||
| 29 | + | ||
| 30 | +<h3 id="2-2-qconfig">2.2 QConfig</h3> | ||
| 31 | + | ||
| 32 | +描述单个张量(权重或激活)的量化方式。 | ||
| 33 | + | ||
| 34 | +| 字段路径 | 类型 | 必选/可选 | 默认值 | 取值范围或格式 | 含义 | 引用配置 | | ||
| 35 | +|----------|------|-----------|--------|----------------|------|----------| | ||
| 36 | +| `dtype` | `string` | 必选 | 无 | `float`、`int8`、`int4`、`mxfp8`、`mxfp4`、`fp8_e4m3` | 量化数据类型,如 `int8`、`int4`、`mxfp8`、`mxfp4`、`fp8_e4m3`;`float` 表示该张量不量化。 | 无 | | ||
| 37 | +| `scope` | `string` | 必选 | 无 | `per_tensor`、`per_channel`、`per_group`、`per_block`、`per_token`、`pd_mix`、`per_head`、`dual_scale` | 量化粒度,即 scale/zero_point 的计算范围:`per_tensor`(整张量一个尺度)、`per_channel`(按通道)、`per_group`/`per_block`(按分组或固定块)、`per_token`(按 token)、`per_head`(按注意力头)、`dual_scale`(双尺度)等;合法取值组合取决于 `dtype` 与量化器实现。 | 无 | | ||
| 38 | +| `symmetric` | `bool` | 必选 | 无 | — | 是否对称量化。对称量化只保存 scale;非对称量化额外保存 zero_point,可用性取决于 `dtype`/`scope` 组合。 | 无 | | ||
| 39 | +| `method` | `string` | 必选 | 无 | — | 量化参数估计算法,如 `minmax`、`mse_round`、`histogram`、`ssz`、`none` 等;可用取值取决于 `dtype`/`scope`/`symmetric` 组合,`none` 表示不估计参数(配合 `float` 使用)。 | 无 | | ||
| 40 | +| `ext` | `object` | 可选 | `{}` | — | 量化器扩展参数,随 `method` 与量化器实现而定(如 gptq 的 `percdamp`/`group_size`);空对象表示无扩展参数。 | 无 | | ||
| 41 | + | ||
| 42 | +**配置约束** | ||
| 43 | + | ||
| 44 | +- 无。 | ||
| 45 | + | ||
| 46 | +## 3. 完整配置参考 | ||
| 47 | + | ||
| 48 | +```yaml | ||
| 49 | +apiversion: modelslim_v1 | ||
| 50 | +spec: | ||
| 51 | + process: | ||
| 52 | + - type: awq | ||
| 53 | + weight_qconfig: | ||
| 54 | + dtype: int8 | ||
| 55 | + scope: per_channel | ||
| 56 | + symmetric: true | ||
| 57 | + method: minmax | ||
| 58 | + ext: {} | ||
| 59 | + enable_subgraph_type: | ||
| 60 | + - norm-linear | ||
| 61 | + - linear-linear | ||
| 62 | + - ov | ||
| 63 | + - up-down | ||
| 64 | + n_grid: 20 | ||
| 65 | +``` | ||
| @@ -0,0 +1,69 @@ | |||
| 1 | +<!-- generated-by: skills/docs-management/scripts/gen_quant_config_docs.py ; class: msmodelslim.processor.analysis.binary_operator.processor.BinaryAnalysisProcessorConfig --> | ||
| 2 | +# binary_analysis 配置说明 | ||
| 3 | + | ||
| 4 | +## 1. 配置概述 | ||
| 5 | + | ||
| 6 | +二值(有/无量化)敏感性分析处理器配置。 | ||
| 7 | + | ||
| 8 | +| 项目 | 内容 | | ||
| 9 | +|------|------| | ||
| 10 | +| 配置类 | `BinaryAnalysisProcessorConfig` | | ||
| 11 | +| 源码 | [processor.py](../../../../../msmodelslim/processor/analysis/binary_operator/processor.py) | | ||
| 12 | + | ||
| 13 | +## 2. 参数列表 | ||
| 14 | + | ||
| 15 | +<h3 id="2-1-binary-analysis">2.1 BinaryAnalysisProcessorConfig</h3> | ||
| 16 | + | ||
| 17 | +| 字段路径 | 类型 | 必选/可选 | 默认值 | 取值范围或格式 | 含义 | 引用配置 | | ||
| 18 | +|----------|------|-----------|--------|----------------|------|----------| | ||
| 19 | +| `type` | `string` | 可选 | `binary_analysis` | `binary_analysis` | 处理器类型,固定为 `binary_analysis`。 | 无 | | ||
| 20 | +| `metrics` | `string` | 可选 | `mse` | — | 分析指标:`mse`(均方误差) | 无 | | ||
| 21 | +| `patterns` | `list[string]` | 可选 | `['*']` | — | 待分析的层名模式列表,默认 `*` 匹配全部 | 无 | | ||
| 22 | +| `configs` | `list[object]` | 可选 | `[]` | — | 用于执行量化-反量化路径的量化子处理器配置列表 | 本页 <a href="#2-2-autoprocessorconfig">§2.2</a> | | ||
| 23 | + | ||
| 24 | +**配置约束** | ||
| 25 | + | ||
| 26 | +- 无。 | ||
| 27 | + | ||
| 28 | +<h3 id="2-2-autoprocessorconfig">2.2 AutoProcessorConfig</h3> | ||
| 29 | + | ||
| 30 | +**派生类** | ||
| 31 | + | ||
| 32 | +- `AdaptRotationProcessorConfig`(`type: adapt_rotation`) — 自适应旋转(adapt_rotation)处理器配置。 《[adapt_rotation 配置说明](adapt_rotation.md)》 | ||
| 33 | +- `AutoroundProcessorConfig`(`type: autoround_quant`) — autoround 量化处理器配置。 《[autoround_quant 配置说明](autoround_quant.md)》 | ||
| 34 | +- `AWQProcessorConfig`(`type: awq`) — AWQ(Activation-aware Weight Quantization)处理器配置。 《[awq 配置说明](awq.md)》 | ||
| 35 | +- `BinaryAnalysisProcessorConfig`(`type: binary_analysis`) — 二值(有/无量化)敏感性分析处理器配置。 本页 <a href="#2-1-binary-analysis">§2.1</a> | ||
| 36 | +- `BinaryOperatorLayerWiseProcessorConfig`(`type: binary_operator_layer_wise`) — 逐层敏感度分析处理器配置(对比逐块浮点与量化输出)。 《[binary_operator_layer_wise 配置说明](binary_operator_layer_wise.md)》 | ||
| 37 | +- `BinaryOperatorModelWiseProcessorConfig`(`type: binary_operator_model_wise`) — 模型级敏感性分析配置(对比模型最终输出,使用 MSE 指标) 《[binary_operator_model_wise 配置说明](binary_operator_model_wise.md)》 | ||
| 38 | +- `DynamicCacheProcessorConfig`(`type: dynamic_cache`) — KV cache 量化处理器配置。 《[dynamic_cache 配置说明](dynamic_cache.md)》 | ||
| 39 | +- `FA3QuantProcessorConfig`(`type: fa3_quant`) — FA3(FlashAttention-3)量化处理器配置。 《[fa3_quant 配置说明](fa3_quant.md)》 | ||
| 40 | +- `FlatQuantProcessorConfig`(`type: flatquant`) — FlatQuant处理器配置:定义量化训练参数、策略、混合精度等 《[flatquant 配置说明](flatquant.md)》 | ||
| 41 | +- `FlexAWQSSZProcessorConfig`(`type: flex_awq_ssz`) — FlexAWQSSZ 平滑+AWQ 处理器配置。 《[flex_awq_ssz 配置说明](flex_awq_ssz.md)》 | ||
| 42 | +- `FlexSmoothQuantProcessorConfig`(`type: flex_smooth_quant`) — FlexSmoothQuant 平滑量化处理器配置。 《[flex_smooth_quant 配置说明](flex_smooth_quant.md)》 | ||
| 43 | +- `FloatSparseProcessorConfig`(`type: float_sparse`) — 浮点稀疏处理器配置。 《[float_sparse 配置说明](float_sparse.md)》 | ||
| 44 | +- `GroupProcessorConfig`(`type: group`) — 处理器合并器配置。 《[group 配置说明](group.md)》 | ||
| 45 | +- `IterSmoothProcessorConfig`(`type: iter_smooth`) — 迭代平滑(IterativeSmooth)处理器配置。 《[iter_smooth 配置说明](iter_smooth.md)》 | ||
| 46 | +- `KVSmoothProcessorConfig`(`type: kv_smooth`) — KV cache 平滑处理器配置。 《[kv_smooth 配置说明](kv_smooth.md)》 | ||
| 47 | +- `LinearProcessorConfig`(`type: linear_quant`) — 线性层(Linear)量化处理器配置。 《[linear_quant 配置说明](linear_quant.md)》 | ||
| 48 | +- `LoadProcessorConfig`(`type: load`) — 模块加载/卸载处理器配置。 《[load 配置说明](load.md)》 | ||
| 49 | +- `OASQProcessorConfig`(`type: oasq`) — OASQ(Outlier-Aware Smooth Quantization)处理器配置。 《[oasq 配置说明](oasq.md)》 | ||
| 50 | +- `OnlineQuaRotProcessorConfig`(`type: online_quarot`) — 在线 QuaRot 旋转处理器配置。 《[online_quarot 配置说明](online_quarot.md)》 | ||
| 51 | +- `QuaRotProcessorConfig`(`type: quarot`) — QuaRot(离线旋转)处理器配置。 《[quarot 配置说明](quarot.md)》 | ||
| 52 | +- `QuantSaveProcessorConfig`(`type: saver`) — 统一保存处理器配置。 《[saver 配置说明](saver.md)》 | ||
| 53 | +- `SmoothQuantProcessorConfig`(`type: smooth_quant`) — SmoothQuant 平滑量化处理器配置。 《[smooth_quant 配置说明](smooth_quant.md)》 | ||
| 54 | +- `SVDResidualProcessorConfig`(`type: svd_res`) — SVD 残差(低秩补偿)处理器配置。 《[svd_res 配置说明](svd_res.md)》 | ||
| 55 | +- `TrainableLinearQuantProcessorConfig`(`type: trainable_linear_quant`) — 可训练线性量化(TLQ)处理器配置。 《[trainable_linear_quant 配置说明](trainable_linear_quant.md)》 | ||
| 56 | +- `UnaryAnalysisProcessorConfig`(`type: unary_analysis`) — 一元(无量化)敏感性分析处理器配置。 《[unary_analysis 配置说明](unary_analysis.md)》 | ||
| 57 | + | ||
| 58 | +## 3. 完整配置参考 | ||
| 59 | + | ||
| 60 | +```yaml | ||
| 61 | +apiversion: modelslim_v1 | ||
| 62 | +spec: | ||
| 63 | + process: | ||
| 64 | + - type: binary_analysis | ||
| 65 | + metrics: mse | ||
| 66 | + patterns: | ||
| 67 | + - '*' | ||
| 68 | + configs: [] | ||
| 69 | +``` | ||
| @@ -0,0 +1,69 @@ | |||
| 1 | +<!-- generated-by: skills/docs-management/scripts/gen_quant_config_docs.py ; class: msmodelslim.processor.analysis.binary_operator_layer_wise.processor.BinaryOperatorLayerWiseProcessorConfig --> | ||
| 2 | +# binary_operator_layer_wise 配置说明 | ||
| 3 | + | ||
| 4 | +## 1. 配置概述 | ||
| 5 | + | ||
| 6 | +逐层敏感度分析处理器配置(对比逐块浮点与量化输出)。 | ||
| 7 | + | ||
| 8 | +| 项目 | 内容 | | ||
| 9 | +|------|------| | ||
| 10 | +| 配置类 | `BinaryOperatorLayerWiseProcessorConfig` | | ||
| 11 | +| 源码 | [processor.py](../../../../../msmodelslim/processor/analysis/binary_operator_layer_wise/processor.py) | | ||
| 12 | + | ||
| 13 | +## 2. 参数列表 | ||
| 14 | + | ||
| 15 | +<h3 id="2-1-binary-operator-layer-wise">2.1 BinaryOperatorLayerWiseProcessorConfig</h3> | ||
| 16 | + | ||
| 17 | +| 字段路径 | 类型 | 必选/可选 | 默认值 | 取值范围或格式 | 含义 | 引用配置 | | ||
| 18 | +|----------|------|-----------|--------|----------------|------|----------| | ||
| 19 | +| `type` | `string` | 可选 | `binary_operator_layer_wise` | `binary_operator_layer_wise` | 处理器类型,固定为 `binary_operator_layer_wise`。 | 无 | | ||
| 20 | +| `metrics` | `string` | 可选 | `mse_layer_wise` | — | 分析指标,如 `mse_layer_wise`。 | 无 | | ||
| 21 | +| `quant_modules` | `list[string]` | 可选 | `['*']` | — | 与 linear_quant.include、CLI --quant_modules 一致(YAML 占位 ${quant_modules});用于层敏感结果展示名后缀,如 model.layers.2 (mod1, mod2)。 | 无 | | ||
| 22 | +| `configs` | `list[object]` | 可选 | `[]` | — | 用于执行量化-反量化路径的量化子处理器配置列表 | 本页 <a href="#2-2-autoprocessorconfig">§2.2</a> | | ||
| 23 | + | ||
| 24 | +**配置约束** | ||
| 25 | + | ||
| 26 | +- 无。 | ||
| 27 | + | ||
| 28 | +<h3 id="2-2-autoprocessorconfig">2.2 AutoProcessorConfig</h3> | ||
| 29 | + | ||
| 30 | +**派生类** | ||
| 31 | + | ||
| 32 | +- `AdaptRotationProcessorConfig`(`type: adapt_rotation`) — 自适应旋转(adapt_rotation)处理器配置。 《[adapt_rotation 配置说明](adapt_rotation.md)》 | ||
| 33 | +- `AutoroundProcessorConfig`(`type: autoround_quant`) — autoround 量化处理器配置。 《[autoround_quant 配置说明](autoround_quant.md)》 | ||
| 34 | +- `AWQProcessorConfig`(`type: awq`) — AWQ(Activation-aware Weight Quantization)处理器配置。 《[awq 配置说明](awq.md)》 | ||
| 35 | +- `BinaryAnalysisProcessorConfig`(`type: binary_analysis`) — 二值(有/无量化)敏感性分析处理器配置。 《[binary_analysis 配置说明](binary_analysis.md)》 | ||
| 36 | +- `BinaryOperatorLayerWiseProcessorConfig`(`type: binary_operator_layer_wise`) — 逐层敏感度分析处理器配置(对比逐块浮点与量化输出)。 本页 <a href="#2-1-binary-operator-layer-wise">§2.1</a> | ||
| 37 | +- `BinaryOperatorModelWiseProcessorConfig`(`type: binary_operator_model_wise`) — 模型级敏感性分析配置(对比模型最终输出,使用 MSE 指标) 《[binary_operator_model_wise 配置说明](binary_operator_model_wise.md)》 | ||
| 38 | +- `DynamicCacheProcessorConfig`(`type: dynamic_cache`) — KV cache 量化处理器配置。 《[dynamic_cache 配置说明](dynamic_cache.md)》 | ||
| 39 | +- `FA3QuantProcessorConfig`(`type: fa3_quant`) — FA3(FlashAttention-3)量化处理器配置。 《[fa3_quant 配置说明](fa3_quant.md)》 | ||
| 40 | +- `FlatQuantProcessorConfig`(`type: flatquant`) — FlatQuant处理器配置:定义量化训练参数、策略、混合精度等 《[flatquant 配置说明](flatquant.md)》 | ||
| 41 | +- `FlexAWQSSZProcessorConfig`(`type: flex_awq_ssz`) — FlexAWQSSZ 平滑+AWQ 处理器配置。 《[flex_awq_ssz 配置说明](flex_awq_ssz.md)》 | ||
| 42 | +- `FlexSmoothQuantProcessorConfig`(`type: flex_smooth_quant`) — FlexSmoothQuant 平滑量化处理器配置。 《[flex_smooth_quant 配置说明](flex_smooth_quant.md)》 | ||
| 43 | +- `FloatSparseProcessorConfig`(`type: float_sparse`) — 浮点稀疏处理器配置。 《[float_sparse 配置说明](float_sparse.md)》 | ||
| 44 | +- `GroupProcessorConfig`(`type: group`) — 处理器合并器配置。 《[group 配置说明](group.md)》 | ||
| 45 | +- `IterSmoothProcessorConfig`(`type: iter_smooth`) — 迭代平滑(IterativeSmooth)处理器配置。 《[iter_smooth 配置说明](iter_smooth.md)》 | ||
| 46 | +- `KVSmoothProcessorConfig`(`type: kv_smooth`) — KV cache 平滑处理器配置。 《[kv_smooth 配置说明](kv_smooth.md)》 | ||
| 47 | +- `LinearProcessorConfig`(`type: linear_quant`) — 线性层(Linear)量化处理器配置。 《[linear_quant 配置说明](linear_quant.md)》 | ||
| 48 | +- `LoadProcessorConfig`(`type: load`) — 模块加载/卸载处理器配置。 《[load 配置说明](load.md)》 | ||
| 49 | +- `OASQProcessorConfig`(`type: oasq`) — OASQ(Outlier-Aware Smooth Quantization)处理器配置。 《[oasq 配置说明](oasq.md)》 | ||
| 50 | +- `OnlineQuaRotProcessorConfig`(`type: online_quarot`) — 在线 QuaRot 旋转处理器配置。 《[online_quarot 配置说明](online_quarot.md)》 | ||
| 51 | +- `QuaRotProcessorConfig`(`type: quarot`) — QuaRot(离线旋转)处理器配置。 《[quarot 配置说明](quarot.md)》 | ||
| 52 | +- `QuantSaveProcessorConfig`(`type: saver`) — 统一保存处理器配置。 《[saver 配置说明](saver.md)》 | ||
| 53 | +- `SmoothQuantProcessorConfig`(`type: smooth_quant`) — SmoothQuant 平滑量化处理器配置。 《[smooth_quant 配置说明](smooth_quant.md)》 | ||
| 54 | +- `SVDResidualProcessorConfig`(`type: svd_res`) — SVD 残差(低秩补偿)处理器配置。 《[svd_res 配置说明](svd_res.md)》 | ||
| 55 | +- `TrainableLinearQuantProcessorConfig`(`type: trainable_linear_quant`) — 可训练线性量化(TLQ)处理器配置。 《[trainable_linear_quant 配置说明](trainable_linear_quant.md)》 | ||
| 56 | +- `UnaryAnalysisProcessorConfig`(`type: unary_analysis`) — 一元(无量化)敏感性分析处理器配置。 《[unary_analysis 配置说明](unary_analysis.md)》 | ||
| 57 | + | ||
| 58 | +## 3. 完整配置参考 | ||
| 59 | + | ||
| 60 | +```yaml | ||
| 61 | +apiversion: modelslim_v1 | ||
| 62 | +spec: | ||
| 63 | + process: | ||
| 64 | + - type: binary_operator_layer_wise | ||
| 65 | + metrics: mse_layer_wise | ||
| 66 | + quant_modules: | ||
| 67 | + - '*' | ||
| 68 | + configs: [] | ||
| 69 | +``` | ||
| @@ -0,0 +1,69 @@ | |||
| 1 | +<!-- generated-by: skills/docs-management/scripts/gen_quant_config_docs.py ; class: msmodelslim.processor.analysis.binary_operator_model_wise.processor.BinaryOperatorModelWiseProcessorConfig --> | ||
| 2 | +# binary_operator_model_wise 配置说明 | ||
| 3 | + | ||
| 4 | +## 1. 配置概述 | ||
| 5 | + | ||
| 6 | +模型级敏感性分析配置(对比模型最终输出,使用 MSE 指标) | ||
| 7 | + | ||
| 8 | +| 项目 | 内容 | | ||
| 9 | +|------|------| | ||
| 10 | +| 配置类 | `BinaryOperatorModelWiseProcessorConfig` | | ||
| 11 | +| 源码 | [processor.py](../../../../../msmodelslim/processor/analysis/binary_operator_model_wise/processor.py) | | ||
| 12 | + | ||
| 13 | +## 2. 参数列表 | ||
| 14 | + | ||
| 15 | +<h3 id="2-1-binary-operator-model-wise">2.1 BinaryOperatorModelWiseProcessorConfig</h3> | ||
| 16 | + | ||
| 17 | +| 字段路径 | 类型 | 必选/可选 | 默认值 | 取值范围或格式 | 含义 | 引用配置 | | ||
| 18 | +|----------|------|-----------|--------|----------------|------|----------| | ||
| 19 | +| `type` | `string` | 可选 | `binary_operator_model_wise` | `binary_operator_model_wise` | 处理器类型,固定为 `binary_operator_model_wise`。 | 无 | | ||
| 20 | +| `metrics` | `string` | 可选 | `mse_model_wise` | — | 分析指标:`mse_model_wise`(对比模型最终输出) | 无 | | ||
| 21 | +| `quant_modules` | `list[string]` | 可选 | `['*']` | — | 与 linear_quant.include、CLI --quant_modules 一致(YAML 占位 ${quant_modules});用于层敏感结果展示名后缀,如 model.layers.2 (*mlp*)。实际量化范围以 linear_quant 为准。 | 无 | | ||
| 22 | +| `configs` | `list[object]` | 可选 | `[]` | — | 量化子处理器配置列表,用于进行量化-反量化 | 本页 <a href="#2-2-autoprocessorconfig">§2.2</a> | | ||
| 23 | + | ||
| 24 | +**配置约束** | ||
| 25 | + | ||
| 26 | +- 无。 | ||
| 27 | + | ||
| 28 | +<h3 id="2-2-autoprocessorconfig">2.2 AutoProcessorConfig</h3> | ||
| 29 | + | ||
| 30 | +**派生类** | ||
| 31 | + | ||
| 32 | +- `AdaptRotationProcessorConfig`(`type: adapt_rotation`) — 自适应旋转(adapt_rotation)处理器配置。 《[adapt_rotation 配置说明](adapt_rotation.md)》 | ||
| 33 | +- `AutoroundProcessorConfig`(`type: autoround_quant`) — autoround 量化处理器配置。 《[autoround_quant 配置说明](autoround_quant.md)》 | ||
| 34 | +- `AWQProcessorConfig`(`type: awq`) — AWQ(Activation-aware Weight Quantization)处理器配置。 《[awq 配置说明](awq.md)》 | ||
| 35 | +- `BinaryAnalysisProcessorConfig`(`type: binary_analysis`) — 二值(有/无量化)敏感性分析处理器配置。 《[binary_analysis 配置说明](binary_analysis.md)》 | ||
| 36 | +- `BinaryOperatorLayerWiseProcessorConfig`(`type: binary_operator_layer_wise`) — 逐层敏感度分析处理器配置(对比逐块浮点与量化输出)。 《[binary_operator_layer_wise 配置说明](binary_operator_layer_wise.md)》 | ||
| 37 | +- `BinaryOperatorModelWiseProcessorConfig`(`type: binary_operator_model_wise`) — 模型级敏感性分析配置(对比模型最终输出,使用 MSE 指标) 本页 <a href="#2-1-binary-operator-model-wise">§2.1</a> | ||
| 38 | +- `DynamicCacheProcessorConfig`(`type: dynamic_cache`) — KV cache 量化处理器配置。 《[dynamic_cache 配置说明](dynamic_cache.md)》 | ||
| 39 | +- `FA3QuantProcessorConfig`(`type: fa3_quant`) — FA3(FlashAttention-3)量化处理器配置。 《[fa3_quant 配置说明](fa3_quant.md)》 | ||
| 40 | +- `FlatQuantProcessorConfig`(`type: flatquant`) — FlatQuant处理器配置:定义量化训练参数、策略、混合精度等 《[flatquant 配置说明](flatquant.md)》 | ||
| 41 | +- `FlexAWQSSZProcessorConfig`(`type: flex_awq_ssz`) — FlexAWQSSZ 平滑+AWQ 处理器配置。 《[flex_awq_ssz 配置说明](flex_awq_ssz.md)》 | ||
| 42 | +- `FlexSmoothQuantProcessorConfig`(`type: flex_smooth_quant`) — FlexSmoothQuant 平滑量化处理器配置。 《[flex_smooth_quant 配置说明](flex_smooth_quant.md)》 | ||
| 43 | +- `FloatSparseProcessorConfig`(`type: float_sparse`) — 浮点稀疏处理器配置。 《[float_sparse 配置说明](float_sparse.md)》 | ||
| 44 | +- `GroupProcessorConfig`(`type: group`) — 处理器合并器配置。 《[group 配置说明](group.md)》 | ||
| 45 | +- `IterSmoothProcessorConfig`(`type: iter_smooth`) — 迭代平滑(IterativeSmooth)处理器配置。 《[iter_smooth 配置说明](iter_smooth.md)》 | ||
| 46 | +- `KVSmoothProcessorConfig`(`type: kv_smooth`) — KV cache 平滑处理器配置。 《[kv_smooth 配置说明](kv_smooth.md)》 | ||
| 47 | +- `LinearProcessorConfig`(`type: linear_quant`) — 线性层(Linear)量化处理器配置。 《[linear_quant 配置说明](linear_quant.md)》 | ||
| 48 | +- `LoadProcessorConfig`(`type: load`) — 模块加载/卸载处理器配置。 《[load 配置说明](load.md)》 | ||
| 49 | +- `OASQProcessorConfig`(`type: oasq`) — OASQ(Outlier-Aware Smooth Quantization)处理器配置。 《[oasq 配置说明](oasq.md)》 | ||
| 50 | +- `OnlineQuaRotProcessorConfig`(`type: online_quarot`) — 在线 QuaRot 旋转处理器配置。 《[online_quarot 配置说明](online_quarot.md)》 | ||
| 51 | +- `QuaRotProcessorConfig`(`type: quarot`) — QuaRot(离线旋转)处理器配置。 《[quarot 配置说明](quarot.md)》 | ||
| 52 | +- `QuantSaveProcessorConfig`(`type: saver`) — 统一保存处理器配置。 《[saver 配置说明](saver.md)》 | ||
| 53 | +- `SmoothQuantProcessorConfig`(`type: smooth_quant`) — SmoothQuant 平滑量化处理器配置。 《[smooth_quant 配置说明](smooth_quant.md)》 | ||
| 54 | +- `SVDResidualProcessorConfig`(`type: svd_res`) — SVD 残差(低秩补偿)处理器配置。 《[svd_res 配置说明](svd_res.md)》 | ||
| 55 | +- `TrainableLinearQuantProcessorConfig`(`type: trainable_linear_quant`) — 可训练线性量化(TLQ)处理器配置。 《[trainable_linear_quant 配置说明](trainable_linear_quant.md)》 | ||
| 56 | +- `UnaryAnalysisProcessorConfig`(`type: unary_analysis`) — 一元(无量化)敏感性分析处理器配置。 《[unary_analysis 配置说明](unary_analysis.md)》 | ||
| 57 | + | ||
| 58 | +## 3. 完整配置参考 | ||
| 59 | + | ||
| 60 | +```yaml | ||
| 61 | +apiversion: modelslim_v1 | ||
| 62 | +spec: | ||
| 63 | + process: | ||
| 64 | + - type: binary_operator_model_wise | ||
| 65 | + metrics: mse_model_wise | ||
| 66 | + quant_modules: | ||
| 67 | + - '*' | ||
| 68 | + configs: [] | ||
| 69 | +``` | ||
| @@ -0,0 +1,59 @@ | |||
| 1 | +<!-- generated-by: skills/docs-management/scripts/gen_quant_config_docs.py ; class: msmodelslim.processor.quant.attention.DynamicCacheProcessorConfig --> | ||
| 2 | +# dynamic_cache 配置说明 | ||
| 3 | + | ||
| 4 | +## 1. 配置概述 | ||
| 5 | + | ||
| 6 | +KV cache 量化处理器配置。 | ||
| 7 | + | ||
| 8 | +| 项目 | 内容 | | ||
| 9 | +|------|------| | ||
| 10 | +| 配置类 | `DynamicCacheProcessorConfig` | | ||
| 11 | +| 源码 | [attention.py](../../../../../msmodelslim/processor/quant/attention.py) | | ||
| 12 | + | ||
| 13 | +## 2. 参数列表 | ||
| 14 | + | ||
| 15 | +<h3 id="2-1-dynamic-cache">2.1 DynamicCacheProcessorConfig</h3> | ||
| 16 | + | ||
| 17 | +| 字段路径 | 类型 | 必选/可选 | 默认值 | 取值范围或格式 | 含义 | 引用配置 | | ||
| 18 | +|----------|------|-----------|--------|----------------|------|----------| | ||
| 19 | +| `type` | `string` | 可选 | `dynamic_cache` | `dynamic_cache` | 处理器类型,固定为 `dynamic_cache`。 | 无 | | ||
| 20 | +| `qconfig` | `object` | 必选 | 无 | — | KV cache 张量的量化配置,见《QConfig 配置说明》。 | 本页 <a href="#2-2-qconfig">§2.2</a> | | ||
| 21 | +| `include` | `list[string]` | 可选 | `[]` | — | 包含的模块名称模式 | 无 | | ||
| 22 | +| `exclude` | `list[string]` | 可选 | `[]` | — | 排除的模块名称模式,优先级高于 `include` | 无 | | ||
| 23 | + | ||
| 24 | +**配置约束** | ||
| 25 | + | ||
| 26 | +- 无。 | ||
| 27 | + | ||
| 28 | +<h3 id="2-2-qconfig">2.2 QConfig</h3> | ||
| 29 | + | ||
| 30 | +描述单个张量(权重或激活)的量化方式。 | ||
| 31 | + | ||
| 32 | +| 字段路径 | 类型 | 必选/可选 | 默认值 | 取值范围或格式 | 含义 | 引用配置 | | ||
| 33 | +|----------|------|-----------|--------|----------------|------|----------| | ||
| 34 | +| `dtype` | `string` | 必选 | 无 | `float`、`int8`、`int4`、`mxfp8`、`mxfp4`、`fp8_e4m3` | 量化数据类型,如 `int8`、`int4`、`mxfp8`、`mxfp4`、`fp8_e4m3`;`float` 表示该张量不量化。 | 无 | | ||
| 35 | +| `scope` | `string` | 必选 | 无 | `per_tensor`、`per_channel`、`per_group`、`per_block`、`per_token`、`pd_mix`、`per_head`、`dual_scale` | 量化粒度,即 scale/zero_point 的计算范围:`per_tensor`(整张量一个尺度)、`per_channel`(按通道)、`per_group`/`per_block`(按分组或固定块)、`per_token`(按 token)、`per_head`(按注意力头)、`dual_scale`(双尺度)等;合法取值组合取决于 `dtype` 与量化器实现。 | 无 | | ||
| 36 | +| `symmetric` | `bool` | 必选 | 无 | — | 是否对称量化。对称量化只保存 scale;非对称量化额外保存 zero_point,可用性取决于 `dtype`/`scope` 组合。 | 无 | | ||
| 37 | +| `method` | `string` | 必选 | 无 | — | 量化参数估计算法,如 `minmax`、`mse_round`、`histogram`、`ssz`、`none` 等;可用取值取决于 `dtype`/`scope`/`symmetric` 组合,`none` 表示不估计参数(配合 `float` 使用)。 | 无 | | ||
| 38 | +| `ext` | `object` | 可选 | `{}` | — | 量化器扩展参数,随 `method` 与量化器实现而定(如 gptq 的 `percdamp`/`group_size`);空对象表示无扩展参数。 | 无 | | ||
| 39 | + | ||
| 40 | +**配置约束** | ||
| 41 | + | ||
| 42 | +- 无。 | ||
| 43 | + | ||
| 44 | +## 3. 完整配置参考 | ||
| 45 | + | ||
| 46 | +```yaml | ||
| 47 | +apiversion: modelslim_v1 | ||
| 48 | +spec: | ||
| 49 | + process: | ||
| 50 | + - type: dynamic_cache | ||
| 51 | + qconfig: | ||
| 52 | + dtype: int8 | ||
| 53 | + scope: per_channel | ||
| 54 | + symmetric: true | ||
| 55 | + method: minmax | ||
| 56 | + ext: {} | ||
| 57 | + include: [] | ||
| 58 | + exclude: [] | ||
| 59 | +``` | ||
| @@ -0,0 +1,69 @@ | |||
| 1 | +<!-- generated-by: skills/docs-management/scripts/gen_quant_config_docs.py ; class: msmodelslim.processor.quant.fa3.processor.FA3QuantProcessorConfig --> | ||
| 2 | +# fa3_quant 配置说明 | ||
| 3 | + | ||
| 4 | +## 1. 配置概述 | ||
| 5 | + | ||
| 6 | +FA3(FlashAttention-3)量化处理器配置。 | ||
| 7 | + | ||
| 8 | +| 项目 | 内容 | | ||
| 9 | +|------|------| | ||
| 10 | +| 配置类 | `FA3QuantProcessorConfig` | | ||
| 11 | +| 源码 | [processor.py](../../../../../msmodelslim/processor/quant/fa3/processor.py) | | ||
| 12 | + | ||
| 13 | +## 2. 参数列表 | ||
| 14 | + | ||
| 15 | +<h3 id="2-1-fa3-quant">2.1 FA3QuantProcessorConfig</h3> | ||
| 16 | + | ||
| 17 | +| 字段路径 | 类型 | 必选/可选 | 默认值 | 取值范围或格式 | 含义 | 引用配置 | | ||
| 18 | +|----------|------|-----------|--------|----------------|------|----------| | ||
| 19 | +| `type` | `string` | 可选 | `fa3_quant` | `fa3_quant` | 处理器类型,固定为 `fa3_quant`。 | 无 | | ||
| 20 | +| `qconfig` | `object / null` | 可选 | `null` | — | 统一量化配置;不提供时默认使用 INT8 per-head symmetric,见《QConfig 配置说明》 | 本页 <a href="#2-2-qconfig">§2.2</a> | | ||
| 21 | +| `include` | `list[string]` | 可选 | `['*']` | — | 包含的模块名称模式,默认 `*` 匹配全部模块 | 无 | | ||
| 22 | +| `exclude` | `list[string]` | 可选 | `[]` | — | 排除的模块名称模式,优先级高于 `include` | 无 | | ||
| 23 | +| `details` | `object / null` | 可选 | `null` | — | Q/K/V 分支级量化配置(FA3AttentionDetails),见《FA3AttentionDetails 配置说明》 | 本页 <a href="#2-3-fa3-attention-details">§2.3</a> | | ||
| 24 | + | ||
| 25 | +**配置约束** | ||
| 26 | + | ||
| 27 | +- 校验 qconfig 与 details 互斥:两者都提供时报错;两者都未提供时默认 INT8 per-head symmetric。 | ||
| 28 | + | ||
| 29 | +<h3 id="2-2-qconfig">2.2 QConfig</h3> | ||
| 30 | + | ||
| 31 | +描述单个张量(权重或激活)的量化方式。 | ||
| 32 | + | ||
| 33 | +| 字段路径 | 类型 | 必选/可选 | 默认值 | 取值范围或格式 | 含义 | 引用配置 | | ||
| 34 | +|----------|------|-----------|--------|----------------|------|----------| | ||
| 35 | +| `dtype` | `string` | 必选 | 无 | `float`、`int8`、`int4`、`mxfp8`、`mxfp4`、`fp8_e4m3` | 量化数据类型,如 `int8`、`int4`、`mxfp8`、`mxfp4`、`fp8_e4m3`;`float` 表示该张量不量化。 | 无 | | ||
| 36 | +| `scope` | `string` | 必选 | 无 | `per_tensor`、`per_channel`、`per_group`、`per_block`、`per_token`、`pd_mix`、`per_head`、`dual_scale` | 量化粒度,即 scale/zero_point 的计算范围:`per_tensor`(整张量一个尺度)、`per_channel`(按通道)、`per_group`/`per_block`(按分组或固定块)、`per_token`(按 token)、`per_head`(按注意力头)、`dual_scale`(双尺度)等;合法取值组合取决于 `dtype` 与量化器实现。 | 无 | | ||
| 37 | +| `symmetric` | `bool` | 必选 | 无 | — | 是否对称量化。对称量化只保存 scale;非对称量化额外保存 zero_point,可用性取决于 `dtype`/`scope` 组合。 | 无 | | ||
| 38 | +| `method` | `string` | 必选 | 无 | — | 量化参数估计算法,如 `minmax`、`mse_round`、`histogram`、`ssz`、`none` 等;可用取值取决于 `dtype`/`scope`/`symmetric` 组合,`none` 表示不估计参数(配合 `float` 使用)。 | 无 | | ||
| 39 | +| `ext` | `object` | 可选 | `{}` | — | 量化器扩展参数,随 `method` 与量化器实现而定(如 gptq 的 `percdamp`/`group_size`);空对象表示无扩展参数。 | 无 | | ||
| 40 | + | ||
| 41 | +**配置约束** | ||
| 42 | + | ||
| 43 | +- 无。 | ||
| 44 | + | ||
| 45 | +<h3 id="2-3-fa3-attention-details">2.3 FA3AttentionDetails</h3> | ||
| 46 | + | ||
| 47 | +FA3 注意力分支级量化配置,分别指定 Q/K/V 的量化方式。 | ||
| 48 | + | ||
| 49 | +| 字段路径 | 类型 | 必选/可选 | 默认值 | 取值范围或格式 | 含义 | 引用配置 | | ||
| 50 | +|----------|------|-----------|--------|----------------|------|----------| | ||
| 51 | +| `fa_q` | `object` | 可选 | `null` | — | Query 分支的量化配置,见《QConfig 配置说明》 | 本页 <a href="#2-2-qconfig">§2.2</a> | | ||
| 52 | +| `fa_k` | `object` | 可选 | `null` | — | Key 分支的量化配置,见《QConfig 配置说明》 | 本页 <a href="#2-2-qconfig">§2.2</a> | | ||
| 53 | +| `fa_v` | `object` | 可选 | `null` | — | Value 分支的量化配置,见《QConfig 配置说明》 | 本页 <a href="#2-2-qconfig">§2.2</a> | | ||
| 54 | + | ||
| 55 | +**配置约束** | ||
| 56 | + | ||
| 57 | +- 无。 | ||
| 58 | + | ||
| 59 | +## 3. 完整配置参考 | ||
| 60 | + | ||
| 61 | +```yaml | ||
| 62 | +apiversion: modelslim_v1 | ||
| 63 | +spec: | ||
| 64 | + process: | ||
| 65 | + - type: fa3_quant | ||
| 66 | + include: | ||
| 67 | + - '*' | ||
| 68 | + exclude: [] | ||
| 69 | +``` | ||
| @@ -0,0 +1,125 @@ | |||
| 1 | +<!-- generated-by: skills/docs-management/scripts/gen_quant_config_docs.py ; class: msmodelslim.processor.flat_quant.flat_quant.FlatQuantProcessorConfig --> | ||
| 2 | +# flatquant 配置说明 | ||
| 3 | + | ||
| 4 | +## 1. 配置概述 | ||
| 5 | + | ||
| 6 | +FlatQuant处理器配置:定义量化训练参数、策略、混合精度等 | ||
| 7 | + | ||
| 8 | +| 项目 | 内容 | | ||
| 9 | +|------|------| | ||
| 10 | +| 配置类 | `FlatQuantProcessorConfig` | | ||
| 11 | +| 源码 | [flat_quant.py](../../../../../msmodelslim/processor/flat_quant/flat_quant.py) | | ||
| 12 | + | ||
| 13 | +## 2. 参数列表 | ||
| 14 | + | ||
| 15 | +<h3 id="2-1-flatquant">2.1 FlatQuantProcessorConfig</h3> | ||
| 16 | + | ||
| 17 | +| 字段路径 | 类型 | 必选/可选 | 默认值 | 取值范围或格式 | 含义 | 引用配置 | | ||
| 18 | +|----------|------|-----------|--------|----------------|------|----------| | ||
| 19 | +| `type` | `string` | 可选 | `flatquant` | `flatquant` | 处理器类型标识,固定为 'flatquant' | 无 | | ||
| 20 | +| `include` | `list[string]` | 可选 | `['*']` | — | 包含的模块名称 | 无 | | ||
| 21 | +| `exclude` | `list[string]` | 可选 | `[]` | — | 排除的模块名称 | 无 | | ||
| 22 | +| `strategies` | `list[object]` | 可选 | `[]` | — | 量化策略配置列表 | 本页 <a href="#2-2-flatquant-quant-strategy-config">§2.2</a> | | ||
| 23 | +| `seed` | `int` | 可选 | `0` | — | 随机种子,用于复现结果 | 无 | | ||
| 24 | +| `diag_relu` | `bool` | 可选 | `true` | — | 是否启用 diag_relu 激活函数实现变换矩阵 | 无 | | ||
| 25 | +| `amp_dtype` | `string` | 可选 | `bfloat16` | — | 混合精度类型,用于加速训练 | 无 | | ||
| 26 | +| `a_bits` | `int` | 可选 | `4` | — | 校准训练时激活量化的位宽(如 4bit) | 无 | | ||
| 27 | +| `a_groupsize` | `int` | 可选 | `-1` | — | 校准训练时激活量化的组大小(-1 表示按张量分组) | 无 | | ||
| 28 | +| `a_asym` | `bool` | 可选 | `false` | — | 校准训练时激活量化是否为非对称量化 | 无 | | ||
| 29 | +| `a_per_tensor` | `bool` | 可选 | `false` | — | 校准训练时激活量化是否按张量进行(而非按通道) | 无 | | ||
| 30 | +| `w_bits` | `int` | 可选 | `4` | — | 校准训练时权重量化的位宽(如 4bit) | 无 | | ||
| 31 | +| `w_groupsize` | `int` | 可选 | `-1` | — | 校准训练时权重量化的组大小(-1 表示按张量分组) | 无 | | ||
| 32 | +| `w_asym` | `bool` | 可选 | `false` | — | 校准训练时权重量化是否为非对称量化 | 无 | | ||
| 33 | +| `epochs` | `int` | 可选 | `10` | — | 校准训练的总轮数 | 无 | | ||
| 34 | +| `nsamples` | `int / null` | 可选 | `null` | — | 用于校准的样本数量 | 无 | | ||
| 35 | +| `cali_bsz` | `int` | 可选 | `4` | — | 校准阶段的批次大小 | 无 | | ||
| 36 | +| `flat_lr` | `float` | 可选 | `0.001` | — | FlatQuant 量化训练的学习率 | 无 | | ||
| 37 | +| `add_diag` | `bool` | 可选 | `true` | — | 是否启用对角缩放矩阵,用于全局缩放 | 无 | | ||
| 38 | +| `lwc` | `bool` | 可选 | `true` | — | 是否启用权重校准(训练权重量化参数) | 无 | | ||
| 39 | +| `lac` | `bool` | 可选 | `true` | — | 是否启用激活校准(训练激活量化参数) | 无 | | ||
| 40 | +| `diag_init` | `string` | 可选 | `one_style` | — | 对角缩放矩阵的初始化方式,支持sq_style以及one_style | 无 | | ||
| 41 | +| `diag_alpha` | `float` | 可选 | `0.3` | — | 对角线缩放参数,控制缩放强度 | 无 | | ||
| 42 | +| `warmup` | `bool` | 可选 | `true` | — | 是否启用训练预热机制,提升稳定性 | 无 | | ||
| 43 | +| `deactive_amp` | `bool` | 可选 | `true` | — | 是否禁用混合精度训练(用于调试) | 无 | | ||
| 44 | +| `tran_type` | `string` | 可选 | `svd` | — | 变换矩阵实现方式:svd 表示基于 SVD 分解 | 无 | | ||
| 45 | + | ||
| 46 | +**配置约束** | ||
| 47 | + | ||
| 48 | +- 校验逻辑:带 `init=False` 的内部字段不允许在 YAML 中显式赋值;如果赋值则抛出错误。 | ||
| 49 | + | ||
| 50 | +<h3 id="2-2-flatquant-quant-strategy-config">2.2 QuantStrategyConfig</h3> | ||
| 51 | + | ||
| 52 | +量化策略配置:定义量化参数、包含/排除模块规则 | ||
| 53 | + | ||
| 54 | +| 字段路径 | 类型 | 必选/可选 | 默认值 | 取值范围或格式 | 含义 | 引用配置 | | ||
| 55 | +|----------|------|-----------|--------|----------------|------|----------| | ||
| 56 | +| `qconfig` | `object` | 必选 | 无 | — | 量化配置参数 | 本页 <a href="#2-3-linear-qconfig">§2.3</a> | | ||
| 57 | +| `include` | `list[string]` | 可选 | `['*']` | — | 要包含的模块名称(支持通配符 *) | 无 | | ||
| 58 | +| `exclude` | `list[string]` | 可选 | `[]` | — | 要排除的模块名称(优先于 include) | 无 | | ||
| 59 | + | ||
| 60 | +**配置约束** | ||
| 61 | + | ||
| 62 | +- 无。 | ||
| 63 | + | ||
| 64 | +<h3 id="2-3-linear-qconfig">2.3 LinearQConfig</h3> | ||
| 65 | + | ||
| 66 | +线性层(Linear)的量化配置,含激活与权重两路量化。 | ||
| 67 | + | ||
| 68 | +| 字段路径 | 类型 | 必选/可选 | 默认值 | 取值范围或格式 | 含义 | 引用配置 | | ||
| 69 | +|----------|------|-----------|--------|----------------|------|----------| | ||
| 70 | +| `act` | `object` | 可选 | `{'dtype': 'float', 'scope': 'per_tensor', 'symmetric': True, 'method': 'none', 'ext': {}}` | — | 激活值的量化配置。默认 `float`(不量化激活),仅对权重做量化。 | 本页 <a href="#2-4-qconfig">§2.4</a> | | ||
| 71 | +| `weight` | `object` | 必选 | 无 | — | 权重的量化配置,必选。 | 本页 <a href="#2-4-qconfig">§2.4</a> | | ||
| 72 | + | ||
| 73 | +**配置约束** | ||
| 74 | + | ||
| 75 | +- 无。 | ||
| 76 | + | ||
| 77 | +<h3 id="2-4-qconfig">2.4 QConfig</h3> | ||
| 78 | + | ||
| 79 | +描述单个张量(权重或激活)的量化方式。 | ||
| 80 | + | ||
| 81 | +| 字段路径 | 类型 | 必选/可选 | 默认值 | 取值范围或格式 | 含义 | 引用配置 | | ||
| 82 | +|----------|------|-----------|--------|----------------|------|----------| | ||
| 83 | +| `dtype` | `string` | 必选 | 无 | `float`、`int8`、`int4`、`mxfp8`、`mxfp4`、`fp8_e4m3` | 量化数据类型,如 `int8`、`int4`、`mxfp8`、`mxfp4`、`fp8_e4m3`;`float` 表示该张量不量化。 | 无 | | ||
| 84 | +| `scope` | `string` | 必选 | 无 | `per_tensor`、`per_channel`、`per_group`、`per_block`、`per_token`、`pd_mix`、`per_head`、`dual_scale` | 量化粒度,即 scale/zero_point 的计算范围:`per_tensor`(整张量一个尺度)、`per_channel`(按通道)、`per_group`/`per_block`(按分组或固定块)、`per_token`(按 token)、`per_head`(按注意力头)、`dual_scale`(双尺度)等;合法取值组合取决于 `dtype` 与量化器实现。 | 无 | | ||
| 85 | +| `symmetric` | `bool` | 必选 | 无 | — | 是否对称量化。对称量化只保存 scale;非对称量化额外保存 zero_point,可用性取决于 `dtype`/`scope` 组合。 | 无 | | ||
| 86 | +| `method` | `string` | 必选 | 无 | — | 量化参数估计算法,如 `minmax`、`mse_round`、`histogram`、`ssz`、`none` 等;可用取值取决于 `dtype`/`scope`/`symmetric` 组合,`none` 表示不估计参数(配合 `float` 使用)。 | 无 | | ||
| 87 | +| `ext` | `object` | 可选 | `{}` | — | 量化器扩展参数,随 `method` 与量化器实现而定(如 gptq 的 `percdamp`/`group_size`);空对象表示无扩展参数。 | 无 | | ||
| 88 | + | ||
| 89 | +**配置约束** | ||
| 90 | + | ||
| 91 | +- 无。 | ||
| 92 | + | ||
| 93 | +## 3. 完整配置参考 | ||
| 94 | + | ||
| 95 | +```yaml | ||
| 96 | +apiversion: modelslim_v1 | ||
| 97 | +spec: | ||
| 98 | + process: | ||
| 99 | + - type: flatquant | ||
| 100 | + include: | ||
| 101 | + - '*' | ||
| 102 | + exclude: [] | ||
| 103 | + strategies: [] | ||
| 104 | + seed: 0 | ||
| 105 | + diag_relu: true | ||
| 106 | + amp_dtype: bfloat16 | ||
| 107 | + a_bits: 4 | ||
| 108 | + a_groupsize: -1 | ||
| 109 | + a_asym: false | ||
| 110 | + a_per_tensor: false | ||
| 111 | + w_bits: 4 | ||
| 112 | + w_groupsize: -1 | ||
| 113 | + w_asym: false | ||
| 114 | + epochs: 10 | ||
| 115 | + cali_bsz: 4 | ||
| 116 | + flat_lr: 0.001 | ||
| 117 | + add_diag: true | ||
| 118 | + lwc: true | ||
| 119 | + lac: true | ||
| 120 | + diag_init: one_style | ||
| 121 | + diag_alpha: 0.3 | ||
| 122 | + warmup: true | ||
| 123 | + deactive_amp: true | ||
| 124 | + tran_type: svd | ||
| 125 | +``` | ||
| @@ -0,0 +1,85 @@ | |||
| 1 | +<!-- generated-by: skills/docs-management/scripts/gen_quant_config_docs.py ; class: msmodelslim.processor.anti_outlier.flex_smooth.processor.FlexAWQSSZProcessorConfig --> | ||
| 2 | +# flex_awq_ssz 配置说明 | ||
| 3 | + | ||
| 4 | +## 1. 配置概述 | ||
| 5 | + | ||
| 6 | +FlexAWQSSZ 平滑+AWQ 处理器配置。 | ||
| 7 | + | ||
| 8 | +| 项目 | 内容 | | ||
| 9 | +|------|------| | ||
| 10 | +| 配置类 | `FlexAWQSSZProcessorConfig` | | ||
| 11 | +| 源码 | [processor.py](../../../../../msmodelslim/processor/anti_outlier/flex_smooth/processor.py) | | ||
| 12 | + | ||
| 13 | +## 2. 参数列表 | ||
| 14 | + | ||
| 15 | +<h3 id="2-1-flex-awq-ssz">2.1 FlexAWQSSZProcessorConfig</h3> | ||
| 16 | + | ||
| 17 | +| 字段路径 | 类型 | 必选/可选 | 默认值 | 取值范围或格式 | 含义 | 引用配置 | | ||
| 18 | +|----------|------|-----------|--------|----------------|------|----------| | ||
| 19 | +| `type` | `string` | 可选 | `flex_awq_ssz` | `flex_awq_ssz` | 处理器类型,固定为 `flex_awq_ssz`。 | 无 | | ||
| 20 | +| `alpha` | `float` | 可选 | `null` | — | 激活→权重的平滑迁移强度(0~1),越大迁移越多离群值到权重。 | 无 | | ||
| 21 | +| `beta` | `float` | 可选 | `null` | — | 额外的平滑调优系数(0~1),配合 alpha 使用。 | 无 | | ||
| 22 | +| `enable_subgraph_type` | `list[any]` | 可选 | `['norm-linear', 'linear-linear', 'ov', 'up-down']` | — | 应用平滑的子图类型列表,默认 `norm-linear`、`linear-linear`、`ov`、`up-down`。 | 无 | | ||
| 23 | +| `include` | `list[string] / null` | 可选 | `null` | — | 包含的模块名称模式;不设置表示全部匹配。 | 无 | | ||
| 24 | +| `exclude` | `list[string] / null` | 可选 | `null` | — | 排除的模块名称模式,优先级高于 `include`。 | 无 | | ||
| 25 | +| `qconfig` | `object` | 必选 | 无 | — | 激活与权重的量化配置,见《LinearQConfig 配置说明》。 | 本页 <a href="#2-2-linear-qconfig">§2.2</a> | | ||
| 26 | + | ||
| 27 | +**配置约束** | ||
| 28 | + | ||
| 29 | +- 模型级前置校验:拦截 qconfig 缺失的场景 | ||
| 30 | + | ||
| 31 | +<h3 id="2-2-linear-qconfig">2.2 LinearQConfig</h3> | ||
| 32 | + | ||
| 33 | +线性层(Linear)的量化配置,含激活与权重两路量化。 | ||
| 34 | + | ||
| 35 | +| 字段路径 | 类型 | 必选/可选 | 默认值 | 取值范围或格式 | 含义 | 引用配置 | | ||
| 36 | +|----------|------|-----------|--------|----------------|------|----------| | ||
| 37 | +| `act` | `object` | 可选 | `{'dtype': 'float', 'scope': 'per_tensor', 'symmetric': True, 'method': 'none', 'ext': {}}` | — | 激活值的量化配置。默认 `float`(不量化激活),仅对权重做量化。 | 本页 <a href="#2-3-qconfig">§2.3</a> | | ||
| 38 | +| `weight` | `object` | 必选 | 无 | — | 权重的量化配置,必选。 | 本页 <a href="#2-3-qconfig">§2.3</a> | | ||
| 39 | + | ||
| 40 | +**配置约束** | ||
| 41 | + | ||
| 42 | +- 无。 | ||
| 43 | + | ||
| 44 | +<h3 id="2-3-qconfig">2.3 QConfig</h3> | ||
| 45 | + | ||
| 46 | +描述单个张量(权重或激活)的量化方式。 | ||
| 47 | + | ||
| 48 | +| 字段路径 | 类型 | 必选/可选 | 默认值 | 取值范围或格式 | 含义 | 引用配置 | | ||
| 49 | +|----------|------|-----------|--------|----------------|------|----------| | ||
| 50 | +| `dtype` | `string` | 必选 | 无 | `float`、`int8`、`int4`、`mxfp8`、`mxfp4`、`fp8_e4m3` | 量化数据类型,如 `int8`、`int4`、`mxfp8`、`mxfp4`、`fp8_e4m3`;`float` 表示该张量不量化。 | 无 | | ||
| 51 | +| `scope` | `string` | 必选 | 无 | `per_tensor`、`per_channel`、`per_group`、`per_block`、`per_token`、`pd_mix`、`per_head`、`dual_scale` | 量化粒度,即 scale/zero_point 的计算范围:`per_tensor`(整张量一个尺度)、`per_channel`(按通道)、`per_group`/`per_block`(按分组或固定块)、`per_token`(按 token)、`per_head`(按注意力头)、`dual_scale`(双尺度)等;合法取值组合取决于 `dtype` 与量化器实现。 | 无 | | ||
| 52 | +| `symmetric` | `bool` | 必选 | 无 | — | 是否对称量化。对称量化只保存 scale;非对称量化额外保存 zero_point,可用性取决于 `dtype`/`scope` 组合。 | 无 | | ||
| 53 | +| `method` | `string` | 必选 | 无 | — | 量化参数估计算法,如 `minmax`、`mse_round`、`histogram`、`ssz`、`none` 等;可用取值取决于 `dtype`/`scope`/`symmetric` 组合,`none` 表示不估计参数(配合 `float` 使用)。 | 无 | | ||
| 54 | +| `ext` | `object` | 可选 | `{}` | — | 量化器扩展参数,随 `method` 与量化器实现而定(如 gptq 的 `percdamp`/`group_size`);空对象表示无扩展参数。 | 无 | | ||
| 55 | + | ||
| 56 | +**配置约束** | ||
| 57 | + | ||
| 58 | +- 无。 | ||
| 59 | + | ||
| 60 | +## 3. 完整配置参考 | ||
| 61 | + | ||
| 62 | +```yaml | ||
| 63 | +apiversion: modelslim_v1 | ||
| 64 | +spec: | ||
| 65 | + process: | ||
| 66 | + - type: flex_awq_ssz | ||
| 67 | + enable_subgraph_type: | ||
| 68 | + - norm-linear | ||
| 69 | + - linear-linear | ||
| 70 | + - ov | ||
| 71 | + - up-down | ||
| 72 | + qconfig: | ||
| 73 | + act: | ||
| 74 | + dtype: float | ||
| 75 | + scope: per_tensor | ||
| 76 | + symmetric: true | ||
| 77 | + method: none | ||
| 78 | + ext: {} | ||
| 79 | + weight: | ||
| 80 | + dtype: int8 | ||
| 81 | + scope: per_channel | ||
| 82 | + symmetric: true | ||
| 83 | + method: minmax | ||
| 84 | + ext: {} | ||
| 85 | +``` | ||
| @@ -0,0 +1,42 @@ | |||
| 1 | +<!-- generated-by: skills/docs-management/scripts/gen_quant_config_docs.py ; class: msmodelslim.processor.anti_outlier.flex_smooth.processor.FlexSmoothQuantProcessorConfig --> | ||
| 2 | +# flex_smooth_quant 配置说明 | ||
| 3 | + | ||
| 4 | +## 1. 配置概述 | ||
| 5 | + | ||
| 6 | +FlexSmoothQuant 平滑量化处理器配置。 | ||
| 7 | + | ||
| 8 | +| 项目 | 内容 | | ||
| 9 | +|------|------| | ||
| 10 | +| 配置类 | `FlexSmoothQuantProcessorConfig` | | ||
| 11 | +| 源码 | [processor.py](../../../../../msmodelslim/processor/anti_outlier/flex_smooth/processor.py) | | ||
| 12 | + | ||
| 13 | +## 2. 参数列表 | ||
| 14 | + | ||
| 15 | +<h3 id="2-1-flex-smooth-quant">2.1 FlexSmoothQuantProcessorConfig</h3> | ||
| 16 | + | ||
| 17 | +| 字段路径 | 类型 | 必选/可选 | 默认值 | 取值范围或格式 | 含义 | 引用配置 | | ||
| 18 | +|----------|------|-----------|--------|----------------|------|----------| | ||
| 19 | +| `type` | `string` | 可选 | `flex_smooth_quant` | `flex_smooth_quant` | 处理器类型,固定为 `flex_smooth_quant`。 | 无 | | ||
| 20 | +| `alpha` | `float` | 可选 | `null` | — | 激活→权重的平滑迁移强度(0~1),越大迁移越多离群值到权重。 | 无 | | ||
| 21 | +| `beta` | `float` | 可选 | `null` | — | 额外的平滑调优系数(0~1),配合 alpha 使用。 | 无 | | ||
| 22 | +| `enable_subgraph_type` | `list[any]` | 可选 | `['norm-linear', 'linear-linear', 'ov', 'up-down']` | — | 应用平滑的子图类型列表,默认 `norm-linear`、`linear-linear`、`ov`、`up-down`。 | 无 | | ||
| 23 | +| `include` | `list[string] / null` | 可选 | `null` | — | 包含的模块名称模式;不设置表示全部匹配。 | 无 | | ||
| 24 | +| `exclude` | `list[string] / null` | 可选 | `null` | — | 排除的模块名称模式,优先级高于 `include`。 | 无 | | ||
| 25 | + | ||
| 26 | +**配置约束** | ||
| 27 | + | ||
| 28 | +- 无。 | ||
| 29 | + | ||
| 30 | +## 3. 完整配置参考 | ||
| 31 | + | ||
| 32 | +```yaml | ||
| 33 | +apiversion: modelslim_v1 | ||
| 34 | +spec: | ||
| 35 | + process: | ||
| 36 | + - type: flex_smooth_quant | ||
| 37 | + enable_subgraph_type: | ||
| 38 | + - norm-linear | ||
| 39 | + - linear-linear | ||
| 40 | + - ov | ||
| 41 | + - up-down | ||
| 42 | +``` | ||
| @@ -0,0 +1,38 @@ | |||
| 1 | +<!-- generated-by: skills/docs-management/scripts/gen_quant_config_docs.py ; class: msmodelslim.processor.sparse.float_sparse.FloatSparseProcessorConfig --> | ||
| 2 | +# float_sparse 配置说明 | ||
| 3 | + | ||
| 4 | +## 1. 配置概述 | ||
| 5 | + | ||
| 6 | +浮点稀疏处理器配置。 | ||
| 7 | + | ||
| 8 | +| 项目 | 内容 | | ||
| 9 | +|------|------| | ||
| 10 | +| 配置类 | `FloatSparseProcessorConfig` | | ||
| 11 | +| 源码 | [float_sparse.py](../../../../../msmodelslim/processor/sparse/float_sparse.py) | | ||
| 12 | + | ||
| 13 | +## 2. 参数列表 | ||
| 14 | + | ||
| 15 | +<h3 id="2-1-float-sparse">2.1 FloatSparseProcessorConfig</h3> | ||
| 16 | + | ||
| 17 | +| 字段路径 | 类型 | 必选/可选 | 默认值 | 取值范围或格式 | 含义 | 引用配置 | | ||
| 18 | +|----------|------|-----------|--------|----------------|------|----------| | ||
| 19 | +| `type` | `string` | 可选 | `float_sparse` | `float_sparse` | 处理器类型,固定为 `float_sparse`。 | 无 | | ||
| 20 | +| `sparse_ratio` | `float` | 可选 | `0.3` | — | 稀疏比例(0~1),置零权重占比,越大稀疏越多。 | 无 | | ||
| 21 | +| `include` | `list[string]` | 可选 | `[]` | — | 包含的模块名称模式 | 无 | | ||
| 22 | +| `exclude` | `list[string]` | 可选 | `[]` | — | 排除的模块名称模式,优先级高于 `include` | 无 | | ||
| 23 | + | ||
| 24 | +**配置约束** | ||
| 25 | + | ||
| 26 | +- 无。 | ||
| 27 | + | ||
| 28 | +## 3. 完整配置参考 | ||
| 29 | + | ||
| 30 | +```yaml | ||
| 31 | +apiversion: modelslim_v1 | ||
| 32 | +spec: | ||
| 33 | + process: | ||
| 34 | + - type: float_sparse | ||
| 35 | + sparse_ratio: 0.3 | ||
| 36 | + include: [] | ||
| 37 | + exclude: [] | ||
| 38 | +``` | ||
| @@ -0,0 +1,79 @@ | |||
| 1 | +<!-- generated-by: skills/docs-management/scripts/gen_quant_config_docs.py ; class: msmodelslim.processor.container.group.GroupProcessorConfig --> | ||
| 2 | +# group 配置说明 | ||
| 3 | + | ||
| 4 | +## 1. 配置概述 | ||
| 5 | + | ||
| 6 | +处理器合并器配置。 | ||
| 7 | + | ||
| 8 | +| 项目 | 内容 | | ||
| 9 | +|------|------| | ||
| 10 | +| 配置类 | `GroupProcessorConfig` | | ||
| 11 | +| 源码 | [group.py](../../../../../msmodelslim/processor/container/group.py) | | ||
| 12 | + | ||
| 13 | +## 2. 参数列表 | ||
| 14 | + | ||
| 15 | +<h3 id="2-1-group">2.1 GroupProcessorConfig</h3> | ||
| 16 | + | ||
| 17 | +| 字段路径 | 类型 | 必选/可选 | 默认值 | 取值范围或格式 | 含义 | 引用配置 | | ||
| 18 | +|----------|------|-----------|--------|----------------|------|----------| | ||
| 19 | +| `type` | `string` | 必选 | 无 | `group` | 处理器类型,固定为 `group`。 | 无 | | ||
| 20 | +| `configs` | `list[object]` | 必选 | 无 | — | 被合并的处理器配置列表,按顺序执行;每个元素是 `type` 分派的处理器配置。 | 本页 <a href="#2-2-autoprocessorconfig">§2.2</a> | | ||
| 21 | + | ||
| 22 | +**配置约束** | ||
| 23 | + | ||
| 24 | +- 无。 | ||
| 25 | + | ||
| 26 | +<h3 id="2-2-autoprocessorconfig">2.2 AutoProcessorConfig</h3> | ||
| 27 | + | ||
| 28 | +**派生类** | ||
| 29 | + | ||
| 30 | +- `AdaptRotationProcessorConfig`(`type: adapt_rotation`) — 自适应旋转(adapt_rotation)处理器配置。 《[adapt_rotation 配置说明](adapt_rotation.md)》 | ||
| 31 | +- `AutoroundProcessorConfig`(`type: autoround_quant`) — autoround 量化处理器配置。 《[autoround_quant 配置说明](autoround_quant.md)》 | ||
| 32 | +- `AWQProcessorConfig`(`type: awq`) — AWQ(Activation-aware Weight Quantization)处理器配置。 《[awq 配置说明](awq.md)》 | ||
| 33 | +- `BinaryAnalysisProcessorConfig`(`type: binary_analysis`) — 二值(有/无量化)敏感性分析处理器配置。 《[binary_analysis 配置说明](binary_analysis.md)》 | ||
| 34 | +- `BinaryOperatorLayerWiseProcessorConfig`(`type: binary_operator_layer_wise`) — 逐层敏感度分析处理器配置(对比逐块浮点与量化输出)。 《[binary_operator_layer_wise 配置说明](binary_operator_layer_wise.md)》 | ||
| 35 | +- `BinaryOperatorModelWiseProcessorConfig`(`type: binary_operator_model_wise`) — 模型级敏感性分析配置(对比模型最终输出,使用 MSE 指标) 《[binary_operator_model_wise 配置说明](binary_operator_model_wise.md)》 | ||
| 36 | +- `DynamicCacheProcessorConfig`(`type: dynamic_cache`) — KV cache 量化处理器配置。 《[dynamic_cache 配置说明](dynamic_cache.md)》 | ||
| 37 | +- `FA3QuantProcessorConfig`(`type: fa3_quant`) — FA3(FlashAttention-3)量化处理器配置。 《[fa3_quant 配置说明](fa3_quant.md)》 | ||
| 38 | +- `FlatQuantProcessorConfig`(`type: flatquant`) — FlatQuant处理器配置:定义量化训练参数、策略、混合精度等 《[flatquant 配置说明](flatquant.md)》 | ||
| 39 | +- `FlexAWQSSZProcessorConfig`(`type: flex_awq_ssz`) — FlexAWQSSZ 平滑+AWQ 处理器配置。 《[flex_awq_ssz 配置说明](flex_awq_ssz.md)》 | ||
| 40 | +- `FlexSmoothQuantProcessorConfig`(`type: flex_smooth_quant`) — FlexSmoothQuant 平滑量化处理器配置。 《[flex_smooth_quant 配置说明](flex_smooth_quant.md)》 | ||
| 41 | +- `FloatSparseProcessorConfig`(`type: float_sparse`) — 浮点稀疏处理器配置。 《[float_sparse 配置说明](float_sparse.md)》 | ||
| 42 | +- `GroupProcessorConfig`(`type: group`) — 处理器合并器配置。 本页 <a href="#2-1-group">§2.1</a> | ||
| 43 | +- `IterSmoothProcessorConfig`(`type: iter_smooth`) — 迭代平滑(IterativeSmooth)处理器配置。 《[iter_smooth 配置说明](iter_smooth.md)》 | ||
| 44 | +- `KVSmoothProcessorConfig`(`type: kv_smooth`) — KV cache 平滑处理器配置。 《[kv_smooth 配置说明](kv_smooth.md)》 | ||
| 45 | +- `LinearProcessorConfig`(`type: linear_quant`) — 线性层(Linear)量化处理器配置。 《[linear_quant 配置说明](linear_quant.md)》 | ||
| 46 | +- `LoadProcessorConfig`(`type: load`) — 模块加载/卸载处理器配置。 《[load 配置说明](load.md)》 | ||
| 47 | +- `OASQProcessorConfig`(`type: oasq`) — OASQ(Outlier-Aware Smooth Quantization)处理器配置。 《[oasq 配置说明](oasq.md)》 | ||
| 48 | +- `OnlineQuaRotProcessorConfig`(`type: online_quarot`) — 在线 QuaRot 旋转处理器配置。 《[online_quarot 配置说明](online_quarot.md)》 | ||
| 49 | +- `QuaRotProcessorConfig`(`type: quarot`) — QuaRot(离线旋转)处理器配置。 《[quarot 配置说明](quarot.md)》 | ||
| 50 | +- `QuantSaveProcessorConfig`(`type: saver`) — 统一保存处理器配置。 《[saver 配置说明](saver.md)》 | ||
| 51 | +- `SmoothQuantProcessorConfig`(`type: smooth_quant`) — SmoothQuant 平滑量化处理器配置。 《[smooth_quant 配置说明](smooth_quant.md)》 | ||
| 52 | +- `SVDResidualProcessorConfig`(`type: svd_res`) — SVD 残差(低秩补偿)处理器配置。 《[svd_res 配置说明](svd_res.md)》 | ||
| 53 | +- `TrainableLinearQuantProcessorConfig`(`type: trainable_linear_quant`) — 可训练线性量化(TLQ)处理器配置。 《[trainable_linear_quant 配置说明](trainable_linear_quant.md)》 | ||
| 54 | +- `UnaryAnalysisProcessorConfig`(`type: unary_analysis`) — 一元(无量化)敏感性分析处理器配置。 《[unary_analysis 配置说明](unary_analysis.md)》 | ||
| 55 | + | ||
| 56 | +## 3. 完整配置参考 | ||
| 57 | + | ||
| 58 | +```yaml | ||
| 59 | +apiversion: modelslim_v1 | ||
| 60 | +spec: | ||
| 61 | + process: | ||
| 62 | + - type: group | ||
| 63 | + configs: | ||
| 64 | + - type: linear_quant | ||
| 65 | + qconfig: | ||
| 66 | + act: | ||
| 67 | + dtype: float | ||
| 68 | + scope: per_tensor | ||
| 69 | + symmetric: true | ||
| 70 | + method: none | ||
| 71 | + weight: | ||
| 72 | + dtype: int8 | ||
| 73 | + scope: per_channel | ||
| 74 | + symmetric: true | ||
| 75 | + method: minmax | ||
| 76 | + - type: smooth_quant | ||
| 77 | + alpha: 0.5 | ||
| 78 | + symmetric: true | ||
| 79 | +``` | ||
| @@ -0,0 +1,46 @@ | |||
| 1 | +<!-- generated-by: skills/docs-management/scripts/gen_quant_config_docs.py ; class: msmodelslim.processor.anti_outlier.iter_smooth.processor.IterSmoothProcessorConfig --> | ||
| 2 | +# iter_smooth 配置说明 | ||
| 3 | + | ||
| 4 | +## 1. 配置概述 | ||
| 5 | + | ||
| 6 | +迭代平滑(IterativeSmooth)处理器配置。 | ||
| 7 | + | ||
| 8 | +| 项目 | 内容 | | ||
| 9 | +|------|------| | ||
| 10 | +| 配置类 | `IterSmoothProcessorConfig` | | ||
| 11 | +| 源码 | [processor.py](../../../../../msmodelslim/processor/anti_outlier/iter_smooth/processor.py) | | ||
| 12 | + | ||
| 13 | +## 2. 参数列表 | ||
| 14 | + | ||
| 15 | +<h3 id="2-1-iter-smooth">2.1 IterSmoothProcessorConfig</h3> | ||
| 16 | + | ||
| 17 | +| 字段路径 | 类型 | 必选/可选 | 默认值 | 取值范围或格式 | 含义 | 引用配置 | | ||
| 18 | +|----------|------|-----------|--------|----------------|------|----------| | ||
| 19 | +| `type` | `string` | 可选 | `iter_smooth` | `iter_smooth` | 处理器类型,固定为 `iter_smooth`。 | 无 | | ||
| 20 | +| `alpha` | `float` | 可选 | `0.9` | — | 平滑迁移强度(0~1),越大迁移越多离群值到权重。 | 无 | | ||
| 21 | +| `scale_min` | `float` | 可选 | `1e-05` | — | 平滑缩放因子的最小值下限,防止数值下溢。 | 无 | | ||
| 22 | +| `symmetric` | `bool` | 可选 | `true` | — | 是否对称量化后续的权重/激活。 | 无 | | ||
| 23 | +| `enable_subgraph_type` | `list[any]` | 可选 | `['norm-linear', 'linear-linear', 'ov', 'up-down']` | — | 应用迭代平滑的子图类型列表,默认 `norm-linear`、`linear-linear`、`ov`、`up-down`。 | 无 | | ||
| 24 | +| `include` | `list[string] / null` | 可选 | `null` | — | 包含的模块名称模式;不设置表示全部匹配。 | 无 | | ||
| 25 | +| `exclude` | `list[string] / null` | 可选 | `null` | — | 排除的模块名称模式,优先级高于 `include`。 | 无 | | ||
| 26 | + | ||
| 27 | +**配置约束** | ||
| 28 | + | ||
| 29 | +- 无。 | ||
| 30 | + | ||
| 31 | +## 3. 完整配置参考 | ||
| 32 | + | ||
| 33 | +```yaml | ||
| 34 | +apiversion: modelslim_v1 | ||
| 35 | +spec: | ||
| 36 | + process: | ||
| 37 | + - type: iter_smooth | ||
| 38 | + alpha: 0.9 | ||
| 39 | + scale_min: 1.0e-05 | ||
| 40 | + symmetric: true | ||
| 41 | + enable_subgraph_type: | ||
| 42 | + - norm-linear | ||
| 43 | + - linear-linear | ||
| 44 | + - ov | ||
| 45 | + - up-down | ||
| 46 | +``` | ||
| @@ -0,0 +1,39 @@ | |||
| 1 | +<!-- generated-by: skills/docs-management/scripts/gen_quant_config_docs.py ; class: msmodelslim.processor.kv_smooth.processor.KVSmoothProcessorConfig --> | ||
| 2 | +# kv_smooth 配置说明 | ||
| 3 | + | ||
| 4 | +## 1. 配置概述 | ||
| 5 | + | ||
| 6 | +KV cache 平滑处理器配置。 | ||
| 7 | + | ||
| 8 | +| 项目 | 内容 | | ||
| 9 | +|------|------| | ||
| 10 | +| 配置类 | `KVSmoothProcessorConfig` | | ||
| 11 | +| 源码 | [processor.py](../../../../../msmodelslim/processor/kv_smooth/processor.py) | | ||
| 12 | + | ||
| 13 | +## 2. 参数列表 | ||
| 14 | + | ||
| 15 | +<h3 id="2-1-kv-smooth">2.1 KVSmoothProcessorConfig</h3> | ||
| 16 | + | ||
| 17 | +| 字段路径 | 类型 | 必选/可选 | 默认值 | 取值范围或格式 | 含义 | 引用配置 | | ||
| 18 | +|----------|------|-----------|--------|----------------|------|----------| | ||
| 19 | +| `type` | `string` | 可选 | `kv_smooth` | `kv_smooth` | 处理器类型,固定为 `kv_smooth`。 | 无 | | ||
| 20 | +| `smooth_factor` | `float` | 可选 | `1.0` | — | KV 平滑因子,必须大于0;越大平滑越强。 | 无 | | ||
| 21 | +| `include` | `list[string]` | 可选 | `['*']` | — | 包含的模块名称模式,默认 `*` 匹配全部模块 | 无 | | ||
| 22 | +| `exclude` | `list[string]` | 可选 | `[]` | — | 排除的模块名称模式,优先级高于 `include` | 无 | | ||
| 23 | + | ||
| 24 | +**配置约束** | ||
| 25 | + | ||
| 26 | +- 无。 | ||
| 27 | + | ||
| 28 | +## 3. 完整配置参考 | ||
| 29 | + | ||
| 30 | +```yaml | ||
| 31 | +apiversion: modelslim_v1 | ||
| 32 | +spec: | ||
| 33 | + process: | ||
| 34 | + - type: kv_smooth | ||
| 35 | + smooth_factor: 1.0 | ||
| 36 | + include: | ||
| 37 | + - '*' | ||
| 38 | + exclude: [] | ||
| 39 | +``` | ||
| @@ -0,0 +1,80 @@ | |||
| 1 | +<!-- generated-by: skills/docs-management/scripts/gen_quant_config_docs.py ; class: msmodelslim.processor.quant.linear.LinearProcessorConfig --> | ||
| 2 | +# linear_quant 配置说明 | ||
| 3 | + | ||
| 4 | +## 1. 配置概述 | ||
| 5 | + | ||
| 6 | +线性层(Linear)量化处理器配置。 | ||
| 7 | + | ||
| 8 | +| 项目 | 内容 | | ||
| 9 | +|------|------| | ||
| 10 | +| 配置类 | `LinearProcessorConfig` | | ||
| 11 | +| 源码 | [linear.py](../../../../../msmodelslim/processor/quant/linear.py) | | ||
| 12 | + | ||
| 13 | +## 2. 参数列表 | ||
| 14 | + | ||
| 15 | +<h3 id="2-1-linear-quant">2.1 LinearProcessorConfig</h3> | ||
| 16 | + | ||
| 17 | +| 字段路径 | 类型 | 必选/可选 | 默认值 | 取值范围或格式 | 含义 | 引用配置 | | ||
| 18 | +|----------|------|-----------|--------|----------------|------|----------| | ||
| 19 | +| `type` | `string` | 可选 | `linear_quant` | `linear_quant` | 处理器类型,固定为 `linear_quant`。 | 无 | | ||
| 20 | +| `qconfig` | `object` | 必选 | 无 | — | 激活与权重的量化配置,见《LinearQConfig 配置说明》。 | 本页 <a href="#2-2-linear-qconfig">§2.2</a> | | ||
| 21 | +| `include` | `list[string]` | 可选 | `['*']` | — | 包含的模块名称模式,默认 `*` 匹配全部模块 | 无 | | ||
| 22 | +| `exclude` | `list[string]` | 可选 | `[]` | — | 排除的模块名称模式,优先级高于 `include` | 无 | | ||
| 23 | + | ||
| 24 | +**配置约束** | ||
| 25 | + | ||
| 26 | +- 校验 qconfig:act/weight 的 (dtype, scope, symmetric, method) 组合必须有已注册量化器实现(如 int8_per_channel+minmax),否则报错;再调用所选量化器的 validate_ext_config,当前 GPTQ 要求 ext 中的 percdamp/block_size/group_size 均为正数。 | ||
| 27 | + | ||
| 28 | +<h3 id="2-2-linear-qconfig">2.2 LinearQConfig</h3> | ||
| 29 | + | ||
| 30 | +线性层(Linear)的量化配置,含激活与权重两路量化。 | ||
| 31 | + | ||
| 32 | +| 字段路径 | 类型 | 必选/可选 | 默认值 | 取值范围或格式 | 含义 | 引用配置 | | ||
| 33 | +|----------|------|-----------|--------|----------------|------|----------| | ||
| 34 | +| `act` | `object` | 可选 | `{'dtype': 'float', 'scope': 'per_tensor', 'symmetric': True, 'method': 'none', 'ext': {}}` | — | 激活值的量化配置。默认 `float`(不量化激活),仅对权重做量化。 | 本页 <a href="#2-3-qconfig">§2.3</a> | | ||
| 35 | +| `weight` | `object` | 必选 | 无 | — | 权重的量化配置,必选。 | 本页 <a href="#2-3-qconfig">§2.3</a> | | ||
| 36 | + | ||
| 37 | +**配置约束** | ||
| 38 | + | ||
| 39 | +- 无。 | ||
| 40 | + | ||
| 41 | +<h3 id="2-3-qconfig">2.3 QConfig</h3> | ||
| 42 | + | ||
| 43 | +描述单个张量(权重或激活)的量化方式。 | ||
| 44 | + | ||
| 45 | +| 字段路径 | 类型 | 必选/可选 | 默认值 | 取值范围或格式 | 含义 | 引用配置 | | ||
| 46 | +|----------|------|-----------|--------|----------------|------|----------| | ||
| 47 | +| `dtype` | `string` | 必选 | 无 | `float`、`int8`、`int4`、`mxfp8`、`mxfp4`、`fp8_e4m3` | 量化数据类型,如 `int8`、`int4`、`mxfp8`、`mxfp4`、`fp8_e4m3`;`float` 表示该张量不量化。 | 无 | | ||
| 48 | +| `scope` | `string` | 必选 | 无 | `per_tensor`、`per_channel`、`per_group`、`per_block`、`per_token`、`pd_mix`、`per_head`、`dual_scale` | 量化粒度,即 scale/zero_point 的计算范围:`per_tensor`(整张量一个尺度)、`per_channel`(按通道)、`per_group`/`per_block`(按分组或固定块)、`per_token`(按 token)、`per_head`(按注意力头)、`dual_scale`(双尺度)等;合法取值组合取决于 `dtype` 与量化器实现。 | 无 | | ||
| 49 | +| `symmetric` | `bool` | 必选 | 无 | — | 是否对称量化。对称量化只保存 scale;非对称量化额外保存 zero_point,可用性取决于 `dtype`/`scope` 组合。 | 无 | | ||
| 50 | +| `method` | `string` | 必选 | 无 | — | 量化参数估计算法,如 `minmax`、`mse_round`、`histogram`、`ssz`、`none` 等;可用取值取决于 `dtype`/`scope`/`symmetric` 组合,`none` 表示不估计参数(配合 `float` 使用)。 | 无 | | ||
| 51 | +| `ext` | `object` | 可选 | `{}` | — | 量化器扩展参数,随 `method` 与量化器实现而定(如 gptq 的 `percdamp`/`group_size`);空对象表示无扩展参数。 | 无 | | ||
| 52 | + | ||
| 53 | +**配置约束** | ||
| 54 | + | ||
| 55 | +- 无。 | ||
| 56 | + | ||
| 57 | +## 3. 完整配置参考 | ||
| 58 | + | ||
| 59 | +```yaml | ||
| 60 | +apiversion: modelslim_v1 | ||
| 61 | +spec: | ||
| 62 | + process: | ||
| 63 | + - type: linear_quant | ||
| 64 | + qconfig: | ||
| 65 | + act: | ||
| 66 | + dtype: float | ||
| 67 | + scope: per_tensor | ||
| 68 | + symmetric: true | ||
| 69 | + method: none | ||
| 70 | + ext: {} | ||
| 71 | + weight: | ||
| 72 | + dtype: int8 | ||
| 73 | + scope: per_channel | ||
| 74 | + symmetric: true | ||
| 75 | + method: minmax | ||
| 76 | + ext: {} | ||
| 77 | + include: | ||
| 78 | + - '*' | ||
| 79 | + exclude: [] | ||
| 80 | +``` | ||
| @@ -0,0 +1,42 @@ | |||
| 1 | +<!-- generated-by: skills/docs-management/scripts/gen_quant_config_docs.py ; class: msmodelslim.processor.memory.load.LoadProcessorConfig --> | ||
| 2 | +# load 配置说明 | ||
| 3 | + | ||
| 4 | +## 1. 配置概述 | ||
| 5 | + | ||
| 6 | +模块加载/卸载处理器配置。 | ||
| 7 | + | ||
| 8 | +| 项目 | 内容 | | ||
| 9 | +|------|------| | ||
| 10 | +| 配置类 | `LoadProcessorConfig` | | ||
| 11 | +| 源码 | [load.py](../../../../../msmodelslim/processor/memory/load.py) | | ||
| 12 | + | ||
| 13 | +## 2. 参数列表 | ||
| 14 | + | ||
| 15 | +<h3 id="2-1-load">2.1 LoadProcessorConfig</h3> | ||
| 16 | + | ||
| 17 | +| 字段路径 | 类型 | 必选/可选 | 默认值 | 取值范围或格式 | 含义 | 引用配置 | | ||
| 18 | +|----------|------|-----------|--------|----------------|------|----------| | ||
| 19 | +| `type` | `string` | 可选 | `load` | `load` | 处理器类型,固定为 `load`。 | 无 | | ||
| 20 | +| `device` | `string` | 可选 | `cpu` | — | 目标设备,如 `cpu`、`npu:0` | 无 | | ||
| 21 | +| `non_blocking` | `bool` | 可选 | `false` | — | 是否非阻塞加载 | 无 | | ||
| 22 | +| `mode` | `string` | 可选 | `load` | `load`、`offload` | 加载模式:`load` 加载到目标设备,`offload` 卸载到 CPU | 无 | | ||
| 23 | +| `cleanup` | `bool` | 可选 | `false` | — | 是否清理缓存 | 无 | | ||
| 24 | +| `post_offload` | `bool` | 可选 | `false` | — | 卸载后是否 offload 激活值 | 无 | | ||
| 25 | + | ||
| 26 | +**配置约束** | ||
| 27 | + | ||
| 28 | +- 无。 | ||
| 29 | + | ||
| 30 | +## 3. 完整配置参考 | ||
| 31 | + | ||
| 32 | +```yaml | ||
| 33 | +apiversion: modelslim_v1 | ||
| 34 | +spec: | ||
| 35 | + process: | ||
| 36 | + - type: load | ||
| 37 | + device: cpu | ||
| 38 | + non_blocking: false | ||
| 39 | + mode: load | ||
| 40 | + cleanup: false | ||
| 41 | + post_offload: false | ||
| 42 | +``` | ||
| @@ -0,0 +1,43 @@ | |||
| 1 | +<!-- generated-by: skills/docs-management/scripts/gen_quant_config_docs.py ; class: msmodelslim.processor.anti_outlier.oasq.processor.OASQProcessorConfig --> | ||
| 2 | +# oasq 配置说明 | ||
| 3 | + | ||
| 4 | +## 1. 配置概述 | ||
| 5 | + | ||
| 6 | +OASQ(Outlier-Aware Smooth Quantization)处理器配置。 | ||
| 7 | + | ||
| 8 | +| 项目 | 内容 | | ||
| 9 | +|------|------| | ||
| 10 | +| 配置类 | `OASQProcessorConfig` | | ||
| 11 | +| 源码 | [processor.py](../../../../../msmodelslim/processor/anti_outlier/oasq/processor.py) | | ||
| 12 | + | ||
| 13 | +## 2. 参数列表 | ||
| 14 | + | ||
| 15 | +<h3 id="2-1-oasq">2.1 OASQProcessorConfig</h3> | ||
| 16 | + | ||
| 17 | +| 字段路径 | 类型 | 必选/可选 | 默认值 | 取值范围或格式 | 含义 | 引用配置 | | ||
| 18 | +|----------|------|-----------|--------|----------------|------|----------| | ||
| 19 | +| `type` | `string` | 可选 | `oasq` | `oasq` | 处理器类型,固定为 `oasq`。 | 无 | | ||
| 20 | +| `max_iters` | `int / null` | 可选 | `null` | — | 最大迭代次数;不设置时使用实现默认值,必须大于0。 | 无 | | ||
| 21 | +| `symmetric` | `bool` | 可选 | `true` | — | 是否对称量化后续的权重/激活。 | 无 | | ||
| 22 | +| `enable_subgraph_type` | `list[any]` | 可选 | `['norm-linear', 'linear-linear', 'ov', 'up-down']` | — | 应用 OASQ 的子图类型列表,默认 `norm-linear`、`linear-linear`、`ov`、`up-down`。 | 无 | | ||
| 23 | +| `include` | `list[string] / null` | 可选 | `null` | — | 包含的模块名称模式;不设置表示全部匹配。 | 无 | | ||
| 24 | +| `exclude` | `list[string] / null` | 可选 | `null` | — | 排除的模块名称模式,优先级高于 `include`。 | 无 | | ||
| 25 | + | ||
| 26 | +**配置约束** | ||
| 27 | + | ||
| 28 | +- 校验 max_iters:设置时必须大于 0。 | ||
| 29 | + | ||
| 30 | +## 3. 完整配置参考 | ||
| 31 | + | ||
| 32 | +```yaml | ||
| 33 | +apiversion: modelslim_v1 | ||
| 34 | +spec: | ||
| 35 | + process: | ||
| 36 | + - type: oasq | ||
| 37 | + symmetric: true | ||
| 38 | + enable_subgraph_type: | ||
| 39 | + - norm-linear | ||
| 40 | + - linear-linear | ||
| 41 | + - ov | ||
| 42 | + - up-down | ||
| 43 | +``` | ||
| @@ -0,0 +1,36 @@ | |||
| 1 | +<!-- generated-by: skills/docs-management/scripts/gen_quant_config_docs.py ; class: msmodelslim.processor.quarot.online_quarot.online_quarot.OnlineQuaRotProcessorConfig --> | ||
| 2 | +# online_quarot 配置说明 | ||
| 3 | + | ||
| 4 | +## 1. 配置概述 | ||
| 5 | + | ||
| 6 | +在线 QuaRot 旋转处理器配置。 | ||
| 7 | + | ||
| 8 | +| 项目 | 内容 | | ||
| 9 | +|------|------| | ||
| 10 | +| 配置类 | `OnlineQuaRotProcessorConfig` | | ||
| 11 | +| 源码 | [online_quarot.py](../../../../../msmodelslim/processor/quarot/online_quarot/online_quarot.py) | | ||
| 12 | + | ||
| 13 | +## 2. 参数列表 | ||
| 14 | + | ||
| 15 | +<h3 id="2-1-online-quarot">2.1 OnlineQuaRotProcessorConfig</h3> | ||
| 16 | + | ||
| 17 | +| 字段路径 | 类型 | 必选/可选 | 默认值 | 取值范围或格式 | 含义 | 引用配置 | | ||
| 18 | +|----------|------|-----------|--------|----------------|------|----------| | ||
| 19 | +| `type` | `string` | 可选 | `online_quarot` | `online_quarot` | 处理器类型,固定为 `online_quarot`。 | 无 | | ||
| 20 | +| `include` | `list[string] / null` | 可选 | `null` | — | 包含的模块名称模式;不设置表示全部匹配。 | 无 | | ||
| 21 | +| `exclude` | `list[string] / null` | 可选 | `null` | — | 排除的模块名称模式,优先级高于 `include`。 | 无 | | ||
| 22 | +| `block_size` | `int` | 可选 | `-1` | — | 旋转块大小,-1 表示按 hidden_dim 整块旋转;可被 RotationConfig 覆盖。 | 无 | | ||
| 23 | + | ||
| 24 | +**配置约束** | ||
| 25 | + | ||
| 26 | +- 校验 block_size:取值范围为-1或2的非负整数次幂 | ||
| 27 | + | ||
| 28 | +## 3. 完整配置参考 | ||
| 29 | + | ||
| 30 | +```yaml | ||
| 31 | +apiversion: modelslim_v1 | ||
| 32 | +spec: | ||
| 33 | + process: | ||
| 34 | + - type: online_quarot | ||
| 35 | + block_size: -1 | ||
| 36 | +``` | ||
| @@ -0,0 +1,43 @@ | |||
| 1 | +<!-- generated-by: skills/docs-management/scripts/gen_quant_config_docs.py ; class: msmodelslim.processor.quarot.offline_quarot.quarot.QuaRotProcessorConfig --> | ||
| 2 | +# quarot 配置说明 | ||
| 3 | + | ||
| 4 | +## 1. 配置概述 | ||
| 5 | + | ||
| 6 | +QuaRot(离线旋转)处理器配置。 | ||
| 7 | + | ||
| 8 | +| 项目 | 内容 | | ||
| 9 | +|------|------| | ||
| 10 | +| 配置类 | `QuaRotProcessorConfig` | | ||
| 11 | +| 源码 | [quarot.py](../../../../../msmodelslim/processor/quarot/offline_quarot/quarot.py) | | ||
| 12 | + | ||
| 13 | +## 2. 参数列表 | ||
| 14 | + | ||
| 15 | +<h3 id="2-1-quarot">2.1 QuaRotProcessorConfig</h3> | ||
| 16 | + | ||
| 17 | +| 字段路径 | 类型 | 必选/可选 | 默认值 | 取值范围或格式 | 含义 | 引用配置 | | ||
| 18 | +|----------|------|-----------|--------|----------------|------|----------| | ||
| 19 | +| `type` | `string` | 可选 | `quarot` | `quarot` | 处理器类型,固定为 `quarot`。 | 无 | | ||
| 20 | +| `online` | `bool` | 可选 | `false` | — | 是否在线旋转(默认离线)。 | 无 | | ||
| 21 | +| `block_size` | `int` | 可选 | `-1` | — | 旋转块大小,-1 表示按 hidden_dim 整块旋转。 | 无 | | ||
| 22 | +| `down_proj_online_layers` | `list[int]` | 可选 | `[]` | — | 需要在线旋转的 down_proj 层索引列表。 | 无 | | ||
| 23 | +| `max_tp_size` | `int` | 可选 | `4` | — | 最大 TP(Tensor Parallelism,张量并行)并行度,必须为2的幂。 | 无 | | ||
| 24 | +| `export_extra_info` | `bool` | 可选 | `true` | — | 是否导出 `optional.quarot.global_rotation` 旋转信息,用于下游部署。 | 无 | | ||
| 25 | + | ||
| 26 | +**配置约束** | ||
| 27 | + | ||
| 28 | +- 校验 max_tp_size:必须大于等于1且为2的幂 | ||
| 29 | +- 校验 block_size:取值范围为-1或2的非负整数次幂 | ||
| 30 | + | ||
| 31 | +## 3. 完整配置参考 | ||
| 32 | + | ||
| 33 | +```yaml | ||
| 34 | +apiversion: modelslim_v1 | ||
| 35 | +spec: | ||
| 36 | + process: | ||
| 37 | + - type: quarot | ||
| 38 | + online: false | ||
| 39 | + block_size: -1 | ||
| 40 | + down_proj_online_layers: [] | ||
| 41 | + max_tp_size: 4 | ||
| 42 | + export_extra_info: true | ||
| 43 | +``` | ||
| @@ -0,0 +1,35 @@ | |||
| 1 | +<!-- generated-by: skills/docs-management/scripts/gen_quant_config_docs.py ; class: msmodelslim.processor.save.processor.QuantSaveProcessorConfig --> | ||
| 2 | +# saver 配置说明 | ||
| 3 | + | ||
| 4 | +## 1. 配置概述 | ||
| 5 | + | ||
| 6 | +统一保存处理器配置。 | ||
| 7 | + | ||
| 8 | +| 项目 | 内容 | | ||
| 9 | +|------|------| | ||
| 10 | +| 配置类 | `QuantSaveProcessorConfig` | | ||
| 11 | +| 源码 | [processor.py](../../../../../msmodelslim/processor/save/processor.py) | | ||
| 12 | + | ||
| 13 | +## 2. 参数列表 | ||
| 14 | + | ||
| 15 | +<h3 id="2-1-saver">2.1 QuantSaveProcessorConfig</h3> | ||
| 16 | + | ||
| 17 | +| 字段路径 | 类型 | 必选/可选 | 默认值 | 取值范围或格式 | 含义 | 引用配置 | | ||
| 18 | +|----------|------|-----------|--------|----------------|------|----------| | ||
| 19 | +| `type` | `string` | 可选 | `saver` | `saver` | 处理器类型,固定为 `saver`。 | 无 | | ||
| 20 | +| `format` | `object` | 必选 | 无 | — | 导出格式配置(单对象),见《QuantFormatConfig 配置说明》;由保存处理器自动注入。 | QuantFormatConfig | | ||
| 21 | + | ||
| 22 | +**配置约束** | ||
| 23 | + | ||
| 24 | +- 无。 | ||
| 25 | + | ||
| 26 | +## 3. 完整配置参考 | ||
| 27 | + | ||
| 28 | +```yaml | ||
| 29 | +apiversion: modelslim_v1 | ||
| 30 | +spec: | ||
| 31 | + process: | ||
| 32 | + - type: saver | ||
| 33 | + format: | ||
| 34 | + type: _auto_save | ||
| 35 | +``` | ||
| @@ -0,0 +1,38 @@ | |||
| 1 | +<!-- generated-by: skills/docs-management/scripts/gen_quant_config_docs.py ; class: msmodelslim.processor.anti_outlier.smooth_quant.processor.SmoothQuantProcessorConfig --> | ||
| 2 | +# smooth_quant 配置说明 | ||
| 3 | + | ||
| 4 | +## 1. 配置概述 | ||
| 5 | + | ||
| 6 | +SmoothQuant 平滑量化处理器配置。 | ||
| 7 | + | ||
| 8 | +| 项目 | 内容 | | ||
| 9 | +|------|------| | ||
| 10 | +| 配置类 | `SmoothQuantProcessorConfig` | | ||
| 11 | +| 源码 | [processor.py](../../../../../msmodelslim/processor/anti_outlier/smooth_quant/processor.py) | | ||
| 12 | + | ||
| 13 | +## 2. 参数列表 | ||
| 14 | + | ||
| 15 | +<h3 id="2-1-smooth-quant">2.1 SmoothQuantProcessorConfig</h3> | ||
| 16 | + | ||
| 17 | +| 字段路径 | 类型 | 必选/可选 | 默认值 | 取值范围或格式 | 含义 | 引用配置 | | ||
| 18 | +|----------|------|-----------|--------|----------------|------|----------| | ||
| 19 | +| `type` | `string` | 可选 | `smooth_quant` | `smooth_quant` | 处理器类型,固定为 `smooth_quant`。 | 无 | | ||
| 20 | +| `alpha` | `float` | 可选 | `0.5` | — | 平滑迁移强度(0~1),越大表示把越多的激活离群值迁移到权重。 | 无 | | ||
| 21 | +| `symmetric` | `bool` | 可选 | `true` | — | 是否对称量化;影响平滑后量化的对称性。 | 无 | | ||
| 22 | +| `include` | `list[string] / null` | 可选 | `null` | — | 包含的模块名称模式;不设置表示全部匹配。 | 无 | | ||
| 23 | +| `exclude` | `list[string] / null` | 可选 | `null` | — | 排除的模块名称模式,优先级高于 `include`。 | 无 | | ||
| 24 | + | ||
| 25 | +**配置约束** | ||
| 26 | + | ||
| 27 | +- 无。 | ||
| 28 | + | ||
| 29 | +## 3. 完整配置参考 | ||
| 30 | + | ||
| 31 | +```yaml | ||
| 32 | +apiversion: modelslim_v1 | ||
| 33 | +spec: | ||
| 34 | + process: | ||
| 35 | + - type: smooth_quant | ||
| 36 | + alpha: 0.5 | ||
| 37 | + symmetric: true | ||
| 38 | +``` | ||
| @@ -0,0 +1,39 @@ | |||
| 1 | +<!-- generated-by: skills/docs-management/scripts/gen_quant_config_docs.py ; class: msmodelslim.processor.svd_residual.processor.SVDResidualProcessorConfig --> | ||
| 2 | +# svd_res 配置说明 | ||
| 3 | + | ||
| 4 | +## 1. 配置概述 | ||
| 5 | + | ||
| 6 | +SVD 残差(低秩补偿)处理器配置。 | ||
| 7 | + | ||
| 8 | +| 项目 | 内容 | | ||
| 9 | +|------|------| | ||
| 10 | +| 配置类 | `SVDResidualProcessorConfig` | | ||
| 11 | +| 源码 | [processor.py](../../../../../msmodelslim/processor/svd_residual/processor.py) | | ||
| 12 | + | ||
| 13 | +## 2. 参数列表 | ||
| 14 | + | ||
| 15 | +<h3 id="2-1-svd-res">2.1 SVDResidualProcessorConfig</h3> | ||
| 16 | + | ||
| 17 | +| 字段路径 | 类型 | 必选/可选 | 默认值 | 取值范围或格式 | 含义 | 引用配置 | | ||
| 18 | +|----------|------|-----------|--------|----------------|------|----------| | ||
| 19 | +| `type` | `string` | 可选 | `svd_res` | `svd_res` | 处理器类型,固定为 `svd_res`。 | 无 | | ||
| 20 | +| `rank` | `int` | 可选 | `32` | >0 | 低秩分解的秩,必须大于0 | 无 | | ||
| 21 | +| `include` | `list[string]` | 可选 | `['*']` | — | 包含的模块名称模式,默认 `*` 匹配全部模块 | 无 | | ||
| 22 | +| `exclude` | `list[string]` | 可选 | `[]` | — | 排除的模块名称模式,优先级高于 `include` | 无 | | ||
| 23 | + | ||
| 24 | +**配置约束** | ||
| 25 | + | ||
| 26 | +- 无。 | ||
| 27 | + | ||
| 28 | +## 3. 完整配置参考 | ||
| 29 | + | ||
| 30 | +```yaml | ||
| 31 | +apiversion: modelslim_v1 | ||
| 32 | +spec: | ||
| 33 | + process: | ||
| 34 | + - type: svd_res | ||
| 35 | + rank: 32 | ||
| 36 | + include: | ||
| 37 | + - '*' | ||
| 38 | + exclude: [] | ||
| 39 | +``` | ||
| @@ -0,0 +1,233 @@ | |||
| 1 | +<!-- generated-by: skills/docs-management/scripts/gen_quant_config_docs.py ; class: msmodelslim.processor.trainable_linear_quant.config.processor_config.TrainableLinearQuantProcessorConfig --> | ||
| 2 | +# trainable_linear_quant 配置说明 | ||
| 3 | + | ||
| 4 | +## 1. 配置概述 | ||
| 5 | + | ||
| 6 | +可训练线性量化(TLQ)处理器配置。 | ||
| 7 | + | ||
| 8 | +| 项目 | 内容 | | ||
| 9 | +|------|------| | ||
| 10 | +| 配置类 | `TrainableLinearQuantProcessorConfig` | | ||
| 11 | +| 源码 | [processor_config.py](../../../../../msmodelslim/processor/trainable_linear_quant/config/processor_config.py) | | ||
| 12 | + | ||
| 13 | +## 2. 参数列表 | ||
| 14 | + | ||
| 15 | +<h3 id="2-1-trainable-linear-quant">2.1 TrainableLinearQuantProcessorConfig</h3> | ||
| 16 | + | ||
| 17 | +| 字段路径 | 类型 | 必选/可选 | 默认值 | 取值范围或格式 | 含义 | 引用配置 | | ||
| 18 | +|----------|------|-----------|--------|----------------|------|----------| | ||
| 19 | +| `type` | `string` | 可选 | `trainable_linear_quant` | `trainable_linear_quant` | 处理器类型,固定为 `trainable_linear_quant`。 | 无 | | ||
| 20 | +| `operations` | `list[object]` | 可选 | `[MinmaxTuneOpConfig(type='minmax_tune', lr=None), RoundTuneOpConfig(type='round_tune', lr=None)]` | 最少1项 | 可训练量化管线 OP 配置列表;每项含 type,其余字段由各插件定义 | 本页 <a href="#2-2-tlq-op-config">§2.2</a> | | ||
| 21 | +| `strategies` | `list[object]` | 可选 | `[]` | 最少1项 | 量化策略配置列表;未提供时为空列表,不应用量化策略;若显式提供则至少 1 项。 | 本页 <a href="#2-6-tlq-quant-strategy-config">§2.6</a> | | ||
| 22 | +| `train_with_act_quant` | `bool` | 可选 | `false` | — | 块级训练前向是否对激活做伪量化(经 x_kernel);false 与 autoround 的 train_with_act_quant=False 一致;导出 IR 仍由 qconfig.act 决定,不受此项影响 | 无 | | ||
| 23 | +| `enable_quanted_input` | `bool` | 可选 | `false` | — | 是否将本层量化前向结果作为下一层训练/量化传播的旁路输入(q_input);不影响浮点 teacher:Runner 层间 datas 始终传递 teacher 输出 | 无 | | ||
| 24 | +| `train_config` | `object` | 可选 | 见嵌套配置默认值 | — | 块级 Trainer 超参:iters、gradient_accumulate_steps、select_best、lr(或 learning_rate)、loss_type;各 OP 可单独配置 lr 覆盖全局值 | 本页 <a href="#2-9-block-train-config">§2.9</a> | | ||
| 25 | + | ||
| 26 | +**配置约束** | ||
| 27 | + | ||
| 28 | +- 归一化 operations:接受单个 dict 或列表;未提供或格式不合法时回退为默认 minmax_tune + round_tune 管线。 | ||
| 29 | + | ||
| 30 | +<h3 id="2-2-tlq-op-config">2.2 TLQOpConfig</h3> | ||
| 31 | + | ||
| 32 | +| 字段路径 | 类型 | 必选/可选 | 默认值 | 取值范围或格式 | 含义 | 引用配置 | | ||
| 33 | +|----------|------|-----------|--------|----------------|------|----------| | ||
| 34 | +| `type` | `string` | 必选 | 无 | — | 算子类型,分派具体 TLQ 算子(如 `minmax_tune`、`round_tune`)。 | 无 | | ||
| 35 | +| `lr` | `float / null` | 可选 | `null` | >0.0 | 该 Op 可训练参数学习率;未指定时使用 train_config.lr | 无 | | ||
| 36 | + | ||
| 37 | +**配置约束** | ||
| 38 | + | ||
| 39 | +- 无。 | ||
| 40 | + | ||
| 41 | +**派生类** | ||
| 42 | + | ||
| 43 | +- `MinmaxTuneOpConfig`(`type: minmax_tune`) — `MinmaxTuneOpConfig` 是嵌套配置。 本页 <a href="#2-3-minmax-tune">§2.3</a> | ||
| 44 | +- `RoundTuneOpConfig`(`type: round_tune`) — `RoundTuneOpConfig` 是嵌套配置。 本页 <a href="#2-4-round-tune">§2.4</a> | ||
| 45 | +- `TrainableSmoothOpConfig`(`type: trainable_smooth`) — `TrainableSmoothOpConfig` 是嵌套配置。 本页 <a href="#2-5-trainable-smooth">§2.5</a> | ||
| 46 | + | ||
| 47 | +<h4 id="2-3-minmax-tune">2.3 MinmaxTuneOpConfig</h4> | ||
| 48 | + | ||
| 49 | +| 字段路径 | 类型 | 必选/可选 | 默认值 | 取值范围或格式 | 含义 | 引用配置 | | ||
| 50 | +|----------|------|-----------|--------|----------------|------|----------| | ||
| 51 | +| `type` | `string` | 可选 | `minmax_tune` | `minmax_tune` | 插件类型:minmax_tune | 无 | | ||
| 52 | +| `lr` | `float / null` | 可选 | `null` | >0.0 | — | 无 | | ||
| 53 | + | ||
| 54 | +**配置约束** | ||
| 55 | + | ||
| 56 | +- 无。 | ||
| 57 | + | ||
| 58 | +<h4 id="2-4-round-tune">2.4 RoundTuneOpConfig</h4> | ||
| 59 | + | ||
| 60 | +| 字段路径 | 类型 | 必选/可选 | 默认值 | 取值范围或格式 | 含义 | 引用配置 | | ||
| 61 | +|----------|------|-----------|--------|----------------|------|----------| | ||
| 62 | +| `type` | `string` | 可选 | `round_tune` | `round_tune` | 插件类型:round_tune | 无 | | ||
| 63 | +| `lr` | `float / null` | 可选 | `null` | >0.0 | — | 无 | | ||
| 64 | + | ||
| 65 | +**配置约束** | ||
| 66 | + | ||
| 67 | +- 无。 | ||
| 68 | + | ||
| 69 | +<h4 id="2-5-trainable-smooth">2.5 TrainableSmoothOpConfig</h4> | ||
| 70 | + | ||
| 71 | +| 字段路径 | 类型 | 必选/可选 | 默认值 | 取值范围或格式 | 含义 | 引用配置 | | ||
| 72 | +|----------|------|-----------|--------|----------------|------|----------| | ||
| 73 | +| `type` | `string` | 可选 | `trainable_smooth` | `trainable_smooth` | 插件类型:trainable_smooth | 无 | | ||
| 74 | +| `lr` | `float / null` | 可选 | `null` | >0.0 | — | 无 | | ||
| 75 | +| `enable_subgraph_type` | `list[string]` | 可选 | `['norm-linear', 'linear-linear', 'ov', 'up-down', 'non-fusion']` | — | 启用的 Smooth 子图类型,须为 SMOOTH_SUPPORTED_SUBGRAPH_TYPES 子集 | 无 | | ||
| 76 | +| `include` | `list[string] / null` | 可选 | `null` | — | 子图入口 include 通配 | 无 | | ||
| 77 | +| `exclude` | `list[string] / null` | 可选 | `null` | — | 子图入口 exclude 通配 | 无 | | ||
| 78 | + | ||
| 79 | +**配置约束** | ||
| 80 | + | ||
| 81 | +- 无。 | ||
| 82 | + | ||
| 83 | +<h3 id="2-6-tlq-quant-strategy-config">2.6 QuantStrategyConfig</h3> | ||
| 84 | + | ||
| 85 | +trainable_linear_quant 量化策略:对匹配的线性层应用一组可训练量化配置。 | ||
| 86 | + | ||
| 87 | +| 字段路径 | 类型 | 必选/可选 | 默认值 | 取值范围或格式 | 含义 | 引用配置 | | ||
| 88 | +|----------|------|-----------|--------|----------------|------|----------| | ||
| 89 | +| `qconfig` | `object` | 必选 | 无 | — | 激活与权重的量化配置,见《LinearQConfig 配置说明》。 | 本页 <a href="#2-7-linear-qconfig">§2.7</a> | | ||
| 90 | +| `include` | `list[string]` | 可选 | `['*']` | — | 包含的模块名称模式,默认 `*` 匹配全部模块 | 无 | | ||
| 91 | +| `exclude` | `list[string]` | 可选 | `[]` | — | 排除的模块名称模式,优先级高于 `include` | 无 | | ||
| 92 | + | ||
| 93 | +**配置约束** | ||
| 94 | + | ||
| 95 | +- 校验 qconfig:dtype/method 组合须有对应 TLQ kernel 支持,否则报错。 | ||
| 96 | + | ||
| 97 | +<h3 id="2-7-linear-qconfig">2.7 LinearQConfig</h3> | ||
| 98 | + | ||
| 99 | +线性层(Linear)的量化配置,含激活与权重两路量化。 | ||
| 100 | + | ||
| 101 | +| 字段路径 | 类型 | 必选/可选 | 默认值 | 取值范围或格式 | 含义 | 引用配置 | | ||
| 102 | +|----------|------|-----------|--------|----------------|------|----------| | ||
| 103 | +| `act` | `object` | 可选 | `{'dtype': 'float', 'scope': 'per_tensor', 'symmetric': True, 'method': 'none', 'ext': {}}` | — | 激活值的量化配置。默认 `float`(不量化激活),仅对权重做量化。 | 本页 <a href="#2-8-qconfig">§2.8</a> | | ||
| 104 | +| `weight` | `object` | 必选 | 无 | — | 权重的量化配置,必选。 | 本页 <a href="#2-8-qconfig">§2.8</a> | | ||
| 105 | + | ||
| 106 | +**配置约束** | ||
| 107 | + | ||
| 108 | +- 无。 | ||
| 109 | + | ||
| 110 | +<h3 id="2-8-qconfig">2.8 QConfig</h3> | ||
| 111 | + | ||
| 112 | +描述单个张量(权重或激活)的量化方式。 | ||
| 113 | + | ||
| 114 | +| 字段路径 | 类型 | 必选/可选 | 默认值 | 取值范围或格式 | 含义 | 引用配置 | | ||
| 115 | +|----------|------|-----------|--------|----------------|------|----------| | ||
| 116 | +| `dtype` | `string` | 必选 | 无 | `float`、`int8`、`int4`、`mxfp8`、`mxfp4`、`fp8_e4m3` | 量化数据类型,如 `int8`、`int4`、`mxfp8`、`mxfp4`、`fp8_e4m3`;`float` 表示该张量不量化。 | 无 | | ||
| 117 | +| `scope` | `string` | 必选 | 无 | `per_tensor`、`per_channel`、`per_group`、`per_block`、`per_token`、`pd_mix`、`per_head`、`dual_scale` | 量化粒度,即 scale/zero_point 的计算范围:`per_tensor`(整张量一个尺度)、`per_channel`(按通道)、`per_group`/`per_block`(按分组或固定块)、`per_token`(按 token)、`per_head`(按注意力头)、`dual_scale`(双尺度)等;合法取值组合取决于 `dtype` 与量化器实现。 | 无 | | ||
| 118 | +| `symmetric` | `bool` | 必选 | 无 | — | 是否对称量化。对称量化只保存 scale;非对称量化额外保存 zero_point,可用性取决于 `dtype`/`scope` 组合。 | 无 | | ||
| 119 | +| `method` | `string` | 必选 | 无 | — | 量化参数估计算法,如 `minmax`、`mse_round`、`histogram`、`ssz`、`none` 等;可用取值取决于 `dtype`/`scope`/`symmetric` 组合,`none` 表示不估计参数(配合 `float` 使用)。 | 无 | | ||
| 120 | +| `ext` | `object` | 可选 | `{}` | — | 量化器扩展参数,随 `method` 与量化器实现而定(如 gptq 的 `percdamp`/`group_size`);空对象表示无扩展参数。 | 无 | | ||
| 121 | + | ||
| 122 | +**配置约束** | ||
| 123 | + | ||
| 124 | +- 无。 | ||
| 125 | + | ||
| 126 | +<h3 id="2-9-block-train-config">2.9 BlockTrainConfig</h3> | ||
| 127 | + | ||
| 128 | +块级训练(block train)超参配置。 | ||
| 129 | + | ||
| 130 | +| 字段路径 | 类型 | 必选/可选 | 默认值 | 取值范围或格式 | 含义 | 引用配置 | | ||
| 131 | +|----------|------|-----------|--------|----------------|------|----------| | ||
| 132 | +| `iters` | `int` | 可选 | `50` | ≥0 | 块级训练迭代次数;为 0 时 Trainer 跳过优化 | 无 | | ||
| 133 | +| `gradient_accumulate_steps` | `int` | 可选 | `8` | ≥1 | 梯度累加步数,用于在有限显存下调节等效 batch | 无 | | ||
| 134 | +| `lr` | `float` | 可选 | `0.01` | >0.0 | 全局基础学习率 | 无 | | ||
| 135 | +| `select_best` | `object` | 可选 | 见嵌套配置默认值 | — | 最优 iter 快照策略(按 mode 区分字段:ema / min_loss / last) | 本页 <a href="#2-10-selectbestconfig">§2.10</a> | | ||
| 136 | +| `loss_type` | `string` | 可选 | `l1` | `l1`、`custom_outlier` | 块级训练损失:l1(L1Loss reduction=none)、custom_outlier(0.3*全量 L1 + 0.7*3σ 内区域 L1) | 无 | | ||
| 137 | +| `train_seed` | `int` | 可选 | `42` | — | 块级训练随机种子(用于 sample 打乱与确定性算子) | 无 | | ||
| 138 | + | ||
| 139 | +**配置约束** | ||
| 140 | + | ||
| 141 | +- 无。 | ||
| 142 | + | ||
| 143 | +<h3 id="2-10-selectbestconfig">2.10 SelectBestConfig(按 `mode` 分派)</h3> | ||
| 144 | + | ||
| 145 | +**派生类** | ||
| 146 | + | ||
| 147 | +- `EmaSelectBest`(`mode: ema`) — EMA 滑动平均选最优;支持 early stop。 本页 <a href="#2-11-ema-select-best">§2.11</a> | ||
| 148 | +- `MinLossSelectBest`(`mode: min_loss`) — 当轮 loss 历史最小值选最优;支持 early stop。 本页 <a href="#2-12-min-loss-select-best">§2.12</a> | ||
| 149 | +- `LastSelectBest`(`mode: last`) — 仅保存 iter 0 与最后一轮;无 early stop。 本页 <a href="#2-13-last-select-best">§2.13</a> | ||
| 150 | + | ||
| 151 | +<h4 id="2-11-ema-select-best">2.11 EmaSelectBest</h4> | ||
| 152 | + | ||
| 153 | +EMA 滑动平均选最优;支持 early stop。 | ||
| 154 | + | ||
| 155 | +| 字段路径 | 类型 | 必选/可选 | 默认值 | 取值范围或格式 | 含义 | 引用配置 | | ||
| 156 | +|----------|------|-----------|--------|----------------|------|----------| | ||
| 157 | +| `mode` | `string` | 可选 | `ema` | `ema` | 选取策略:ema | 无 | | ||
| 158 | +| `ema_beta` | `float` | 可选 | `0.7` | >0.0;≤1.0 | best_loss 的 EMA 衰减系数 | 无 | | ||
| 159 | +| `ema_window_size` | `int` | 可选 | `5` | ≥1 | mean_loss 滑动平均窗口长度 | 无 | | ||
| 160 | +| `early_stop_patience` | `int` | 可选 | `-1` | ≥-1 | 连续多少 iter 无更优快照后早停;-1 表示禁用 | 无 | | ||
| 161 | + | ||
| 162 | +**配置约束** | ||
| 163 | + | ||
| 164 | +- 无。 | ||
| 165 | + | ||
| 166 | +<h4 id="2-12-min-loss-select-best">2.12 MinLossSelectBest</h4> | ||
| 167 | + | ||
| 168 | +当轮 loss 历史最小值选最优;支持 early stop。 | ||
| 169 | + | ||
| 170 | +| 字段路径 | 类型 | 必选/可选 | 默认值 | 取值范围或格式 | 含义 | 引用配置 | | ||
| 171 | +|----------|------|-----------|--------|----------------|------|----------| | ||
| 172 | +| `mode` | `string` | 可选 | `min_loss` | `min_loss` | 选取策略:min_loss | 无 | | ||
| 173 | +| `early_stop_patience` | `int` | 可选 | `-1` | ≥-1 | 连续多少 iter 无更优快照后早停;-1 表示禁用 | 无 | | ||
| 174 | + | ||
| 175 | +**配置约束** | ||
| 176 | + | ||
| 177 | +- 无。 | ||
| 178 | + | ||
| 179 | +<h4 id="2-13-last-select-best">2.13 LastSelectBest</h4> | ||
| 180 | + | ||
| 181 | +仅保存 iter 0 与最后一轮;无 early stop。 | ||
| 182 | + | ||
| 183 | +| 字段路径 | 类型 | 必选/可选 | 默认值 | 取值范围或格式 | 含义 | 引用配置 | | ||
| 184 | +|----------|------|-----------|--------|----------------|------|----------| | ||
| 185 | +| `mode` | `string` | 可选 | `last` | `last` | 选取策略:last | 无 | | ||
| 186 | + | ||
| 187 | +**配置约束** | ||
| 188 | + | ||
| 189 | +- 无。 | ||
| 190 | + | ||
| 191 | +## 3. 完整配置参考 | ||
| 192 | + | ||
| 193 | +```yaml | ||
| 194 | +apiversion: modelslim_v1 | ||
| 195 | +spec: | ||
| 196 | + process: | ||
| 197 | + - type: trainable_linear_quant | ||
| 198 | + operations: | ||
| 199 | + - type: minmax_tune | ||
| 200 | + lr: null | ||
| 201 | + - type: round_tune | ||
| 202 | + lr: null | ||
| 203 | + strategies: | ||
| 204 | + - qconfig: | ||
| 205 | + act: | ||
| 206 | + dtype: float | ||
| 207 | + scope: per_tensor | ||
| 208 | + symmetric: true | ||
| 209 | + method: none | ||
| 210 | + ext: {} | ||
| 211 | + weight: | ||
| 212 | + dtype: int8 | ||
| 213 | + scope: per_channel | ||
| 214 | + symmetric: true | ||
| 215 | + method: minmax | ||
| 216 | + ext: {} | ||
| 217 | + include: | ||
| 218 | + - '*' | ||
| 219 | + exclude: [] | ||
| 220 | + train_with_act_quant: false | ||
| 221 | + enable_quanted_input: false | ||
| 222 | + train_config: | ||
| 223 | + iters: 50 | ||
| 224 | + gradient_accumulate_steps: 8 | ||
| 225 | + lr: 0.01 | ||
| 226 | + select_best: | ||
| 227 | + mode: ema | ||
| 228 | + ema_beta: 0.7 | ||
| 229 | + ema_window_size: 5 | ||
| 230 | + early_stop_patience: -1 | ||
| 231 | + loss_type: l1 | ||
| 232 | + train_seed: 42 | ||
| 233 | +``` | ||
| @@ -0,0 +1,37 @@ | |||
| 1 | +<!-- generated-by: skills/docs-management/scripts/gen_quant_config_docs.py ; class: msmodelslim.processor.analysis.unary_operator.processor.UnaryAnalysisProcessorConfig --> | ||
| 2 | +# unary_analysis 配置说明 | ||
| 3 | + | ||
| 4 | +## 1. 配置概述 | ||
| 5 | + | ||
| 6 | +一元(无量化)敏感性分析处理器配置。 | ||
| 7 | + | ||
| 8 | +| 项目 | 内容 | | ||
| 9 | +|------|------| | ||
| 10 | +| 配置类 | `UnaryAnalysisProcessorConfig` | | ||
| 11 | +| 源码 | [processor.py](../../../../../msmodelslim/processor/analysis/unary_operator/processor.py) | | ||
| 12 | + | ||
| 13 | +## 2. 参数列表 | ||
| 14 | + | ||
| 15 | +<h3 id="2-1-unary-analysis">2.1 UnaryAnalysisProcessorConfig</h3> | ||
| 16 | + | ||
| 17 | +| 字段路径 | 类型 | 必选/可选 | 默认值 | 取值范围或格式 | 含义 | 引用配置 | | ||
| 18 | +|----------|------|-----------|--------|----------------|------|----------| | ||
| 19 | +| `type` | `string` | 可选 | `unary_analysis` | `unary_analysis` | 处理器类型,固定为 `unary_analysis`。 | 无 | | ||
| 20 | +| `metrics` | `string` | 可选 | `kurtosis` | — | 分析指标:`quantile`(分位数)、`std`(标准差)、`kurtosis`(峰度) | 无 | | ||
| 21 | +| `patterns` | `list[string]` | 可选 | `['*']` | — | 待分析的层名模式列表,默认 `*` 匹配全部 | 无 | | ||
| 22 | + | ||
| 23 | +**配置约束** | ||
| 24 | + | ||
| 25 | +- 无。 | ||
| 26 | + | ||
| 27 | +## 3. 完整配置参考 | ||
| 28 | + | ||
| 29 | +```yaml | ||
| 30 | +apiversion: modelslim_v1 | ||
| 31 | +spec: | ||
| 32 | + process: | ||
| 33 | + - type: unary_analysis | ||
| 34 | + metrics: kurtosis | ||
| 35 | + patterns: | ||
| 36 | + - '*' | ||
| 37 | +``` | ||
| @@ -0,0 +1,177 @@ | |||
| 1 | +<!-- generated-by: skills/docs-management/scripts/gen_quant_config_docs.py ; class: msmodelslim.core.quant_service.modelslim_convert.quant_config.ModelslimConvertQuantConfig --> | ||
| 2 | +# modelslim_convert 配置说明 | ||
| 3 | + | ||
| 4 | +## 1. 配置概述 | ||
| 5 | + | ||
| 6 | +`modelslim_convert` 量化(权重转换)任务配置,位于 YAML 根节点。 | ||
| 7 | + | ||
| 8 | +| 项目 | 内容 | | ||
| 9 | +|------|------| | ||
| 10 | +| 配置类 | `ModelslimConvertQuantConfig` | | ||
| 11 | +| 源码 | [quant_config.py](../../../../../msmodelslim/core/quant_service/modelslim_convert/quant_config.py) | | ||
| 12 | + | ||
| 13 | +## 2. 参数列表 | ||
| 14 | + | ||
| 15 | +<h3 id="2-1-modelslim-convert">2.1 ModelslimConvertQuantConfig</h3> | ||
| 16 | + | ||
| 17 | +| 字段路径 | 类型 | 必选/可选 | 默认值 | 取值范围或格式 | 含义 | 引用配置 | | ||
| 18 | +|----------|------|-----------|--------|----------------|------|----------| | ||
| 19 | +| `apiversion` | `string` | 可选 | Unknown(代码占位;YAML 中须按任务类型显式指定) | `modelslim_v1`、`multimodal_vlm_modelslim_v1`、`multimodal_sd_modelslim_v1`、`modelslim_convert` | API 版本(任务类型),决定 spec 的结构:`modelslim_v1`、`multimodal_vlm_modelslim_v1`、`multimodal_sd_modelslim_v1`、`modelslim_convert`;YAML 中必须显式指定,默认值 `Unknown` 仅为代码内部占位,不可直接使用。 | 无 | | ||
| 20 | +| `spec` | `object` | 必选 | 无 | — | `modelslim_convert` 服务的 spec 结构。<br><br>声明权重名重命名/变换(`preprocess`)、线性层转换规则(`linears`)、<br>保存格式(`save`)、并行执行(`parallel`)与默认值(`defaults`)。 | 本页 <a href="#2-2-modelslim-convert-spec">§2.2</a> | | ||
| 21 | + | ||
| 22 | +**配置约束** | ||
| 23 | + | ||
| 24 | +- 无。 | ||
| 25 | + | ||
| 26 | +<h3 id="2-2-modelslim-convert-spec">2.2 ModelslimConvertServiceConfig</h3> | ||
| 27 | + | ||
| 28 | +`modelslim_convert` 服务的 spec 结构。 | ||
| 29 | + | ||
| 30 | +| 字段路径 | 类型 | 必选/可选 | 默认值 | 取值范围或格式 | 含义 | 引用配置 | | ||
| 31 | +|----------|------|-----------|--------|----------------|------|----------| | ||
| 32 | +| `preprocess` | `list[object]` | 可选 | `[]` | — | 预处理步骤列表,每项 `type` 为 `rename` 或 `convert`。 | 本页 <a href="#2-3-preprocessconfig">§2.3</a> | | ||
| 33 | +| `linears` | `list[object]` | 可选 | `[]` | — | 线性层转换规则列表。 | 本页 <a href="#2-8-linear-convert-config">§2.8</a> | | ||
| 34 | +| `save` | `list[object]` | 可选 | `[]` | — | 保存格式配置列表,取首个生效。 | 本页 <a href="#2-9-save-config">§2.9</a> | | ||
| 35 | +| `parallel` | `object` | 可选 | 见嵌套配置默认值 | — | 并行执行配置。 | 本页 <a href="#2-10-parallel-spec-config">§2.10</a> | | ||
| 36 | +| `defaults` | `object` | 可选 | 见嵌套配置默认值 | — | 字段缺省时的全局默认值。 | 本页 <a href="#2-11-convert-defaults">§2.11</a> | | ||
| 37 | + | ||
| 38 | +**配置约束** | ||
| 39 | + | ||
| 40 | +- 无。 | ||
| 41 | + | ||
| 42 | +<h3 id="2-3-preprocessconfig">2.3 PreprocessConfig</h3> | ||
| 43 | + | ||
| 44 | +**派生类** | ||
| 45 | + | ||
| 46 | +- `RenamePreprocessConfig`(`type: rename`) — `modelslim_convert` 预处理步骤之一:批量重命名权重张量。 本页 <a href="#2-4-rename">§2.4</a> | ||
| 47 | +- `ConvertPreprocessConfig`(`type: convert`) — `modelslim_convert` 预处理步骤之一:对匹配的线性层做权重变换(拆分/合并等)。 本页 <a href="#2-6-convert">§2.6</a> | ||
| 48 | + | ||
| 49 | +<h4 id="2-4-rename">2.4 RenamePreprocessConfig</h4> | ||
| 50 | + | ||
| 51 | +`modelslim_convert` 预处理步骤之一:批量重命名权重张量。 | ||
| 52 | + | ||
| 53 | +| 字段路径 | 类型 | 必选/可选 | 默认值 | 取值范围或格式 | 含义 | 引用配置 | | ||
| 54 | +|----------|------|-----------|--------|----------------|------|----------| | ||
| 55 | +| `type` | `string` | 可选 | `rename` | `rename` | 预处理类型,固定为 `rename`。 | 无 | | ||
| 56 | +| `patterns` | `list[object]` | 可选 | `[]` | — | 重命名规则列表,逐条应用到匹配的权重名。 | 本页 <a href="#2-5-rename-pattern">§2.5</a> | | ||
| 57 | + | ||
| 58 | +**配置约束** | ||
| 59 | + | ||
| 60 | +- 无。 | ||
| 61 | + | ||
| 62 | +<h3 id="2-5-rename-pattern">2.5 RenamePattern</h3> | ||
| 63 | + | ||
| 64 | +权重张量名重命名规则:把匹配 `from` 的权重名改写为 `to`。 | ||
| 65 | + | ||
| 66 | +| 字段路径 | 类型 | 必选/可选 | 默认值 | 取值范围或格式 | 含义 | 引用配置 | | ||
| 67 | +|----------|------|-----------|--------|----------------|------|----------| | ||
| 68 | +| `from` | `string` | 必选 | 无 | — | 源权重名模式,支持通配符;匹配到的权重名将被改写。 | 无 | | ||
| 69 | +| `to` | `string` | 必选 | 无 | — | 改写后的目标权重名模式。 | 无 | | ||
| 70 | + | ||
| 71 | +**配置约束** | ||
| 72 | + | ||
| 73 | +- 无。 | ||
| 74 | + | ||
| 75 | +<h4 id="2-6-convert">2.6 ConvertPreprocessConfig</h4> | ||
| 76 | + | ||
| 77 | +`modelslim_convert` 预处理步骤之一:对匹配的线性层做权重变换(拆分/合并等)。 | ||
| 78 | + | ||
| 79 | +| 字段路径 | 类型 | 必选/可选 | 默认值 | 取值范围或格式 | 含义 | 引用配置 | | ||
| 80 | +|----------|------|-----------|--------|----------------|------|----------| | ||
| 81 | +| `type` | `string` | 可选 | `convert` | `convert` | 预处理类型,固定为 `convert`。 | 无 | | ||
| 82 | +| `source` | `list[string]` | 可选 | `[]` | — | 源权重名模式列表(待变换的线性层)。 | 无 | | ||
| 83 | +| `target` | `list[string]` | 可选 | `[]` | — | 目标权重名模式列表(变换结果)。 | 无 | | ||
| 84 | +| `ops` | `list[object]` | 可选 | `[]` | — | 权重变换算子列表,如 `chunk`、`merge`。 | 本页 <a href="#2-7-convert-op-config">§2.7</a> | | ||
| 85 | + | ||
| 86 | +**配置约束** | ||
| 87 | + | ||
| 88 | +- 无。 | ||
| 89 | + | ||
| 90 | +<h3 id="2-7-convert-op-config">2.7 ConvertOpConfig</h3> | ||
| 91 | + | ||
| 92 | +`convert` 预处理步骤中的权重算子,如拆分/合并 fused 的 gate/up 投影。 | ||
| 93 | + | ||
| 94 | +| 字段路径 | 类型 | 必选/可选 | 默认值 | 取值范围或格式 | 含义 | 引用配置 | | ||
| 95 | +|----------|------|-----------|--------|----------------|------|----------| | ||
| 96 | +| `type` | `string` | 必选 | 无 | — | 算子类型:`chunk`(拆分 fused gate/up)、`merge`(合并 gate/up)或其他映射算子。 | 无 | | ||
| 97 | +| `dim` | `int / null` | 可选 | `null` | — | 拆分/合并维度:不指定时按算子类型自动推断,`chunk` 为 1,`merge` 为 0。 | 无 | | ||
| 98 | +| `projections` | `list[string] / null` | 可选 | `null` | — | `chunk` 拆出的投影名列表:不指定时自动推断为 `gate_proj`、`up_proj`。 | 无 | | ||
| 99 | + | ||
| 100 | +**配置约束** | ||
| 101 | + | ||
| 102 | +- 无。 | ||
| 103 | + | ||
| 104 | +<h3 id="2-8-linear-convert-config">2.8 LinearConvertConfig</h3> | ||
| 105 | + | ||
| 106 | +指定匹配的线性层转换到目标 IR 的规则。 | ||
| 107 | + | ||
| 108 | +| 字段路径 | 类型 | 必选/可选 | 默认值 | 取值范围或格式 | 含义 | 引用配置 | | ||
| 109 | +|----------|------|-----------|--------|----------------|------|----------| | ||
| 110 | +| `match` | `list[string]` | 可选 | `[]` | — | 匹配的线性层名称模式列表。 | 无 | | ||
| 111 | +| `target` | `string` | 必选 | 无 | `FLOAT`、`FP8_BLOCK`、`W8A8_MXFP8`、`W4A4_MXFP4`、`W4A8_MXFP8`、`INT4_PACKED`、`NVFP4_MODELOPT`、`HIFP4`、`UNKNOWN` | 转换目标 IR 类型,如 `W8A8_MXFP8`、`INT4_PACKED` 等。 | 无 | | ||
| 112 | +| `route` | `list[string] / string` | 可选 | `auto` | `FLOAT`、`FP8_BLOCK`、`W8A8_MXFP8`、`W4A4_MXFP4`、`W4A8_MXFP8`、`INT4_PACKED`、`NVFP4_MODELOPT`、`HIFP4`、`UNKNOWN`;`auto` | 转换路径:显式 IR 列表(首元素为源 IR),或 `auto` 由虚拟树按权重 dtype 推断。 | 无 | | ||
| 113 | + | ||
| 114 | +**配置约束** | ||
| 115 | + | ||
| 116 | +- 无。 | ||
| 117 | + | ||
| 118 | +<h3 id="2-9-save-config">2.9 SaveConfig</h3> | ||
| 119 | + | ||
| 120 | +`modelslim_convert` 的保存格式配置。 | ||
| 121 | + | ||
| 122 | +| 字段路径 | 类型 | 必选/可选 | 默认值 | 取值范围或格式 | 含义 | 引用配置 | | ||
| 123 | +|----------|------|-----------|--------|----------------|------|----------| | ||
| 124 | +| `type` | `string` | 可选 | `ascend_v1` | — | 保存格式:`ascend_v1`(昇腾,与 `ConvertDefaults.dst_format` 的 `ascendv1` 等价);`compressed_tensors`(HF 兼容 safetensors);`huggingface`/`hf` 是 `compressed_tensors` 的别名。 | 无 | | ||
| 125 | +| `part_file_size` | `int` | 可选 | `4` | — | 分片文件大小,单位 GB;0 表示不分片。 | 无 | | ||
| 126 | + | ||
| 127 | +**配置约束** | ||
| 128 | + | ||
| 129 | +- 无。 | ||
| 130 | + | ||
| 131 | +<h3 id="2-10-parallel-spec-config">2.10 ParallelSpecConfig</h3> | ||
| 132 | + | ||
| 133 | +`modelslim_convert` 的并行执行配置。 | ||
| 134 | + | ||
| 135 | +| 字段路径 | 类型 | 必选/可选 | 默认值 | 取值范围或格式 | 含义 | 引用配置 | | ||
| 136 | +|----------|------|-----------|--------|----------------|------|----------| | ||
| 137 | +| `workers` | `int` | 可选 | `1` | — | 并行 worker 数:1 表示单进程组内线程(可配 NPU);大于1 表示组间多进程 + 组内线程(CPU)。 | 无 | | ||
| 138 | +| `max_group_size` | `int / null` | 可选 | `null` | — | 单个依赖组的最大任务数,超过则拆成多个子组分散到不同进程;不设置表示不拆分。 | 无 | | ||
| 139 | +| `worker_device` | `string` | 可选 | `cpu` | — | worker 运行设备:`cpu` 或 `npu`。 | 无 | | ||
| 140 | +| `npu_max_workers` | `int` | 可选 | `1` | — | 仅 `workers=1` 且 `worker_device=npu` 时生效,限制组内并发以防显存溢出。 | 无 | | ||
| 141 | + | ||
| 142 | +**配置约束** | ||
| 143 | + | ||
| 144 | +- 无。 | ||
| 145 | + | ||
| 146 | +<h3 id="2-11-convert-defaults">2.11 ConvertDefaults</h3> | ||
| 147 | + | ||
| 148 | +转换规则未显式声明字段时的全局默认值。 | ||
| 149 | + | ||
| 150 | +| 字段路径 | 类型 | 必选/可选 | 默认值 | 取值范围或格式 | 含义 | 引用配置 | | ||
| 151 | +|----------|------|-----------|--------|----------------|------|----------| | ||
| 152 | +| `src_format` | `string` | 可选 | `auto` | — | 源权重格式;`auto` 由模型适配器/权重目录自动推断。 | 无 | | ||
| 153 | +| `dst_format` | `string` | 可选 | `ascendv1` | — | 目标保存格式:`ascendv1`(昇腾,与 `SaveConfig.type` 的 `ascend_v1` 等价);`compressed_tensors`(HF 兼容 safetensors);`huggingface`/`hf` 是 `compressed_tensors` 的别名。 | 无 | | ||
| 154 | +| `dst_ir` | `string / null` | 可选 | `null` | `FLOAT`、`FP8_BLOCK`、`W8A8_MXFP8`、`W4A4_MXFP4`、`W4A8_MXFP8`、`INT4_PACKED`、`NVFP4_MODELOPT`、`HIFP4`、`UNKNOWN` | 目标 IR 类型;不设置时由目标格式决定。 | 无 | | ||
| 155 | + | ||
| 156 | +**配置约束** | ||
| 157 | + | ||
| 158 | +- 无。 | ||
| 159 | + | ||
| 160 | +## 3. 完整配置参考 | ||
| 161 | + | ||
| 162 | +```yaml | ||
| 163 | +apiversion: modelslim_convert | ||
| 164 | +spec: | ||
| 165 | + preprocess: [] | ||
| 166 | + linears: [] | ||
| 167 | + save: [] | ||
| 168 | + parallel: | ||
| 169 | + workers: 1 | ||
| 170 | + max_group_size: null | ||
| 171 | + worker_device: cpu | ||
| 172 | + npu_max_workers: 1 | ||
| 173 | + defaults: | ||
| 174 | + src_format: auto | ||
| 175 | + dst_format: ascendv1 | ||
| 176 | + dst_ir: null | ||
| 177 | +``` | ||
| @@ -0,0 +1,103 @@ | |||
| 1 | +<!-- generated-by: skills/docs-management/scripts/gen_quant_config_docs.py ; class: msmodelslim.core.quant_service.modelslim_v1.quant_config.ModelslimV1QuantConfig --> | ||
| 2 | +# modelslim_v1 配置说明 | ||
| 3 | + | ||
| 4 | +## 1. 配置概述 | ||
| 5 | + | ||
| 6 | +`modelslim_v1` 量化任务配置,位于 YAML 根节点。 | ||
| 7 | + | ||
| 8 | +| 项目 | 内容 | | ||
| 9 | +|------|------| | ||
| 10 | +| 配置类 | `ModelslimV1QuantConfig` | | ||
| 11 | +| 源码 | [quant_config.py](../../../../../msmodelslim/core/quant_service/modelslim_v1/quant_config.py) | | ||
| 12 | + | ||
| 13 | +## 2. 参数列表 | ||
| 14 | + | ||
| 15 | +<h3 id="2-1-modelslim-v1">2.1 ModelslimV1QuantConfig</h3> | ||
| 16 | + | ||
| 17 | +| 字段路径 | 类型 | 必选/可选 | 默认值 | 取值范围或格式 | 含义 | 引用配置 | | ||
| 18 | +|----------|------|-----------|--------|----------------|------|----------| | ||
| 19 | +| `apiversion` | `string` | 可选 | Unknown(代码占位;YAML 中须按任务类型显式指定) | `modelslim_v1`、`multimodal_vlm_modelslim_v1`、`multimodal_sd_modelslim_v1`、`modelslim_convert` | API 版本(任务类型),决定 spec 的结构:`modelslim_v1`、`multimodal_vlm_modelslim_v1`、`multimodal_sd_modelslim_v1`、`modelslim_convert`;YAML 中必须显式指定,默认值 `Unknown` 仅为代码内部占位,不可直接使用。 | 无 | | ||
| 20 | +| `spec` | `object` | 必选 | 无 | — | `modelslim_v1` 服务的 spec 结构,声明量化流水线、保存格式与校准数据。 | 本页 <a href="#2-2-modelslim-v1-spec">§2.2</a> | | ||
| 21 | + | ||
| 22 | +**配置约束** | ||
| 23 | + | ||
| 24 | +- 无。 | ||
| 25 | + | ||
| 26 | +<h3 id="2-2-modelslim-v1-spec">2.2 ModelslimV1ServiceConfig</h3> | ||
| 27 | + | ||
| 28 | +`modelslim_v1` 服务的 spec 结构,声明量化流水线、保存格式与校准数据。 | ||
| 29 | + | ||
| 30 | +| 字段路径 | 类型 | 必选/可选 | 默认值 | 取值范围或格式 | 含义 | 引用配置 | | ||
| 31 | +|----------|------|-----------|--------|----------------|------|----------| | ||
| 32 | +| `runner` | `string` | 可选 | `auto` | `auto`、`model_wise`、`layer_wise`、`dp_layer_wise` | 流水线执行方式:`auto` 按设备数量自动选择(单设备 `layer_wise`,多设备 `dp_layer_wise`)、`model_wise` 整模型计算、`layer_wise` 逐层计算、`dp_layer_wise` 数据并行逐层计算。 | 无 | | ||
| 33 | +| `prior` | `list[object]` | 可选 | `[]` | — | 前置阶段列表,每阶段含 process 与 dataset | 本页 <a href="#2-3-prior-stage-config">§2.3</a> | | ||
| 34 | +| `process` | `list[object]` | 可选 | `[]` | — | 量化处理器链,按顺序执行;每个元素是 `type` 分派的处理器配置,如 `linear_quant`、`awq`、`smooth_quant` 等。 | 本页 <a href="#2-4-autoprocessorconfig">§2.4</a> | | ||
| 35 | +| `save` | `list[object]` | 可选 | `[]` | — | 保存格式列表,每个元素是 `type` 分派的保存格式配置,如 `ascendv1_saver`、`compressed_tensors`、`mindie_format_saver`。 | 本页 <a href="#2-5-quantformatconfig">§2.5</a> | | ||
| 36 | +| `dataset` | `string` | 可选 | `mix_calib.jsonl` | — | 校准数据集名称(`lab_calib` 下的文件名)或数据集路径,用于量化的参数估计与敏感性校准。 | 无 | | ||
| 37 | + | ||
| 38 | +**配置约束** | ||
| 39 | + | ||
| 40 | +- 无。 | ||
| 41 | + | ||
| 42 | +<h3 id="2-3-prior-stage-config">2.3 PriorStageConfig</h3> | ||
| 43 | + | ||
| 44 | +前置阶段配置:仅 process + dataset,用于如 adapt_rotation stage1 等先验阶段。 | ||
| 45 | + | ||
| 46 | +| 字段路径 | 类型 | 必选/可选 | 默认值 | 取值范围或格式 | 含义 | 引用配置 | | ||
| 47 | +|----------|------|-----------|--------|----------------|------|----------| | ||
| 48 | +| `process` | `list[object]` | 可选 | `[]` | — | 该阶段处理器列表 | 本页 <a href="#2-4-autoprocessorconfig">§2.4</a> | | ||
| 49 | +| `dataset` | `string / null` | 可选 | `null` | — | 该阶段数据集名称,不提供则使用 spec.dataset | 无 | | ||
| 50 | + | ||
| 51 | +**配置约束** | ||
| 52 | + | ||
| 53 | +- 无。 | ||
| 54 | + | ||
| 55 | +<h3 id="2-4-autoprocessorconfig">2.4 AutoProcessorConfig</h3> | ||
| 56 | + | ||
| 57 | +**派生类** | ||
| 58 | + | ||
| 59 | +- `AdaptRotationProcessorConfig`(`type: adapt_rotation`) — 自适应旋转(adapt_rotation)处理器配置。 《[adapt_rotation 配置说明](../processor/adapt_rotation.md)》 | ||
| 60 | +- `AutoroundProcessorConfig`(`type: autoround_quant`) — autoround 量化处理器配置。 《[autoround_quant 配置说明](../processor/autoround_quant.md)》 | ||
| 61 | +- `AWQProcessorConfig`(`type: awq`) — AWQ(Activation-aware Weight Quantization)处理器配置。 《[awq 配置说明](../processor/awq.md)》 | ||
| 62 | +- `BinaryAnalysisProcessorConfig`(`type: binary_analysis`) — 二值(有/无量化)敏感性分析处理器配置。 《[binary_analysis 配置说明](../processor/binary_analysis.md)》 | ||
| 63 | +- `BinaryOperatorLayerWiseProcessorConfig`(`type: binary_operator_layer_wise`) — 逐层敏感度分析处理器配置(对比逐块浮点与量化输出)。 《[binary_operator_layer_wise 配置说明](../processor/binary_operator_layer_wise.md)》 | ||
| 64 | +- `BinaryOperatorModelWiseProcessorConfig`(`type: binary_operator_model_wise`) — 模型级敏感性分析配置(对比模型最终输出,使用 MSE 指标) 《[binary_operator_model_wise 配置说明](../processor/binary_operator_model_wise.md)》 | ||
| 65 | +- `DynamicCacheProcessorConfig`(`type: dynamic_cache`) — KV cache 量化处理器配置。 《[dynamic_cache 配置说明](../processor/dynamic_cache.md)》 | ||
| 66 | +- `FA3QuantProcessorConfig`(`type: fa3_quant`) — FA3(FlashAttention-3)量化处理器配置。 《[fa3_quant 配置说明](../processor/fa3_quant.md)》 | ||
| 67 | +- `FlatQuantProcessorConfig`(`type: flatquant`) — FlatQuant处理器配置:定义量化训练参数、策略、混合精度等 《[flatquant 配置说明](../processor/flatquant.md)》 | ||
| 68 | +- `FlexAWQSSZProcessorConfig`(`type: flex_awq_ssz`) — FlexAWQSSZ 平滑+AWQ 处理器配置。 《[flex_awq_ssz 配置说明](../processor/flex_awq_ssz.md)》 | ||
| 69 | +- `FlexSmoothQuantProcessorConfig`(`type: flex_smooth_quant`) — FlexSmoothQuant 平滑量化处理器配置。 《[flex_smooth_quant 配置说明](../processor/flex_smooth_quant.md)》 | ||
| 70 | +- `FloatSparseProcessorConfig`(`type: float_sparse`) — 浮点稀疏处理器配置。 《[float_sparse 配置说明](../processor/float_sparse.md)》 | ||
| 71 | +- `GroupProcessorConfig`(`type: group`) — 处理器合并器配置。 《[group 配置说明](../processor/group.md)》 | ||
| 72 | +- `IterSmoothProcessorConfig`(`type: iter_smooth`) — 迭代平滑(IterativeSmooth)处理器配置。 《[iter_smooth 配置说明](../processor/iter_smooth.md)》 | ||
| 73 | +- `KVSmoothProcessorConfig`(`type: kv_smooth`) — KV cache 平滑处理器配置。 《[kv_smooth 配置说明](../processor/kv_smooth.md)》 | ||
| 74 | +- `LinearProcessorConfig`(`type: linear_quant`) — 线性层(Linear)量化处理器配置。 《[linear_quant 配置说明](../processor/linear_quant.md)》 | ||
| 75 | +- `LoadProcessorConfig`(`type: load`) — 模块加载/卸载处理器配置。 《[load 配置说明](../processor/load.md)》 | ||
| 76 | +- `OASQProcessorConfig`(`type: oasq`) — OASQ(Outlier-Aware Smooth Quantization)处理器配置。 《[oasq 配置说明](../processor/oasq.md)》 | ||
| 77 | +- `OnlineQuaRotProcessorConfig`(`type: online_quarot`) — 在线 QuaRot 旋转处理器配置。 《[online_quarot 配置说明](../processor/online_quarot.md)》 | ||
| 78 | +- `QuaRotProcessorConfig`(`type: quarot`) — QuaRot(离线旋转)处理器配置。 《[quarot 配置说明](../processor/quarot.md)》 | ||
| 79 | +- `QuantSaveProcessorConfig`(`type: saver`) — 统一保存处理器配置。 《[saver 配置说明](../processor/saver.md)》 | ||
| 80 | +- `SmoothQuantProcessorConfig`(`type: smooth_quant`) — SmoothQuant 平滑量化处理器配置。 《[smooth_quant 配置说明](../processor/smooth_quant.md)》 | ||
| 81 | +- `SVDResidualProcessorConfig`(`type: svd_res`) — SVD 残差(低秩补偿)处理器配置。 《[svd_res 配置说明](../processor/svd_res.md)》 | ||
| 82 | +- `TrainableLinearQuantProcessorConfig`(`type: trainable_linear_quant`) — 可训练线性量化(TLQ)处理器配置。 《[trainable_linear_quant 配置说明](../processor/trainable_linear_quant.md)》 | ||
| 83 | +- `UnaryAnalysisProcessorConfig`(`type: unary_analysis`) — 一元(无量化)敏感性分析处理器配置。 《[unary_analysis 配置说明](../processor/unary_analysis.md)》 | ||
| 84 | + | ||
| 85 | +<h3 id="2-5-quantformatconfig">2.5 QuantFormatConfig</h3> | ||
| 86 | + | ||
| 87 | +**派生类** | ||
| 88 | + | ||
| 89 | +- `AscendV1QuantFormatConfig`(`type: ascendv1_saver`) — AscendV1 保存格式配置,导出昇腾落盘格式的权重文件。 《[ascendv1_saver 配置说明](../format/ascendv1_saver.md)》 | ||
| 90 | +- `CompressedTensorsQuantFormatConfig`(`type: compressed_tensors`) — compressed_tensors 保存格式配置,导出 safetensors 权重与 config.json。 《[compressed_tensors 配置说明](../format/compressed_tensors.md)》 | ||
| 91 | +- `MindIEQuantFormatConfig`(`type: mindie_format_saver`) — MindIE 保存格式配置,导出 MindIE 落盘格式的权重文件。 《[mindie_format_saver 配置说明](../format/mindie_format_saver.md)》 | ||
| 92 | + | ||
| 93 | +## 3. 完整配置参考 | ||
| 94 | + | ||
| 95 | +```yaml | ||
| 96 | +apiversion: modelslim_v1 | ||
| 97 | +spec: | ||
| 98 | + runner: auto | ||
| 99 | + prior: [] | ||
| 100 | + process: [] | ||
| 101 | + save: [] | ||
| 102 | + dataset: mix_calib.jsonl | ||
| 103 | +``` | ||
| @@ -0,0 +1,138 @@ | |||
| 1 | +<!-- generated-by: skills/docs-management/scripts/gen_quant_config_docs.py ; class: msmodelslim.core.quant_service.multimodal_sd_v1.quant_config.MultimodalSDModelslimV1QuantConfig --> | ||
| 2 | +# multimodal_sd_modelslim_v1 配置说明 | ||
| 3 | + | ||
| 4 | +## 1. 配置概述 | ||
| 5 | + | ||
| 6 | +`multimodal_sd_modelslim_v1` 量化任务配置,位于 YAML 根节点。 | ||
| 7 | + | ||
| 8 | +| 项目 | 内容 | | ||
| 9 | +|------|------| | ||
| 10 | +| 配置类 | `MultimodalSDModelslimV1QuantConfig` | | ||
| 11 | +| 源码 | [quant_config.py](../../../../../msmodelslim/core/quant_service/multimodal_sd_v1/quant_config.py) | | ||
| 12 | + | ||
| 13 | +## 2. 参数列表 | ||
| 14 | + | ||
| 15 | +<h3 id="2-1-multimodal-sd-modelslim-v1">2.1 MultimodalSDModelslimV1QuantConfig</h3> | ||
| 16 | + | ||
| 17 | +| 字段路径 | 类型 | 必选/可选 | 默认值 | 取值范围或格式 | 含义 | 引用配置 | | ||
| 18 | +|----------|------|-----------|--------|----------------|------|----------| | ||
| 19 | +| `apiversion` | `string` | 可选 | Unknown(代码占位;YAML 中须按任务类型显式指定) | `modelslim_v1`、`multimodal_vlm_modelslim_v1`、`multimodal_sd_modelslim_v1`、`modelslim_convert` | API 版本(任务类型),决定 spec 的结构:`modelslim_v1`、`multimodal_vlm_modelslim_v1`、`multimodal_sd_modelslim_v1`、`modelslim_convert`;YAML 中必须显式指定,默认值 `Unknown` 仅为代码内部占位,不可直接使用。 | 无 | | ||
| 20 | +| `spec` | `object` | 必选 | 无 | — | `multimodal_sd_modelslim_v1` 服务的 spec 结构。<br><br>面向多模态生成(SD)模型:在通用字段之外支持按专家(`per_expert`)覆盖处理器链,<br>并提供多模态专用 `multimodal_sd_config`。 | 本页 <a href="#2-2-multimodal-sd-modelslim-v1-spec">§2.2</a> | | ||
| 21 | + | ||
| 22 | +**配置约束** | ||
| 23 | + | ||
| 24 | +- 无。 | ||
| 25 | + | ||
| 26 | +<h3 id="2-2-multimodal-sd-modelslim-v1-spec">2.2 MultimodalSDServiceConfig</h3> | ||
| 27 | + | ||
| 28 | +`multimodal_sd_modelslim_v1` 服务的 spec 结构。 | ||
| 29 | + | ||
| 30 | +| 字段路径 | 类型 | 必选/可选 | 默认值 | 取值范围或格式 | 含义 | 引用配置 | | ||
| 31 | +|----------|------|-----------|--------|----------------|------|----------| | ||
| 32 | +| `runner` | `string` | 可选 | `layer_wise` | `auto`、`model_wise`、`layer_wise`、`dp_layer_wise` | 流水线执行方式:`layer_wise` 逐层计算(默认)、`auto` 按设备数量自动选择、`model_wise` 整模型计算、`dp_layer_wise` 数据并行逐层计算。 | 无 | | ||
| 33 | +| `prior` | `list[object]` | 可选 | `[]` | — | 前置阶段列表,每阶段含 process 与 dataset | 本页 <a href="#2-3-prior-stage-config">§2.3</a> | | ||
| 34 | +| `process` | `list[object]` | 可选 | `[]` | — | 量化处理器链,按顺序执行;每个元素是 `type` 分派的处理器配置。 | 本页 <a href="#2-4-autoprocessorconfig">§2.4</a> | | ||
| 35 | +| `per_expert` | `object / null` | 可选 | `null` | — | 按专家覆盖 process;值为 Processor 列表。某专家在此出现则整链替换,否则回退 process | 本页 <a href="#2-4-autoprocessorconfig">§2.4</a> | | ||
| 36 | +| `save` | `list[object]` | 可选 | `[]` | — | 保存格式列表,每个元素是 `type` 分派的保存格式配置。 | 本页 <a href="#2-5-quantformatconfig">§2.5</a> | | ||
| 37 | +| `dataset` | `string` | 可选 | `mix_calib.jsonl` | — | 校准数据集名称(`lab_calib` 下的文件名)或数据集路径。 | 无 | | ||
| 38 | +| `multimodal_sd_config` | `object` | 可选 | 由工厂函数生成 | — | 多模态生成模型的专用配置,可为字典或 `MultimodalSDConfig` 实例,含 `dump_config` 与 `inference_config`。 | 本页 <a href="#2-6-multimodal-sd-config">§2.6</a> | | ||
| 39 | + | ||
| 40 | +**配置约束** | ||
| 41 | + | ||
| 42 | +- 无。 | ||
| 43 | + | ||
| 44 | +<h3 id="2-3-prior-stage-config">2.3 PriorStageConfig</h3> | ||
| 45 | + | ||
| 46 | +前置阶段配置:仅 process + dataset,用于如 adapt_rotation stage1 等先验阶段。 | ||
| 47 | + | ||
| 48 | +| 字段路径 | 类型 | 必选/可选 | 默认值 | 取值范围或格式 | 含义 | 引用配置 | | ||
| 49 | +|----------|------|-----------|--------|----------------|------|----------| | ||
| 50 | +| `process` | `list[object]` | 可选 | `[]` | — | 该阶段处理器列表 | 本页 <a href="#2-4-autoprocessorconfig">§2.4</a> | | ||
| 51 | +| `dataset` | `string / null` | 可选 | `null` | — | 该阶段数据集名称,不提供则使用 spec.dataset | 无 | | ||
| 52 | + | ||
| 53 | +**配置约束** | ||
| 54 | + | ||
| 55 | +- 无。 | ||
| 56 | + | ||
| 57 | +<h3 id="2-4-autoprocessorconfig">2.4 AutoProcessorConfig</h3> | ||
| 58 | + | ||
| 59 | +**派生类** | ||
| 60 | + | ||
| 61 | +- `AdaptRotationProcessorConfig`(`type: adapt_rotation`) — 自适应旋转(adapt_rotation)处理器配置。 《[adapt_rotation 配置说明](../processor/adapt_rotation.md)》 | ||
| 62 | +- `AutoroundProcessorConfig`(`type: autoround_quant`) — autoround 量化处理器配置。 《[autoround_quant 配置说明](../processor/autoround_quant.md)》 | ||
| 63 | +- `AWQProcessorConfig`(`type: awq`) — AWQ(Activation-aware Weight Quantization)处理器配置。 《[awq 配置说明](../processor/awq.md)》 | ||
| 64 | +- `BinaryAnalysisProcessorConfig`(`type: binary_analysis`) — 二值(有/无量化)敏感性分析处理器配置。 《[binary_analysis 配置说明](../processor/binary_analysis.md)》 | ||
| 65 | +- `BinaryOperatorLayerWiseProcessorConfig`(`type: binary_operator_layer_wise`) — 逐层敏感度分析处理器配置(对比逐块浮点与量化输出)。 《[binary_operator_layer_wise 配置说明](../processor/binary_operator_layer_wise.md)》 | ||
| 66 | +- `BinaryOperatorModelWiseProcessorConfig`(`type: binary_operator_model_wise`) — 模型级敏感性分析配置(对比模型最终输出,使用 MSE 指标) 《[binary_operator_model_wise 配置说明](../processor/binary_operator_model_wise.md)》 | ||
| 67 | +- `DynamicCacheProcessorConfig`(`type: dynamic_cache`) — KV cache 量化处理器配置。 《[dynamic_cache 配置说明](../processor/dynamic_cache.md)》 | ||
| 68 | +- `FA3QuantProcessorConfig`(`type: fa3_quant`) — FA3(FlashAttention-3)量化处理器配置。 《[fa3_quant 配置说明](../processor/fa3_quant.md)》 | ||
| 69 | +- `FlatQuantProcessorConfig`(`type: flatquant`) — FlatQuant处理器配置:定义量化训练参数、策略、混合精度等 《[flatquant 配置说明](../processor/flatquant.md)》 | ||
| 70 | +- `FlexAWQSSZProcessorConfig`(`type: flex_awq_ssz`) — FlexAWQSSZ 平滑+AWQ 处理器配置。 《[flex_awq_ssz 配置说明](../processor/flex_awq_ssz.md)》 | ||
| 71 | +- `FlexSmoothQuantProcessorConfig`(`type: flex_smooth_quant`) — FlexSmoothQuant 平滑量化处理器配置。 《[flex_smooth_quant 配置说明](../processor/flex_smooth_quant.md)》 | ||
| 72 | +- `FloatSparseProcessorConfig`(`type: float_sparse`) — 浮点稀疏处理器配置。 《[float_sparse 配置说明](../processor/float_sparse.md)》 | ||
| 73 | +- `GroupProcessorConfig`(`type: group`) — 处理器合并器配置。 《[group 配置说明](../processor/group.md)》 | ||
| 74 | +- `IterSmoothProcessorConfig`(`type: iter_smooth`) — 迭代平滑(IterativeSmooth)处理器配置。 《[iter_smooth 配置说明](../processor/iter_smooth.md)》 | ||
| 75 | +- `KVSmoothProcessorConfig`(`type: kv_smooth`) — KV cache 平滑处理器配置。 《[kv_smooth 配置说明](../processor/kv_smooth.md)》 | ||
| 76 | +- `LinearProcessorConfig`(`type: linear_quant`) — 线性层(Linear)量化处理器配置。 《[linear_quant 配置说明](../processor/linear_quant.md)》 | ||
| 77 | +- `LoadProcessorConfig`(`type: load`) — 模块加载/卸载处理器配置。 《[load 配置说明](../processor/load.md)》 | ||
| 78 | +- `OASQProcessorConfig`(`type: oasq`) — OASQ(Outlier-Aware Smooth Quantization)处理器配置。 《[oasq 配置说明](../processor/oasq.md)》 | ||
| 79 | +- `OnlineQuaRotProcessorConfig`(`type: online_quarot`) — 在线 QuaRot 旋转处理器配置。 《[online_quarot 配置说明](../processor/online_quarot.md)》 | ||
| 80 | +- `QuaRotProcessorConfig`(`type: quarot`) — QuaRot(离线旋转)处理器配置。 《[quarot 配置说明](../processor/quarot.md)》 | ||
| 81 | +- `QuantSaveProcessorConfig`(`type: saver`) — 统一保存处理器配置。 《[saver 配置说明](../processor/saver.md)》 | ||
| 82 | +- `SmoothQuantProcessorConfig`(`type: smooth_quant`) — SmoothQuant 平滑量化处理器配置。 《[smooth_quant 配置说明](../processor/smooth_quant.md)》 | ||
| 83 | +- `SVDResidualProcessorConfig`(`type: svd_res`) — SVD 残差(低秩补偿)处理器配置。 《[svd_res 配置说明](../processor/svd_res.md)》 | ||
| 84 | +- `TrainableLinearQuantProcessorConfig`(`type: trainable_linear_quant`) — 可训练线性量化(TLQ)处理器配置。 《[trainable_linear_quant 配置说明](../processor/trainable_linear_quant.md)》 | ||
| 85 | +- `UnaryAnalysisProcessorConfig`(`type: unary_analysis`) — 一元(无量化)敏感性分析处理器配置。 《[unary_analysis 配置说明](../processor/unary_analysis.md)》 | ||
| 86 | + | ||
| 87 | +<h3 id="2-5-quantformatconfig">2.5 QuantFormatConfig</h3> | ||
| 88 | + | ||
| 89 | +**派生类** | ||
| 90 | + | ||
| 91 | +- `AscendV1QuantFormatConfig`(`type: ascendv1_saver`) — AscendV1 保存格式配置,导出昇腾落盘格式的权重文件。 《[ascendv1_saver 配置说明](../format/ascendv1_saver.md)》 | ||
| 92 | +- `CompressedTensorsQuantFormatConfig`(`type: compressed_tensors`) — compressed_tensors 保存格式配置,导出 safetensors 权重与 config.json。 《[compressed_tensors 配置说明](../format/compressed_tensors.md)》 | ||
| 93 | +- `MindIEQuantFormatConfig`(`type: mindie_format_saver`) — MindIE 保存格式配置,导出 MindIE 落盘格式的权重文件。 《[mindie_format_saver 配置说明](../format/mindie_format_saver.md)》 | ||
| 94 | + | ||
| 95 | +<h3 id="2-6-multimodal-sd-config">2.6 MultimodalSDConfig</h3> | ||
| 96 | + | ||
| 97 | +多模态生成(SD)模型的专用配置,含 dump 与推理参数。 | ||
| 98 | + | ||
| 99 | +| 字段路径 | 类型 | 必选/可选 | 默认值 | 取值范围或格式 | 含义 | 引用配置 | | ||
| 100 | +|----------|------|-----------|--------|----------------|------|----------| | ||
| 101 | +| `dump_config` | `object` | 必选 | 无 | — | 浮点 dump 配置,必选。 | 本页 <a href="#2-7-dump-config">§2.7</a> | | ||
| 102 | +| `inference_config` | `object / null` | 可选 | `null` | — | 推理参数字典,经模型适配器的 InferenceConfig 类校验;与迁移期字段 `model_config` 互斥。 | 无 | | ||
| 103 | + | ||
| 104 | +**配置约束** | ||
| 105 | + | ||
| 106 | +- 校验 inference_config 与迁移期字段 model_config 互斥:两者同时提供时报错。 | ||
| 107 | + | ||
| 108 | +<h3 id="2-7-dump-config">2.7 DumpConfig</h3> | ||
| 109 | + | ||
| 110 | +多模态生成(SD)模型的浮点 dump 配置。 | ||
| 111 | + | ||
| 112 | +| 字段路径 | 类型 | 必选/可选 | 默认值 | 取值范围或格式 | 含义 | 引用配置 | | ||
| 113 | +|----------|------|-----------|--------|----------------|------|----------| | ||
| 114 | +| `enable_dump` | `bool` | 可选 | `true` | — | 是否在量化前对模型做浮点 dump(导出 pth 校准数据);`false` 时跳过 pth 加载与浮点 dump。 | 无 | | ||
| 115 | +| `capture_mode` | `string` | 可选 | `args` | `args` | dump 捕获模式,当前仅支持 `args`。 | 无 | | ||
| 116 | +| `dump_data_dir` | `string` | 可选 | `` | — | 浮点 dump 数据的输出目录;为空时回退到 save_path。 | 无 | | ||
| 117 | + | ||
| 118 | +**配置约束** | ||
| 119 | + | ||
| 120 | +- 无。 | ||
| 121 | + | ||
| 122 | +## 3. 完整配置参考 | ||
| 123 | + | ||
| 124 | +```yaml | ||
| 125 | +apiversion: multimodal_sd_modelslim_v1 | ||
| 126 | +spec: | ||
| 127 | + runner: layer_wise | ||
| 128 | + prior: [] | ||
| 129 | + process: [] | ||
| 130 | + save: | ||
| 131 | + - type: ascendv1_saver | ||
| 132 | + dataset: mix_calib.jsonl | ||
| 133 | + multimodal_sd_config: | ||
| 134 | + dump_config: | ||
| 135 | + enable_dump: true | ||
| 136 | + capture_mode: args | ||
| 137 | + dump_data_dir: '' | ||
| 138 | +``` | ||
| @@ -0,0 +1,106 @@ | |||
| 1 | +<!-- generated-by: skills/docs-management/scripts/gen_quant_config_docs.py ; class: msmodelslim.core.quant_service.multimodal_vlm_v1.quant_config.MultimodalVLMModelslimV1QuantConfig --> | ||
| 2 | +# multimodal_vlm_modelslim_v1 配置说明 | ||
| 3 | + | ||
| 4 | +## 1. 配置概述 | ||
| 5 | + | ||
| 6 | +`multimodal_vlm_modelslim_v1` 量化任务配置,位于 YAML 根节点。 | ||
| 7 | + | ||
| 8 | +| 项目 | 内容 | | ||
| 9 | +|------|------| | ||
| 10 | +| 配置类 | `MultimodalVLMModelslimV1QuantConfig` | | ||
| 11 | +| 源码 | [quant_config.py](../../../../../msmodelslim/core/quant_service/multimodal_vlm_v1/quant_config.py) | | ||
| 12 | + | ||
| 13 | +## 2. 参数列表 | ||
| 14 | + | ||
| 15 | +<h3 id="2-1-multimodal-vlm-modelslim-v1">2.1 MultimodalVLMModelslimV1QuantConfig</h3> | ||
| 16 | + | ||
| 17 | +| 字段路径 | 类型 | 必选/可选 | 默认值 | 取值范围或格式 | 含义 | 引用配置 | | ||
| 18 | +|----------|------|-----------|--------|----------------|------|----------| | ||
| 19 | +| `apiversion` | `string` | 可选 | Unknown(代码占位;YAML 中须按任务类型显式指定) | `modelslim_v1`、`multimodal_vlm_modelslim_v1`、`multimodal_sd_modelslim_v1`、`modelslim_convert` | API 版本(任务类型),决定 spec 的结构:`modelslim_v1`、`multimodal_vlm_modelslim_v1`、`multimodal_sd_modelslim_v1`、`modelslim_convert`;YAML 中必须显式指定,默认值 `Unknown` 仅为代码内部占位,不可直接使用。 | 无 | | ||
| 20 | +| `spec` | `object` | 必选 | 无 | — | `multimodal_vlm_modelslim_v1` 服务的 spec 结构。<br><br>面向多模态理解(VLM)模型:在 `ModelslimV1ServiceConfig` 基础上增加<br>`default_text` 提示词,用于图像类校准数据缺省文本时的默认输入。 | 本页 <a href="#2-2-multimodal-vlm-modelslim-v1-spec">§2.2</a> | | ||
| 21 | + | ||
| 22 | +**配置约束** | ||
| 23 | + | ||
| 24 | +- 无。 | ||
| 25 | + | ||
| 26 | +<h3 id="2-2-multimodal-vlm-modelslim-v1-spec">2.2 MultimodalVLMServiceConfig</h3> | ||
| 27 | + | ||
| 28 | +`multimodal_vlm_modelslim_v1` 服务的 spec 结构。 | ||
| 29 | + | ||
| 30 | +| 字段路径 | 类型 | 必选/可选 | 默认值 | 取值范围或格式 | 含义 | 引用配置 | | ||
| 31 | +|----------|------|-----------|--------|----------------|------|----------| | ||
| 32 | +| `runner` | `string` | 可选 | `auto` | `auto`、`model_wise`、`layer_wise`、`dp_layer_wise` | 流水线执行方式:`auto` 按设备数量自动选择(单设备 `layer_wise`,多设备 `dp_layer_wise`)、`model_wise` 整模型计算、`layer_wise` 逐层计算、`dp_layer_wise` 数据并行逐层计算。 | 无 | | ||
| 33 | +| `prior` | `list[object]` | 可选 | `[]` | — | 前置阶段列表,每阶段含 process 与 dataset | 本页 <a href="#2-3-prior-stage-config">§2.3</a> | | ||
| 34 | +| `process` | `list[object]` | 可选 | `[]` | — | 量化处理器链,按顺序执行;每个元素是 `type` 分派的处理器配置。 | 本页 <a href="#2-4-autoprocessorconfig">§2.4</a> | | ||
| 35 | +| `save` | `list[object]` | 可选 | `[]` | — | 保存格式列表,每个元素是 `type` 分派的保存格式配置。 | 本页 <a href="#2-5-quantformatconfig">§2.5</a> | | ||
| 36 | +| `dataset` | `string` | 可选 | `mix_calib.jsonl` | — | 校准数据集名称(`lab_calib` 下的文件名)或数据集路径。 | 无 | | ||
| 37 | +| `default_text` | `string` | 可选 | `Describe this image in detail.` | — | 校准数据缺少文本模态时,图像类样本使用的默认提示词。 | 无 | | ||
| 38 | + | ||
| 39 | +**配置约束** | ||
| 40 | + | ||
| 41 | +- 无。 | ||
| 42 | + | ||
| 43 | +<h3 id="2-3-prior-stage-config">2.3 PriorStageConfig</h3> | ||
| 44 | + | ||
| 45 | +前置阶段配置:仅 process + dataset,用于如 adapt_rotation stage1 等先验阶段。 | ||
| 46 | + | ||
| 47 | +| 字段路径 | 类型 | 必选/可选 | 默认值 | 取值范围或格式 | 含义 | 引用配置 | | ||
| 48 | +|----------|------|-----------|--------|----------------|------|----------| | ||
| 49 | +| `process` | `list[object]` | 可选 | `[]` | — | 该阶段处理器列表 | 本页 <a href="#2-4-autoprocessorconfig">§2.4</a> | | ||
| 50 | +| `dataset` | `string / null` | 可选 | `null` | — | 该阶段数据集名称,不提供则使用 spec.dataset | 无 | | ||
| 51 | + | ||
| 52 | +**配置约束** | ||
| 53 | + | ||
| 54 | +- 无。 | ||
| 55 | + | ||
| 56 | +<h3 id="2-4-autoprocessorconfig">2.4 AutoProcessorConfig</h3> | ||
| 57 | + | ||
| 58 | +**派生类** | ||
| 59 | + | ||
| 60 | +- `AdaptRotationProcessorConfig`(`type: adapt_rotation`) — 自适应旋转(adapt_rotation)处理器配置。 《[adapt_rotation 配置说明](../processor/adapt_rotation.md)》 | ||
| 61 | +- `AutoroundProcessorConfig`(`type: autoround_quant`) — autoround 量化处理器配置。 《[autoround_quant 配置说明](../processor/autoround_quant.md)》 | ||
| 62 | +- `AWQProcessorConfig`(`type: awq`) — AWQ(Activation-aware Weight Quantization)处理器配置。 《[awq 配置说明](../processor/awq.md)》 | ||
| 63 | +- `BinaryAnalysisProcessorConfig`(`type: binary_analysis`) — 二值(有/无量化)敏感性分析处理器配置。 《[binary_analysis 配置说明](../processor/binary_analysis.md)》 | ||
| 64 | +- `BinaryOperatorLayerWiseProcessorConfig`(`type: binary_operator_layer_wise`) — 逐层敏感度分析处理器配置(对比逐块浮点与量化输出)。 《[binary_operator_layer_wise 配置说明](../processor/binary_operator_layer_wise.md)》 | ||
| 65 | +- `BinaryOperatorModelWiseProcessorConfig`(`type: binary_operator_model_wise`) — 模型级敏感性分析配置(对比模型最终输出,使用 MSE 指标) 《[binary_operator_model_wise 配置说明](../processor/binary_operator_model_wise.md)》 | ||
| 66 | +- `DynamicCacheProcessorConfig`(`type: dynamic_cache`) — KV cache 量化处理器配置。 《[dynamic_cache 配置说明](../processor/dynamic_cache.md)》 | ||
| 67 | +- `FA3QuantProcessorConfig`(`type: fa3_quant`) — FA3(FlashAttention-3)量化处理器配置。 《[fa3_quant 配置说明](../processor/fa3_quant.md)》 | ||
| 68 | +- `FlatQuantProcessorConfig`(`type: flatquant`) — FlatQuant处理器配置:定义量化训练参数、策略、混合精度等 《[flatquant 配置说明](../processor/flatquant.md)》 | ||
| 69 | +- `FlexAWQSSZProcessorConfig`(`type: flex_awq_ssz`) — FlexAWQSSZ 平滑+AWQ 处理器配置。 《[flex_awq_ssz 配置说明](../processor/flex_awq_ssz.md)》 | ||
| 70 | +- `FlexSmoothQuantProcessorConfig`(`type: flex_smooth_quant`) — FlexSmoothQuant 平滑量化处理器配置。 《[flex_smooth_quant 配置说明](../processor/flex_smooth_quant.md)》 | ||
| 71 | +- `FloatSparseProcessorConfig`(`type: float_sparse`) — 浮点稀疏处理器配置。 《[float_sparse 配置说明](../processor/float_sparse.md)》 | ||
| 72 | +- `GroupProcessorConfig`(`type: group`) — 处理器合并器配置。 《[group 配置说明](../processor/group.md)》 | ||
| 73 | +- `IterSmoothProcessorConfig`(`type: iter_smooth`) — 迭代平滑(IterativeSmooth)处理器配置。 《[iter_smooth 配置说明](../processor/iter_smooth.md)》 | ||
| 74 | +- `KVSmoothProcessorConfig`(`type: kv_smooth`) — KV cache 平滑处理器配置。 《[kv_smooth 配置说明](../processor/kv_smooth.md)》 | ||
| 75 | +- `LinearProcessorConfig`(`type: linear_quant`) — 线性层(Linear)量化处理器配置。 《[linear_quant 配置说明](../processor/linear_quant.md)》 | ||
| 76 | +- `LoadProcessorConfig`(`type: load`) — 模块加载/卸载处理器配置。 《[load 配置说明](../processor/load.md)》 | ||
| 77 | +- `OASQProcessorConfig`(`type: oasq`) — OASQ(Outlier-Aware Smooth Quantization)处理器配置。 《[oasq 配置说明](../processor/oasq.md)》 | ||
| 78 | +- `OnlineQuaRotProcessorConfig`(`type: online_quarot`) — 在线 QuaRot 旋转处理器配置。 《[online_quarot 配置说明](../processor/online_quarot.md)》 | ||
| 79 | +- `QuaRotProcessorConfig`(`type: quarot`) — QuaRot(离线旋转)处理器配置。 《[quarot 配置说明](../processor/quarot.md)》 | ||
| 80 | +- `QuantSaveProcessorConfig`(`type: saver`) — 统一保存处理器配置。 《[saver 配置说明](../processor/saver.md)》 | ||
| 81 | +- `SmoothQuantProcessorConfig`(`type: smooth_quant`) — SmoothQuant 平滑量化处理器配置。 《[smooth_quant 配置说明](../processor/smooth_quant.md)》 | ||
| 82 | +- `SVDResidualProcessorConfig`(`type: svd_res`) — SVD 残差(低秩补偿)处理器配置。 《[svd_res 配置说明](../processor/svd_res.md)》 | ||
| 83 | +- `TrainableLinearQuantProcessorConfig`(`type: trainable_linear_quant`) — 可训练线性量化(TLQ)处理器配置。 《[trainable_linear_quant 配置说明](../processor/trainable_linear_quant.md)》 | ||
| 84 | +- `UnaryAnalysisProcessorConfig`(`type: unary_analysis`) — 一元(无量化)敏感性分析处理器配置。 《[unary_analysis 配置说明](../processor/unary_analysis.md)》 | ||
| 85 | + | ||
| 86 | +<h3 id="2-5-quantformatconfig">2.5 QuantFormatConfig</h3> | ||
| 87 | + | ||
| 88 | +**派生类** | ||
| 89 | + | ||
| 90 | +- `AscendV1QuantFormatConfig`(`type: ascendv1_saver`) — AscendV1 保存格式配置,导出昇腾落盘格式的权重文件。 《[ascendv1_saver 配置说明](../format/ascendv1_saver.md)》 | ||
| 91 | +- `CompressedTensorsQuantFormatConfig`(`type: compressed_tensors`) — compressed_tensors 保存格式配置,导出 safetensors 权重与 config.json。 《[compressed_tensors 配置说明](../format/compressed_tensors.md)》 | ||
| 92 | +- `MindIEQuantFormatConfig`(`type: mindie_format_saver`) — MindIE 保存格式配置,导出 MindIE 落盘格式的权重文件。 《[mindie_format_saver 配置说明](../format/mindie_format_saver.md)》 | ||
| 93 | + | ||
| 94 | +## 3. 完整配置参考 | ||
| 95 | + | ||
| 96 | +```yaml | ||
| 97 | +apiversion: multimodal_vlm_modelslim_v1 | ||
| 98 | +spec: | ||
| 99 | + runner: auto | ||
| 100 | + prior: [] | ||
| 101 | + process: [] | ||
| 102 | + save: | ||
| 103 | + - type: ascendv1_saver | ||
| 104 | + dataset: mix_calib.jsonl | ||
| 105 | + default_text: Describe this image in detail. | ||
| 106 | +``` | ||
| @@ -0,0 +1,41 @@ | |||
| 1 | +<!-- generated-by: skills/docs-management/scripts/gen_quant_config_docs.py ; class: msmodelslim.core.practice.interface.PracticeConfig --> | ||
| 2 | +# PracticeConfig 配置说明 | ||
| 3 | + | ||
| 4 | +## 1. 配置概述 | ||
| 5 | + | ||
| 6 | +完整最佳实践量化任务配置:apiversion + spec + metadata。 | ||
| 7 | + | ||
| 8 | +| 项目 | 内容 | | ||
| 9 | +|------|------| | ||
| 10 | +| 配置类 | `PracticeConfig` | | ||
| 11 | +| 源码 | [interface.py](../../../../../msmodelslim/core/practice/interface.py) | | ||
| 12 | + | ||
| 13 | +## 2. 参数列表 | ||
| 14 | + | ||
| 15 | +<h3 id="2-1-practice-config">2.1 PracticeConfig</h3> | ||
| 16 | + | ||
| 17 | +| 字段路径 | 类型 | 必选/可选 | 默认值 | 取值范围或格式 | 含义 | 引用配置 | | ||
| 18 | +|----------|------|-----------|--------|----------------|------|----------| | ||
| 19 | +| `apiversion` | `string` | 可选 | Unknown(代码占位;YAML 中须按任务类型显式指定) | `modelslim_v1`、`multimodal_vlm_modelslim_v1`、`multimodal_sd_modelslim_v1`、`modelslim_convert` | API 版本(任务类型),决定 spec 的结构:`modelslim_v1`、`multimodal_vlm_modelslim_v1`、`multimodal_sd_modelslim_v1`、`modelslim_convert`;YAML 中必须显式指定,默认值 `Unknown` 仅为代码内部占位,不可直接使用。 | 无 | | ||
| 20 | +| `spec` | `any` | 可选 | `{}` | — | 任务规格,结构随 apiversion 而定。 | 无 | | ||
| 21 | +| `metadata` | `object` | 可选 | 见嵌套配置默认值 | — | 量化配置元数据(config_id/score/label/verified_*) | 本页 <a href="#2-2-metadata">§2.2</a> | | ||
| 22 | + | ||
| 23 | +**配置约束** | ||
| 24 | + | ||
| 25 | +- 无。 | ||
| 26 | + | ||
| 27 | +<h3 id="2-2-metadata">2.2 Metadata</h3> | ||
| 28 | + | ||
| 29 | +量化配置元数据:标识配置的 ID、评分、标签与已验证的模型/场景。 | ||
| 30 | + | ||
| 31 | +| 字段路径 | 类型 | 必选/可选 | 默认值 | 取值范围或格式 | 含义 | 引用配置 | | ||
| 32 | +|----------|------|-----------|--------|----------------|------|----------| | ||
| 33 | +| `config_id` | `string` | 可选 | `Unknown` | — | 量化配置 ID,例如 'Qwen3-32B W8A8' | 无 | | ||
| 34 | +| `score` | `float` | 可选 | `100.0` | — | 量化配置评分,用于排序,必须 >= 0 | 无 | | ||
| 35 | +| `label` | `object` | 可选 | `{}` | — | 量化配置标签,用于过滤,例如 {'w_bit': 8, 'a_bit': 8, 'is_sparse': True, 'kv_cache': True} | 无 | | ||
| 36 | +| `verified_model_types` | `list[string]` | 可选 | `[]` | — | 已验证的模型类型列表,例如 ['LLaMa3.1-70B', 'Qwen2.5-72B'] | 无 | | ||
| 37 | +| `verified_tags` | `object` | 可选 | `{}` | — | 已验证场景标签:键为模型类型,值为场景标签列表(每个场景是一组标签,如 ['MindIE','Atlas_A2_Inference']) | 无 | | ||
| 38 | + | ||
| 39 | +**配置约束** | ||
| 40 | + | ||
| 41 | +- 无。 | ||
| @@ -0,0 +1,281 @@ | |||
| 1 | +<!-- generated-by: skills/docs-management/scripts/gen_quant_config_docs.py ; class: msmodelslim.infra.service_oriented_evaluate_service.ServiceOrientedEvaluateServiceConfig --> | ||
| 2 | +# evaluation_service_oriented 配置说明 | ||
| 3 | + | ||
| 4 | +## 1. 配置概述 | ||
| 5 | + | ||
| 6 | +面向服务的评估服务配置:评估需求 + aisbench 评测 + vLLM-Ascend 推理引擎。 | ||
| 7 | + | ||
| 8 | +| 项目 | 内容 | | ||
| 9 | +|------|------| | ||
| 10 | +| 配置类 | `ServiceOrientedEvaluateServiceConfig` | | ||
| 11 | +| 源码 | [service_oriented_evaluate_service.py](../../../../../msmodelslim/infra/service_oriented_evaluate_service.py) | | ||
| 12 | + | ||
| 13 | +## 2. 参数列表 | ||
| 14 | + | ||
| 15 | +<h3 id="2-1-evaluation-service-oriented">2.1 ServiceOrientedEvaluateServiceConfig</h3> | ||
| 16 | + | ||
| 17 | +| 字段路径 | 类型 | 必选/可选 | 默认值 | 取值范围或格式 | 含义 | 引用配置 | | ||
| 18 | +|----------|------|-----------|--------|----------------|------|----------| | ||
| 19 | +| `type` | `string` | 可选 | `service_oriented` | — | 评估服务类型,固定为 `service_oriented` | 无 | | ||
| 20 | +| `demand` | `object` | 必选 | 无 | — | 评估需求(数据集精度期望) | 本页 <a href="#2-2-evaluate-demand">§2.2</a> | | ||
| 21 | +| `evaluation` | `object` | 必选 | 无 | — | AISBench 评测服务配置 | 本页 <a href="#2-4-aisbench">§2.4</a> | | ||
| 22 | +| `inference_engine` | `object` | 必选 | 无 | — | vLLM-Ascend 推理引擎配置 | 本页 <a href="#2-9-vllm-ascend">§2.9</a> | | ||
| 23 | + | ||
| 24 | +**配置约束** | ||
| 25 | + | ||
| 26 | +- 校验 expectations 中的所有 dataset 都在 evaluation.datasets 中配置了 | ||
| 27 | + | ||
| 28 | +<h3 id="2-2-evaluate-demand">2.2 EvaluateDemand</h3> | ||
| 29 | + | ||
| 30 | +评估需求:声明需要在哪些数据集上达到哪些精度期望。 | ||
| 31 | + | ||
| 32 | +| 字段路径 | 类型 | 必选/可选 | 默认值 | 取值范围或格式 | 含义 | 引用配置 | | ||
| 33 | +|----------|------|-----------|--------|----------------|------|----------| | ||
| 34 | +| `expectations` | `list[object]` | 必选 | 无 | — | 精度期望列表,至少 1 个;每项声明数据集与目标精度(含容差) | 本页 <a href="#2-3-accuracy-expectation">§2.3</a> | | ||
| 35 | + | ||
| 36 | +**配置约束** | ||
| 37 | + | ||
| 38 | +- 无。 | ||
| 39 | + | ||
| 40 | +<h3 id="2-3-accuracy-expectation">2.3 AccuracyExpectation</h3> | ||
| 41 | + | ||
| 42 | +精度期望:要求模型在指定数据集上达到的目标精度(含容差)。 | ||
| 43 | + | ||
| 44 | +| 字段路径 | 类型 | 必选/可选 | 默认值 | 取值范围或格式 | 含义 | 引用配置 | | ||
| 45 | +|----------|------|-----------|--------|----------------|------|----------| | ||
| 46 | +| `dataset` | `string` | 必选 | 无 | — | 数据集名称 | 无 | | ||
| 47 | +| `target` | `string` | 必选 | 无 | — | 目标精度,必须 > 0 | 无 | | ||
| 48 | +| `tolerance` | `string` | 必选 | 无 | — | 相对目标精度可容忍的偏差,必须 >= 0 | 无 | | ||
| 49 | + | ||
| 50 | +**配置约束** | ||
| 51 | + | ||
| 52 | +- 无。 | ||
| 53 | + | ||
| 54 | +<h3 id="2-4-aisbench">2.4 AisbenchServerConfig</h3> | ||
| 55 | + | ||
| 56 | +AISBench 评测服务配置 | ||
| 57 | + | ||
| 58 | +| 字段路径 | 类型 | 必选/可选 | 默认值 | 取值范围或格式 | 含义 | 引用配置 | | ||
| 59 | +|----------|------|-----------|--------|----------------|------|----------| | ||
| 60 | +| `type` | `string` | 可选 | `aisbench` | `aisbench` | 评测服务类型,固定为 `aisbench` | 无 | | ||
| 61 | +| `aisbench` | `object` | 可选 | 见嵌套配置默认值 | — | AISBench 评测配置 | 本页 <a href="#2-5-aisbench-config">§2.5</a> | | ||
| 62 | +| `datasets` | `object` | 可选 | `{}` | — | 数据集配置字典,键为数据集名称 | 本页 <a href="#2-7-dataset-config">§2.7</a> | | ||
| 63 | +| `host` | `string` | 可选 | `localhost` | — | 评测服务监听地址,须为合法主机名/IP | 无 | | ||
| 64 | +| `port` | `int` | 可选 | `1234` | — | 评测服务监听端口,须为合法端口号 | 无 | | ||
| 65 | +| `served_model_name` | `string` | 可选 | `served_model_name` | — | 已部署的模型名称 | 无 | | ||
| 66 | +| `precheck` | `list[object]` | 可选 | `[]` | — | 模型预检配置列表,每个元素是一个字典,包含 'type' 字段('garbled_text' 或 'expected_answer') | 本页 <a href="#2-8-base-precheck-config">§2.8</a> | | ||
| 67 | + | ||
| 68 | +**配置约束** | ||
| 69 | + | ||
| 70 | +- 无。 | ||
| 71 | + | ||
| 72 | +<h3 id="2-5-aisbench-config">2.5 AisbenchConfig</h3> | ||
| 73 | + | ||
| 74 | +AISBench 评测配置 | ||
| 75 | + | ||
| 76 | +| 字段路径 | 类型 | 必选/可选 | 默认值 | 取值范围或格式 | 含义 | 引用配置 | | ||
| 77 | +|----------|------|-----------|--------|----------------|------|----------| | ||
| 78 | +| `binary` | `string` | 可选 | `ais_bench` | `ais_bench` | aisbench 启动命令,固定为 'ais_bench' | 无 | | ||
| 79 | +| `mode` | `string` | 可选 | `all` | — | 评测模式 | 无 | | ||
| 80 | +| `timeout` | `int` | 可选 | `7200` | — | 命令执行超时时间(秒),默认2小时 | 无 | | ||
| 81 | +| `cleanup_model_config` | `bool` | 可选 | `true` | — | 是否清理生成的模型配置文件 | 无 | | ||
| 82 | +| `model_meta` | `object` | 可选 | 见嵌套配置默认值 | — | 模型配置元数据 | 本页 <a href="#2-6-model-config-meta">§2.6</a> | | ||
| 83 | +| `request_rate` | `float` | 可选 | `1.0` | — | 默认请求速率,必须 > 0 | 无 | | ||
| 84 | +| `pred_postprocessor` | `string` | 可选 | `extract_non_reasoning_content` | — | 预测后处理器名称 | 无 | | ||
| 85 | +| `retry` | `int` | 可选 | `2` | ≥0 | 请求重试次数,必须 >= 0 | 无 | | ||
| 86 | +| `batch_size` | `int` | 可选 | `1` | — | 批处理大小,必须 > 0 | 无 | | ||
| 87 | +| `max_out_len` | `int` | 可选 | `512` | — | 最大输出长度,必须 > 0 | 无 | | ||
| 88 | +| `trust_remote_code` | `bool` | 可选 | `false` | — | 是否信任远程代码 | 无 | | ||
| 89 | +| `generation_kwargs` | `object` | 可选 | `{}` | — | 生成参数配置字典 | 无 | | ||
| 90 | +| `extra_args` | `list[string]` | 可选 | `[]` | — | 额外的命令行参数列表,默认为空列表 | 无 | | ||
| 91 | +| `log_dir` | `string` | 可选 | `` | — | 日志目录路径,空字符串表示使用默认路径 | 无 | | ||
| 92 | + | ||
| 93 | +**配置约束** | ||
| 94 | + | ||
| 95 | +- 无。 | ||
| 96 | + | ||
| 97 | +<h3 id="2-6-model-config-meta">2.6 ModelConfigMeta</h3> | ||
| 98 | + | ||
| 99 | +模型配置元数据 | ||
| 100 | + | ||
| 101 | +| 字段路径 | 类型 | 必选/可选 | 默认值 | 取值范围或格式 | 含义 | 引用配置 | | ||
| 102 | +|----------|------|-----------|--------|----------------|------|----------| | ||
| 103 | +| `directory` | `string` | 可选 | `` | — | 模型配置目录的显式路径,空字符串表示使用默认路径 | 无 | | ||
| 104 | +| `subdir` | `string` | 可选 | `vllm_api` | — | 模型配置子目录 | 无 | | ||
| 105 | +| `base_name` | `string` | 可选 | `vllm_api_general_chat` | — | 模型配置基础名称 | 无 | | ||
| 106 | +| `name_suffix` | `string` | 可选 | `auto` | — | 模型配置名称后缀,'auto'表示自动生成 | 无 | | ||
| 107 | +| `abbr` | `string` | 可选 | `vllm-api-general-chat` | — | 模型配置缩写 | 无 | | ||
| 108 | +| `attr` | `string` | 可选 | `service` | — | 模型配置属性 | 无 | | ||
| 109 | + | ||
| 110 | +**配置约束** | ||
| 111 | + | ||
| 112 | +- 无。 | ||
| 113 | + | ||
| 114 | +<h3 id="2-7-dataset-config">2.7 DatasetConfig</h3> | ||
| 115 | + | ||
| 116 | +单个数据集的评测配置 | ||
| 117 | + | ||
| 118 | +| 字段路径 | 类型 | 必选/可选 | 默认值 | 取值范围或格式 | 含义 | 引用配置 | | ||
| 119 | +|----------|------|-----------|--------|----------------|------|----------| | ||
| 120 | +| `config_name` | `string` | 必选 | 无 | — | 数据集在 ais_bench 中的配置名称(必需) | 无 | | ||
| 121 | +| `mode` | `string` | 可选 | `` | — | 该数据集的评测模式,空字符串表示使用全局模式 | 无 | | ||
| 122 | +| `request_rate` | `float` | 可选 | `0.0` | ≥0.0 | 该数据集的请求速率,0.0 表示使用全局默认值 | 无 | | ||
| 123 | +| `max_out_len` | `int / null` | 可选 | `null` | — | 该数据集的最大输出长度,None 表示使用全局默认值 | 无 | | ||
| 124 | +| `returns_tool_calls` | `bool / null` | 可选 | `null` | — | 是否返回工具调用,None 表示不写入该字段 | 无 | | ||
| 125 | +| `api_chat_type` | `string` | 可选 | `VLLMCustomAPIChat` | — | 该数据集使用的 API Chat 类型 | 无 | | ||
| 126 | +| `chat_template_kwargs` | `object` | 可选 | `{}` | — | chat_template 的额外参数,例如 aime25 需要 {"thinking": True} | 无 | | ||
| 127 | +| `extra_args` | `list[string]` | 可选 | `[]` | — | 该数据集额外的命令行参数列表,默认为空列表 | 无 | | ||
| 128 | + | ||
| 129 | +**配置约束** | ||
| 130 | + | ||
| 131 | +- 无。 | ||
| 132 | + | ||
| 133 | +<h3 id="2-8-base-precheck-config">2.8 BasePrecheckConfig</h3> | ||
| 134 | + | ||
| 135 | +预检查配置基类 | ||
| 136 | + | ||
| 137 | +| 字段路径 | 类型 | 必选/可选 | 默认值 | 取值范围或格式 | 含义 | 引用配置 | | ||
| 138 | +|----------|------|-----------|--------|----------------|------|----------| | ||
| 139 | +| `type` | `string` | 必选 | 无 | — | 预检查类型,按 `type` 字段分派,如 `garbled_text`、`expected_answer` | 无 | | ||
| 140 | +| `max_tokens` | `int` | 可选 | `512` | — | 最大生成 token 数,必须大于 0 | 无 | | ||
| 141 | +| `timeout` | `float` | 可选 | `60.0` | — | API 调用超时时间(秒),必须大于 0 | 无 | | ||
| 142 | + | ||
| 143 | +**配置约束** | ||
| 144 | + | ||
| 145 | +- 无。 | ||
| 146 | + | ||
| 147 | +<h3 id="2-9-vllm-ascend">2.9 VllmAscendConfig</h3> | ||
| 148 | + | ||
| 149 | +vLLM-Ascend 推理引擎配置:用于拉起 OpenAI 兼容的服务端并做健康检查。 | ||
| 150 | + | ||
| 151 | +| 字段路径 | 类型 | 必选/可选 | 默认值 | 取值范围或格式 | 含义 | 引用配置 | | ||
| 152 | +|----------|------|-----------|--------|----------------|------|----------| | ||
| 153 | +| `type` | `string` | 可选 | `vllm-ascend` | `vllm-ascend` | 推理引擎类型,固定为 `vllm-ascend` | 无 | | ||
| 154 | +| `entrypoint` | `string` | 可选 | `vllm.entrypoints.openai.api_server` | — | vLLM 服务启动入口,默认 OpenAI API server | 无 | | ||
| 155 | +| `env_vars` | `object` | 可选 | `{}` | — | 传递给 vLLM 进程的额外环境变量字典 | 无 | | ||
| 156 | +| `served_model_name` | `string` | 可选 | `served_model_name` | — | 已部署/对外暴露的模型名称 | 无 | | ||
| 157 | +| `host` | `string` | 可选 | `localhost` | — | 服务监听地址 | 无 | | ||
| 158 | +| `port` | `int` | 可选 | `1234` | — | 服务监听端口 | 无 | | ||
| 159 | +| `health_check_endpoint` | `string` | 可选 | `/v1/models` | — | 健康检查接口路径(vLLM OpenAI 兼容) | 无 | | ||
| 160 | +| `startup_timeout` | `int` | 可选 | `600` | — | 服务启动超时(秒),必须 > 0 | 无 | | ||
| 161 | +| `args` | `object` | 可选 | `{}` | — | 追加的 vLLM 启动命令行参数(键值对) | 无 | | ||
| 162 | + | ||
| 163 | +**配置约束** | ||
| 164 | + | ||
| 165 | +- 无。 | ||
| 166 | + | ||
| 167 | +## 3. 完整配置参考 | ||
| 168 | + | ||
| 169 | +```yaml | ||
| 170 | +strategy: | ||
| 171 | + type: standing_high | ||
| 172 | + anti_outlier_strategies: | ||
| 173 | + - - type: iter_smooth | ||
| 174 | + alpha: 0.5 | ||
| 175 | + - - type: flex_smooth_quant | ||
| 176 | + template: | ||
| 177 | + runner: auto | ||
| 178 | + process: | ||
| 179 | + - type: linear_quant | ||
| 180 | + qconfig: | ||
| 181 | + act: | ||
| 182 | + scope: per_tensor | ||
| 183 | + dtype: int8 | ||
| 184 | + symmetric: false | ||
| 185 | + method: minmax | ||
| 186 | + weight: | ||
| 187 | + scope: per_channel | ||
| 188 | + dtype: int8 | ||
| 189 | + symmetric: true | ||
| 190 | + method: minmax | ||
| 191 | + include: | ||
| 192 | + - '*' | ||
| 193 | + exclude: [] | ||
| 194 | + save: | ||
| 195 | + - type: ascendv1_saver | ||
| 196 | + part_file_size: 4 | ||
| 197 | + dataset: mix_calib.jsonl | ||
| 198 | + metadata: | ||
| 199 | + config_id: standing_high | ||
| 200 | + label: | ||
| 201 | + w_bit: 8 | ||
| 202 | + a_bit: 8 | ||
| 203 | + is_sparse: false | ||
| 204 | + kv_cache: false | ||
| 205 | +evaluation: | ||
| 206 | + type: service_oriented | ||
| 207 | + demand: | ||
| 208 | + expectations: | ||
| 209 | + - dataset: gsm8k | ||
| 210 | + target: '83' | ||
| 211 | + tolerance: '2' | ||
| 212 | + evaluation: | ||
| 213 | + type: aisbench | ||
| 214 | + aisbench: | ||
| 215 | + binary: ais_bench | ||
| 216 | + mode: all | ||
| 217 | + timeout: 7200 | ||
| 218 | + request_rate: 1.0 | ||
| 219 | + retry: 2 | ||
| 220 | + batch_size: 32 | ||
| 221 | + max_out_len: 512 | ||
| 222 | + trust_remote_code: false | ||
| 223 | + pred_postprocessor: extract_non_reasoning_content | ||
| 224 | + generation_kwargs: | ||
| 225 | + temperature: 0.5 | ||
| 226 | + top_k: 10 | ||
| 227 | + top_p: 0.9 | ||
| 228 | + seed: null | ||
| 229 | + repetition_penalty: 1.03 | ||
| 230 | + chat_template_kwargs: | ||
| 231 | + thinking: true | ||
| 232 | + model_meta: | ||
| 233 | + base_name: vllm_api_general_chat | ||
| 234 | + subdir: vllm_api | ||
| 235 | + abbr: vllm-api-general-chat | ||
| 236 | + attr: service | ||
| 237 | + datasets: | ||
| 238 | + gsm8k: | ||
| 239 | + config_name: gsm8k_gen_0_shot_cot_str | ||
| 240 | + mode: all | ||
| 241 | + aime25: | ||
| 242 | + config_name: aime2025_gen_0_shot_chat_prompt | ||
| 243 | + mode: all | ||
| 244 | + bfcl-simple: | ||
| 245 | + config_name: BFCL_gen_simple | ||
| 246 | + mode: all | ||
| 247 | + max_out_len: 1024 | ||
| 248 | + returns_tool_calls: true | ||
| 249 | + api_chat_type: VLLMFunctionCallAPIChat | ||
| 250 | + host: localhost | ||
| 251 | + port: 1234 | ||
| 252 | + served_model_name: served_model_name | ||
| 253 | + inference_engine: | ||
| 254 | + type: vllm-ascend | ||
| 255 | + entrypoint: vllm.entrypoints.openai.api_server | ||
| 256 | + env_vars: | ||
| 257 | + HCCL_BUFFSIZE: 1024 | ||
| 258 | + ASCEND_RT_VISIBLE_DEVICES: 0 | ||
| 259 | + served_model_name: served_model_name | ||
| 260 | + host: localhost | ||
| 261 | + port: 1234 | ||
| 262 | + health_check_endpoint: /v1/models | ||
| 263 | + startup_timeout: 600 | ||
| 264 | + args: | ||
| 265 | + enforce-eager: true | ||
| 266 | + served-model-name: served_model_name | ||
| 267 | + trust-remote-code: true | ||
| 268 | + tensor-parallel-size: 1 | ||
| 269 | + data-parallel-size: 1 | ||
| 270 | + quantization: ascend | ||
| 271 | + enable-prefix-caching: false | ||
| 272 | + max-model-len: 8192 | ||
| 273 | + max-num-batched-tokens: 8192 | ||
| 274 | + gpu-memory-utilization: 0.9 | ||
| 275 | + enable-auto-tool-choice: true | ||
| 276 | + tool-call-parser: hermes | ||
| 277 | + additional_config: | ||
| 278 | + ascend_scheduler_config: | ||
| 279 | + enable: true | ||
| 280 | + enable_weight_nz_layout: true | ||
| 281 | +``` | ||
【review】遗漏了设置日志级别的环境变量 MSMODELSLIM_LOG_LEVEL