
张爱玲 杨占略
本书致力于探索如何在大规模深度学习模型训练中,**限度地提高性能和优化显存使 用。本书面向深度学习从业者,尤其是希望深入了解并提升模型训练效率的工程师与研究 人员。随着深度学习模型和数据规模的迅速增长,如何高效利用硬件资源,减少训练时间, 成为当前AI系统工程的关键挑战。本书从硬件和软件的基础知识入手,逐步引导读者理解 和掌握PyTorch的优化技巧。内容涵盖从单机到分布式训练,从显存管理到性能分析的多种 优化策略,力求通过丰富的代码实例和深入的原理讲解,使读者能够在实践中灵活应用这些 方法。
《大模型动力引擎》这本书干货满满,内容涵盖大模型底层架构、CPU与GPU协同调度等关键技术,并聚焦于具有极强实用性的性能调优实践,对系统学习框架类知识大有裨益。 构建大模型的核心在于处理数据与模型,其主要流程包括数据清洗、数据加载和模型训练。训练过程包含三个关键环节:前向传播计算激活值、反向传播计算梯度,以及优化器迭代更新权重。通常,训练阶段的计算量可达推理阶段的三倍之多。推理在本质上是一个简化的前向传播过程;针对大语言模型,可进一步划分为 Pre-filling 和 Decoding 两个阶段。 大模型的训练与推理涉及CPU、GPU、磁盘、网络等多种硬件设备。进行优化时,首要步骤是定位性能瓶颈,判断其属于内存瓶颈还是计算瓶颈。实践中,常借助“屋顶模型”测算理论性能阈值,并配合使用 Profiler、NVIDIA System Management Interface、CUDA System 等工具监测硬件的算力与带宽利用率。 在具体优化策略上: CPU优化:通常采用多线程技术加速数据清洗与加载流程,并实现CPU与GPU的异步计算,以提升硬件并行处理效率。 GPU优化:核心目标是提高硬件利用率。若存在算力瓶颈,可适当增大Batch Size;若需提升计算与存储的并行度,则可减小Batch Size。此外,利用算子融合工具生成fused算子有助于减少带宽瓶颈,而混合精度训练与量化方法也能有效降低带宽压力。实在不行,可以自己写算子。 网络优化:重点是提升互联带宽。除NVIDIA的NVLink技术外,其他方案还包括RDMA、InfiniBand等高速网络互联技术。 多卡训练:可采用多种并行策略。当前主流的是从不同维度切分任务的5D并行方案,涵盖Pipeline并行、Tensor并行、模型并行、数据并行及Batch并行等。 最后,若经过上述优化算力仍无法满足需求,最直接有效的方式便是扩充硬件配置以提升运行速度。
粗略看了一遍挺不错,对pytorch的理解又深了一步,但书中的代码链接咋没看到,找了半天,最后在闲鱼上才找到😂
对PyTorch 的性能优化部分介绍很多,连带的就将GPU、反向传播等进行了介绍,但是对分布式方面的讲解太少了。
二刷,推荐阅读。本书虽然较老,但技术原理是相同的。阅读本书,可以对大模型的训练优化有一定了解
这本书主要内容是Pytorch程序的调优,对于Pytorch代码的提高还是有作用的。
本书一个很难得的优点:点到为止地串联优化的各个知识点,面面俱到而不繁杂。不像别的一些书,要么太冗余把一个api的所有参数都列一遍,要么太简略觉得读者都会了直接跳过一些简单但关键的步骤半句不提。个人认为技术类书籍就该和这本一样,其一知识点得点到,要不然读者可能压根不知道有这东西;其二不能太过于详细以至于琐碎,毕竟读一遍一般都记不住那么细节的小知识点,都是在使用过程中进一步学习熟悉完善查漏补缺的。
绝大部分都是写的单机优化,像数据加载,双缓存区等优化还是比较实用的。其实见到这本书太晚了,在训练的时候发现gpu没跑满就会自己琢磨排查哪个流程出问题了。踩完这些坑才发现,这本书已经给总结好了。
无论是讲PyTorch还是讲大模型还是讲深度学习,这本书的角度、内容都很独到。
模型训练版本的《性能之巅》,非常值得一读
作为性能调优快速入门的书已经挺不错的了,把零散的点串起来,几个小时内通读完还是有所收获