昇腾社区首页
中文
注册
开发者
下载

aclnnMoeTokenUnpermuteGrad

产品支持情况

[object Object]undefined

功能说明

  • 接口功能:aclnnMoeTokenUnpermute的反向传播。

  • 计算公式:

    • probs非None:

      unpermutedTokens[i]=permutedTokens[sortedIndices[i]]unpermutedTokens[i] = permutedTokens[sortedIndices[i]] unpermutedTokens=unpermutedTokens.reshape(1,topKnum,hiddenSize)unpermutedTokens = unpermutedTokens.reshape(-1, topK_num, hiddenSize) unpermutedTokens=unpermutedTokensGrad.unsqueeze(1)unpermutedTokensunpermutedTokens = unpermutedTokensGrad.unsqueeze(1) * unpermutedTokens probsGrad=k=0K(unpermutedTokensi,j,k)probsGrad = \sum_{k=0}^{K}(unpermutedTokens_{i,j,k}) permutedTokensGrad[sortedIndices[i]]=((unpermutedTokensGrad.unsqueeze(1)probs.unsqueeze(1)).reshape(1,hiddenSize))[i]permutedTokensGrad[sortedIndices[i]] = ((unpermutedTokensGrad.unsqueeze(1) * probs.unsqueeze(-1)).reshape(-1, hiddenSize))[i]
    • probs为None:

      permutedTokensGrad[sortedIndices[i]]=unpermutedTokensGrad[i]permutedTokensGrad[sortedIndices[i]] = unpermutedTokensGrad[i]

函数原型

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

[object Object]
[object Object]

aclnnMoeTokenUnpermuteGradGetWorkspaceSize

  • 参数说明

    [object Object]
  • 返回值

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

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

    [object Object]

aclnnMoeTokenUnpermuteGrad

  • 参数说明

    [object Object]
  • 返回值

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

约束说明

  • 确定性计算:
    • aclnnMoeTokenUnpermuteGrad默认确定性实现。
  • tokens_num表示输入的token数量,hidden_size表示词向量维度。
  • 通过paddedMode区分以下两种模式:paddedMode等于true时,每个专家固定能够处理capacity个token。paddedMode等于false时,每个token固定被topK_num个专家处理。
  • [object Object]Atlas A2 训练系列产品/Atlas A2 推理系列产品[object Object]、[object Object]Atlas A3 训练系列产品/Atlas A3 推理系列产品[object Object]:topK_num <= 512。

调用示例

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

[object Object]