| query |
输入 |
attention结构的Query输入,不支持空tensor和非连续。layout_query为BSND时,shape为(B,S1,N1,D);layout_query为TND时,shape为(T1,N1,D)。 |
FLOAT16、BFLOAT16 |
ND |
| key |
输入 |
attention结构的Key输入,不支持空tensor和非连续。layout_kv为PA_BSND时,shape为(block_num, block_size, KV_N, D),其中block_num为PageAttention时block总数;layout_kv为BSND时,shape为(B, S2, KV_N, D);layout_kv为TND时,shape为(T2, KV_N, D)。 |
FLOAT16、BFLOAT16 |
ND |
| value |
输入 |
attention结构的Value输入,不支持空tensor和非连续,shape与key的shape一致。 |
FLOAT16、BFLOAT16 |
ND |
| sparseIndices |
输入 |
离散取kvCache的索引,不支持空tensor和非连续。sparse_size为一次离散选取的block数,需要保证每行有效值均在前半部分、无效值均在后半部分,且sparse_size大于0。layout_query为BSND时,shape为(B, Q_S, KV_N, sparse_size);layout_query为TND时,shape为(Q_T, KV_N, sparse_size)。 |
INT32 |
ND |
| blockTable |
输入 |
表示PageAttention中kvCache存储使用的block映射表,不支持空tensor和非连续。第二维长度不小于所有batch中最大的S2对应的block数量,即S2_max / block_size向上取整;shape支持(B,S2/block_size)。 |
INT32 |
ND |
| actualSeqLengthsQuery |
输入 |
表示不同Batch中query的有效token数,不支持空tensor和非连续。可传入None表示与query的S长度相同;支持长度为B的一维tensor,且每个Batch的有效token数不超过query中的维度S大小且不小于0。layout_query为TND时该入参必须传入,且以元素数量作为B值;每个元素表示当前batch与之前所有batch的token数总和。 |
INT32 |
ND |
| actualSeqLengthsKv |
输入 |
表示不同Batch中key和value的有效token数,不支持空tensor和非连续。可传入None表示与key的S长度相同;支持长度为B的一维tensor,且每个Batch的有效token数不超过key/value中的维度S大小且不小于0。layout_kv为TND或PA_BSND时该入参必须传入;其中layout_kv为TND时,每个元素表示当前batch与之前所有batch的token数总和,即前缀和,因此后一个元素的值必须大于等于前一个元素的值。 |
INT32 |
ND |
| queryRope |
输入 |
表示MLA结构中的query的rope信息,不支持空tensor和非连续。layout_query为TND时,shape为(B,S1,N1,Dr);layout_query为BSND时,shape为(T1,N1,Dr)。 |
FLOAT16、BFLOAT16 |
ND |
| keyRope |
输入 |
表示MLA结构中的key的rope信息,不支持空tensor和非连续。layout_kv为TND时,shape为(B,S1,N1,Dr);layout_kv为BSND时,shape为(T1,N1,Dr);layout_kv为PA_BSND时,shape为(block_num,block_size,N2,Dr)。 |
FLOAT16、BFLOAT16 |
ND |
| scaleValue |
可选属性 |
代表缩放系数。 |
FLOAT16 |
- |
| sparseBlockSize |
可选属性 |
代表sparse阶段的block大小。sparse_block_size为1时,为Token-wise稀疏化场景;sparse_block_size大于1且小于等于128时,为Block-wise稀疏化场景,块内token共享相同的稀疏化决策。 |
INT64 |
- |
| layoutQuery |
可选属性 |
标识输入query的数据排布格式,默认值为"BSND",支持传入BSND和TND。 |
STRING |
- |
| layoutKv |
可选属性 |
标识输入key的数据排布格式,默认值为"BSND",支持传入TND、BSND和PA_BSND,其中PA_BSND在使能PageAttention时使用。 |
STRING |
- |
| sparseMode |
可选属性 |
表示sparse的模式。sparse_mode为0时代表全部计算;sparse_mode为3时代表rightDownCausal模式的mask,对应以右下顶点往左上为划分线的下三角场景。 |
INT64 |
- |
| preTokens |
可选属性 |
用于稀疏计算,表示attention需要和前几个Token计算关联,仅支持默认值2^63-1。 |
INT64 |
- |
| nextTokens |
可选属性 |
用于稀疏计算,表示attention需要和后几个Token计算关联,仅支持默认值2^63-1。 |
INT64 |
- |
| attentionMode |
可选属性 |
表示attention的模式,仅支持传入2,表示MLA-absorb模式。 |
INT64 |
- |
| returnSoftmaxLse |
可选属性 |
用于表示是否返回softmax_max和softmax_sum。True表示返回,False表示不返回,默认值为False。该参数仅在训练且layout_kv不为PA_BSND场景支持。 |
BOOL |
- |
| attentionOut |
输出 |
公式中的输出,不支持空tensor和非连续。layout_query为BSND时,shape为(B,S1,N1,D);layout_query为TND时,shape为(T1,N1,D)。 |
FLOAT16、BFLOAT16 |
ND |
| softmaxMaxOut |
输出 |
Attention算法对query乘key的结果取max得到softmax_max,不支持空tensor和非连续。layout_query为BSND时,shape为(B,N2,S1,N1/N2);layout_query为TND时,shape为(N2,T1,N1/N2)。 |
FLOAT |
ND |
| softmaxSumOut |
输出 |
Attention算法query乘key的结果减去softmax_max后取exp并求sum,得到softmax_sum,不支持空tensor和非连续。layout_query为BSND时,shape为(B,N2,S1,N1/N2);layout_query为TND时,shape为(N2,T1,N1/N2)。 |
FLOAT |
ND |