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

aclnnTransformBiasRescaleQkv

产品支持情况

[object Object]undefined

功能说明

  • 接口功能: TransformBiasRescaleQkv算子是一个用于处理多头注意力机制中查询(Query)、键(Key)、值(Value)向量的接口。它用于调整这些向量的偏置(Bias)和缩放(Rescale)因子,以优化注意力计算过程。

  • 计算公式:
    逐个元素计算过程见公式:

    qo=(qi+qbias)/dim_per_headq_o=(q_i+q_{bias})/\sqrt{dim\_per\_head}\\ ko=ki+kbiask_o=k_i+k_{bias}\\ vo=vi+vbiasv_o=v_i+v_{bias}

    公式中:

    • dim_per_head为每个注意力头的维度。
    • q[object Object]o[object Object]、k[object Object]o[object Object]、v[object Object]o[object Object]分别为查询(Query)、键(Key)、值(Value)向量的输出元素。
    • q[object Object]i[object Object]、k[object Object]i[object Object]、v[object Object]i[object Object]分别为查询(Query)、键(Key)、值(Value)向量的输入元素。
    • q[object Object]bias[object Object]、k[object Object]bias[object Object]、v[object Object]bias[object Object]分别为查询(Query)、键(Key)、值(Value)向量的输入元素偏移。

函数原型

每个算子分为,必须先调用“aclnnTransformBiasRescaleQkvGetWorkspaceSize”接口获取入参并根据计算流程计算所需workspace大小,再调用“aclnnTransformBiasRescaleQkv”接口执行计算。

[object Object]
[object Object]

aclnnTransformBiasRescaleQkvGetWorkspaceSize

  • 参数说明:

    [object Object]
  • 返回值:

    aclnnStatus:返回状态码,具体参见。 第一段接口会完成入参校验,出现以下场景时报错:

    [object Object]

aclnnTransformBiasRescaleQkv

  • 参数说明:

    [object Object]
  • 返回值:

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

约束说明

  • 确定性计算:

    • aclnnTransformBiasRescaleQkv默认确定性实现。
  • 输入qkv、qkvBias和输出qOut、kOut、vOut的数据类型需要保持一致。

  • 输入值为NaN,输出也为NaN,输入是Inf,输出也是Inf。

  • 输入是-Inf,输出也是-Inf。

调用示例

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

[object Object]