参考

https://zhuanlan.zhihu.com/p/622212228

背景

目前大模型的参数以及计算量越来越大,如果放在多卡上处理成为关键,这里简单记录一下每种并行策略的概念。目前大模型核心就是gemm、FFN(MLP)、attention, 所以下面的说明也以这三个算子作为说明。

流水线并行

就是把一个模型每个op放在一个gpu上执行,其中每一行是一个gpu,这样gpu的利用率就会比较高。
在这里插入图片描述

数据并行

每个gpu上储存一份模型参数,通过切分batch来实现并行推理

张量并行

gemm乘法

在这里插入图片描述
如果分到不同的gpu上的时候有两种方式:
第一种:
在这里插入图片描述
第二种:
在这里插入图片描述

FFN

原始算法:
在这里插入图片描述
并行方式:
其实就是上面两个gemm的综合:

在这里插入图片描述

attention

核心还是上面那个gemm切分方式,由于multi-head天生就有一个并行的算法优势,所以这里可以直接按照头去切分。
在这里插入图片描述
一般情况下,self-attention在结尾还有一个gemm,所以后面可以采用gemm的切分方式:
在这里插入图片描述
可以看到通讯部分就是最后的all-reduce,为啥要all-reduce呢,因为后面的ffn需要一个整块的输入。

Logo

中国智能体开发者社区,聚焦智能体与大模型开发,提供前沿资讯、实用工具链、开源项目及行业案例。通过技术沙龙、开发者大赛等活动,促进经验交流与协作,助力开发者快速构建创新智能应用。

更多推荐