支持量化好的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。
不支持