当前大模型训练的技术范式主要遵循“预训练-微调”的两阶段流程。本文将重点剖析几种核心的微调技术,帮助你为目标任务选择合适的方法。
预训练 (Pre-Training)
预训练是模型构建通用知识基石的阶段。它通过在互联网等海量无标注文本数据上进行训练,使模型学习到基础的语法规则、语义关联和世界知识。这一过程无需人工标注,旨在让模型掌握语言的通用模式。
微调 (Fine-Tuning)
在预训练获得通用能力后,微调阶段使用特定任务的标注数据对模型进行进一步训练,使其精准适配下游应用场景。根据参数调整范围,微调可分为两类:
1. 全量微调 (Full Fine-Tuning)
- 做法:解锁并更新预训练模型的全部参数。模型在任务数据上完整地重新学习。
- 优点:通常能达到该任务上的最佳性能,因为所有参数都针对新任务进行了优化。
- 缺点:
- 计算与存储成本高:对于大参数模型,需要巨大的GPU内存和算力,且每个任务都需保存完整的模型副本。
- 过拟合风险:在数据量小的任务上,过度训练所有参数可能导致模型“遗忘”通用知识。
2. 高效微调 (Parameter-Efficient Fine-Tuning, PEFT)
- 做法:冻结预训练模型绝大部分原始参数,仅新增或修改极小一部分参数来适配任务。
- 目的:以极低的训练成本,获得接近全量微调的性能。
- 常见技术:
- Adapter:在模型层间插入小型可训练模块,仅训练这些模块。
- Prompt Tuning:不修改模型,仅优化输入时添加的一小段可学习的“提示词”向量。
- LoRA:通过训练两个小的低秩矩阵来模拟大权重矩阵的适配变化,不直接改动原始权重。

根据目标与方法的不同,微调又可细分为以下几种主要类型,它们的具体实现通常依赖于上述的全量微调或高效微调技术,开发者常使用Python及PyTorch等框架来实现。
3. 监督微调 (Supervised Fine-Tuning, SFT)
SFT利用“标准答案”进行训练。它使用高质量的“指令-输出”配对数据,以传统监督学习方式微调模型。
- 训练目标:最小化模型输出与标准答案之间的差异(如交叉熵损失)。
- 适用场景:输出格式明确的任务,如文本分类、命名实体识别、机器翻译等。
- 特点:方法直接,能为模型在特定任务上提供坚实的行为基础。
4. 基于人类反馈的强化学习 (RLHF)
RLHF的核心是利用“人类偏好”进行训练。其主要阶段包括:
- 监督微调 (SFT):首先使用高质量数据对模型进行初步调整。
- 奖励模型训练:让人类评估员对模型的多个输出进行偏好排序,训练一个能预测人类偏好的奖励模型。
- 强化学习优化:利用奖励模型给出的信号,通过PPO等强化学习算法进一步优化SFT模型,使其输出更符合人类价值观。
- 适用场景:输出开放、主观的生成式任务,如创意写作、开放域对话、内容总结等。
- 特点:能有效对齐模型行为,使其输出在有用性、安全性和无害性上更符合人类复杂偏好。
5. 指令微调 (Instruction-Tuning)
指令微调旨在提升模型理解和遵循自然语言指令的泛化能力。
- 方法:使用海量、多样化的“指令-输出”配对数据进行训练。
- 目标:使模型学会根据指令泛化,而非记忆特定任务,最终成为一个能响应各类未知指令的“通用助手”。
- 简单比喻:Fine-Tuning 是将通才培养成专才(如特定领域的专家);Instruction-Tuning 是培养其理解并执行各种复杂要求的通识能力(如敏捷的助理)。这种训练对底层基础设施,特别是云原生平台的弹性和算力调度能力提出了更高要求。
|