掘金 人工智能 06月24日 14:53
了解集合通信与模型并行策略
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

本文深入探讨了集合通信在深度学习中的重要性,介绍了集合通信的基础概念、关键原语以及常见的网络拓扑结构。文章详细阐述了数据并行、流水并行、张量并行和专家并行等多种模型并行策略,为读者提供了关于分布式训练的全面理解。通过对不同并行策略的比较分析,帮助读者更好地选择和应用适合自身需求的并行方案,从而提升深度学习模型的训练效率。

🌐 集合通信是深度学习中实现高效并行计算的关键技术,它通过特定的通信模式,如广播(Broadcast)和散发(Scatter),促进计算节点间的数据交换,从而加速模型训练过程。

🔗 常见的网络拓扑结构,如全连接(Full Mesh),对集合通信的性能有重要影响。全连接结构允许节点间直接通信,减少通信延迟,但可能增加硬件成本和复杂性。

💡 模型并行策略是解决大规模模型训练问题的关键。其中,数据并行将数据分发给多个节点;流水并行将模型拆分成多个阶段;张量并行则将单层模型进一步切分;专家并行则针对MoE场景,将不同专家分配到不同节点。

🔄 数据并行通过将训练数据分割成小批次,分发给多个计算节点并行训练,实现加速。这种方法简单易行,但受限于单节点内存容量。

🪜 流水并行将模型按层拆分,每个节点负责一部分计算,从而降低单个节点的存储压力。这种方法适用于模型规模大于单个节点内存的情况。

📐 张量并行进一步切分单层模型参数,允许多个节点共同计算同一层,适用于单层模型过大的情况。它与流水并行可以结合使用,以实现更高效的并行训练。

🧑‍🏫 专家并行专门针对MoE模型设计,将不同专家分配到不同节点,通过动态路由机制分配数据。这种方法适用于处理具有专家结构的复杂模型。

集合通信

集合通信基础

通过HCCS实现两两互联(Full Mesh),如NPU与NPU之间,CPU与CPU之间;NPU和CPU之间通过PCIE连接。Full Mesh是指在一个网络拓扑中,每个节点都直接连接到其他节点,形成一个完全互联的网络结构。在Full Mesh网络中,任何两个节点之间都可以直接通信。

2.A+X(16P):

双mesh组网(8P Full-mesh)

集合通信原语

模型并行策略

数据并行是指将一个批次(batch)的训练数据分成若干个小批次,分发给多个计算节点来进行训练的并行方式。

对于分布式训练,当模型规模太大而无法存放在单个计算节点上时,可以使用流水并行。在流水并行中,模型被逐层拆分成几个阶段,每个计算节点仅存储并执行其中的一个阶段(一个阶段可以是一层,也可以是相邻的多层)。这样可以有效减轻每个节点内的存储压力。

如果单层/单阶段的模型依然太大而无法放在单个节点上怎么办?那就将它的参数进一步切分到多个节点上,每个节点计算部分结果,再通过通过节点间的通信获取到最终结果,这就是张量并行。简言之,流水并行是模型的层间切割,而张量并行是模型的层内切割。这两种模型并行的方式是可以同时存在的。

专家并行是在分布式学习中专门针对MoE场景的并行策略,其主要思想就是将不同专家放在不同计算节点上进行并行计算。专家并行与之前所有的并行相比,最大的不同在于,输入数据需要通过一个动态的路由选择机制分发给相应专家,此处会涉及到一个所有节点上的数据重分配的动作,然后在所有专家处理完成后,又需要将分散在不同节点上的数据按原来的次序整合起来。

参考资料

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

集合通信 深度学习 模型并行 分布式训练
相关文章