昇腾社区首页
中文
注册

约束说明

  • 因硬件限制,block_size %16 == 0,推荐 block_size = 128。
  • 开启并行解码功能时,block_size <= 128。
  • blockTables中元素的值须在[0, num_blocks)之间。
  • head_size范围为(0, 256],keyCache和valueCache的格式为NZ时,head_size必须是16倍数。
  • Atlas 推理系列产品上 :
    • query、keyCache、valueCache、maskTensor 四个入参只支持float16。
    • 0<batch<=2048。
    • 当maskType为4的时候,有如下约束:
      • block_size取值为128,qseqlen <= kvsqlen,(kvsqlen - qseqlen) % 128 =0 (block_size = 128)。
      • calcType = CALC_TYPE_SPEC。
  • 多头自适应压缩、并行解码场景、量化场景、以及Atlas 推理系列产品上,keyCache,valueCache的head_size等长,范围为(0, 256],且block_size * head_size ≤ 128 * 128,否则keyCache,valueCache的head_size可以不相同,范围为(0, 576],当keyCache或valueCache的head_size > 256时,block_size小于等于128。
  • 针对mask类型,如果原模型非alibi,且mask没有做padding,可选择“maskType”为UNDEFINED,即不传mask;其他情况则依据原生模型的配置,选择“maskType”是MASK_TYPE_NORM或MASK_TYPE_ALIBI。
  • BNSD不支持PA_ENCODER。
  • Atlas 训练系列产品Atlas 推理系列产品的输入输出约束相同,Atlas 训练系列产品只支持“maskType”为UNDEFINED、MASK_TYPE_NORM或MASK_TYPE_ALIBI的基础功能场景,其余特性参数需为默认值。
  • 若想使用GQA模式,需满足headNum > kvHeadNum且headNum%kvHeadNum == 0。
  • 当blocksize = head_size = 256时,在Atlas A2 训练系列产品/Atlas 800I A2 推理产品上,输入格式需满足BSND、非量化、decoder场景。
  • max_num_blocks_per_seq >= (max(contextLens) + block_size - 1) // block_size。