InternVL2-deepseepd

467 篇文章 6 订阅
28 篇文章 0 订阅

1.含义
ZeRO是一种针对大规模分布式深度学习的新型内存优化技术。

在DeepSpeed下,ZeRO训练支持了完整的ZeRO Stages1, 2和3,以及支持将优化器状态、梯度和模型参数从GPU显存下沉到CPU内存或者硬盘上,实现不同程度的显存节省,以便训练更大的模型。

2.不同stage的区别
Stage 1: 把 优化器状态(optimizer states) 分片到每个数据并行的工作进程(每个GPU)下
Stage 2: 把优化器状态(optimizer states) + 梯度(gradients)分片到每个数据并行的工作进程(每个GPU)下
Stage 3: 把优化器状态(optimizer states) + 梯度(gradients) + 模型参数(parameters)分片到每个数据并行的工作进程(每个GPU)下

这段配置看起来像是深度学习训练过程中的一些优化选项,特别是针对大规模分布式训练场景。下面我将尽量用简单的方式解释每个参数的作用:

Zero Optimization 零冗余优化

  • stage: 这里设置为1,意味着使用ZeRO-Offload技术的第一阶段,它主要是减少内存使用,通过将模型的状态(比如梯度)卸载到CPU或磁盘上来节省GPU显存。
  • allgather_partitions: 如果为真,则在AllReduce操作期间,将数据分区并并行传输,这样可以提高通信效率。
  • allgather_bucket_size: 控制AllGather操作的数据包大小,较大的值可以减少通信开销,但可能会增加内存需求。
  • overlap_comm: 如果为真,则允许通信与计算重叠,从而提高效率。
  • reduce_scatter: 使用ReduceScatter操作代替传统的AllReduce操作,可以减少通信量。
  • reduce_bucket_size: 控制ReduceScatter操作的数据包大小。
  • contiguous_gradients: 如果为真,则确保梯度在内存中是连续存储的,这有助于提高性能。

FP16 混合精度训练

  • enabled: 设置为"auto"意味着框架会自动决定何时启用FP16(半精度浮点数)训练。
  • auto_cast: 如果为真,则自动将模型的操作转换为FP16,从而加速计算。
  • loss_scale: 初始损失缩放因子,通常设为0表示让系统自动调整。
  • initial_scale_power: 初始损失缩放的指数。
  • loss_scale_window: 在多少个步骤内调整一次损失缩放因子。
  • hysteresis: 调整损失缩放因子时的迟滞系数。
  • min_loss_scale: 最小损失缩放值。

BF16 混合精度训练

  • enabled: 设置为"auto"意味着框架会自动决定何时启用BF16(bfloat16,一种浮点数格式)训练。

Optimizer 优化器

  • type: 使用AdamW优化器。
  • params: AdamW的参数。
    • lr: 学习率,设置为"auto"意味着自动调整。
    • betas: 动量项,通常保持默认值即可。
    • eps: 防止除零错误的小常数。
    • weight_decay: 权重衰减,防止过拟合,设置为"auto"意味着自动调整。

其他参数

  • gradient_accumulation_steps: 多少步梯度累积后更新一次权重,设置为"auto"意味着自动调整。
  • gradient_clipping: 梯度裁剪的阈值,设置为"auto"意味着自动调整。
  • steps_per_print: 每多少步打印一次训练状态。
  • train_batch_size: 训练批次大小,设置为"auto"意味着自动调整。
  • train_micro_batch_size_per_gpu: 每个GPU上的微批次大小,设置为"auto"意味着自动调整。
  • wall_clock_breakdown: 如果为真,则记录各个训练阶段的时间消耗。

总的来说,这些配置项帮助我们有效地管理训练过程中的内存使用、计算资源分配以及训练速度,同时尽可能减少训练时间和成本。设置为"auto"的地方通常意味着让训练框架根据实际情况自动选择最佳策略。

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值