约束说明
- 因硬件限制,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。