开发者
下载
[object Object][object Object][object Object]undefined
[object Object]
  • 接口功能:计算[object Object]训练场景下注意力的反向输出,支持Sliding Window Attention、Compressed Attention以及Sparse Compressed Attention。

  • 计算公式

    阶段一:根据不同cmp_ratio场景,对输入ori_kv与cmp_kv进行选择

    • 当cmp_ratio = 1 (SWA):
    selectedKv=orikvselectedKv\text{ }=\text{ }orikv
    • 当cmp_ratio = 4 (SCFA):
    selectedKv=concat(oriKv,Gather(cmpkv,topkIndices[i])),0<=i<selectBlockCountselectedKv\text{ }=concat(oriKv, \text{ }Gather \left( cmpkv,topkIndices \left[ i \left] \left)) ,\text{ }0\text{ } < =i < \text{ }selectBlockCount\right. \right. \right. \right.
    • else (CFA):
    selectedKv=concat(oriKv,cmpkv)selectedKv\text{ }=concat(oriKv, \text{ }cmpkv)

    阶段二:计算P、dP、dS

    P=SimpleSoftmax(Mask(Q@selectedKvTscale),lse)P = SimpleSoftmax(Mask(Q \text{ }@\text{ } selectedKv^{{T}} \cdot \text{ } scale), lse) dP=dO@selectedKvTdP = dO \text{ }@\text{ } selectedKv^{{T}} dS=P×(dPSoftmaxGrad(dO,O))dS = P \times (dP\text{ } -\text{ } SoftmaxGrad(dO, O))

    阶段三:计算dQ, dKV, dSinks

    dQ=dS@selectedKvscaledQ = dS \text{ } @ \text{ } selectedKv \text{ } \cdot \text{ } scale dKV=dST@Qscale+PT@dOdKV = dS^{{T}} \text{ } @ \text{ } Q \text{ } \cdot \text{ } scale + P^{{T}} @ \text{ } dO dSinks=ReduceSum(P×dP×SimpleSoftmax(sinks,lse),dim=1)dSinks = ReduceSum(-P \text{ }\times\text{ } dP \text{ }\times\text{ } SimpleSoftmax(sinks, lse), dim=-1)
[object Object]

每个算子分为,必须先调用“aclnnSparseFlashMlaGradGetWorkspaceSize”接口获取计算所需workspace大小以及包含了算子计算流程的执行器,再调用“aclnnSparseFlashMlaGrad”接口执行计算。

[object Object]
[object Object]
[object Object]
  • 参数说明:

    [object Object]
  • 返回值:

    返回aclnnStatus状态码,具体参见

    第一段接口完成入参校验,出现以下场景时报错:

    [object Object]
[object Object]
  • 参数说明:

    [object Object]
  • 返回值:

    返回aclnnStatus状态码,具体参见

[object Object]
  • 确定性计算:

    • aclnnSparseFlashMlaGrad默认非确定性实现,暂不支持通过aclrtCtxSetSysParamOpt开启确定性。
  • 公共约束

    • 入参为空的场景处理:
      • query为空Tensor:直接返回。
  • Mask

    [object Object]
  • 规格约束

    [object Object]
[object Object]

调用示例代码如下(以[object Object]Atlas A2 训练系列产品/Atlas A2 推理系列产品[object Object]为例),仅供参考,具体编译和执行过程请参考

[object Object]