QuantizeAddLayerNorm
产品支持情况
| 产品 | 是否支持 |
|---|---|
| Ascend 950PR/Ascend 950DT | × |
| Atlas A3 训练系列产品/Atlas A3 推理系列产品 | √ |
| Atlas A2 训练系列产品/Atlas A2 推理系列产品 | √ |
| Atlas 200I/500 A2 推理产品 | × |
| Atlas 推理系列产品 | × |
| Atlas 训练系列产品 | × |
| Kirin X90 处理器系列产品 | √ |
| Kirin 9030 处理器系列产品 | √ |
功能说明
-
算子功能:是一种结合了量化、加法和层归一化的操作。依次完成以下操作:
- 加法:将两个输入张量进行加法操作。
- 层归一化:对加法后的张量进行层归一化操作。
- 量化:将输入张量从浮点数量化为低精度整数或浮点数。
-
计算公式:
x=x1+x2+biasx = x1 + x2 + bias
rstd=1Var(x)+epsrstd = {{1}\over\sqrt {Var(x)+eps}}
normout=(x−xˉ)∗rstd∗gamma+betanorm_out = (x-\bar{x}) * rstd * gamma + beta
out=round((normout/scales)+zeropoints)out = round((norm_out/scales)+zero_points)
参数说明
| 参数名 | 输入/输出/属性 | 描述 | 数据类型 | 数据格式 |
|---|---|---|---|---|
| x1 | 输入 | 表示加法计算的第一个输入,对应公式中的`x1`。 | FLOAT16、FLOAT32、BFLOAT16 | ND |
| x2 | 输入 | 表示加法计算的第二个输入,对应公式中的`x2`。shape与`x1`的shape保持一致。 | FLOAT16、FLOAT32、BFLOAT16 | ND |
| gamma | 输入 | 用于缩放归一化后的输出,对应公式中的`gamma`。shape与`x1`的shape最后一维保持一致。 | FLOAT16、FLOAT32、BFLOAT16 | ND |
| beta | 输入 | 用于偏移归一化后的输出,对应公式中的`beta`。shape与`gamma`的shape保持一致。 | FLOAT16、FLOAT32、BFLOAT16 | ND |
| bias | 输入 | 表示用于加法计算的偏移量,对应公式中的`bias`。shape与`gamma`的shape保持一致。 | FLOAT16、FLOAT32、BFLOAT16 | ND |
| scales | 输入 | 表示量化的缩放因子,对应公式中的`scales`。shape与`gamma`的shape保持一致。 | FLOAT16、FLOAT32、BFLOAT16 | ND |
| zero_points1 | 可选输入 | 表示量化过程中得到y的offset张量,对应公式中的`zero_points1`。shape与`gamma`的shape保持一致。 | FLOAT32、BFLOAT16 | ND |
| dtype | 必选属性 |
|
INT | - |
| axis | 可选属性 |
|
INT | - |
| epsilon | 可选属性 |
|
FLOAT32 | - |
| additional_output | 可选属性 |
|
BOOL | - |
| y | 输出 | 表示QuantizeAddLayerNorm的最终输出结果,对应公式中的`out`。 | INT8 | ND |
| x | 输出 | 表示加法运算的输出结果,对应公式中的`x`。shape与`x1`的shape保持一致。 | FLOAT16、FLOAT32、BFLOAT16 | ND |
- Kirin X90 处理器系列产品、Kirin 9030 处理器系列产品:所有输入、输出的数据类型不支持BFLOAT16。
约束说明
无
调用说明
| 调用方式 | 样例代码 | 说明 |
|---|---|---|
| 图模式 | test_geir_quantize_add_layer_norm | 通过算子IR构图方式调用QuantizeAddLayerNorm算子。 |