本篇来总结一些分布式训练的知识,还是按照面经的形式给出,希望能给到大家一些帮助。
题目
1 训练一个LLM,需要的显存规模跟参数的关系是什么?
\2. 如果有N张显存足够大的显卡,怎么加速训练?
\3. 如果有N张显卡,但每个显卡显存都不足以装下一个完整的模型,应该怎么办?
\4. PP推理时是串行的,1个GPU计算但其他空闲,有什么其他的优化方式?
\5. DP、TP、PP这3种并行方式可以叠加吗?
\6. 3D并行或者直接上多机多卡的ZeRO的条件是什么?
答案
1. 训练一个LLM,需要的显存跟参数的关系是什么?
主要公式是 模型本身占用显存 + 多个batch数据运算的存储 , 跟实际精度,模型大小、中间变量计算以及batch邮官
2. 如果有N张显存足够大的显卡,怎么加速训练?
数据并行(DP),充分利用多张显卡的算力。
3. 如果有N张显卡,但每个显卡显存都不足以装下一个完整的模型,应该怎么办?
PP,流水线并行,需要分层加载,把不同的层加载到不同的GPU上(accelerate的device_map)
4. PP推理时是串行的,1个GPU计算但其他空闲,有什么其他的优化方式?
-
流水线并行(PP), 横向切分,也就是分层加载到不同的显卡上。
-
张量并行(TP),纵向切分,在 DeepSpeed 里叫模型并行(MP)
下面来简单梳理一下DP,PP,TP,ZeRO以及其中MP的关系。
- DP Data parallelism
数据并行算法在多个设备上都拷贝一份完整的模型参数,彼此之间可以独立计算,所以每个设备传入的输入数据不一样,这也是为什么叫数据并行。
只不过每隔一段时间(比如一个batch或者若干个batch)后需要彼此之间同步模型权重的梯度。
- PP Pipeline Parallelism
属于 Model Parallelism (MP), 模型并行算法,它是模型做层间划分,即inter-layer parallelism。
以下图为例,如果模型原本有6层,你想在2个GPU之间运行pipeline,那么每个GPU只要按照先后顺序存3层模型即可。

- TP Tensor Parallelism
Tensor Parallelism就是对模型层内做划分,也叫inter-layer parallelism。
就是把一个变量分散到多个设备并共同完成某个或多个计算操作。对于单个 Tensor/Op 很大 或者模型很大(如GPT3, chatGPT等)的情况,Tensor parallelism 的重要性非常明显。

TP最好带入到不同的模型中去学习,比较好的参考是Megatron-LM,这个可以参考 【 深度学习并行训练算法一锅炖: DDP, TP, PP, ZeRO 】 - https://zhuanlan.zhihu.com/p/581677880 ;另外还有GPT模型训练,这个可以参考【 LLM(六):GPT 的张量并行化(tensor parallelism)方案】 - https://zhuanlan.zhihu.com/p/603908668 这篇。
- ZeRO
这个之前有比较详细的介绍。
5. DP、TP、PP这3种并行方式可以叠加吗?
可以,DP+TP+PP,这就是3D并行。
如果真有1个超大模型需要预训练,3D并行是必不可少的。
单卡80g,可以完整加载小于40B的模型,但是训练时需要加上梯度和优化器状态,5B模型就是上限了,更别说 activation的参数也要占显存,batch size还得大。而现在100亿以下(10B以下)的LLM只能叫small LLM。
6. 3D并行或者直接上多机多卡的ZeRO的条件是什么?
3D并行的基础是,节点内显卡间NVLINK超高速连接才能上TP。显卡有没有NVLINK都是个问题。
Zero3 需要满足通信量,假设当65B模型用Zero3,每一个step的每一张卡上需要的通信量是195GB(3倍参数量),也就 是1560Gb。万兆网下每步也要156s的通信时间,非常不现实。
如何学习大模型
现在社会上大模型越来越普及了,已经有很多人都想往这里面扎,但是却找不到适合的方法去学习。
作为一名资深码农,初入大模型时也吃了很多亏,踩了无数坑。现在我想把我的经验和知识分享给你们,帮助你们学习AI大模型,能够解决你们学习中的困难。
下面这些都是我当初辛苦整理和花钱购买的资料,现在我已将重要的AI大模型资料包括市面上AI大模型各大白皮书、AGI大模型系统学习路线、AI大模型视频教程、实战学习,等录播视频免费分享出来,需要的小伙伴可以扫取。
一、AGI大模型系统学习路线
很多人学习大模型的时候没有方向,东学一点西学一点,像只无头苍蝇乱撞,我下面分享的这个学习路线希望能够帮助到你们学习AI大模型。

二、AI大模型视频教程

三、AI大模型各大学习书籍

四、AI大模型各大场景实战案例

五、结束语
学习AI大模型是当前科技发展的趋势,它不仅能够为我们提供更多的机会和挑战,还能够让我们更好地理解和应用人工智能技术。通过学习AI大模型,我们可以深入了解深度学习、神经网络等核心概念,并将其应用于自然语言处理、计算机视觉、语音识别等领域。同时,掌握AI大模型还能够为我们的职业发展增添竞争力,成为未来技术领域的领导者。
再者,学习AI大模型也能为我们自己创造更多的价值,提供更多的岗位以及副业创收,让自己的生活更上一层楼。
因此,学习AI大模型是一项有前景且值得投入的时间和精力的重要选择。
3279

被折叠的 条评论
为什么被折叠?



