{
"train_batch_size": "auto",
"train_micro_batch_size_per_gpu" :"auto",
"gradient_accumulation_steps": "auto",
"gradient_clipping": 1.0,
"bf16": {
"enabled": "auto"
},
"zero_optimization": {
"stage": 3,
"overlap_comm": true,
"stage3_gather_16bit_weights_on_model_save": true
},
"flops_profiler": {
"enabled": false,
"profile_step": 1,
"module_depth": -1,
"top_modules": 1,
"detailed": true,
"output_file": null
}
}
这个配置文件是为深度学习训练过程中的优化和性能分析而设置的。它包含了多个参数,用于控制批处理大小、梯度累积、模型保存时的权重处理等。以下是对各个部分的解析:
训练批处理大小(Training Batch Size)
train_batch_size
: “auto”- 这个参数设置整体的训练批处理大小。“auto” 表示自动选择最优的批处理大小。
每个GPU的微批处理大小(Micro Batch Size Per GPU)
train_micro_batch_size_per_gpu
: “auto”- 这个参数设置每个GPU上的微批处理大小。“auto” 表示自动选择最优的大小。
梯度累积步数(Gradient Accumulation Steps)
gradient_accumulation_steps
: “auto”- 这个参数定义了在执行反向传播和更新模型之前要累积的梯度步数。“auto” 表示自动确定这个值。
梯度裁剪(Gradient Clipping)
gradient_clipping
: 1.0- 这个参数用于防止梯度爆炸,通过设置梯度的最大值。
BF16(BFloat16)优化
bf16
:enabled
: “auto”- 这个设置启用BFloat16训练优化。“auto” 表示自动决定是否启用。
Zero优化(Zero Optimization)
zero_optimization
:stage
: 3- Zero优化的阶段。阶段3是最高级别的优化,可以显著减少内存占用。
overlap_comm
: true- 是否在计算和通信之间进行重叠,以提高效率。
stage3_gather_16bit_weights_on_model_save
: true- 在模型保存时,是否将16位权重聚集在一起。
Flops分析器(FLOPs Profiler)
flops_profiler
:enabled
: false- 是否启用FLOPs(浮点运算次数)分析器。
profile_step
: 1- 在哪个训练步骤进行性能分析。
module_depth
: -1- 分析模块的深度。-1表示分析所有层。
top_modules
: 1- 报告消耗最多FLOPs的顶层模块数量。
detailed
: true- 是否提供详细的分析报告。
output_file
: null- 分析结果的输出文件。null表示不输出到文件。
这个配置文件涵盖了深度学习训练的多个方面,包括批处理大小、梯度处理、内存优化和性能分析。它使用了一些高级特性,如Zero优化和BFloat16,以提高训练的效率和效果。这些设置对于在资源受限的环境中进行大规模模型训练非常有用。