目录
- 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}}