您现在的位置是:首页 > 技术资料 > ZeRO显存优化技术.docx
推荐星级:
  • 1
  • 2
  • 3
  • 4
  • 5

ZeRO显存优化技术.docx

更新时间:2026-07-31 21:22:26 大小:14K 上传用户:江岚查看TA发布的资源 标签:显存 下载积分:2分 评价赚积分 (如何评价?) 打赏 收藏 评论(0) 举报

资料介绍

ZeROZero Redundancy Optimizer,零冗余优化器)是由微软研究院开发的面向大规模深度学习训练的显存优化技术,主要解决大参数模型训练过程中GPU显存不足的问题,能够在保持计算效率几乎不变的前提下,将模型训练的显存占用降低数倍,支持千亿甚至万亿参数规模的模型在现有GPU集群上完成训练。

核心原理:消除数据并行中的冗余存储

在传统的数据并行训练中,每个GPU设备都会保存一份完整的模型参数、梯度和优化器状态,当模型参数量达到数十亿规模时,每个GPU都需要重复存储三份相同的大张量,产生了极高的冗余显存占用:比如一个10亿参数的FP32模型,优化器状态(动量与方差)就需要8GB,梯度需要4GB,参数本身需要4GB,单GPU显存需求就达到16GB,如果是70亿参数模型单GPU需要超过112GB显存,普通消费级GPU根本无法承载。

ZeRO的核心思路就是对模型训练过程中的三个主要显存占用部分(优化器状态、梯度、模型参数)进行分区划分,让每个GPU只存储整个模型完整三要素中的一个分区,只负责计算自己分区内参数的更新,在需要进行前向/反向传播的时候按需收集其他分区的参数,从根本上消除了数据并行中的冗余存储,在保持数据并行计算通信量不变的前提下,大幅降低单GPU的显存占用。

ZeRO的三个阶段

ZeRO根据优化的对象不同,分为三个逐步递进的优化阶段,不同阶段在显存节省和通信开销之间有不同的权衡,可以根据硬件条件和模型规模灵活选择。

阶段1:优化优化器状态(ZeRO-1

ZeRO-1只对优化器状态进行分区划分,每个GPU只保存自己负责分区内参数的优化器状态(比如Adam优化器的一阶动量、二阶矩),不存储所有参数的优化器状态。在参数更新的时候,每个GPU只更新自己分区内的参数,更新完成后再将所有参数广播到所有GPU上,保证每个GPU都有完整的参数用于前向和反向传播计算。

ZeRO-1可以将优化器状态占用的显存降低为原来的1/NN为数据并行的GPU数量),整体显存占用降低大约4倍,不需要额外增加通信量,几乎不影响训练速度,是低投入高回报的优化选项。


部分文件列表

文件名 大小
ZeRO显存优化技术.docx 14K

全部评论(0)

暂无评论

上传资源 上传优质资源有赏金

  • 打赏
  • 30日榜单

推荐下载