qkv全量化

功能

支持量化好的q、k、v传入,降低显存占用。

开启方式

参数“quantType”置为TYPE_QUANT_QKV_OFFLINE或TYPE_QUANT_QKV_ONLINE, 分别为离线量化与在线量化。

复用kDescale和vDescale,当采用离线量化时,额外传入pScale作为输入tensor。

若干输入tensor需要传入指定的维度,如下:

参数

维度

数据类型

格式

cpu or npu

query

[num_tokens, num_head, head_size]

int8

ND

npu

keyCache

[num_blocks, block_size, kv_head_num, head_size]

int8

ND

npu

valueCache

[num_blocks, block_size, kv_head_num, head_size]

int8

ND

npu

blockTables

[num_tokens, max_num_blocks_per_query]

int32

ND

npu

contextLens

[batch]

int32

ND

cpu

kDescale

[head_num]

float

ND

npu

vDescale

[head_num]

float

ND

npu

pScale

[head_num]

float

ND

npu

attnOut

[n_tokens, num_head, head_size]

float16/bf16

ND

npu

其中pScale仅在离线量化场景传入,在线量化场景则不传此输入tensor。

特殊约束

使用全量化时需要指定输出tensor的数据类型,具体为使用参数outDataType,该参数只能是ACL_FLOAT16或ACL_BF16。

不支持Atlas 推理系列产品