RmsNorm
产品支持情况
| 产品 | 是否支持 |
|---|---|
| Ascend 950PR/Ascend 950DT | √ |
| Atlas A3 训练系列产品/Atlas A3 推理系列产品 | √ |
| Atlas A2 训练系列产品/Atlas A2 推理系列产品 | √ |
| Atlas 200I/500 A2 推理产品 | × |
| Atlas 推理系列产品 | √ |
| Atlas 训练系列产品 | × |
| Kirin X90 处理器系列产品 | √ |
| Kirin 9030 处理器系列产品 | √ |
功能说明
-
算子功能:RmsNorm算子是大模型常用的归一化操作,相比LayerNorm算子,其去掉了减去均值的部分。
-
计算公式:
RmsNorm(xi)=xiRms(x)gi, where Rms(x)=1n∑i=1nxi2+eps\operatorname{RmsNorm}(x_i)=\frac{x_i}{\operatorname{Rms}(\mathbf{x})} g_i, \quad \text { where } \operatorname{Rms}(\mathbf{x})=\sqrt{\frac{1}{n} \sum_{i=1}^n x_i^2+eps}
参数说明
| 参数名 | 输入/输出/属性 | 描述 | 数据类型 | 数据格式 |
|---|---|---|---|---|
| x | 输入 | 表示进行归一化计算的输入。公式中的`x`。 | FLOAT32、FLOAT16、BFLOAT16 | ND |
| gamma | 输入 | 表示进行归一化计算的缩放因子(权重),公式中的`g`。 | FLOAT32、FLOAT16、BFLOAT16 | ND |
| epsilon | 可选属性 |
|
FLOAT32 | - |
| y | 输出 | 表示进行归一化后的最终输出,公式中的`RmsNorm(x)`。 | FLOAT32、FLOAT16、BFLOAT16 | ND |
| rstd | 输出 | 表示归一化后的标准差倒数,公式中`Rms(x)`的倒数。 | FLOAT32 | ND |
- Atlas 推理系列产品、Kirin X90/Kirin 9030 处理器系列产品:所有输入参数和输出参数的数据类型不支持BFLOAT16。
约束说明
无
调用说明
| 调用方式 | 样例代码 | 说明 |
|---|---|---|
| aclnn接口 | test_aclnn_rms_norm | 通过aclnnRmsNorm接口方式调用RmsNorm算子。 |
| 图模式 | - | 通过算子IR构图方式调用RmsNorm算子。 |