深入理解大模型预训练与微调:Pre-training 与 Fine-tuning 技术对比
引言
在大型语言模型(LLM)的发展进程中,预训练(Pre-training)与微调(Fine-tuning)是两个核心阶段。预训练旨在让模型从海量无标注数据中学习通用知识,而微调则是将这种通用能力适配到特定任务上。理解两者的区别、联系及实施细节,对于构建高效的大模型应用至关重要。
一、预训练(Pre-training)深度解析
1.1 为什么需要预训练?
预训练的核心目的是通过大规模无监督学习,赋予模型强大的泛化能力和基础认知。在现实应用中,收集并标注高质量数据往往成本高昂且耗时。特别是在医疗、法律等专业领域,数据稀缺性显著。预训练技术允许模型从未标记的互联网文本、书籍等数据中学习语言规律、逻辑推理及世界知识,从而减少对下游任务标注数据的依赖。
此外,预训练解决了'先验知识'问题。随机初始化的神经网络缺乏常识,而预训练模型已经掌握了语法、语义、实体关系等底层特征。这为新任务的学习提供了强有力的支撑,显著加速收敛过程。
1.2 预训练的技术原理
预训练通常采用无监督学习方式,主要目标函数包括掩码语言建模(Masked Language Modeling, MLM)和自回归语言建模(Next Token Prediction)。
- 掩码语言建模(MLM):如 BERT 模型,随机掩盖句子中的部分词,要求模型根据上下文预测被掩盖的词。这种方式强制模型双向理解上下文。
- 自回归语言建模:如 GPT 系列模型,按顺序预测下一个词。这种方式擅长生成任务,捕捉长距离依赖。
- 架构基础:现代预训练普遍基于 Transformer 架构,利用自注意力机制(Self-Attention)捕获全局上下文信息,支持并行计算。
1.3 预训练的数据规模与质量
数据是预训练的燃料。从早期的 Word2Vec 到现在的千亿参数模型,数据量呈指数级增长。高质量的数据清洗、去重及过滤(去除低质网页、隐私信息等)直接决定了模型的最终表现。常见的预训练语料包括 CommonCrawl、Wikipedia、GitHub 代码库及各类专业书籍。
二、微调(Fine-tuning)策略与方法
2.1 为什么需要微调?
尽管预训练模型具备通用能力,但其输出分布是针对通用语料优化的,未必符合特定业务场景的需求。例如,一个通用的聊天机器人可能无法准确回答医疗诊断问题,或者在风格上不符合企业文档规范。微调通过在特定任务的少量标注数据上进一步训练,使模型适应新领域的分布,优化特定指标(如准确率、F1 值)。
2.2 微调的分类
微调策略主要分为两大类:基于训练方法的分类和基于参数调整的分类。
2.2.1 基于训练方法:SFT 与 RLHF
- 监督微调(Supervised Fine-tuning, SFT):使用有标签的数据集对预训练模型进行有监督训练。这是最基础的微调方式,适用于文本分类、命名实体识别等明确任务。步骤包括加载模型、准备数据集、调整输出层维度、训练。
- 基于人类反馈的强化学习(Reinforcement Learning with Human Feedback, RLHF):在 SFT 基础上引入奖励模型(Reward Model)。通过收集人类对模型输出的偏好数据,训练奖励模型来评估输出质量,再利用强化学习(如 PPO 算法)优化策略模型。RLHF 主要用于对齐人类价值观,提升对话的自然度和安全性。
2.2.2 基于参数调整:Full Fine-tuning 与 PEFT
- 全面微调(Full Fine-tuning):更新模型所有参数。当目标任务与预训练任务差异巨大,且资源充足时,此方法效果最好,但显存消耗极大,容易引发灾难性遗忘。
- 参数高效微调(Parameter-Efficient Fine-tuning, PEFT):仅更新少量参数,冻结大部分权重。常见技术包括:
- LoRA (Low-Rank Adaptation):在权重矩阵旁路添加低秩分解矩阵,大幅减少可训练参数量。
- Prefix Tuning:在输入序列前添加可学习的连续向量前缀。


