大模型分布式训练并行技术(四)张量并行

引言

在Transformer架构里,有两块主要的计算量较大的部分,一是Self-Attention,二是MLP。在前面的文章中,我们已经介绍了模型并行和数据并行,本文将介绍张量并行,这是一种更加细粒度的并行方式,可以进一步提高模型的训练效率。

张量并行使用了矩阵乘法可以并行计算的特性,将模型的参数划分为多个部分,每个部分在不同的设备上进行计算,最后将结果进行汇总。下面,我们分别看FFN和Self-Attention的张量并行实现。

MLP

MLP的主要构建块都是完全连接的 nn.Linear,后跟非线性激活 GeLU。

按照 Megatron[2] 的论文符号,我们可以将其点积部分写为 Y = GeLU(XA),其中 X 和 Y 是输入和输出向量,A 是权重矩阵。

如果我们以矩阵形式查看计算,很容易看出矩阵乘法如何在多个 GPU 之间拆分:

如果我们将权重矩阵 A 按列拆分到 N 个 GPU 上,并行执行矩阵乘法 XA_1 到 XA_n,那么我们将得到 N 个输出向量 Y_1、Y_2、...、Y_n,这些向量可以独立输入到 GeLU 中:

利用这一原理,我们可以更新任意深度的 MLP,而无需 GPU 之间进行任何同步,直到最后,我们才需要重建输出向量。

Megatron-LM 论文作者为此提供了一个有用的例子:

Self-Attention

Self-Attention 的张量并行更简单,因为self-attention天然的是多头注意力机制,可以将每个头的计算分配到不同的 GPU 上。

在上图中,我们可以用2个GPU并行的计算self-attention,其中每个GPU计算一个头的注意力机制。那原则上,有几个头就可以用几个GPU并行计算。

特别注意事项:TP 需要非常快的网络,因此不建议跨多个节点进行 TP。实际上,如果一个节点有 4 个 GPU,则最高 TP 度为 4。如果你需要 8 的 TP 度,则需要使用至少有 8 个 GPU 的节点。

下一篇我们看看混合并行。

参考

1\] [Model Parallelism](https://link.juejin.cn?target=https%3A%2F%2Fhuggingface.co%2Fdocs%2Ftransformers%2Fv4.15.0%2Fen%2Fparallelism "https://huggingface.co/docs/transformers/v4.15.0/en/parallelism") \[2\] [Efficient Large-Scale Language Model Training on GPU Clusters Using Megatron-LM](https://link.juejin.cn?target=https%3A%2F%2Farxiv.org%2Fabs%2F2104.04473 "https://arxiv.org/abs/2104.04473") ## 欢迎关注我的GitHub和微信公众号,来不及解释了,快上船! [GitHub: LLMForEverybody](https://link.juejin.cn?target=https%3A%2F%2Fgithub.com%2Fluhengshiwo%2FLLMForEverybody "https://github.com/luhengshiwo/LLMForEverybody") 仓库上有原始的Markdown文件,完全开源,欢迎大家Star和Fork!

相关推荐
Dream it possible!2 分钟前
LeetCode 面试经典 150_二分查找_搜索二维矩阵(112_74_C++_中等)
leetcode·面试·矩阵
indexsunny24 分钟前
互联网大厂Java面试实战:基于电商场景的Spring Boot与微服务技术问答
java·spring boot·微服务·面试·hibernate·电商场景·技术问答
Want59535 分钟前
未来AI会取代人类吗?
人工智能·大模型·aigc
过河卒_zh156676636 分钟前
喜讯:第十五批生成合成类算法备案备案号公布
人工智能·算法·aigc·生成式人工智能·算法备案
Cx330❀42 分钟前
《C++ 递归、搜索与回溯》第2-3题:合并两个有序链表,反转链表
开发语言·数据结构·c++·算法·链表·面试
悄悄敲敲敲1 小时前
MySQL复合查询
面试·职场和发展
CCPC不拿奖不改名1 小时前
面向对象编程:继承与多态+面试习题
开发语言·数据结构·python·学习·面试·职场和发展
IT大白1 小时前
5、Kafka面试相关问题
分布式·面试·kafka
reddingtons9 小时前
【游戏宣发】PS “生成式扩展”流,30秒无损适配全渠道KV
游戏·设计模式·新媒体运营·prompt·aigc·教育电商·游戏美术
小和尚同志11 小时前
虽然 V0 很强大,但是ScreenshotToCode 依旧有市场
人工智能·aigc