- [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]:不支持
接口功能:
执行单路旋转位置编码的Inplace计算,直接修改输入张量
[object Object],不产生新的输出张量。该接口支持通过[object Object]参数指定输入张量最后一维上的局部范围,仅对该范围内的数据执行旋转位置编码,其余位置保持原值。计算公式:
interleave模式(
[object Object]为[object Object])下,设[object Object],被旋转的局部张量为:计算过程如下:
最终将原地写回
[object Object]。其中,表示参数[object Object],表示参数[object Object],表示参数[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])。计算结果直接 inplace 写回输入张量 [object Object],[object Object] 在计算后 shape 和数据类型保持不变,[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]Ascend 950PR/Ascend 950DT[object Object]:
[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]