FusedEcMoE

class paddle.incubate.nn. FusedEcMoe ( hidden_size, inter_size, num_experts, act_type, weight_attr=None, bias_attr=None ) [源代码]

这是一个调用融合算子 fused_ec_moe(参考 fused_ec_moe )。

参数

  • hidden_size (int) - 输入输出的维度。

  • inter_size (int) - 前馈神经网络中隐藏层的大小。

  • num_expert (int) - 专家网络的数量。

  • act_type (string) - 激活函数类型,目前仅支持 gelu , relu

  • weight_attr (ParamAttr,可选) - 指定权重参数属性的对象。默认值:None,表示使用默认的权重参数属性,即使用 0 进行初始化。具体用法请参见 ParamAttr

  • bias_attr (ParamAttr|bool,可选)- 指定偏置参数属性的对象。如果该参数值是 ParamAttr,则使用 ParamAttr。如果该参数为 bool 类型,只支持为 False,表示没有偏置参数。默认值为 None,表示使用默认的偏置参数属性。具体用法请参见 ParamAttr

返回

  • Tensor,输出 Tensor,数据类型与 x 一样。

代码示例

# required: gpu
import paddle
from paddle.incubate.nn.layer.fused_ec_moe import FusedEcMoe

x = paddle.randn([10, 128, 1024]) # [bsz, seq_len, d_model]
gate = paddle.randn([10, 128, 8]) # [bsz, seq_len, num_experts]
moe = FusedEcMoe(1024, 4096, 8, act_type="gelu")
y = moe(x, gate)
print(y.shape) # [10, 128, 1024]