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。
不支持
父主题: 功能列表