已合并
[Doc] 修复Wan2.2新模型量化文档不合理内容 #882
code_mingming创建于 12 天前
[Doc] 修复Wan2.2新模型量化文档不合理内容 #882
已合并
共 3 个文件变更+78-48
| @@ -5,4 +5,4 @@ | |||
| 5 | | **Kimi-K3 新模型 W4A8 量化** | [Kimi-K3 新模型 W4A8 量化案例](./kimi_k3_adaptation_case.md) | | 5 | | **Kimi-K3 新模型 W4A8 量化** | [Kimi-K3 新模型 W4A8 量化案例](./kimi_k3_adaptation_case.md) | |
| 6 | | **v1框架Qwen3-32B 精度调优** | [v1框架Qwen3-32B w8a8精度调优案例](./qwen3_32b_w8a8_precision_tuning_case.md) | | 6 | | **v1框架Qwen3-32B 精度调优** | [v1框架Qwen3-32B w8a8精度调优案例](./qwen3_32b_w8a8_precision_tuning_case.md) | |
| 7 | | **权重转换** | [msModelSlim量化权重转AutoAWQ&AutoGPTQ使用指南](./msmodelslim_quantized_weight_to_autoawq_autogptq.md) | | 7 | | **权重转换** | [msModelSlim量化权重转AutoAWQ&AutoGPTQ使用指南](./msmodelslim_quantized_weight_to_autoawq_autogptq.md) | |
| 8 | -| **DiT模型量化验证案例** | [Wan2.2 W4A4F4量化验证案例](./wan2_2_w4a4f4_verification_case.md) | | 8 | +| **DiT新模型量化案例** | [Wan2.2 新模型 W4A4F4 量化案例](./wan2_2_w4a4f4_new_dit_quantization_case.md) | |
Rdocs/zh/best_practices/wan2_2_w4a4f4_verification_case.md→docs/zh/best_practices/wan2_2_w4a4f4_new_dit_quantization_case.md+76-46
| @@ -1,10 +1,10 @@ | |||
| 1 | -# Wan2.2 W4A4F4量化验证案例 | 1 | +# Wan2.2 新模型 W4A4F4 量化案例 |
| 2 | 2 | ||
| 3 | ## 1. 案例背景 | 3 | ## 1. 案例背景 |
| 4 | 4 | ||
| 5 | -**目标**:基于 MindIE-SD 推理栈,对 Wan2.2 系列双专家 DiT 文生视频模型进行 W4A4F4 量化验证,对比原始浮点权重与量化后权重的生成质量。相对原始浮点权重,量化后模型生成视频质量损失控制在可接受范围内,无肉眼可识别的严重画质崩坏;且在 VBench-1.0-mini 的 1% 子集上,VBench Quality 与 VBench Semantic 的绝对得分下降均小于1个百分点(pp),即 `FP 得分 − 量化得分 < 1 pp`。 | 5 | +**目标**:基于 MindIE-SD 推理栈,对 Wan2.2 系列双专家 DiT 文生视频模型进行 W4A4F4 量化验证,对比原始浮点权重与量化后权重的生成质量。相对原始浮点权重,量化后模型生成视频质量损失控制在可接受范围内,无肉眼可识别的严重画质崩坏;且在 VBench-1.0-mini 的 1% 子集上,VBench Quality 与 VBench Semantic 的绝对得分下降均小于1个百分点(pp),即 `|FP 得分 − 量化得分| < 1pp`。 |
| 6 | 6 | ||
| 7 | -**覆盖流程**:模型接入适配 → 逐层量化 → 权重导出 → 精度评测 | 7 | +**覆盖流程**:模型接入适配 → 量化方案设计 → 权重量化 → 精度评测 |
| 8 | 8 | ||
| 9 | **关联流程**:《[多模态生成模型接入指南](../knowledge_base/model/integrating_multimodal_generation_model.md)》、《[一键量化使用说明](../user_guide/usage_quick_quantization.md)》 | 9 | **关联流程**:《[多模态生成模型接入指南](../knowledge_base/model/integrating_multimodal_generation_model.md)》、《[一键量化使用说明](../user_guide/usage_quick_quantization.md)》 |
| 10 | 10 | ||
| @@ -19,7 +19,7 @@ | |||
| 19 | | 模型结构 | 双专家DiT(low_noise_model + high_noise_model)+ GQA注意力 + 文本编码器 + VAE | | 19 | | 模型结构 | 双专家DiT(low_noise_model + high_noise_model)+ GQA注意力 + 文本编码器 + VAE | |
| 20 | | 量化类型 | w4a4f4 | | 20 | | 量化类型 | w4a4f4 | |
| 21 | | 开源权重来源 | [Wan2.2-T2V-A14B](https://huggingface.co/Wan-AI/Wan2.2-T2V-A14B) 等官方开源地址 | | 21 | | 开源权重来源 | [Wan2.2-T2V-A14B](https://huggingface.co/Wan-AI/Wan2.2-T2V-A14B) 等官方开源地址 | |
| 22 | -| 推理框架与并行 | MindIE-SD;本案例并行策略:DiT/T5 启用 FSDP 切分、序列维度启用 Ulysses Sequence Parallel(SP)、CFG 双卡分离、VAE 启用并行;未启用 Expert Parallel(双专家由框架自动调度)。对比双方使用完全相同的并行约定,具体取值见“操作步骤“章节的步骤 5/6。 | | 22 | +| 推理框架与并行 | MindIE-SD;本案例并行策略:DiT/T5 启用 FSDP 切分、序列维度启用 Ulysses Sequence Parallel(SP)、CFG 双卡分离、VAE 启用并行;未启用 Expert Parallel(双专家由框架自动调度)。对比双方使用完全相同的并行约定,具体取值见“操作步骤“章节的步骤 6/7。 | |
| 23 | 23 | ||
| 24 | **验证范围声明**: | 24 | **验证范围声明**: |
| 25 | 25 | ||
| @@ -50,6 +50,7 @@ | |||
| 50 | | --- | -------------------- | ------------------------ | -------------------------- | --------------------------------- | | 50 | | --- | -------------------- | ------------------------ | -------------------------- | --------------------------------- | |
| 51 | | 输入 | Wan2.2浮点模型权重 | `${MODEL_PATH}` | 官方开源格式,含DiT双专家权重、VAE、文本编码器、tokenizer、config.json | 可通过官方推理仓正常加载,720P视频生成无异常 | | 51 | | 输入 | Wan2.2浮点模型权重 | `${MODEL_PATH}` | 官方开源格式,含DiT双专家权重、VAE、文本编码器、tokenizer、config.json | 可通过官方推理仓正常加载,720P视频生成无异常 | |
| 52 | | 交付件 | Wan2.2 W4A4F4量化权重 | `${SAVE_PATH}` | msModelSlim量化导出格式,含`quant_model_description.json`、双专家量化权重 | 可被MindIE-SD正常加载,成功生成视频 | | 52 | | 交付件 | Wan2.2 W4A4F4量化权重 | `${SAVE_PATH}` | msModelSlim量化导出格式,含`quant_model_description.json`、双专家量化权重 | 可被MindIE-SD正常加载,成功生成视频 | |
| 53 | +| 交付件 | 量化最佳实践 | [`lab_practice/wan2_2/wan2_2_w4a4f4_mxfp_t2v.yaml`](../../../lab_practice/wan2_2/wan2_2_w4a4f4_mxfp_t2v.yaml) | 遵循[量化配置协议](../user_guide/usage_quick_quantization.md#5-量化配置协议详解) | 命令行参数 `--config` 指定量化配置文件 | | ||
| 53 | | 输入 | 精度评测集 | `${EVAL_DATA_PATH}` | VBench标准评测集 | 对比双方使用完全相同的数据和随机种子 | | 54 | | 输入 | 精度评测集 | `${EVAL_DATA_PATH}` | VBench标准评测集 | 对比双方使用完全相同的数据和随机种子 | |
| 54 | | 交付件 | 精度报告 | `./outputs/default/{timestamp}/` | 生成视频样例(FP vs 量化对比)、VBench等客观指标结果表 | 满足预设验收阈值,无严重画质问题 | | 55 | | 交付件 | 精度报告 | `./outputs/default/{timestamp}/` | 生成视频样例(FP vs 量化对比)、VBench等客观指标结果表 | 满足预设验收阈值,无严重画质问题 | |
| 55 | 56 | ||
| @@ -96,7 +97,7 @@ Wan2.2 适配器基类 `Wan2_2BaseModelAdapter` 实现公共逻辑,场景子 | |||
| 96 | 97 | ||
| 97 | 3. 子类需实现的方法 | 98 | 3. 子类需实现的方法 |
| 98 | 99 | ||
| 99 | - `MultimodalPipelineInterface` 共 5 个抽象方法,其中 `configure_runtime`、`inference_dump_calib_data`、`prepare_calib_data` 三个已由基类实现,子类需实现以下内容: | 100 | + `MultimodalPipelineInterface` 共5个抽象方法,其中 `configure_runtime`、`inference_dump_calib_data`、`prepare_calib_data` 三个已由基类实现,子类需实现以下内容: |
| 100 | 101 | ||
| 101 | | 成员 | 类型 | 说明 | | 102 | | 成员 | 类型 | 说明 | |
| 102 | |------|------|------| | 103 | |------|------|------| |
| @@ -143,25 +144,52 @@ Wan2.2 适配器基类 `Wan2_2BaseModelAdapter` 实现公共逻辑,场景子 | |||
| 143 | ADAPTER_CLASS_PATH = "msmodelslim.model.wan2_2.t2v.model_adapter:Wan2_2T2VModelAdapter" | 144 | ADAPTER_CLASS_PATH = "msmodelslim.model.wan2_2.t2v.model_adapter:Wan2_2T2VModelAdapter" |
| 144 | ``` | 145 | ``` |
| 145 | 146 | ||
| 146 | -6. 量化配置 YAML | 147 | + > [!NOTE] |
| 148 | + > | ||
| 149 | + > 完成模型适配与注册后,需在源代码目录执行 `bash install.sh` 重新安装 msmodelslim,使适配器代码生效;否则 `--model_type Wan2.2-T2V-A14B` 无法命中适配器。 | ||
| 147 | 150 | ||
| 148 | - `inference_config` 字段须与原仓 CLI 对齐,`task` 与 `scene_task` 一致: | 151 | +**输出**:适配器代码编写完成,模型名注册完成,msModelSlim 可识别 `Wan2.2-T2V-A14B`。 |
| 149 | - | 152 | +**记录**:适配器代码文件列表(`base_model_adapter.py`、`expert_sub_adapter.py`、`constants.py`、`t2v/model_adapter.py`、`t2v/loader.py`)、`config.ini` 注册配置。 |
| 150 | - ```yaml | ||
| 151 | - multimodal_sd_config: | ||
| 152 | - inference_config: | ||
| 153 | - size: "1280*720" | ||
| 154 | - frame_num: 81 | ||
| 155 | - sample_steps: 40 | ||
| 156 | - task: "t2v-A14B" | ||
| 157 | - ``` | ||
| 158 | - | ||
| 159 | -**输出**:适配器代码编写完成,模型名注册完成,msModelSlim 可识别 `Wan2.2-T2V-A14B` 并执行量化流程。 | ||
| 160 | -**记录**:适配器代码文件列表(`base_model_adapter.py`、`expert_sub_adapter.py`、`constants.py`、`t2v/model_adapter.py`、`t2v/loader.py`)、`config.ini` 注册配置、量化配置文件 YAML 内容。 | ||
| 161 | 153 | ||
| 162 | **参考**:《[多模态生成模型接入指南](../knowledge_base/model/integrating_multimodal_generation_model.md)》 | 154 | **参考**:《[多模态生成模型接入指南](../knowledge_base/model/integrating_multimodal_generation_model.md)》 |
| 163 | 155 | ||
| 164 | -### 步骤 2:环境准备与路径配置 | 156 | +### 步骤 2:量化方案设计 |
| 157 | + | ||
| 158 | +**目标**:结合模型结构与原厂权重特性,设计 W4A4F4 混合量化方案。 | ||
| 159 | + | ||
| 160 | +**输入**:步骤 1 确认的模型结构特性。 | ||
| 161 | + | ||
| 162 | +**操作**: | ||
| 163 | + | ||
| 164 | +1. 确定整体量化策略。 | ||
| 165 | + | ||
| 166 | + Wan2.2 双专家 DiT 主干采用 W4A4F4 混合量化方案,要点如下: | ||
| 167 | + | ||
| 168 | + - 根据经验前五层一般比较敏感,因此将前5层(blocks.0 ~ blocks.4)回退为 W8A8 量化(激活/权重均 mxfp8),降低浅层特征量化误差对生成质量的冲击。 | ||
| 169 | + - 主干绝大多数层(`blocks.5` 及之后)进行 W4A4 量化:激活与权重均按 `per_block` 粒度对称量化为 mxfp4(激活 `minmax`、权重 `ceil_x` 并开启 `enable_search` 搜索),在保证生成质量的同时取得显存与带宽收益。 | ||
C | |||
| 170 | + - 注意力(`self_attn`)使能在线 QuaRot(`online_quarot`):attention 激活通常存在离群值,直接低比特量化易产生精度损失,因此通过 Hadamard 旋转改善激活分布,降低量化的精度损失。 | ||
| 171 | + - 使能 FA3 激活量化:`self_attn` 按 mxfp4 量化,其中 `blocks.0.self_attn` 回退为 fp8_e4m3 量化。 | ||
| 172 | + | ||
| 173 | +2. 编写量化实践配置。 | ||
| 174 | + | ||
| 175 | + 完整量化配置单独编写为量化实践配置([`lab_practice/wan2_2/wan2_2_w4a4f4_mxfp_t2v.yaml`](../../../lab_practice/wan2_2/wan2_2_w4a4f4_mxfp_t2v.yaml)),量化时通过 `--config` 参数指定。其中 `inference_config` 字段须与原仓 CLI 对齐,`task` 与 `scene_task` 一致: | ||
| 176 | + | ||
| 177 | + ```yaml | ||
| 178 | + multimodal_sd_config: | ||
| 179 | + inference_config: | ||
| 180 | + size: "1280*720" | ||
| 181 | + frame_num: 81 | ||
| 182 | + convert_model_dtype: True | ||
| 183 | + task: "t2v-A14B" | ||
| 184 | + ``` | ||
| 185 | + | ||
| 186 | +**输出**: | ||
| 187 | + | ||
| 188 | +- Wan2.2 W4A4F4 量化实践配置。 | ||
| 189 | + | ||
| 190 | +**记录**:量化方案设计要点与决策依据(各层量化位宽/粒度/算法、QuaRot 与 FA3 使能范围)。 | ||
| 191 | + | ||
| 192 | +### 步骤 3:环境准备与路径配置 | ||
| 165 | 193 | ||
| 166 | **目标**:设置环境变量,核对依赖版本,确认模型和数据路径正确。 | 194 | **目标**:设置环境变量,核对依赖版本,确认模型和数据路径正确。 |
| 167 | **输入**:模型路径、数据路径、输出路径。 | 195 | **输入**:模型路径、数据路径、输出路径。 |
| @@ -171,7 +199,7 @@ Wan2.2 适配器基类 `Wan2_2BaseModelAdapter` 实现公共逻辑,场景子 | |||
| 171 | # 设置环境变量(替换为实际路径) | 199 | # 设置环境变量(替换为实际路径) |
| 172 | export MODEL_PATH=/path/to/Wan2.2-T2V-A14B # 浮点模型权重路径 | 200 | export MODEL_PATH=/path/to/Wan2.2-T2V-A14B # 浮点模型权重路径 |
| 173 | export SAVE_PATH=/path/to/output/wan22_w4a4f4 # 量化权重导出路径 | 201 | export SAVE_PATH=/path/to/output/wan22_w4a4f4 # 量化权重导出路径 |
| 174 | -export EVAL_DATA_PATH=/path/to/eval/final_mini_dataset_0_01 # 评测数据集路径,具体可见下方步骤 4 | 202 | +export EVAL_DATA_PATH=/path/to/eval/final_mini_dataset_0_01 # 评测数据集路径,具体可见下方步骤 5 |
| 175 | export OUTPUT_DIR=/path/to/output/wan22_verification # 推理结果输出目录 | 203 | export OUTPUT_DIR=/path/to/output/wan22_verification # 推理结果输出目录 |
| 176 | export PYTHONPATH=/path/to/Wan2.2:$PYTHONPATH # 推理仓库路径 | 204 | export PYTHONPATH=/path/to/Wan2.2:$PYTHONPATH # 推理仓库路径 |
| 177 | 205 | ||
| @@ -186,28 +214,30 @@ pip show msmodelslim mindiesd | |||
| 186 | **输出**:环境变量配置完成,所有依赖版本核对记录在案。 | 214 | **输出**:环境变量配置完成,所有依赖版本核对记录在案。 |
| 187 | **记录**:CANN版本、PyTorch/TorchNPU版本、msmodelslim版本、NPU型号与驱动。 | 215 | **记录**:CANN版本、PyTorch/TorchNPU版本、msmodelslim版本、NPU型号与驱动。 |
| 188 | 216 | ||
| 189 | -### 步骤 3:执行Wan2.2 W4A4F4量化 | 217 | +### 步骤 4:执行Wan2.2 W4A4F4量化 |
| 190 | 218 | ||
| 191 | **目标**:运行msModelSlim量化流程,完成双专家逐层量化,导出量化权重。 | 219 | **目标**:运行msModelSlim量化流程,完成双专家逐层量化,导出量化权重。 |
| 192 | -**输入**:浮点模型、校准数据集、量化配置。 | 220 | +**输入**:浮点模型、校准数据集、量化配置(`${YAML_PATH}`)。 |
| 193 | **操作**:使用对应model_type执行W4A4F4量化。 | 221 | **操作**:使用对应model_type执行W4A4F4量化。 |
| 194 | 222 | ||
| 195 | ```bash | 223 | ```bash |
| 224 | +# 浮点模型权重路径:${MODEL_PATH} | ||
| 225 | +# 量化权重导出路径:${SAVE_PATH} | ||
| 226 | +# 量化配置文件路径:${YAML_PATH}(即步骤 2 中的 wan2_2_w4a4f4_mxfp_t2v.yaml) | ||
| 196 | # T2V文生视频量化示例 | 227 | # T2V文生视频量化示例 |
| 197 | msmodelslim quant \ | 228 | msmodelslim quant \ |
| 198 | - --model_path ${MODEL_PATH} \ # 浮点模型权重路径 | 229 | + --model_path ${MODEL_PATH} \ |
| 199 | - --save_path ${SAVE_PATH} \ # 量化权重导出路径 | 230 | + --save_path ${SAVE_PATH} \ |
| 200 | --device npu \ | 231 | --device npu \ |
| 201 | --model_type Wan2.2-T2V-A14B \ | 232 | --model_type Wan2.2-T2V-A14B \ |
| 202 | - --quant_type w4a4f4 \ | 233 | + --config ${YAML_PATH} \ |
| 203 | --trust_remote_code True | 234 | --trust_remote_code True |
| 204 | - | ||
| 205 | ``` | 235 | ``` |
| 206 | 236 | ||
| 207 | **输出**:量化权重保存至`${SAVE_PATH}`目录,包含双专家量化权重与描述文件。 | 237 | **输出**:量化权重保存至`${SAVE_PATH}`目录,包含双专家量化权重与描述文件。 |
| 208 | **记录**:量化过程完整日志、量化总时长、各层量化状态。 | 238 | **记录**:量化过程完整日志、量化总时长、各层量化状态。 |
| 209 | 239 | ||
| 210 | -### 步骤 4:准备VBench-1.0-mini评测子集 | 240 | +### 步骤 5:准备VBench-1.0-mini评测子集 |
| 211 | 241 | ||
| 212 | **目标**:从VBench-1.0-mini原始数据集中整理出0.01子集,供推理脚本使用。 | 242 | **目标**:从VBench-1.0-mini原始数据集中整理出0.01子集,供推理脚本使用。 |
| 213 | **输入**:已下载的VBench-1.0-mini原始数据集。 | 243 | **输入**:已下载的VBench-1.0-mini原始数据集。 |
| @@ -217,9 +247,9 @@ VBench-1.0-mini原始目录结构如下: | |||
| 217 | 247 | ||
| 218 | ```text | 248 | ```text |
| 219 | VBench-1.0-mini/ | 249 | VBench-1.0-mini/ |
| 220 | -├── VBench_kmeans_info.json # 全量 mini,91 条 prompt | 250 | +├── VBench_kmeans_info.json # 全量 mini,91条prompt |
| 221 | -├── VBench_kmeans_info_0.01.json # 11 条 prompt(0.01 子集) | 251 | +├── VBench_kmeans_info_0.01.json # 11条prompt(0.01 子集) |
| 222 | -├── VBench_kmeans_info_0.05.json # 43 条 prompt | 252 | +├── VBench_kmeans_info_0.05.json # 43条prompt |
| 223 | ├── VBench_kmeans_info_0.10.json # 同全量 mini | 253 | ├── VBench_kmeans_info_0.10.json # 同全量 mini |
| 224 | └── README.md | 254 | └── README.md |
| 225 | ``` | 255 | ``` |
| @@ -243,12 +273,12 @@ cp VBench-1.0-mini/VBench_kmeans_info_0.01.json \ | |||
| 243 | final_mini_dataset_0_01/VBench_kmeans_info.json | 273 | final_mini_dataset_0_01/VBench_kmeans_info.json |
| 244 | ``` | 274 | ``` |
| 245 | 275 | ||
| 246 | -完成后推理传参 `--vbench_mini_root ./final_mini_dataset_0_01` 即可使用 0.01 子集。该子集包含 11 条 prompt,覆盖 11 个维度;按每条 prompt 生成 1 个视频计算,共 11 个视频。 | 276 | +完成后推理传参 `--vbench_mini_root ./final_mini_dataset_0_01` 即可使用0.01子集。该子集包含11条prompt,覆盖11个维度;按每条prompt生成1个视频计算,共11个视频。 |
| 247 | 277 | ||
| 248 | **输出**:`final_mini_dataset_0_01/` 目录准备完毕,可直接传入 `--vbench_mini_root`。 | 278 | **输出**:`final_mini_dataset_0_01/` 目录准备完毕,可直接传入 `--vbench_mini_root`。 |
| 249 | -**记录**:整理后的目录结构、`VBench_kmeans_info.json` 文件内容(11 条 prompt 列表)。 | 279 | +**记录**:整理后的目录结构、`VBench_kmeans_info.json` 文件内容(11条prompt列表)。 |
| 250 | 280 | ||
| 251 | -### 步骤 5:执行Wan2.2浮点模型VBench评测推理 | 281 | +### 步骤 6:执行Wan2.2浮点模型VBench评测推理 |
| 252 | 282 | ||
| 253 | **目标**:运行浮点模型推理,在VBench-mini数据集上生成评测结果作为精度对比基线,该步骤只生成视频。 | 283 | **目标**:运行浮点模型推理,在VBench-mini数据集上生成评测结果作为精度对比基线,该步骤只生成视频。 |
| 254 | **输入**:浮点模型权重、VBench-mini评测数据集、推理超参配置。 | 284 | **输入**:浮点模型权重、VBench-mini评测数据集、推理超参配置。 |
| @@ -288,7 +318,7 @@ torchrun --nproc_per_node=4 --master_port=23459 vbench.py \ | |||
| 288 | **输出**:推理正常完成,所有评测视频生成完毕,结果保存至`${OUTPUT_DIR}/vbench_fp_output/`目录,生成视频无画质崩坏。 | 318 | **输出**:推理正常完成,所有评测视频生成完毕,结果保存至`${OUTPUT_DIR}/vbench_fp_output/`目录,生成视频无画质崩坏。 |
| 289 | **记录**:推理完整运行日志。 | 319 | **记录**:推理完整运行日志。 |
| 290 | 320 | ||
| 291 | -### 步骤 6:执行Wan2.2量化模型VBench评测推理 | 321 | +### 步骤 7:执行Wan2.2量化模型VBench评测推理 |
| 292 | 322 | ||
| 293 | **目标**:运行 W4A4F4 量化模型推理,生成评测视频,用于与浮点基线对比。 | 323 | **目标**:运行 W4A4F4 量化模型推理,生成评测视频,用于与浮点基线对比。 |
| 294 | **输入**:W4A4F4量化权重、与浮点相同的VBench-mini评测数据集、W4A4F4的推理超参配置。 | 324 | **输入**:W4A4F4量化权重、与浮点相同的VBench-mini评测数据集、W4A4F4的推理超参配置。 |
| @@ -343,30 +373,30 @@ torchrun --nproc_per_node=4 --master_port=23459 vbench.py \ | |||
| 343 | | 数据集与任务 | Vbench-1.0-mini 1%子集 | | 373 | | 数据集与任务 | Vbench-1.0-mini 1%子集 | |
| 344 | | 样本数 / 子集策略 | VBench-1.0-mini 1%子集共11条prompt,每条prompt生成1个视频,共11个视频样本 | | 374 | | 样本数 / 子集策略 | VBench-1.0-mini 1%子集共11条prompt,每条prompt生成1个视频,共11个视频样本 | |
| 345 | | 指标与方向 | VBench Quality、VBench Semantic | | 375 | | 指标与方向 | VBench Quality、VBench Semantic | |
| 346 | -| 验收阈值 | VBench Quality 与 Semantic 两项的绝对得分下降均 < 1 pp(即 `FP 得分 − 量化得分 < 1 pp`);逐项判定,任一项超阈值即不通过 | | 376 | +| 验收阈值 | VBench Quality 与 Semantic 两项的绝对得分下降均 < 1pp(即 `\|FP 得分 − 量化得分\| < 1pp`);逐项判定,任一项超阈值即不通过 | |
| 347 | | 随机性控制 | 固定随机种子seed=0、固定采样步数=40、固定分辨率720P、固定帧数81帧,对比双方所有推理参数完全一致 | | 377 | | 随机性控制 | 固定随机种子seed=0、固定采样步数=40、固定分辨率720P、固定帧数81帧,对比双方所有推理参数完全一致 | |
| 348 | 378 | ||
| 349 | ### 6.2 可复现过程 | 379 | ### 6.2 可复现过程 |
| 350 | 380 | ||
| 351 | **数据准备**: | 381 | **数据准备**: |
| 352 | 382 | ||
| 353 | -VBench-1.0-mini 数据集已在步骤 4 中准备完毕(`final_mini_dataset_0_01/` 目录)。VBench 评测的数据准备、小模型权重缓存下载及 AISBench 环境安装请参考 《[AISBench VBench 评测文档](https://github.com/AISBench/benchmark/blob/master/docs/source_zh_cn/extended_benchmark/lmm_generate/vbench.md)》。 | 383 | +VBench-1.0-mini 数据集已在步骤 5 中准备完毕(`final_mini_dataset_0_01/` 目录)。VBench 评测的数据准备、小模型权重缓存下载及 AISBench 环境安装请参考 《[AISBench VBench 评测文档](https://github.com/AISBench/benchmark/blob/master/docs/source_zh_cn/extended_benchmark/lmm_generate/vbench.md)》。 |
| 354 | 384 | ||
| 355 | **评测配置要点**: | 385 | **评测配置要点**: |
| 356 | 386 | ||
| 357 | VBench 指标计算通过 aisbench 的 `VBenchEvalTask` 完成,核心配置项如下(以 `ais_bench/configs/vbench_examples/eval_vbench_standard.py` 为例)。 | 387 | VBench 指标计算通过 aisbench 的 `VBenchEvalTask` 完成,核心配置项如下(以 `ais_bench/configs/vbench_examples/eval_vbench_standard.py` 为例)。 |
| 358 | 388 | ||
| 359 | -**注意**:以下取值需直接写入配置文件,配置文件中不解析 shell 环境变量,请填写展开后的**绝对路径**(下表以步骤 2 中 `OUTPUT_DIR=/path/to/output/wan22_verification`、`EVAL_DATA_PATH=/path/to/eval/final_mini_dataset_0_01` 为例,请替换为实际路径)。 | 389 | +**注意**:以下取值需直接写入配置文件,配置文件中不解析 shell 环境变量,请填写展开后的**绝对路径**(下表以步骤 3 中 `OUTPUT_DIR=/path/to/output/wan22_verification`、`EVAL_DATA_PATH=/path/to/eval/final_mini_dataset_0_01` 为例,请替换为实际路径)。 |
| 360 | 390 | ||
| 361 | | 配置项 | 取值 | | 391 | | 配置项 | 取值 | |
| 362 | | ------ | ---- | | 392 | | ------ | ---- | |
| 363 | -| `DATA_PATH` | 浮点:`/path/to/output/wan22_verification/vbench_fp_output/`;量化:`/path/to/output/wan22_verification/vbench_quant_output/`(即步骤 5/6 `--save_path` 展开后的实际视频目录) | | 393 | +| `DATA_PATH` | 浮点:`/path/to/output/wan22_verification/vbench_fp_output/`;量化:`/path/to/output/wan22_verification/vbench_quant_output/`(即步骤 6/7 `--save_path` 展开后的实际视频目录) | |
| 364 | -| `full_json_dir` | `/path/to/eval/final_mini_dataset_0_01/VBench_kmeans_info.json`(步骤 4 准备的 0.01 子集 JSON,与推理阶段 `--vbench_mini_root` 下的文件一致) | | 394 | +| `full_json_dir` | `/path/to/eval/final_mini_dataset_0_01/VBench_kmeans_info.json`(步骤 5 准备的 0.01 子集 JSON,与推理阶段 `--vbench_mini_root` 下的文件一致) | |
| 365 | | `VBENCH_CACHE_DIR` | 小模型权重缓存目录路径 | | 395 | | `VBENCH_CACHE_DIR` | 小模型权重缓存目录路径 | |
| 366 | -| `dimension_list` | 留空即评测全部 16 个维度 | | 396 | +| `dimension_list` | 留空即评测全部16个维度 | |
| 367 | | `load_ckpt_from_local` | `True`(从本地缓存加载小模型权重) | | 397 | | `load_ckpt_from_local` | `True`(从本地缓存加载小模型权重) | |
| 368 | 398 | ||
| 369 | -**执行命令**(推理阶段已在步骤 5/6 中生成视频,此处执行 VBench 指标计算): | 399 | +**执行命令**(推理阶段已在步骤 6/7 中生成视频,此处执行 VBench 指标计算): |
| 370 | 400 | ||
| 371 | ```bash | 401 | ```bash |
| 372 | # 1) 浮点结果指标计算:先将配置文件中的 DATA_PATH 改为 .../vbench_fp_output/ | 402 | # 1) 浮点结果指标计算:先将配置文件中的 DATA_PATH 改为 .../vbench_fp_output/ |
| @@ -404,7 +434,7 @@ ais_bench ais_bench/configs/vbench_examples/eval_vbench_standard.py \ | |||
| 404 | | VBench Semantic | 11 | 72.01 | 71.06 | +0.95 | 通过 | | 434 | | VBench Semantic | 11 | 72.01 | 71.06 | +0.95 | 通过 | |
| 405 | | VBench Total | 11 | 83.04 | 83.05 | −0.01 | 通过 | | 435 | | VBench Total | 11 | 83.04 | 83.05 | −0.01 | 通过 | |
| 406 | 436 | ||
| 407 | -**精度结论**:在 VBench-1.0-mini 1% 子集(共11条prompt,每条生成1个视频)上,Wan2.2-T2V-A14B W4A4F4 量化推理结果的 VBench Quality 与 VBench Semantic 两项指标相对 FP16 浮点基线(85.80% / 72.01%)的绝对得分变化分别为 −0.25 pp 与 +0.95 pp,均满足"绝对得分下降 < 1 pp"的验收阈值;VBench Total 相对变化 −0.01 pp,亦通过验证。综合而言,本案例 W4A4F4 量化在 VBench-1.0-mini 1% 子集上达到预设精度目标,验收通过。 | 437 | +**精度结论**:在 VBench-1.0-mini 1% 子集(共11条prompt,每条生成1个视频)上,Wan2.2-T2V-A14B W4A4F4 量化推理结果的 VBench Quality 与 VBench Semantic 两项指标相对 FP16 浮点基线(85.80% / 72.01%)的绝对得分变化分别为 −0.25pp 与 +0.95pp,均满足"绝对得分下降 < 1pp"的验收阈值;VBench Total 相对变化 −0.01pp,亦通过验证。综合而言,本案例 W4A4F4 量化在 VBench-1.0-mini 1% 子集上达到预设精度目标,验收通过。 |
| 408 | 438 | ||
| 409 | ## 7. 结果与经验 | 439 | ## 7. 结果与经验 |
| 410 | 440 | ||
| @@ -412,9 +442,9 @@ ais_bench ais_bench/configs/vbench_examples/eval_vbench_standard.py \ | |||
| 412 | 442 | ||
| 413 | | 步骤 | 关键操作 | 指标 | 变化 | 备注 | | 443 | | 步骤 | 关键操作 | 指标 | 变化 | 备注 | |
| 414 | | ------------------ | -------------------- | -------------------- | ------------------- | ------------------ | | 444 | | ------------------ | -------------------- | -------------------- | ------------------- | ------------------ | |
| 415 | -| Wan2.2 A14B量化 | W4A4F4量化 | VBench Quality | −0.25 pp | 满足阈值(< 1 pp) | | 445 | +| Wan2.2 A14B量化 | W4A4F4量化 | VBench Quality | −0.25pp | 满足阈值(< 1pp) | |
| 416 | -| Wan2.2 A14B量化 | W4A4F4量化 | VBench Semantic | +0.95 pp | 满足阈值(< 1 pp) | | 446 | +| Wan2.2 A14B量化 | W4A4F4量化 | VBench Semantic | +0.95pp | 满足阈值(< 1pp) | |
| 417 | -| Wan2.2 A14B量化 | W4A4F4量化 | VBench Total | −0.01 pp | 满足阈值(< 1 pp) | | 447 | +| Wan2.2 A14B量化 | W4A4F4量化 | VBench Total | −0.01pp | 满足阈值(< 1pp) | |
| 418 | 448 | ||
| 419 | ### 7.2 经验总结 | 449 | ### 7.2 经验总结 |
| 420 | 450 | ||
| @@ -261,7 +261,7 @@ msmodelslim quant \ | |||
| 261 | | --- | --- | --- | | 261 | | --- | --- | --- | |
| 262 | | DeepSeek-V4-Pro W4A8 新接入 | 大语言模型新接入:适配、W4A8 配置、一键量化与部署评测 | 《[DeepSeek-V4-Pro W4A8 新模型量化案例](../best_practices/deepseek_v4_pro_w4a8_new_llm_quantization_case.md)》 | | 262 | | DeepSeek-V4-Pro W4A8 新接入 | 大语言模型新接入:适配、W4A8 配置、一键量化与部署评测 | 《[DeepSeek-V4-Pro W4A8 新模型量化案例](../best_practices/deepseek_v4_pro_w4a8_new_llm_quantization_case.md)》 | |
| 263 | | Kimi-K3 W4A8 新接入 | 多模态理解新接入:适配、W4A8 量化与精度测评 | 《[Kimi-K3 新模型 W4A8 量化案例](../best_practices/kimi_k3_adaptation_case.md)》 | | 263 | | Kimi-K3 W4A8 新接入 | 多模态理解新接入:适配、W4A8 量化与精度测评 | 《[Kimi-K3 新模型 W4A8 量化案例](../best_practices/kimi_k3_adaptation_case.md)》 | |
| 264 | -| Wan2.2 W4A4F4 验证 | 多模态生成新接入:适配、逐层量化、权重导出与精度评测 | 《[Wan2.2 W4A4F4 验证案例](../best_practices/wan2_2_w4a4f4_verification_case.md)》 | | 264 | +| Wan2.2 W4A4F4 新接入 | 多模态生成新接入:适配、逐层量化、权重导出与精度评测 | 《[Wan2.2 新模型 W4A4F4 量化案例](../best_practices/wan2_2_w4a4f4_new_dit_quantization_case.md)》 | |
| 265 | 265 | ||
| 266 | ## 9. 术语 | 266 | ## 9. 术语 |
| 267 | 267 | ||
放在下一行后