MindIE LLM中提供统一的脚本${ATB_SPEED_HOME_PATH}/examples/convert/model_slim/quantifier.py供用户生成量化权重。
参数名称 |
是否为必选 |
类型 |
默认值 |
描述 |
---|---|---|---|---|
--model_path |
是 |
string |
- |
模型权重路径。 |
--save_directory |
是 |
string |
- |
量化权重保存路径。 |
--calib_texts |
否 |
string |
"What's deep learning?" |
量化时的校准数据,多条数据间使用空格分割 |
--calib_file |
否 |
string |
${ATB_SPEED_HOME_PATH}/examples/convert/model_slim/teacher_qualification.jsonl |
包含校准数据的文件 |
--calib_dataset_length |
否 |
int |
50 |
校准数据条数上限值 |
--w_bit |
否 |
int |
8 |
权重量化bit。
|
--a_bit |
否 |
int |
8 |
激活值量化bit。 可选值为8和16。
|
--disable_names |
否 |
List[string] |
None |
需排除量化的节点名称,即手动回退的量化层名称。如精度太差,推荐回退量化敏感层,如分类层、输入层、检测head层等。 |
--device_type |
否 |
string |
"cpu" |
量化时的硬件类型,仅支持"cpu"或"npu" |
--fraction |
否 |
float |
0.01 |
稀疏量化精度控制。 |
--act_method |
否 |
int |
1 |
激活值量化方法,仅支持1或2或3。
|
--co_sparse |
否 |
string |
"False" |
是否开启稀疏量化功能。 大模型稀疏量化场景下,优先使用lowbit稀疏量化功能,开启lowbit稀疏量化后,co_sparse参数自动失效。 |
--anti_method |
否 |
string |
"" |
离群值抑制算法,默认不开启。
|
--disable_level |
否 |
string |
"L0" |
自动回退等级。
|
--input_ids_name |
否 |
string |
"input_ids" |
tokenize后input_ids对应的键名 |
--attention_mask_name |
否 |
string |
"attention_mask" |
tokenize后attention_mask对应的键名 |
--do_smooth |
否 |
string |
"False" |
是否开启smooth功能。启用do_smooth功能后,平滑激活值。默认为False,不开启smooth功能。 |
--use_sigma |
否 |
string |
"False" |
是否启动sigma功能。启用use_sigma功能后,可根据正态分布数值特点进行异常值保护。默认为False,不开启sigma功能。 |
--sigma_factor |
否 |
float |
3.0 |
启用sigma功能后sigma_factor的值,用于限制异常值的保护范围。默认为3,取值范围为[3, 4]。 |
--is_lowbit |
否 |
string |
"False" |
是否开启lowbit量化功能。 默认为False,不开启lowbit量化功能。 |
--mm_tensor |
否 |
string |
"True" |
选择进行per-channel量化或per-tensor量化。
|
--w_sym |
否 |
string |
"True" |
权重量化是否为对称量化,默认开启对称量化。 |
--use_kvcache_quant |
否 |
string |
"False" |
是否使用kvcache量化功能,默认不开启kvcache量化功能。 |
--open_outlier |
否 |
string |
"True" |
是否开启权重异常值划分。
|
--group_size |
否 |
int |
64 |
per_group量化中group的大小。 默认值为64,支持配置为64或128。 仅适用于W4A16的per_group量化场景,需协同设置is_lowbit为True,open_outlier为False。 |
由于不同模型量化特性参数配置不同,模型基于公共脚本编写各自的量化脚本。具体使用方式见模型Readme文件(${ATB_SPEED_HOME_PATH}/examples/models/{模型名称}/README.md)。
不同量化方式下的参数配置方法见后续章节。