参数列表
在使用时应带有命名空间atb::infer::PagedAttentionParam的参数,成员描述如下:
成员名称 |
类型 |
默认值 |
描述 |
---|---|---|---|
headNum |
int32_t |
0 |
query 头大小。 |
qkScale |
float |
1.0 |
算子tor值。 |
kvHeadNum |
int32_t |
0 |
kv头数量。 |
maskType |
MaskType |
UNDEFINED |
mask类型。 |
batchRunStatusEnable |
bool |
false |
是否开启控制可计算batch。 |
quantType |
QuantType |
TYPE_QUANT_UNDEFINED |
量化类型。 |
outDataType |
aclDataType |
ACL_DT_UNDEFINED |
output数据类型。 |
hasQuantOffset |
bool |
false |
开启量化功能后是否使用offset。 |
compressType |
CompressType |
COMPRESS_TYPE_UNDEFINED |
压缩方式。 |
calcType |
CalcType |
CALC_TYPE_UNDEFINED |
计算类型。 |
scaleType |
ScaleType |
SCALE_TYPE_TOR |
scale类型:为SCALE_TYPE_LOGN时,不支持quanttype为2和3。 |
inputLayout |
InputLayout |
TYPE_BSND |
数据排布格式默认为BSND。 |
上表中类型为自定义类型的,其描述如下:
- MaskType:表示mask类型的枚举量,其具体取值如下。maskType取不同MaskType值或在不同硬件上运行时维度不同,详见mask类型。
- UNDEFINED(枚举值:0):默认值,全0的mask。
- MASK_TYPE_NORM(枚举值:1):倒三角mask。
- MASK_TYPE_ALIBI(枚举值:2):alibi mask。
- MASK_TYPE_SPEC(枚举值:3):并行解码mask。
- QuantType:表示量化类型的枚举量,其具体取值如下:
- TYPE_QUANT_UNDEFINED(枚举值:0):默认值,不与量化融合。
- TYPE_DEQUANT_FUSION(枚举值:1):与反量化融合,只支持
Atlas 800I A2 推理产品 /Atlas A2 训练系列产品 。 - TYPE_QUANT_QKV_OFFLINE(枚举值:2):离线INT8量化,只支持
Atlas 800I A2 推理产品 /Atlas A2 训练系列产品 。 - TYPE_QUANT_QKV_ONLINE(枚举值:3):在线INT8量化,只支持
Atlas 800I A2 推理产品 /Atlas A2 训练系列产品 。 - 量化类型有以下约束条件:
- 为TYPE_QUANT_UNDEFINED时,q、keyCache、valueCache为bf16/float16。
- 为TYPE_DEQUANT_FUSION时,q为bf16/float16,keyCache、valueCache为int8。
- 为TYPE_QUANT_QKV_OFFLINE或TYPE_QUANT_QKV_ONLINE时,q、keyCache、valueCache为int8。
- keyCache,valueCache的headsize等长,范围为(0, 256],且block_size * head_size ≤ 128 * 128。
- 为TYPE_QUANT_QKV_OFFLINE或TYPE_QUANT_QKV_ONLINE时,outdatatype需要配置,只能是ACL_FLOAT16或ACL_BF16。inputLayout只支持TYPE_BSND。
- CompressType:表示压缩类型的枚举量,其具体取值如下:
- COMPRESS_TYPE_UNDEFINED(枚举值:0):默认值,不压缩。
- COMPRESS_TYPE_KVHEAD(枚举值:1):压缩key_cache, value_cache的kvHead维度, 只支持
Atlas 800I A2 推理产品 /Atlas A2 训练系列产品 。 - COMPRESS_TYPE_KVHEAD_ROPE(枚举值:2):rope场景压缩key_cache, value_cache的kvHead维度, 只支持
Atlas 800I A2 推理产品 /Atlas A2 训练系列产品 。 - COMPRESS_TYPE_MAX(枚举值:3):压缩类型边界值,仅用于判断是否出界,所有情况不能取该值。
- 压缩类型有以下约束条件:
- 压缩方式为COMPRESS_TYPE_KVHEAD时,不支持quanttype为2和3。
- 压缩方式为COMPRESS_TYPE_KVHEAD_ROPE时, maskType需传0。此时不支持quanttype为2和3。
- CalcType:表示计算类型的枚举量,其具体取值如下:
- CALC_TYPE_UNDEFINED(枚举值:0):默认值,不开启并行解码。
- CALC_TYPE_SPEC(枚举值:1):并行解码功能,此时只支持quantType = 0。
- ScaleType:表示是否开启LogN特性的枚举量,其具体取值如下:
- InputLayout:表示数据排布格式的枚举量,其具体取值如下:
- TYPE_BSND(枚举值:0):默认值,表示数据排布为BSND。
- TYPE_BNSD(枚举值:1):表示数据排布为BNSD。