BladeLLM通过命令行语句 blade_llm_quantize
来执行模型量化操作,生成的量化模型可直接使用BladeLLM进行推理和部署。本文将为您介绍blade_llm_quantize
支持的各项配置参数及其说明。
使用示例
BladeLLM通过执行命令行语句 blade_llm_quantize
,进行模型量化操作,示例命令如下:
blade_llm_quantize \
--model Qwen/Qwen-7B-Chat \
--output_dir Qwen-7B-Chat-int8 \
--quant_algo minmax \
--quant_mode weight_only_quant \
--bit 8
生成的量化模型可直接使用BladeLLM进行推理和部署,详情请参见服务部署参数配置说明。
参数说明
blade_llm_quantize
支持配置的参数如下表所示:
参数 | 类型 | 必选 | 说明 |
model | str | 是 | 原始浮点模型所在的目录。 |
output_dir | str | 是 | 用于存储量化模型的目录。 |
bit | int | 否 | 指定量化比特数,可选范围:[8, 4],默认值:8。 |
quant_mode | str | 否 | 指定量化模式,取值如下:
|
quant_dtype | str | 否 | 量化为整数类型或浮点数类型,取值如下:
|
quant_algo | str | 否 | 指定量化算法,取值为:minmax、gptq、awq、smoothquant、smoothquant+和smoothquant_gptq。其中minmax算法无需提升校正数据。 默认值:minmax。 |
block_wise_quant | bool | 否 | 是否开启block-wise量化(即sub-channel量化),默认block_size=64(同gptq中的group_size参数),目前仅weight_only_quant量化模式支持开启该选项。
|
calib_data | list of str | 否 | 指定校准数据,部分量化算法(如gptq)需校正数据进行权重微调等处理,该参数支持直接将用于校正的文本存于列表中传入。 默认值:[‘hello world!’]。 |
calib_data_file | str | 否 | 通过jsonl文件传入校准数据,文件内容格式如下:
默认值:None。 |
cpu_offload | bool | 否 | 若当前GPU显存不足以加载浮点模型进行量化时(即量化时出现OOM等),可启用该选项,能够在量化时维持一部分模型参数加载至CPU。 默认值:False。 |
max_gpu_memory_utilization | float | 否 | 在cpu_offload为True时生效,用于控制cpu_offload预估使用的最大显存比例。越小的值会offload更多的模型层,当开启cpu_offload参数后仍出现OOM时可以适当调低该参数。 默认值:0.9。 |
fallback_ratio | float | 否 | 指定回退为量化前浮点数计算的层数比例,当fallback_ratio>0时会开启自动混合精度量化,建议在初始量化精度不满足要求时尝试,将计算每层的量化敏感程度,回退指定比例的计算层以改善量化精度。 默认值:0.0。 |
tokenizer_dir | str | 否 | 指定tokenizer目录,不指定时则与模型目录相同。 默认值:None。 |
tensor_parallel_size | int | 否 | 指定张量并行度,若原始浮点模型需多卡加载,则通过该参数指定其数目。 默认值:1。 |
pipeline_parallel_size | int | 否 | 指定流水线并行度,若原始浮点模型需多卡加载,则通过该参数指定其数目。 默认值:1。 |