目录

  • DeepSpeed配置参数 – 快速上手
    • batch Size
    • optimizer
    • scheduler
    • fp16
    • zero optimization
    • csv monitor
  • 例子

DeepSpeed配置参数 – 快速上手

DeepSpeed是微软发布的用于PyTorch的开源深度学习优化库。其主要特性是:

  • 异构计算:ZeRO-Offload 机制同时利用 CPU 和 GPU 内存,使得在 GPU 单卡上训练 10 倍大的模型;
  • 计算加速:Sparse Attention kernel技术,支持的输入序列更长(10倍),执行速度更快(6倍),且保持精度;
  • 3D并行: 在多个 worker 之间,划分模型的各个层,借用了英伟达的 Megatron-LM,减少显存的使用量

官方文档:https://deepspeed.readthedocs.io/en/latest/
配置参数文档:https://www.deepspeed.ai/docs/config-json/

这里针对几组重要的参数进行说明:

batch Size

train_batch_size = train_micro_batch_size_per_gpu * gradient_accumulation * number of GPUs.// 训练批次的大小 = 每个GPU上的微批次大小 * 几个微批次 * 几个GPU

optimizer

type:支持的有Adam, AdamW, OneBitAdam, Lamb, and OneBitLamb

其中常规的例子里用的是AdamW,也就是带L2正则化的Adam

params:参数字段填和torch里一样的参数

例如AdamW可以参考https://pytorch.org/docs/stable/optim.html#torch.optim.AdamW

// example:"optimizer": {"type": "AdamW","params": {"lr": 3e-5,"betas": [0.8, 0.999],"eps": 1e-8,"weight_decay": 3e-7}}