一.DeepSpeed

DeepSpeed 是由Mircrosoft 提供的分布式训练工具,DeepSpeed Zero(零冗余优化器)是大规模模型训练优化的技术,目的是减少模型的内存占用Zero将模型参数分成三个部分

  • Optimizer States, 优化器在进行梯度更新的时候需要用到的数据
  • Gradient, 在反向转播过程中产生的数据,其决定参数的更新方向
  • Model Parameter, 模型参数,在模型训练过程中通过数据“学习”的信息

Zero 的级别如下

  • Zero-0, 不使用所有类型的分片,仅使用DeepSpeed作为DDP
  • Zero-1, 分割Optimizer States, 减少4倍内存,通信容量和数据并行性相同
  • Zero-2, 分割Optimizer States和Gradients,减少8倍内存,通信容量和数据并行性相同
  • Zero-3, 分割Optimizer States、gradients、Parametes,内存减少与数据并行度呈线性关系。例如,在64个GPU(Nd=64)之间进行拆分将产生64倍的内存缩减。通信量有50%的适度增长
  • Zero-Infinity, Zero-Infinity是Zero-3的扩展,它允许通过使用 NVMe 固态硬盘扩展 GPU 和 CPU 内存来训练大型模型

二. 参数设置

  • lr_scheduler_type:学习率变化策略。如[linear, cosine, cosine_with_restarts,polynomial,constant,constant_with_warmup,inverse_sqrt,reduce_lr_on_plateau]
    • linear, 学习率从一个较高的初始值开始,然后随着时间线性地减少到一个较低的值。
    • cosine, 学习率按照余弦曲线的形状进行周期性调整,这种周期性的起伏有助于模型在不同的训练阶段探索参数空间。
    • cosine_with_restarts, 这是余弦调整的一种变体,每当学习率达到一个周期的最低点时,会突然重置到最高点,然后再次减少。
    • polynomial, 学习率按照一个多项式函数减少,通常是一个幂次递减的形式。
    • constant_with_warmup, 开始时使用较低的学习率“预热”模型,然后切换到一个固定的较高学习率。
    • inverse_sqrt, 学习率随训练步数的增加按逆平方根递减。
    • reduce_lr_on_plateau, 当模型的验证性能不再提升时,自动减少学习率。
  • warmup_steps:warmup步数。学习率经过多少步,增长到指定的数值。
  • warmup_ratio:用于指定线性warmup 占总训练步骤的比例,如果设置了warmup_steps,将会忽略warmup_ratio。
  • weight_decay:权重衰减,防止模型过拟合。
  • optim:优化器。优化策略梯度下降算法:SGD、MBGD、Momentum、Adam、AdamW
  • lora_rank:lora矩阵的秩。一般设置为8、16、32、64等。
  • lora_alpha: lora中的缩放参数。一般设为16、32即可。
  • target_modules: lora训练模块,q_proj、k_proj、v_proj、o_proj、up_proj、down_proj。分别对应自注意力机制中的查询、键、值和输出投影层,以及LoRA特有的上投影和下投影层。
  • fp16:使用使用fp16混合精度。V100建议开启。
  • bf16:使用使用bf16混合精度。A100建议开启。
  • preprocessing_num_workers:数据预处理时的工作进程数量。
  • block_size:块大小,即输入序列的最大长度。
  • group_by_length:是否根据输入序列的长度进行分组。
  • gradient_checkpointing:梯度检查点。
  • ddp_timeout:ddp超时时间设置,若某些节点在规定时间内没有响应,则训练会报错并中止。
  • ddp_find_unused_parameters:是否在DDP中寻找未使用的参数。如果模型中存在未被使用的参数,该选项可以帮助检测到,以避免不必要的计算和资源浪费。
  • evaluation_strategy:训练期间采用的评估策略,[‘no’,‘steps’,‘eppoch’],[不评估,每个eval_step后评估,每个epoch后评估]

三.参考资料

https://mp.weixin.qq.com/s/qvhzagFFgNdtb3sSymhAdA

http://t.csdnimg.cn/Z2S9h