训练技巧和训练策略

如何优化大模型训练:策略与技巧

分类:机器学习,人工智能

标签:大模型训练,多任务学习,SFT策略

日期:2023年10月20日

训练技巧

在进行大模型训练时,不同的任务类型(task_type)需要使用不同的损失函数(channel_loss)进行观察。特殊标记(special_token)的损失一开始可能会较高,但下降速度也很快。对于创作类任务,其损失通常比其他任务更高,因为这些任务的答案较为固定,搜索结果越单一,损失越低。

关键步骤

  1. 观察损失函数变化:✅ 不同任务需要不同的损失函数。
  2. 注意初始损失水平:⚠ 确保使用通用的数据进行采样,初始损失不会特别高。
  3. 监控损失趋势:❗ 如果损失持续升高,检查训练代码而非数据难度。

常见错误

在训练过程中,如果发现损失持续升高,不要怀疑数据的难度,而是检查训练代码是否有问题。

SFT阶段的Packing策略

在SFT(Supervised Fine-Tuning)阶段,不建议使用packing策略,因为这可能削弱模型对短查询和短答案的拟合能力。无packing情况下,短文本的梯度更集中,有助于提升模型拟合能力。然而,packing策略在大批量数据上对泛化效果无损。

重点段落

训练策略

多任务学习

直接混合不同的SFT数据源并应用SFT,将每个数据源视为不同任务进行多任务学习。

顺序训练

依次在每个数据集上应用SFT,如编码、数学推理和综合能力数据集。

混合序列训练

在专业数据集(如代码、数学)上应用多任务学习,然后在通用能力数据集上应用SFT。
Pasted image 20250411111212.png

思考

来源:《Do We Really Need Packing in LLM SFT?》,《Enhancing Training Efficiency Using Packing with Flash Attention》

行动清单

📈趋势预测

随着大模型训练技术的发展,未来可能会出现更加智能的自动化调参工具,以优化训练效率和效果。

后续追踪