昇腾社区首页
中文
注册

参数列表

在使用时应带有命名空间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特性的枚举量,其具体取值如下:
    • SCALE_TYPE_TOR(枚举值:0):默认值,不开启LogN缩放。
    • SCALE_TYPE_LOGN(枚举值:1):注意力使用LogN缩放。
    • SCALE_TYPE_MAX(枚举值:2):边界值,仅用于判断是否出界。
    • scale类型有以下约束条件:

      “scale”类型为SCALE_TYPE_LOGN时,不支持quanttype为2和3。

  • InputLayout:表示数据排布格式的枚举量,其具体取值如下:
    • TYPE_BSND(枚举值:0):默认值,表示数据排布为BSND。
    • TYPE_BNSD(枚举值:1):表示数据排布为BNSD。