开发者
下载
[object Object][object Object]
  • [object Object]Ascend 950PR/Ascend 950DT[object Object]:支持
  • [object Object]Atlas A3 训练系列产品/Atlas A3 推理系列产品[object Object]:支持
  • [object Object]Atlas A2 训练系列产品/Atlas A2 推理系列产品[object Object]:支持
  • [object Object]Atlas 200I/500 A2 推理产品[object Object]:不支持
  • [object Object]Atlas 推理系列产品[object Object]:不支持
  • [object Object]Atlas 训练系列产品[object Object]:不支持
[object Object]
  • 接口功能:

    执行单路旋转位置编码的Inplace计算,直接修改输入张量[object Object],不产生新的输出张量。该接口支持通过[object Object]参数指定输入张量最后一维上的局部范围,仅对该范围内的数据执行旋转位置编码,其余位置保持原值。

  • 计算公式:

    interleave模式([object Object][object Object])下,设[object Object],被旋转的局部张量为:

    xslice=x[...,start:end]x_{slice} = x[..., start:end]

    计算过程如下:

    x1=xslice[...,::2]x_1 = x_{slice}[..., ::2]

    x2=xslice[...,1::2]x_2 = x_{slice}[..., 1::2]

    xrotate=cat(x2,x1)x_{rotate} = \text{cat}(-x_2, x_1)

    xout=xslicecos+xrotatesinx_{out} = x_{slice} \cdot \cos + x_{rotate} \cdot \sin

    最终将xoutx_{out}原地写回[object Object]。其中,xx表示参数[object Object]cos\cos表示参数[object Object]sin\sin表示参数[object Object]。当[object Object][object Object]相等时,不执行旋转位置编码,[object Object]保持不变。注意:若后续需要通过自动微分计算梯度,则仍需满足反向算子[object Object]的约定,即不支持空Tensor和切片长度为零的场景(详见)。

说明

  • 输入[object Object]采用BSND维度格式,其中B(Batch)表示批量大小,S(Seq-Length)表示序列长度,N(Head-Num)表示多头数,D(Head-Dim)表示每个头的隐藏维度大小。
  • [object Object]作用于输入[object Object]的最后一维D维,取值范围为左闭右开区间[object Object]。Python接口中[object Object]默认值为[object Object],内部按[object Object]处理。
[object Object]
[object Object]
[object Object][object Object]undefined
[object Object]

该接口无返回值([object Object])。计算结果直接 inplace 写回输入张量 [object Object][object Object] 在计算后 shape 和数据类型保持不变,[object Object] 指定范围以外的数据保持原值。

[object Object]
[object Object]
  • 该接口支持训练、推理场景下使用。
  • 该接口支持单算子模式和图模式调用。
  • 不支持非连续Tensor。
  • [object Object]最后一维D大小不超过1024,且D必须为2的倍数。
  • [object Object]必须包含两个整数,满足[object Object][object Object][object Object][object Object]
  • [object Object]切片长度(即[object Object])必须为2的倍数。当[object Object][object Object]相等时,正向计算直接返回;但若使用自动微分,反向算子不支持切片长度为零,此时须确保[object Object]且各输入维度均大于0。
  • [object Object][object Object]最后一维大小必须相同,且必须等于[object Object]的切片长度(即[object Object])。
  • [object Object][object Object]的shape必须与[object Object]满足广播关系,且存在如下约束:
    • [object Object]Ascend 950PR/Ascend 950DT[object Object]:[object Object][object Object]的shape当前只支持BSND、B1ND、B11D、111D排布。
    • [object Object]Atlas A3 训练系列产品/Atlas A3 推理系列产品[object Object]、[object Object]Atlas A2 训练系列产品/Atlas A2 推理系列产品[object Object]:[object Object][object Object]的shape当前只支持BS1D、B11D排布。
  • [object Object]的各维度值必须大于0;当[object Object]不是空切片时,[object Object][object Object]参与计算的维度值必须大于0。
  • 自动微分约束:仅计算 [object Object] 的梯度;[object Object][object Object] 的梯度不计算,始终为 None。因算子为 inplace 操作,[object Object] 不能是 [object Object] 的叶子张量。此外,反向算子 [object Object] 不支持空Tensor和切片长度为零的场景,因此使用自动微分时正向调用也须确保各输入维度均大于0且 [object Object]
[object Object]

默认支持确定性计算。

[object Object]
  • 单算子模式调用

    [object Object]
  • 训练模式调用(自动微分)

    [object Object]
  • 图模式调用

    [object Object]