主要观点总结
本文介绍了大模型场景里数据并行的实现方法,包括DP、DDP和ZeRO三种方式。文章详细阐述了每种方式的原理、实现细节和优缺点,以及针对存储消耗的优化方法。最后简单介绍了ZeRO-Offload与ZeRO-Infinity。
关键观点总结
关键观点1: 数据并行的实现方式
包括DP、DDP和ZeRO三种。DP是最早的数据并行模式,采用参数服务器这一编程框架;DDP是更通用的解决方案,通过Ring-AllReduce方法解决通讯问题;ZeRO用通讯换显存,通过优化状态分割、梯度分割和参数分割来降低存储消耗。
关键观点2: 存储消耗的优化
包括优化状态分割、优化状态与梯度分割、优化状态、梯度与参数分割等。使用固定大小的内存buffer进行存储,提升带宽利用率,并设置机制对碎片化的存储空间进行重新整合。
关键观点3: ZeRO-Offload与ZeRO-Infinity
ZeRO-Offload将部分数据卸载到CPU上,以减少显存和通讯压力。ZeRO-infinity同理,它们都在解决数据存储和计算性能的问题。
文章预览
↑ 点击 蓝字 关注极市平台 作者丨猛猿 来源丨大猿搬砖简记 编辑丨极市平台 极市导读 大模型场景里巨大的存储和GPU间通讯量是系统设计时需要考虑的重点,本文递进介绍了三种主流数据并行的实现方法:DP、DD皮、ZeRo。 >> 加入极市CV技术交流群,走在计算机视觉的最前沿 当模型太大,一块GPU放不下时,流水线并行将模型的不同层放到不同的GPU上,通过切割mini-batch实现对训练数据的流水线处理,提升GPU计算通讯比。同时通过re-materialization机制降低显存消耗。 但在实际应用中,流水线并行并不特别流行,主要原因是模型能否均匀切割,影响了整体计算效率,这就需要算法工程师做手调。 因此,今天我们来介绍一种应用最广泛,最易于理解的并行范式:数据并行。 数据并行的核心思想是: 在各个GPU上都拷贝一份完整模型,各自吃一份数据,
………………………………