大模型SFT用chat版还是base版
进行 SFT 时,基座模型选用 Chat 还是 Base 模型?
选 Base 还是 Chat 模型,首先先熟悉 Base 和 Chat 是两种不同的大模型,它们在训练数据、应用场景和模型特性上有所区别。
在训练数据方面,Base 模型是基于海量语料库进行的无监督学习。它从大量文本中学习语言模式和知识,而不需要人工标注或监督。
相比之下,Chat 模型则是在指令微调的有监督学习下进行训练的。这意味着它使用人工标注的数据集进行训练,以便更好地理解和响应特定指令。
在应用场景上,Base 模型主要用于无监督学习任务,如文本分类、情感分析、摘要生成等。这些任务主要关注文本内容的理解和处理,而不需要对特定指令做出响应。
相反,Chat 模型则主要用于指令学习任务,如问答系统、对话生成、智能客服等。在这些任务中,模型需要理解和响应人类的指令,以提供准确和有用的信息。
在模型特性上,Base 模型预训练之后没有做任何调整。它提供了基本的语言理解和生成能力,但可能需要针对特定任务进行微调或优化。
而 Chat 模型则是在 Base 模型上进行微调的版本,它通过指令微调和人工反馈强化学习等方法,使模型更加符合人类的价值观和指令要求。
另一种说法是 base 模型可以更方便做知识注入,而 chat 版本是做过对其的,不好做知识注入。
所以基于 base 的 SFT 可以做的上限更高,更方便做知识的注入,而基于 chat 模型的 SFT 是做的样式学习或者指令学习。
但是 base 也存在没有对其的风险,输出可能和希望有差距,需要更多的调优和对齐。
SFT后灾难性遗忘怎么办
1. 更改模型结构和参数高效微调(PEFT)
通过部分参数调整保留预训练知识,降低对原始模型权重的破坏:
- LoRA:通过低秩矩阵更新权重,仅训练少量新增参数,保留大部分预训练参数。
- Adapter-Tuning:在模型各层插入小型适配器模块,仅训练适配器参数。
- LoRAMoE:结合混合专家(MoE)与LoRA,将专家分为两组,分别处理通用知识和新任务,通过路由机制动态分配权重,减少参数冲突。
- 弹性权重固化(EWC,Elastic Weight Consolidation):通过引⼊正则化项,限制模型参数的变动范围,以保护之前学习到的知识。这种⽅法可以在微调过程中平衡新任务和旧任务之间的重要性
2. 数据策略优化
调整训练数据的分布和结构以平衡新旧知识:
- 混合通用数据:在SFT数据中保留一定比例的通用任务数据(如对话、问答),防止模型过度偏向特定领域。
- 多任务联合训练:同时微调多个任务(如翻译、摘要、推理),增强模型的泛化能力。
- 数据重放(Replay):定期将通用数据重新输入模型进行训练,类似“知识复习”。
3. 训练方式
通过架构设计缓解遗忘:
- SDFT(自我蒸馏):利用原始模型对任务数据生成回复,构建自我蒸馏数据集,使任务数据分布更接近原始模型,减少分布偏移。
- 渐进式训练:分阶段微调,先训练适配层,再逐步解冻部分预训练层,避免一次性全参数更新。
参考文档
- SFT索命14问,给跪了
- ⼤模型(LLMs)基础