Qwen2.5VL量化指南#

Qwen2.5VL模型主要采用FP8(static、dynamic)W4A16(AWQ、GPTQ) 两种方式进行模型压缩,以下是详细的量化配置与操作说明。

FP8 量化(W8A8)#

Qwen2.5VL的FP8量化采用per-tensor粒度,支持动态量化(dynamic)和静态量化(static)两种模式。

配置参数说明#

FP8量化的配置文件可参考路径:config/qwen2_5_vl/fp8_dynamicconfig/qwen2_5_vl/fp8_static,核心参数如下:

model配置#

  • name:模型名称,固定填写QwenVL

  • low_cpu_mem_usage:启用单卡运行模式(权重存于CPU)时设为True,同时需将model.device_map设置为cpu

compression配置#

  • name:压缩策略类型,固定选择量化模式PTQ

  • quantization.name:量化算法类型,根据需求选择fp8_static(静态量化)或fp8_dynamic(动态量化)。

  • quantization.bits:量化比特数,FP8量化固定填写8

  • quantization.quant_method:权重量化粒度,FP8量化固定为per-tensor

  • quantization.ignore_layers:指定模型中无需量化的层(可选)。

  • quantization.quant_vit:是否量化QwenVL模型中的ViT结构,可选truefalse

dataset配置#

  • name:数据集类型,固定选择MultiModalDataset

  • data_path:数据集路径,支持HuggingFace数据集(默认使用HuggingFaceM4/ChartQA)或jsonl文件路径。自定义数据集需参考dataset/multimodal_fake_data/fake_data.json格式。

启动量化流程#

通过以下命令启动FP8量化校准:

# 动态FP8量化
python3 tools/run.py -c configs/qwen2_5_vl/quantization/fp8_dynamic/qwen2_5_vl-7b_fp8_dynamic.yaml
# 静态FP8量化
python3 tools/run.py -c configs/qwen2_5_vl/quantization/fp8_static/qwen2_5_vl-7b_fp8_static.yaml

INT4 量化(W4A16)#

QwenVL的W4A16量化中,权重采用per-group粒度(分组大小为128),激活不进行量化,支持AWQ和GPTQ两种算法。

配置参数说明#

INT4量化的配置文件可参考路径:config/qwen2_5_vl/int4_awqconfig/qwen2_5_vl/int4_gptq,核心参数如下:

model配置#

  • name:模型名称,固定填写QwenVL

  • low_cpu_mem_usage:启用单卡运行模式(权重存于CPU)时设为True,同时需将model.device_map设置为cpu

compression配置#

  • name:压缩策略类型,固定选择quantization

  • quantization.name:量化算法类型,根据需求选择int4_awqint4_gptq

  • quantization.bits:量化比特数,INT4量化固定填写4

  • quantization.low_memory:仅用于int4_awq量化,设为true可减少量化过程中的显存占用,默认false

  • quantization.quant_method:权重量化粒度,INT4量化固定为per-group

  • quantization.group_size:权重量化分组大小,默认值为128

  • quantization.ignore_layers:指定模型中无需量化的层(可选)。

启动量化流程#

通过以下命令启动INT4量化校准:

# AWQ算法INT4量化
python3 tools/run.py -c configs/qwen2_5_vl/quantization/int4_awq/qwen2_5_vl-32b_int4_awq.yaml
# GPTQ算法INT4量化
python3 tools/run.py -c configs/qwen2_5_vl/quantization/int4_gptq/qwen2_5_vl-7b_int4_gptq.yaml

模型部署#

vLLM框架支持QwenVL2.5的FP8(per-tensor)量化和INT4(AWQ、GPTQ)量化模型部署,建议使用vllm==0.10.0版本。

部署步骤:

  1. 修改AngelSlim/scripts/deploy/run_vllm.sh中的MODEL_PATH字段,指定量化后的模型路径。

  2. 执行以下命令启动部署:

cd AngelSlim/scripts/deploy
sh run_vllm.sh