开发者
下载
[object Object]

[object Object][object Object]undefined
[object Object]
  • 接口功能:完成MoE(Mixture of Experts)门控Top-K选择的反向梯度计算。该算子是aclnnMoeGatingTopK的反向算子,根据前向算子输出的归一化得分(xNorm)、上游梯度(gradY)和专家索引(expertIdx),计算输入得分矩阵的梯度(gradX)。支持sigmoid模式(normType=1)。

  • 计算公式(sigmoid模式,normType=1):

    1. 缩放梯度
    gradYScaledip=routedScalingFactorgradYipgradYScaled_{ip} = routedScalingFactor \cdot gradY_{ip}
    1. 正向renorm的反向传播
    wPrimeip=xNormi, expertIdxipwPrime_{ip} = xNorm_{i,\ expertIdx_{ip}} Di=pwPrimeip+epsD_i = \sum_{p} wPrime_{ip} + eps wip=wPrimeipDiw_{ip} = \frac{wPrime_{ip}}{D_i} betai=pwipgradYScaledipbeta_i = \sum_{p} w_{ip} \cdot gradYScaled_{ip} gradWPrimeip=gradYScaledipbetaiDigradWPrime_{ip} = \frac{gradYScaled_{ip} - beta_i}{D_i}
    1. 散射到完整维度
    gradNormXij=p: expertIdxip=jgradWPrimeipgradNormX_{ij} = \sum_{p:\ expertIdx_{ip}=j} gradWPrime_{ip}
    1. Sigmoid反向传播
    gradXij=xNormij(1xNormij)gradNormXijgradX_{ij} = xNorm_{ij} \cdot (1 - xNorm_{ij}) \cdot gradNormX_{ij}
[object Object]

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

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

    [object Object]
  • 返回值

    aclnnStatus:返回状态码,具体参见

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

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

    [object Object]
  • 返回值

    aclnnStatus:返回状态码,具体参见

[object Object]
  • 确定性计算:
    • aclnnMoeGatingTopKBackward默认确定性实现。
[object Object]

示例代码如下,仅供参考,具体编译和执行过程请参考

[object Object]