ColumnParallelLinear 和 RowParallelLinear

ColumnParallelLinearRowParallelLinear 是两种并行线性层,它们的主要区别在于权重矩阵的分割方式和计算过程。具体来说:

ColumnParallelLinear

  • 权重矩阵分割方式

    • 权重矩阵 W 被按列(column)分割成多个子矩阵,每个子矩阵在并行设备上进行计算。
    • 如果权重矩阵 W 的形状是 (output_dim, input_dim),它会被分割成 P 个子矩阵,每个子矩阵的形状是 (output_dim, input_dim / P)
  • 计算过程

    • 输入 x 在并行设备上是完整的,不需要分割。
    • 每个设备计算局部的矩阵乘法:\text{local_output}_i = x \cdot W_i^T
    • 所有设备上的局部输出结果 local_output_i 汇总起来形成最终输出: \text{output} = \sum_{i=1}^{P} \text{local_output}_i
  • 优势

    • 适合输入数据较大但输出维度较小的场景。

RowParallelLinear

  • 权重矩阵分割方式

    • 权重矩阵 W 被按行(row)分割成多个子矩阵,每个子矩阵在并行设备上进行计算。
    • 如果权重矩阵 W 的形状是 (output_dim, input_dim),它会被分割成 P 个子矩阵,每个子矩阵的形状是 (output_dim / P, input_dim)
  • 计算过程

    • 输入 x 在并行设备上进行分割,每个设备上的输入为 x_i,维度为 (batch_size, seq_len, input_dim / P)
    • 每个设备计算局部的矩阵乘法: \text{local_output}_i = x_i \cdot W_i^T
    • 所有设备上的局部输出 local_output_i 汇总起来形成最终输出: \text{output} = \text{concatenate}(\text{local_output}_1, \text{local_output}_2, \ldots, \text{local_output}_P, \text{axis}=-1)
  • 优势

    • 适合输出维度较大但输入数据较小的场景。

  • 9
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值