下载
EN
注册

KV Cache量化简易配置文件

quant_calibration_config_pytorch.proto文件参数说明如下表所示,该文件所在目录为:AMCT安装目录/amct_pytorch/proto/。

表1 quant_calibration_config_pytorch.proto参数说明

消息

是否必填

类型

字段

说明

AMCTQuantCaliConfig

-

-

-

AMCT kv-cache量化的简易配置。

optional

uint32

batch_num

量化使用的batch数量,用于ifmr/hfmg量化算法积累数据计算量化因子。

optional

bool

activation_offset

数据量化是否带offset。全局配置参数。

  • true:带offset,数据量化时为非对称量化。
  • false:不带offset,数据量化时为对称量化。

optional

CommonCalibrationConfig

kv_cache_quant_config

通用的kv-cache量化配置,全局量化配置参数。若某层未被override_layer_configs重写,则使用该配置。

参数优先级:override_layer_configs>kv_cache_quant_config

repeated

OverrideLayer

override_layers_configs

重写某一层的量化配置,即对哪些层进行差异化量化。

例如全局量化配置参数配置的量化因子搜索步长为0.01,可以通过该参数对部分层进行差异化量化,可以配置搜索步长为0.02。

参数优先级:override_layer_configs>kv_cache_quant_config

CommonCalibrationConfig

-

-

-

通用的kv-cache量化配置。

repeated

string

quant_layers

支持量化的层名。

optional

CalibrationConfig

calibration_config

量化配置。

OverrideLayer

-

-

-

重置某层量化配置。

repeated

string

layer_name

被重置层的层名。

optional

CalibrationConfig

kv_data_quant_config

重写的kv_cache量化配置参数。

CalibrationConfig

-

-

-

Calibration量化的配置。

-

FMRQuantize

ifmr_quantize

数据量化算法配置。

ifmr_quantize:IFMR量化算法配置。

-

HFMGQuantize

hfmg_quantize

数据量化算法配置。

hfmg_quantize:HFMG量化算法配置。

FMRQuantize

-

-

-

FMR数据量化算法配置。算法介绍请参见IFMR数据量化算法

该参数与HFMGQuantize参数不能同时配置。

optional

float

search_range_start

量化因子搜索范围左边界。

optional

float

search_range_end

量化因子搜索范围右边界。

optional

float

search_step

量化因子搜索步长。

optional

float

max_percentile

最大值搜索位置。

optional

float

min_percentile

最小值搜索位置。

optional

bool

asymmetric

是否进行对称量化。用于控制逐层量化算法的选择。

  • true:非对称量化
  • false:对称量化

如果override_layer_configs、common_config配置项都配置该参数,或者配置了activation_offset参数,则生效优先级为:

override_layer_configs>common_config>activation_offset

optional

QuantGranularity

quant_granularity

量化粒度,支持如下两种方式:

  • 0:per_tensor,默认为0。
  • 1:per_channel。

HFMGQuantize

-

-

-

HFMG数据量化算法配置。算法介绍请参见HFMG数据量化算法

该参数与FMRQuantize参数不能同时配置。

optional

uint32

num_of_bins

直方图的bin(直方图中的一个最小单位直方图形)数目,支持的范围为{1024, 2048, 4096, 8192}。

默认值为4096。

optional

bool

asymmetric

是否进行对称量化。用于控制逐层量化算法的选择。

  • true:非对称量化
  • false:对称量化

如果override_layer_configs、common_config配置项都配置该参数,或者配置了

activation_offset参数,则生效优先级为:

override_layer_configs>common_config>activation_offset

optional

QuantGranularity

quant_granularity

量化粒度,支持如下两种方式:

  • 0:per_tensor,默认为0。
  • 1:per_channel。
基于该文件构造的kv-cache量化简易配置文件quant.cfg样例如下所示:
kv_cache_quant_config {
    quant_layers: 'matmul1'
    quant_layers: 'matmul2'
    calibration_config: {
        hfmg_quantize : {
        }
    }
}

override_layers_configs {
    layer_name: 'matmul3'
    kv_data_quant_config: {
        ifmr_quantize : {
        }
    }
}