训练框架及参数设置

SFT训练指南:优化策略与参数设置

分类:机器学习

标签:SFT训练,OpenRLHF,DeepSpeed

日期:2023年10月27日

综述

在SFT(监督微调)训练过程中,通常我们不会对损失函数和训练策略进行大幅修改,而是通过调整一些关键参数来优化训练效果。这些参数包括 checkpoint_pathmodel_pathdata_pathdp(数据并行)、pp(流水线并行)和 lr(学习率)。推荐使用OpenRLHF框架,基于Ray和DeepSpeed,简单易用。

参数设置与注意事项

  1. epoch设置

    • 通常设置为1个epoch。
    • 如果数据量较小(如1万条以内),可以设为3个epoch以避免过拟合。
  2. 梯度累积与批量大小

    • gradient_accumulation_steps:指在更新模型参数前,梯度会在多少个小批次上累积。
    • 全局批量大小计算公式:global_batch_size=gradient_accumulation_steps×per_device_batch_size×num_devices
  3. 学习率与调度器

    • SFT阶段的学习率一般是预训练阶段的10倍。
    • 常用的学习率调度器类型有:constantlinearcosineexponential,其中 cosine 使用较多。

技术细节

常见错误

⚠ 在使用DeepSpeed时,确保正确配置zero_stage,以避免因带宽通信成本导致的训练速度减慢。

💡启发点

[思考] 未来展望与问题

来源:本文内容基于对SFT训练的技术分析与实践经验总结。

行动清单

📈趋势预测

随着深度学习框架的不断发展,预计未来SFT训练将更加高效,并且会有更多自动化工具来简化参数调整过程。

后续追踪