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

引言

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

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

MLP

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

按照 Megatron2 的论文符号,我们可以将其点积部分写为 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

2 Efficient Large-Scale Language Model Training on GPU Clusters Using Megatron-LM

欢迎关注我的GitHub和微信公众号,来不及解释了,快上船!

GitHub: LLMForEverybody

仓库上有原始的Markdown文件,完全开源,欢迎大家Star和Fork!

相关推荐
笨笨饿5 小时前
#121_图传中的H.364编码与MP4的联系
linux·运维·前端·单片机·嵌入式硬件·面试·职场和发展
杨杨杨大侠5 小时前
MCP、ToolFunction 与 Skill:从模型输入到工具执行
后端·aigc·openai
XLYcmy6 小时前
PDF论文处理器 - 完整使用指南
pdf·llm·json·agent·token·csv·dify
cuguanren6 小时前
Agent 框架的会话记忆管理机制
人工智能·ai·大模型·llm·agent·上下文管理·会话记忆管理
AI发掘7 小时前
论文 AI 率超标,如何低成本降低至合格标准?快降重 VS PaperPass 实测,选出省钱又达标的方案
人工智能·aigc
the局外人7 小时前
别再背 Chain、Agent、Memory 了:用一条“智能流水线”学会 LangChain
python·langchain·llm
0end17 小时前
AI Agent 学习笔记(五):工具设计(上)——分类与设计原则
aigc
DigitalOcean7 小时前
GLM 5.3 已上线 DigitalOcean AI 推理云平台:Agent 任务的高性价比底座来了
llm·agent·chatglm (智谱)
QuZhengRong8 小时前
【AI】Agent 全栈进阶|Agent 设计模式
人工智能·学习·设计模式·llm·agent
猿究院--Cu-Sn合金10 小时前
我的 8 个 DeepSeek Harness 插件与工具被社区目录收录了
aigc