文件最后提交记录最后更新时间
4 个月前
4 个月前
7 个月前
6 个月前
8 个月前
3 个月前
8 个月前
4 个月前
README

TransformBiasRescaleQkv

产品支持情况

产品 是否支持
Ascend 950PR/Ascend 950DT
Atlas A3 训练系列产品/Atlas A3 推理系列产品
Atlas A2 训练系列产品/Atlas A2 推理系列产品
Atlas 200I/500 A2 推理产品 ×
Atlas 推理系列产品 ×
Atlas 训练系列产品 ×
Kirin X90 处理器系列产品
Kirin 9030 处理器系列产品

功能说明

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

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

    qo=(qi+qbias)/dim_per_head q_o=(q_i+q_{bias})/\sqrt{dim\_per\_head}\\

    ko=ki+kbias k_o=k_i+k_{bias}\\

    vo=vi+vbias v_o=v_i+v_{bias}

    公式中:

    • dim_per_head为每个注意力头的维度。
    • qo、ko、vo分别为查询(Query)、键(Key)、值(Value)向量的输出元素。
    • qi、ki、vi分别为查询(Query)、键(Key)、值(Value)向量的输入元素。
    • qbias、kbias、vbias分别为查询(Query)、键(Key)、值(Value)向量的输入元素偏移。

参数说明

参数名 输入/输出/属性 描述 数据类型 数据格式
qkv 输入 公式中的输入qi、ki、vi BFLOAT16、FLOAT32、FLOAT16 ND
qkvBias 输入 公式中的输入qbias、kbias、vbias BFLOAT16、FLOAT32、FLOAT16 ND
numHeads 属性
  • 输入的头数。
  • 取值大于0。
INT64 -
qOut 输出 公式中的qo BFLOAT16、FLOAT32、FLOAT16 ND
kOut 输出 公式中的ko BFLOAT16、FLOAT32、FLOAT16 ND
vOut 输出 公式中的vo BFLOAT16、FLOAT32、FLOAT16 ND
  • Kirin X90/Kirin 9030 处理器系列产品: 不支持BFLOAT16。

约束说明

  • 输入qkv、qkvBias和输出qOut、kOut、vOut的数据类型需要保持一致。
  • 输入值为NaN,输出也为NaN,输入是Inf,输出也是Inf。
  • 输入是-Inf,输出也是-Inf。

调用说明

调用方式 样例代码 说明
aclnn调用 test_aclnn_transform_bias_rescale_qkv 通过aclnnTransformBiasRescaleQkv接口方式调用TransformBiasRescaleQkv算子。
图模式调用 - 通过算子IR构图方式调用TransformBiasRescaleQkv算子。